Arduino IDEだけでできるRaspberry Pi Pico / RP2040-Zero にC++プログラムを書き込む方法

Arduino でラズパイ PicoにC++プログラムを書き込む
スポンサーリンク

Raspberry Pi PicoやRP2040-Zeroは高性能かつ低価格で、電子工作や組み込み開発にぴったりのマイコンです。しかし、「CMakeとか難しそう…」と思って躊躇していませんか?
実は、Arduino IDEの最新版を使えば、面倒な環境構築なしにC++のプログラムを簡単に書き込むことができます!
この記事では、初心者の方でもつまずかないように、開発環境のインストールから、LED点滅やI2C通信を使った具体的なプログラムまで、やさしく解説していきます。

スポンサーリンク

✅Arduino IDE 最新版のインストールとセットアップ

Arduino IDEのダウンロード

  1. Arduino公式サイトにアクセス
    → https://www.arduino.cc/en/software自分のOSに合ったバージョンを選んでください
    • Windows
      • 通常の「Installer(推奨)」版
      • またはZIP版(インストール不要でポータブル使用向け)
    • macOS
      • Intel Mac または Apple Silicon(M1/M2)に応じたバージョンを選択
    • Linux
      • Debian系(.deb)、RedHat系(.rpm)、またはAppImageから選択
  2. 「Just Download」ボタンをクリック
    • 開発支援の寄付ページが表示されますが、スキップしてOKです。
  3. ダウンロードしたファイルを実行し、インストール
    • Windows:arduino-ide_installer.exe をダブルクリックしてインストール
    • macOS:Arduino IDE.app をアプリケーションフォルダにドラッグ
    • Linux:AppImageは実行権限を与えて起動(右クリック → プロパティ → 実行を許可)

🔍 ワンポイント補足

  • 現時点での最新版は Arduino IDE 2.x系(新UI・タブ補完・高速コンパイル対応)です。
  • 古い「1.8.x」系と混在しないよう、事前に旧バージョンはアンインストールしておくのがおすすめです。

🔧 RP2040ボードの追加方法(Arduino IDE 2.x対応)

  1. Arduino IDEを起動
  2. [ファイル] → [環境設定] を開く
    • Windows/Linux:メニューの「File」→「Preferences」
    • macOS:メニューの「Arduino」→「Preferences」
  3. 追加のボードマネージャURLを入力
    • 「追加のボードマネージャのURL」欄に以下のURLを貼り付けます:
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

※ すでに何かURLが入っている場合は、カンマ , で区切って追加してください。
既存のURLをバックスペースで削除して新しいものを入力しても まったく問題ありません。

  • [OK] を押して設定を保存
  • [ツール] → [ボード] → [ボードマネージャ] を開く
  • 「rp2040」または「pico」で検索
  • 「Raspberry Pi Pico / RP2040 by Earle Philhower」をインストール
    • インストールボタンを押すと数分でボードが追加されます。

✅ ボード追加後にできること

  • [ツール] → [ボード] から「Raspberry Pi Pico」や「RP2040-Zero」などが選べるようになります。
  • USB経由で書き込みも可能になります(UF2モードまたはCDCシリアル書き込み)。

💡補足:このEarle Philhower氏のボードパッケージは…

  • 多機能で信頼性が高く、C++開発に最適です。
  • USBシリアルやPIO機能も利用可能で、Arduinoの柔軟性とRP2040の高性能を両立できます!

🔌Raspberry Pi Pico / RP2040-Zero をArduino IDEで使う準備

ほとんどの場合、ドライバ準備は不要!

  • Windows 10/11・macOS・Linuxともに、Raspberry Pi Pico / RP2040-Zeroは自動認識されます
  • Arduino IDE 2.xと組み合わせれば、ドライバエラーに悩むことはほぼありません。
  • Raspberry Pi Pico / RP2040-Zeroをマイクロパイソンように設定している場合はブートするボタンを押しながらUSBに接続してください。

💡最初のC++プログラム:LEDを点滅させてみよう

Pico内蔵LEDを使ったシンプルなスケッチ

void setup() {
  pinMode(LED_BUILTIN, OUTPUT); // 内蔵LEDを出力モードに設定
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH); // LEDオン
  delay(500);                      // 0.5秒待つ
  digitalWrite(LED_BUILTIN, LOW);  // LEDオフ
  delay(500);                      // 0.5秒待つ
}

このスケッチをPicoに書き込むと、0.5秒ごとにLEDが点滅します。
正しく書き込めれば、書き込み直後からLEDがチカチカするはずです!

🧪I2C接続のAQM1602 LCDに文字を表示するC++プログラム

ライブラリのインストール

ST7032_asukiaaa.hのライブラリーを使いますので私のブログこちらでインストール方法を確認してください。

I2Cピンの設定方法

AQM1602端子Pico/RP2040端子例
VDD3.3V
GNDGND
SDAGP0 (I2C0 SDA)
SCLGP1 (I2C0 SCL)

※ Wire.begin() はピン指定なしでI2C0(GP0/GP1)を使います。

配線図

実際の表示コードとその解説

#include <Wire.h>
#include <ST7032_asukiaaa.h>

// LCDインスタンスを作成
ST7032_asukiaaa lcd;

void setup() {
  // I2Cピンの設定(Pico用)
  Wire.setSDA(0);  // GP0
  Wire.setSCL(1);  // GP1
  Wire.begin();    // I2Cバス初期化

  // LCD初期化(16文字×2行)
  lcd.begin(16, 2);
  lcd.setContrast(30);  // コントラスト調整(0〜63)

  // 表示
  lcd.setCursor(0, 0);  
  lcd.print("Hello AQM1602");

  lcd.setCursor(0, 1);  
  lcd.print("From RP2040!");
}

void loop() {
  // 何もしない
}

🛠️ デバッグとシリアル出力の使い方

Serial.print()でデータを確認する方法

Arduino IDE では、Serialモニターを使ってプログラム内の変数や状態をリアルタイムに確認できます。
これにより、センサーの値の確認プログラムのデバッグがとても簡単になります。

void setup() {
  Serial.begin(115200); // シリアル通信の初期化(ボーレート115200)
}

void loop() {
  int value = analogRead(0); // センサーデータの読み取り(例)
  Serial.print("Analog value: ");
  Serial.println(value);     // 数値を改行付きで表示
  delay(500);                // 0.5秒ごとに表示
}

1.ツールバー上部の🔌「シリアルモニター」ボタンをクリック
2.またはメニューから ツール > シリアルモニター を選択
ボーレートを 115200 に合わせる

✅ 実行結果例(モニター表示)

何も接続してないので値はゼロです。

🏁 まとめ文

今回は、Arduino IDEの最新版だけを使って、Raspberry Pi Pico や RP2040-Zero にC++プログラムを書き込む方法を紹介しました。
難しいCMakeの設定やターミナル操作は不要で、Arduinoに慣れている方ならすぐにRP2040系マイコンの開発が始められることがわかったと思います。

そして何より、Arduinoスケッチとはいえ中身は本格的なC++
MicroPythonなどに比べて、高速に動作し、メモリの使用効率も良いため、センサー制御やLCD表示などリアルタイム性が求められる場面でも安心して使えるのが大きなメリットです。

次回は、センサーデータの取得やMicroPythonとの違いについても解説予定ですので、ぜひお楽しみに!

タイトルとURLをコピーしました