以前の記事でMicroPythonでRaspberry Pi PicoのLチカをやる記事を書きました。
この時「MicroPythonでは本体にプログラムを書き込めない」ということ書きましたが、色々調べているとRaspberry Pi Picoには「CircuitPython」にも対応していることがわかりました。これを使えばPythonのプログラムをRaspberry Pi Pico本体に書き込むことができます。
今回はそんなCircuitPythonの環境構築とLチカをやってみたまでの備忘録になります。
では、始めます。
1:CircuitPythonのUF2ファイルをダウンロードする
CircuitPython公式のダウンロードページを開きます。
ページを開くと検索欄があるので、そこに「pico」と入力して出てきた中にある「Pico by Raspberry Pi」をクリックします。
右側の言語を選択して「DOWNLOAD. UF2 NOW」のボタンをクリックしてUF2ファイルをダウンロードします。
2:Raspberry Pi PicoでCircuitPythonを使えるようにする
Raspberry Pi Picoの「BOOTSEL」ボタンを押した状態でPCに接続し、1でダウンロードしたUFファイルをRaspberry Pi Picoのフォルダにドラッグ&ドロップします。
コピーが完了するとRaspberry Pi Picoが再起動され、以下のようなフォルダが立ち上がります。
この状態VSCodeを起動させて冒頭に紹介した記事で入れたプラグインのPico consoleを表示させると、以下のような表示になっています。
これでCircuitPythonをRaspberry Pi Picoで動かせるようになりました。
ちなみにこのターミナルでprint文を実行するとその結果が返ってきます。そして「Ctrl + D」キーを押すとリロードされて書き込まれているPythonのコードが実行されます(※すでにコードを書き換えたので「hello」と表示されていますがデフォルトだとhello world的な文言だった気がします)。
3:Lチカサンプルを動かす
ここまで準備ができたら実際にCircuitPythonでLチカサンプルを動かしてみます。
Raspberry Pi Picoのフォルダ内にある「code.py」ファイルを直接開いて以下の内容に書き換えるか、PCで作成した以下の「code.py」ファイルを上書き保存してみてください。
・code.py
import digitalio from board import * import time led = digitalio.DigitalInOut(GP25) led.direction = digitalio.Direction.OUTPUT while True: print("hello") led.value = True time.sleep(1) led.value = False time.sleep(1)
すると1秒ごとにRaspberry Pi PicoのLEDが点滅し、Pico consoleに2秒ごとにhelloの文字が表示されます。
うまく動かない場合はターミナル上で「Ctrl + D」キーでリブートをかけるか、一度Raspberry Pi Picoを接続し直してみてください。
Raspberry Pi Pico本体に書き込まれているので、繋ぎ直しても同じCircuitPythonのプログラムが実行されます。
以上がRaspberry Pi PicoでCircuitPythonの環境構築とLチカまでの方法になります。
C/C++の環境構築と比較するとかなり簡単でビルドをする必要もないので手軽です。
ちなみに本記事執筆時点では「CircuitPython 6.2.0-beta.1」となっているので、色々と不具合が出る前提で使うぐらいが良いと思います。
おまけ:CircuitPythonのライブラリを追加する
今回はLチカだけだったので問題ないですが、I2Cなどを使う場合はライブラリの追加が必要になります。
CircuitPythonのライブラリを追加するには、まずLibrariesページを開きます。
一番上にあるzipファイルをダウンロードします。
ダウンロードしたzipファイルを解凍すると以下のようになっています。
解凍した中にある「lib」フォルダ内に色々とライブラリが入っているので、必要な分だけRaspberry Pi Picoの「lib」フォルダ内にコピーします。
こうすることでライブラリを使用できるようになります。
・参考資料