速習PicoRubyシリーズ【2025年7月版】
- #0 - 機材購入 (前の記事)
- #1 - Lチカ (この記事)
- #2 - rbファイル実行 (次の記事)
- #3 - 未定
この記事の目標
Lチカ (LEDを点滅させて動作することを確認すること。電子回路版HelloWorld!)
!!この記事はWindows/Macを想定しています!!!
※動作がおかしいとかで困ったときはとりあえずUSBを抜き差しして再起動しましょう
※それでも治らない時は一番下のリセット手順を試してください
■その1 : 事前準備
作業
Windows
- PuTTYというシリアル通信アプリケーションをインストールします
Mac
- ターミナルでscreenコマンドが入っているか確認します
- 入っていなければ
brew install screen
でインストールしてください
- 入っていなければ
■その2 : Rasperry PI Picoの接続
作業
- Raspberry Pi PicoをUSBケーブルでPCに接続します
- Windowsエクスプローラー/Mac finderを立ち上げ、外部ディスク(USBフラッシュメモリと同様の見え方)の物が認識されているか確認します
参考画像 : MacBookProのUSB Type-CポートからUSB Type-Aポートに変換し、USB micro-BケーブルでRaspberry Pi Picoに接続されている図
TIPS
- キットで買うとだいたいUSB Type-A => micro-Bが入っています
- 単体で買ったら手持ちの刺さるケーブルをご用意ください
- micro Bケーブルには電源供給線しかないものがあるので、通信可能なケーブルか確認したほうがいいです
■その3 : PicoRubyのバイナリをダウンロード
作業
- R2P2のGitHubリポジトリのリリースビルドから
for RP2040
と書かれている成果物をダウンロードします(ZIPが便利だと思います) - ダウンロードしたZIPを解凍し、uf2ファイルを取り出します
TIPS
- R2P2とはPicoRubyのRaspberry Pi Pico用ビルド + irb + いくつかの便利コマンドを同梱した便利パッケージです
- RP2040とはRaspberry Pi Picoのチップ(CPU)の型番です。組み込みビルドはこのチップ型番ごとに独自のバイナリが必要なので、別のチップのビルドでは動きません
- Pico2はRP2350という違うチップなので
for RP2040
のビルドでは動きません。もし使う場合はfor PR2350
をお探し下さい
- Pico2はRP2350という違うチップなので
■その4 : uf2をRaspberry Pi Picoにコピー
作業
- ファイルエクスプローラーで通常のファイルをコピーするようにuf2ファイルをコピーする
- 初回は起動しきるまで1分ぐらいかかりますが、初期化コードが走っているので気長に待ちましょう
- 最終的にこうなっていればOK
TIPS
- コピー後にいきなり自動再起動されますが仕様です
- 初期化コードがよく途中でハングアップするので、1分たってもPicoのドライブの中にhomeディレクトリがなければUSBを抜いて電源を落とし、再度USBを接続して初期化コードを再開させます(大体5回ぐらいこれを繰り返せば現れますが、何回かかるかは運です)
■その5 : irb
作業
Windows
- デバイスマネージャを立ち上げ、ポート(COMとLPT)の中にあるUSBシリアルデバイス(COM2)を見つける
- COMの後の番号は指した順に増える(2以上の数値、画像の例ではCOM10)
- PuTTYを立ち上げ、Serialを選択し、COM2を選択し、接続する
Mac
-
ls -1 /dev/tty.usb*
で出てきたデバイスを覚える -
screen /dev/tty.usbmodem123456
で接続する
共通
-
> irb
とコマンドを打つ -
irb>
とirbの待機状態になることを確認する
TIPS
- Macのscreenコマンドはターミナル上はCtrl+Dで抜けられるが、セッションがこんがらがるらしくうまく抜けられていないらしい。解決方法はわからないので困ったら毎回USBを抜き差ししている
■その6 : Lチカ
作業
- 以下のコードを入力
- Pico 無印/H (!not W)
irb> pin = GPIO.new(25, GPIO::OUT)
irb> loop { pin.write(1); sleep(0.3); pin.write(0); sleep(0.3); }
- Pico W/WH (Wi-Fiモデルは持ってないので試してないですが、これで行けるはず?)
irb> CYW43.init
irb> pin = CYW43::GPIO.new(CYW43::GPIO::LED_PIN)
irb> loop { pin.write(1); sleep(0.3); pin.write(0); sleep(0.3); }
- Pico 無印/H (!not W)
- Raspberry Pi Picoボード内のUSB端子横の緑のLEDが0.3秒おきに点滅していることを確認する
おわりに
おそらくこれが最速でPicoRubyでLチカできると思います
もしできなかったらコメントしてくれると誰かの助けになるかもしれません(僕が解決するとは言っていない)
詰んだときのリセット手順
- Raspberry Pi Picoが刺さっているUSBをPCから抜きます
- BOOTSELボタンを押しながらUSBをPCに接続します
- フラッシュメモリとして認識されます
- ファイルエクスプローラやFinderでアクセスします
- flash_nuke.uf2をファイルコピーします
- 以下のページのResetting Flash memoryの項目のDownload the UF2 fileから取得
- https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html#resetting-flash-memory
- 自動で再起動されるので立ち上がるまで待ちます
- 初期状態に戻っているのでR2P2のインストールから再開します
前後の記事
- #0 - 機材購入 (前の記事)
- #1 - Lチカ (この記事)
- #2 - rbファイル実行 (次の記事)
- #3 - 未定