Raspberry Pi Pico W で無線Lチカ
無線機能が追加されたラズベリーパイPicoWで内蔵のLEDを無線Lチカさせます。
ハードウェア
今回は Raspberry Pico W と白黒電子ペーパーの Pico Inky Pack を使います。
電子ペーパーが無くても、単体のPico Wのみでも動作します。
白黒表示の電子ペーパーです。記事執筆時点では2,000円ほどで販売されています。
はんだ付け
Raspberry Pico W はピンがついていないため、電子ペーパーで使うためにはピンをはんだ付けしてあげる必要があります。
Raspberry Pi Pico WH というすでに足がはんだ付けされているものもあります。(現時点では未発売)
はんだ付けされてるタイプは面倒が無くて良いですね。
そして後はUSB端子の方向に注意してPicoを差し込みます。
ソフトウェア
今回はMicroPythonを使っていきますが、PIMORONI製品を利用する際は少し改造されたちょっと便利なMicroPythonがあるので以下のリンクからダウンロードします。
MicroPythonをPicoへ書き込む
リンク先にかなり沢山ファイルが置いてあるので少し戸惑うかもしれませんが、これは異なるハードウェア毎にリリースされているためこのようになっています。今回はRaspberry Pi Pico W を利用するので、対応したものを選ぶ必要があります。
スクロールしていくと以下のようなリストがありますので、そこから picow と書かれているものをダウンロードします。記事執筆時点ではv1.19.6です。
PicoをPCとUSBで接続するとRPI-RP2
というストレージが出てきますので、そこにダウンロードした pimoroni-picow-1.19.7-micropython.uf2
を書き込みます。
Raspberry Pi Pico W 単体では直接 Python を実行することは出来ないため、Python実行環境のひとつであるMicroPythonを利用します。他にもCircutPython等の似たようなものがいくつかあります。
開発ツールThonny
次はPicoをPCから利用するためにThonnyという開発ツールを利用するので、そちらもダウンロードします。記事執筆時点で最新バージョンは4.0です。
ダウンロードしたファイルをダブルクリックしてインストールします。インストールは次へどんどんすすめていけば完了しますので、割愛します。
プログラムの書き込み
では早速On/Offプログラムを〜といきたい所ですが、まずは無線LANへ接続するためのコードから用意していきます。
無線LAN利用のためのファイル
無線LANの利用にはnetwork_manager.py
と WIFI_CONFIG.py
が必要です。ファイルは以下のリンクからダウンロードすることができます。
network_manager.py
は変更する必要はありませんが、 WIFI_CONFIG.py
は現在利用しているご家庭の無線LANの設定を入力してください。
WIFI_CONFIG.py は設定ファイルの役割です。Pico W は残念ながら 5GHz帯の無線LANには対応していないので 2.4GHzを設定してください(最後に5Gとついていないもの)
開発ツールを起動
では先程インストールしたThonnyを起動します。起動するとShell というタブの部分がこのような表示になっているハズですが、もし何らかのエラーが起きている場合は赤色の文字が表示されます。
その場合は画面上の停止アイコン(赤い丸の中央に白い□)を押します。
ファイルをPicoへアップロード
利用している PC 上のプログラムを直接 Raspberry Pi Pico W で実行することはできないため、プログラムはいったんPicoにアップロードする必要があります。
Thonnyではアップロードとなっているので、この記事ではアップロードと記しましたが、単にPicoへファイルをコピーするだけです。
現在Pico上にあるファイルは画面から確認できます。
もしこのファイル一覧画面が表示されていない場合はメニューの View > Files
を選択すると表示することが出来ます。
ライブラリのインストール
以下のリンクから urequest.mpy
をダウンロードし、Pico に lib
フォルダを作成しアップロードします。
mpyファイルはプリコンパイル済みファイルという形式で、ファイルサイズが小さく通常のPythonコードより高速で動作します。Picoの場合はただでさえ少ない容量を少しでも節約することが可能なので、出来る限りmpy形式の利用が好ましいと言えます。
この方法はいわゆる手動インストールですが、Thonny メニューの Tools > Manage Packages.. から micropython-urllib.urequest と検索することでインストールすることも出来ます。
メインプログラム
それでは最後にメインのプログラムです。show_ip_address
というファイルを以下のリンクからダウンロードして main.py
という名前で pico に保存(アップロード)します。
実行してみる
ではファイルがすべて揃ったので実行していきます。ちなみに電子ペーパーが無くてもそのまま動作します。
緑色の再生ボタンを押すと、プログラムが起動し、ShellタブにIPアドレスが表示されます。これが Raspberry Pi Pico W のIPアドレスになります。
ではChromeやFirefox等のブラウザからこのIPアドレスへアクセスします。
PicoでWebサーバーが動いてるんです。この記事では固定メッセージだけだけどすごいっす。
IPアドレスとは各機器ごとに割り振られる番号です。この番号はご利用になっているルーターからDHCPという仕組みによって割り振られます。
http://10.10.22.186
ページが表示されました。
無線Lチカ
アドレスの末尾に /light/on
と入力しエンターを押します。
Pico本体のLEDが光りましたね!
LEDをオフにするには /light/off
へアクセスするとオフになります。
main.py というファイル名をつけておくと電源ON時に自動的に実行されるので、次回以降はPCに接続しなくてもUSB充電器などに接続しても動作します。
雑な解説
このコード、PIMORONIのGitHubからダウンロードを行いましたが、ラズベリーパイ公式資料に記載されているものに電子ペーパー用のコードが追加されているだけのものです。
仕組みとしては非常に簡単で、リクエストされたURLに/light/on
が含まれている場合はLEDをON、/light/off
の場合はLEDをOFFにするという仕組みになっています。