Raspberry Pi Pico W で遊んでみる〜Lチカまで
Raspberry Pi Pico とは?
名前から分かる通り Raspberry Pi(=ラズパイ) を作っている Raspberry Pi 財団が設計・開発した RP2040 というマイコンを搭載したマイコンボードになります。
板ガムの 2/3 程度の大きさで C/C++ や軽量版の Python である MicroPython で作られたプログラムの実行ができるマイコンボードで、ラズパイと同様にピンヘッダーを実装できる仕組みですが、ラズパイにはないアナログ/デジタルコンバーターを備えているため、センサーを接続することでさまざまなデータを収集することができるようです。
公式情報
データシート
いくつかの Pico の種類
公式情報にもある通り、大きく Raspberry Pi Pico と Raspberry Pi Pico W の2種類があります。
このうち W のつく方が無線チップ(2.4GHz 802.11n ワイヤレス LAN/Bluetooth 5.2)が搭載されており、ネットワーク接続が容易になっています。
また、それぞれの商品にピンヘッダを実装した状態で提供されているものもあり、商品名の後ろに H がついていたりします。(例:Raspberry Pi Pico WH)
さらに、後継の RP2350 というマイコンを搭載した Raspberry Pi Pico 2 シリーズも 2024年9月に発売されています。
購入してみたもの
私が共同運営をしている AWS のユーザーグループの地方支部、JAWS-UG 神戸 で IoT をテーマに掲げていることもあり、IoT 未体験の私でも簡単に楽しめそうな、ピンヘッダがはんだ付けされていてワイヤレス通信ができる Raspberry Pi Pico WH を購入してみました。
遊んでみる
事前準備
IDE の準備
前述の通り、C/C++ や MicroPython でプログラムを書くことができますが、今回 MicroPython を利用して遊んでみようと思いました。
調べてみたところ Thonny(おそらく、ソニー と発音する?)という IDE があるようで、Raspberry Pi Pico 本体への作成したプログラムの転送、実行やデバッグが行えるとのことです。
私は Mac + Homebrew な環境なので、 brew install thonny
でインストールすることが可能ですが、各プラットフォームのインストーラは以下の公式サイトより入手が可能です。
また、Homebrew でなくともPython のパッケージ管理システム pip(または pip3)でもインストールすることができるようです。
Raspberry Pi Pico WH への MicroPython のインストール
UF2 ファイルのダウンロード・ドラッグ&ドロップによるインストール手順
-
Raspberry Pi Documentation ページ より製品に応じた MicroPython UF2 ファイルをダウンロードします。
現在、第一世代の Pico と Pico W、第二世代である Pico 2 と Pico 2 W に応じて4種類のファイルがあるので、手持ちの装置に合致するファイルをダウンロードする必要があります。 - Raspberry Pi Pico 本体の BOOTSEL ボタンを押しながら、USB ケーブル経由で PC と接続します。
- PC 側のファイル管理アプリケーション(Windows であればエクスプローラ、Mac であれば Finder)を開き、外部記憶装置が表示されていることを確認します。
私の環境は Mac のため、Finder の「場所」に「RPI-RP2」というデバイスが表示されていることが確認できます。 - 表示された外部記憶装置(上の例では RPI-RP2 )に、手順<1>でダウンロードしていた MicroPython UF2 ファイルをドラッグ&ドロップします。
- この後、私の Mac の環境の場合、ファイルコピーが終わってすぐに外部記憶装置が取り出された状態となりました。
(オプション)なお、MicroPythonプロジェクト 公式ドキュメントの「1.3 Raspberry Pi PicoにMicroPythonをインストール」に記載の通り Thonny での操作でも MicroPython のインストールが可能とのことです。
定番の Lチカ
プログラム言語でいう "Hello World" のように、ラズパイでの定番である Lチカ(=LEDをチカチカさせる)をやってみます。
あとあと知ったのですが、Raspberry Pi Pico と Raspberry Pi Pico W では、LED が搭載されている位置が違うようで、ピンの位置の取得方法が違いました。(とはいえ Raspberry Pi Pico = 25
、Raspberry Pi Pico W = LED
と記述する差異のみ)
以下のようなスクリプトを作成し、実行ボタン(緑丸の中に再生マーク または F5 キー)をクリックすることで、Python スクリプトを実行可能です。
import machine
import time
led = machine.Pin("LED", machine.Pin.OUT)
while True:
led.on()
time.sleep(2)
led.off()
time.sleep(2)
実行してみた結果
終わりに
ネット上ではいろいろな方のやってみたブログなどのアウトプットもあり、大変参考になるのですが、Raspberry Pi Pico の世代や、MicroPython のバージョンによって少々挙動が異なる場面がありました。
そのため、本エントリ自体も 2025年1月当時の状況と捉えていただき、都度、最新情報を優先いただければ幸いです。
こんな感じで、ちょっとずつ Raspberry Pi Pico を触ってみて、あれやこれややってみようと思います。
ではまた。