先日、ほんとうに久しぶりに購入した「トランジスタ技術」5月号は、ラズパイPico特集でした。記事にCircuitPythonを使ったものがありました。CircuitPythonはライブラアリが充実しているという内容がありましたので、今回CircuitPythonに挑戦してみることにしました。
しかし、Raspberry Pi Pico + CircuitPythonでのプログラミングの例はWeb上には意外に少なく、Lチカ(LED点滅)ができるまでちょっと手こずりました。
そこで、Raspberry Pi PicoへのCircuitPython導入からMuエディタを使ったプログラミングまで、少し丁寧に書いておきたいと思います。これからCircuitPythonを使ってみようという方の参考になれば、幸いです。
まず、ファームウェアCircuitPythonをCircuitPythonのサイトからダウンロードします。
![](https://blogimg.goo.ne.jp/user_image/32/f7/748e08de18b7ba4fd62899c43e2c8097.png)
画面左上の「Downloads」をクリックして、ダウンロード画面に進みます。
一番左端の「Pico」をクリック。
![](https://blogimg.goo.ne.jp/user_image/77/b0/4e6bf639b5fb846b972128b457b2d1a4.png)
CircuitPythonは、4月18日現在でVer 7.2.5です。言語は、日本語を選んでダウンロードします。
![](https://blogimg.goo.ne.jp/user_image/71/42/3289c43c8701c2d618a0c2518c959da1.png)
ダウンロードされたファイルは、
adafruit-circuitpython-raspberry_pi_pico_ja-7.2.5.uf2でした。
これをPicoに書き込むわけですが、無用なトラブルを避けるために、Picoを初期化(クリア)しました。方法は、BOOTSELボタンんを押しながら、PicoをUSBに接続し、メモリデバイス(RPI-RP2)として認識されたダイアログに、flash_nuke.uf2をドラッグアンドドロップします。
クリアしたPico(RPI-RP2)に先ほどダウンロードしたcircuitpythonのuf2ファイルをドラッグアンドドロップします。これでファームウェアが書き込まれて、CircuitPythonが使える状態になりました。
ここで、CircuitPythonとMicroPythonの違いに気が付きます。CircuitPythonでは、下の図のようにPico本体が単なるUSBメモリとして扱えるのです。
![](https://blogimg.goo.ne.jp/user_image/44/57/1526c666c9908fbf63add68a8c58bd2c.png)
さて、プログラムを編集するエディタですが、Muエディタを使います。
Code with Muのサイトから「Download」をクリックしてダウンロード画面に進みます。
![](https://blogimg.goo.ne.jp/user_image/7f/73/11a271fc17c836d21450b146d23381c6.png)
私のPCのOSは、Windows10なので、「Windows Installer」64bit版をダウンロードしました。
![](https://blogimg.goo.ne.jp/user_image/36/7a/eb8fc0689e564572ae281c435b2d7e5b.png)
ダウンロードしたMuエディアファイルをPCにインストールして、立ち上げます。最初立ち上がるまで若干時間がかかります。
立ち上がったら、「モード」をクリックして、モードを「CircuiPython」に設定します。
![](https://blogimg.goo.ne.jp/user_image/12/48/bb1989a9cb95795ba720f40f6aa1844e.png)
エディタの画面です。
まず第一歩は、Lチカ(LED点滅)のサンプルプログラム(スクリプト)をmain.pyという名前でPicoに書き込みました。Pico内蔵のLED(GP25に接続されています)が点滅しました。成功です。
![](https://blogimg.goo.ne.jp/user_image/56/4b/9551a1920106bc86d4c55a1d7101a066.png)
はて、プログラムはどうして止めるの?この辺からMUエディタの使い方が分からないことばかりになり、一応細かいところまでわかるまで、あちこち調べて2日ほどかかりました。次に結論を書いていきます。
まず、MUエディタとPicoとの間で通信を行うために、「シリアル」をクリックして、シリアル通信を開きます。これで、Picoとの通信ができるようになります。
そこで、キーボードからCTRL+Cを押すとKeyboardInterruptがかかり、プログラムがストップします。
プログラムを再開するには、CTRL+Dをを押します。プログラムが再び動き出します。
プログラムが停止した状態になると開いているREPL(Read Evaluate Print Loop)ウインドウに
「Press any key to enter the REPL. Use CTRL-D to reload.」と表示されます。何かキーを押すと、RPELモードになり、プロンプト>>>が表示され、コマンド待ちになります。
REPLモードで、CTRL+Dを押すとプログラムが再開します。
それから、MicroPythonのつもりで、スタンドアローンで動かすためのファイル名は、main.pyだと思い込んでいたのですが、CircuitPythonでは、code.pyとしなけれいけないことが分かりました。
Lチカのプログラム名を「code.py」として保存して、一旦USBケーブルを抜き、次にUSBケーブルを接続すると何もしないでLチカが始まりました。
![](https://blogimg.goo.ne.jp/user_image/3a/85/d180b014969857634d8cd510f426ed13.jpg)
MicroPython+ThonnyエディタとCircuitPython+Muエディタは、けっこう違うところが多いことが分かりました。
一応動かせるようになりましたので、これから少しずつ勉強して、記録を記事にしていきたいと思います。