|
Raspberry Pi Picoでは、プログラミングの際してMicroPython以外にもCorcuitPythonが使われるということで、こちらも試してみることにしました。
1)Raspberry Pi Pico本体の初期化
Raspberry Pi Picoを使いまわしすることにしたため、ファームウェアがMicroPythonのままではだめなので、初期化をおこないました。
①raspberrypi.comのサイトを開き、[Documentation]、次いで[Microcontrollers]をクリック、今回は[Raspberry Pi Pico and Pico W]を選択。
開いた「Raspberry Pi Pico and Pico W」の画面をスクロールアップして、「Software Utilities」の項を探し、その中の「Resetting Flash memory」にある「・Download the UF2 file」の[UF2 file]をクリックして、「flash_nuke.uf2」ファイルをダウンロードします。
②Raspberry Pi Pico本体の「BOOSEL」ボタンを押しながら、PCとUSBケーブルで接続。表示された「RPI-RP2」ディレクトリのウインドウに、ダウンロードした「flash_nuke.uf2」ファイルをドラッグ&ドロップしたら、初期化は完了です。
2)CircuitPython
①circuitpython.orgのサイトを開き、[Downloads]をクリック、使うボードの入力が必要なので、ここではPicoの画像をクリック。「Pico by Raspberry Pi」の画面が開いたら、languageはJAPANESEを選択し、[DOWNLOAD.UF2 NOW]を実行して、CircuitPythonのuf2ファイル(ここの例では「adafruit-circuitpython-raspberry_pi_pico-ja-8.0.5.uf2」)をダウンロードします。
②開けた「RPI-RP2」ディレクトリのウインドウに、ダウンロードしたCircuitPythonのuf2ファイル をドラッグ&ドロップします。「CIRCUITPY」名の画面が開き、ディレクトリが見れるようになっています(以後ファイルマネージャーからいつでも開け、ファイルをドラッグ&ドロウで操作できるように)。
③Thonnyを起動し、右下のインタプリタの表示部分をクリックし、[CircuitPython]を選択します。
なお、ここではThonnyをエディタにしていますが、一般的には「Muエディタ」がよく使われているようです。
Thonnyのウインドウの右上にある[表示]をクリックし、開いたプルダウンメニューから[ファイル]を選ぶと、ウインドウの左側にファイルの枠が現れます。すでにcode.pyなどのファイル、空のlibディレクトリができています。
Code.pyは、MicroPythonでのmain.pyにあたりますま。ここでは、たった1行「print("Hello,World!")」と書かれていました(実行すると、Thonnyのウインドウ下部のShellの枠内にHello,World!と表示されます)。
CircuitPythonであろうとMicroPythonであろうと、Thonnyを使う限り、保存などの操作は同じですが、CircuitPythonの場合は、ファイルマネージャーで「CIRCUITPY」が開け、ファイルのをドラッグ&ドロップができて便利です。
Thonnyだと、pyファイルなら読み込み、書き出しが可能なものの、画像ファイルなど他のファイルは扱えず、Raspberry Pi Picoに転送ができません。転送には「Ampy」などのツールが必要になるらしいので、その必要がないCircuitPythonは大いに助かります。
もとより、Raspberry Pi Picoはメモリ容量が乏しく、重い画像ファイルを扱うことはあまり想定されなかったのかも。メモリが4〜16MBもある安価な互換機が販売されていたのでAliexpressを通じて注文したのですが、画像処理を行うPillowのライブラリがCircuitPythonにも見当たらない…。
3)ライブラリのダウンロード・追加
さて、ライブラリはどうすればよいか、おなじみの0.9インチSSD1306のOLEDを使用する例を記します。
①OLEDを使うcode.pyは次の通り
|
至極簡単そうに言ってますが、CircuitPythonでプログラムを書くなんてはじめてものにできるわけがなく、MicroPythonで書いたプログラムをChatGPTにCircuitPythonのプログラムに書き直させ、一部手直ししたものです。MicroPythonで使っていたmachineがCircuitPythonでは使えず、かわりにboardやbusioなんて文字が出てくるのですから。
②Adafruit社のライブラリのダウンロードページを開きます。
circuitpython.orgサイトを開き、[libraries]をクリック。開いたライブラリのページを下へスクロールして、紫のダウンロードボタンを見つけ、ダウンロードすべきバージョンのボタンを探します。ダウンロードすべきバージョンが何なのかは、立ち上げたThonnyのウインドウ下部のShellの枠内に表示されたCircuitPythonの文字につづく数字で確認できます。今回は「CircuitPython 8.0.5」だったので、バージョン8のボタンをクリックします。「adafruit-circuitpython-bundle-8.x-mpy-20230425.zip」と書かれたボタンがそれ。同名のzipファイルがダウンロードされます。
③ダウンロードした圧縮ファイルを解凍。解凍してできたフォルダの中のlibフォルダ内から追加すべきライブラリ、ここでは「adafruit_ssd1306.pympy」ファイルを探し、別途開いたRaspberry Pi Pico中の「CIRCUITPY」ディレクトリ下「lib」ディレクトリ内にドラッグ&ドロップします。
ライブラリの追加完了のはずなので、code.pyを実行してみます。「adafruit_framebuf.mpy」がないというエラーが生じたので、先のライブラリ同様にlibから「adafruit_framebuf.mpy」を探し出してlibへドラッグ&ドロップしてコピーします。
再度code.pyを実行。今度は「font5x8.bin」がないというエラー。今度は「examples」から「font5x8.bin」を探し出して、code.pyのあるディレクトリへコピー。
これで、前回の冒頭に掲げた写真と同様なOLEDの画面が表示されます。