Zeroで作った際は、MH-Z19Bのライブラリを使わせてもらったのですが、このケースではもちろんOLEDのライブラリは使うもののセンサーのライブラリは使わず、main.pyの記述で済まされています。CO2センサーの部分は、SamAkadaさんのRaspberry Pi PicoでCO2濃度を測定するからコードが利用されています。
簡潔なプログラムながら、グラフは可愛らしく、電池駆動ができたらこれでいいかも。
Picoへの給電はVSYSピンで
Raspberry PI Picoへの電源供給は、USB給電以外にもPicoのVSYSピンに電池の+、GNDピンにーををつなぐことで可能と言われています。乾電池を2本直列につなぎ試してみたところ、問題発生です。
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」)をダウンロードします。
Thonnyだと、pyファイルなら読み込み、書き出しが可能なものの、画像ファイルなど他のファイルは扱えず、Raspberry Pi Picoに転送ができません。転送には「Ampy」などのツールが必要になるらしいので、その必要がないCircuitPythonは大いに助かります。
もとより、Raspberry Pi Picoはメモリ容量が乏しく、重い画像ファイルを扱うことはあまり想定されなかったのかも。メモリが4〜16MBもある安価な互換機が販売されていたのでAliexpressを通じて注文したのですが、画像処理を行うPillowのライブラリがCircuitPythonにも見当たらない…。
③ダウンロードした圧縮ファイルを解凍。解凍してできたフォルダの中のlibフォルダ内から追加すべきライブラリ、ここでは「adafruit_ssd1306.pympy」ファイルを探し、別途開いたRaspberry Pi Pico中の「CIRCUITPY」ディレクトリ下「lib」ディレクトリ内にドラッグ&ドロップします。