ロボサイエンスの R3 から上のコースでは、マイコンに Raspberry Pi Pico を使い、Arduino IDE で C++ のプログラムを書きます。そのために、最初に1回だけ必要な準備があります。順番にまとめます。
なぜ Pico なのか ― 安い・速い・やり直せる
マイコンは、ロボットの頭脳にあたる部品です。数ある中から Raspberry Pi Pico を選んでいる理由は、次のとおりです。
| 理由 | 中身 |
|---|---|
| 安くて手に入りやすい | 1個1,000円前後。失敗をおそれずに使える |
| Arduino IDE で使える | 世界中で使われている開発ソフトで、処理の速い C++ のプログラムを書ける |
| 処理が速い | 計算をするコアが2つあり、同時に2つの仕事ができる |
| 書き込みが簡単で、失敗してもやり直せる | USB ケーブル1本で書き込める。プログラムをまちがえても、書き込みなおせる |
| どのピンでも PWM が出せる | モーターや LED の配線を、ピンの都合でしばられない |
| 通信が2つずつある | UART・I2C・SPI が、それぞれ2系統使える |
弱いところもあります。アナログ入力は3本だけで、信号は 3.3V 専用です。5V の信号をそのまま入れると壊れます。
Arduino IDE をダウンロードする
Arduino IDE は、プログラムを書いて、マイコンに書き込むためのソフトです。無料で使えます。
Pico 用のボードを入れる ― arduino-pico
入れたばかりの Arduino IDE は、Pico のことを知りません。arduino-pico という追加のデータを入れて、Pico を使えるようにします。
| やること | |
|---|---|
| 1 | メニューの ファイル → 基本設定 を開く(Mac は Arduino IDE → 基本設定) |
| 2 | 「設定」タブの「追加のボードマネージャのURL」に、下の URL を貼り付けて OK を押す |
| 3 | メニューの ツール → ボード → ボードマネージャ を開く |
| 4 | 検索の欄に pico と入れる |
| 5 | Raspberry Pi Pico/RP2040/RP2350(Earle F. Philhower, III)の「インストール」を押す |
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
手順2で貼り付ける URL。右上の「コピー」で写せます。
似た名前の Arduino Mbed OS RP2040 Boards は、別のものです。ここで書くプログラムは arduino-pico の書き方なので、必ず上の名前のほうを入れます。
ボードとポートを選ぶ ― ツールで Raspberry Pi Pico
Arduino IDE に、「これから書き込む相手は Pico です」と教えます。
| 選ぶもの | 場所 | 選ぶ名前 |
|---|---|---|
| ボード | ツール → ボード → Raspberry Pi Pico/RP2040/RP2350 | Raspberry Pi Pico |
| ポート | ツール → ポート | Pico がつながっているポート |
無線つきの Pico W や、新しい Pico 2 を使うときは、ボードの一覧からその名前を選びます。ボードの名前がちがうと、書き込めません。
はじめての書き込み ― BOOTSEL を押しながらつなぐ
新品の Pico は、そのままではポートの一覧に出てきません。まだプログラムが入っておらず、パソコンと話す準備ができていないからです。
そこで、はじめの1回だけ、基板の BOOTSEL ボタンを使います。
| やること | |
|---|---|
| 1 | BOOTSEL ボタンを押したまま、USB ケーブルをパソコンにさす。さしたら、ボタンを離す |
| 2 | パソコンに RPI-RP2 という名前のドライブが出る |
| 3 | ツール → ポート に UF2 Board と出ていれば、それを選ぶ |
| 4 | Arduino IDE の書き込みボタン(→)を押す |
1回書き込むと、Pico はパソコンと話せるようになります。2回目からは、ボタンを押す必要はありません。USB をさして、ポートで Pico を選び、書き込みボタンを押すだけです。
プログラムのまちがいで Pico が止まり、ポートに出てこなくなることがあります。そのときも、BOOTSEL を押しながらさし直せば、もう一度書き込めます。Pico がやり直しやすいのは、このしくみがあるからです。
動いたか確かめる ― 基板の LED を点滅させる
準備ができたかどうかは、基板に付いている LED を点滅させて確かめます。部品も配線もいりません。
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // 基板の LED を出力に使う
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // 点ける
delay(500); // 0.5秒待つ
digitalWrite(LED_BUILTIN, LOW); // 消す
delay(500); // 0.5秒待つ
}
書き込んで、USB の近くにある緑の LED が、0.5秒ごとに点いたり消えたりすれば、準備は終わりです。
LED_BUILTIN は、基板に付いている LED のことです。次の回では、自分で LED をつないで光らせます。
動かないときに見るところ ― 症状から原因を引く
| 症状 | 原因 | 対処 |
|---|---|---|
| RPI-RP2 のドライブが出ない | USB ケーブルが充電専用 | データを送れるケーブルに替える |
| RPI-RP2 のドライブが出ない | BOOTSEL を押せていない | 押したまま USB をさし、さしてから離す |
| ボードの一覧に Pico がない | Pico 用のボードが入っていない | ボードマネージャで、もう一度インストールする |
| ポートに何も出ない | Pico にプログラムが入っていない。または、プログラムが止まっている | BOOTSEL を押しながら、さし直す |
| 書き込みでエラーが出る | ボードの名前がちがう | Pico・Pico W・Pico 2 のどれかを、使っているものに合わせる |
ロボカップジュニア2027 に向けて、レスキュー(災害救助)とサッカーの2種目に取り組みます。プログラミングと電子工作の経験は問いません。