【Raspberry Pi Pico入門 – Python】CircuitPythonの導入・Lチカ
概要
まずはRaspberry Pi PicoをPythonで開発するための準備をします。C言語に比べれば格段に簡単ですので、慣れれば10分ほどで住むかと思います。
CircuitPythonとは?
タイトルにもある通り、ここでは「CircuitPython」というソフトを使って開発をしていきます。CircuitPythonとは何なのかの説明は難しいため、まずはWikipediaの説明文を引用します。
CircuitPythonはMicroPythonから派生した、教育および初心者向けのオープンソースのプログラミング言語である。CircuitPythonは、Adafruit Industriesが開発を支援しており、Python 3プログラミング言語のC言語によるソフトウェア実装である。数種類の現行のマイクロコントローラに移植されている。
CircuitPython はマイコンのハードウェアで動作する完全なPythonコンパイラおよびランタイムである。サポートされたコマンドを即時実行するための対話型プロンプト(REPL)も用意されている。CircuitPython には、Pythonの様々なコア・ライブラリに加え、Adafruitの対応ハードウェア製品への低レイヤアクセスを提供するモジュール群や、初心者向けの高レイヤライブラリが含まれる。
CircuitPythonはDamien Georgeが開発したMicroPythonのフォークである。
背景となる情報を含めて要約します。元々、Pythonはスクリプト言語なので実行するには実行用のソフトが必要になります。PCで開発する場合は「Python 3」というソフトをインストールすることがほとんどです。ただ、Python3はPC用に作られたものなのでマイコンのように非力なCPUでは実行することが出来ません。
この問題を解決するために必要なものだけを残してシンプルに改造したものが「MicroPython」となります。
更に、様々な電子工作向けモジュールを開発しているAdafruit Industries社(以下Adafruit社)がMicroPythonに色々な機能を追加して使いやすく改造しました。これが「CircuitPython」になります。
Adafruit社が開発しているので、同社が作っているモジュールが使いやすいのが主なメリットですが、個人的には専用のソフト無しでも開発ができるようになったのが素晴らしいと感じています。Raspberry Pi PicoをPCに接続するとUSBメモリのように認識され、中にはPythonファイルが入っています。これをメモ帳やテキストエディタで開いてプログラムを書き込み、保存すると自動的にマイコンに読み込まれてプログラムが起動します。
CircuitPythonの導入
CircuitPythonのダウンロード
CircuitPythonはAdafruit社の公式ページからダウンロードします。
以下のリンク先から使っているマイコンを探してクリックします。

クリックするとマイコンの説明画面が出てきます。言語を「JAPANESE」に設定して「Download .UF2 NOW」をクリックするとCircuitPythonのダウンロードが始まります。

CircuitPythonをRaspberry Pi Picoに書き込む
USB – Micro Bケーブルを用意し、下図の位置にあるBOOTSELボタンを押した状態でPCに接続します。うまくいけば「RPI-RP2」という名前のUSBメモリが認識されます。

うまく認識したら、下図のようにダウンロードしたCircuitPythonをドラッグ&ドロップして保存します。
保存が完了すると自動的にRaspberry Pi Picoが再起動します。

再起動するとデバイス名が「CIRCUITPY」に変わっており、中には以下のようなファイルが入っています。
これでCircuitPythonの書き込みは完了です。

Pythonファイル名を変更
デフォルトではPythonファイルの名前は「code.py」になっています。このままでも動かすことは出来ますが、実行するためにはシリアルコンソールを使って実行コマンドを送る必要があります。
それでは使い勝手が悪いので、ファイル名を「main.py」に変更してください。CircuitPythonでは、電源を入れたときにまずmain.pyというファイルを探して実行する仕様となっているため、こうすることでRaspberry Pi Picoに電源を入れただけでプログラムが開始するようになります。
Lチカをしてみる
まずはLチカで動作確認をしてみましょう。
「main.py」をメモ帳などのテキストエディタで開き、以下のコードをコピペします。
※Pico、Pico Wのどちらも以下のコードで動作します。
from board import * import digitalio from time import sleep led = digitalio.DigitalInOut(LED) led.direction = digitalio.Direction.OUTPUT while True: led.value = True sleep(0.5) led.value = False sleep(0.5)
変更したファイルを保存すると自動的にRaspberry Pi Picoが再起動し、内蔵LEDが点滅します。
ライブラリの導入
CircuitPython単体では基本的な機能しか使えません。標準機能以外を使う場合はライブラリの導入が必要となります。
まずはライブラリを以下からダウンロードします。
「Bundle for Version ◯.x」という項目がいくつかあるので、末尾の数字がCircuitPythonのバージョンと同じものをダウンロードします。
ダウンロードしたzipファイルを解凍すると、以下のように「lib」と「examples」というフォルダがあります。
「lib」がライブラリ本体が入っているフォルダで、「examples」はサンプルコードが入っています。

ライブラリをCircuitPythonに導入するには、libフォルダから「◯◯.mpy」という拡張子のライブラリファイルをコピーし、CircuitPythonのlibフォルダに保存すればOKです。

ライブラリによっては単体では動かず、他のライブラリを必要とする場合があります。(依存関係といいます)
ライブラリの使い方を調べるには、まず以下の公式のドキュメントから使いたいライブラリのページを探します。
latest release,
unzip it and copy over the subfolders, such as lib, into the root of your
CircuitPython device. Make sure to indicate that it should be merged with the
existing folder when it exists.
他のライブラリが必要な場合は、各ページの「Dependencies」に記載されています。

NeoPixelの場合は、CircuitPythonの他に「Pixelbuf library」が必要と記載されています。
そのため、前述の例では「neopixel.mpy」だけでなく「adafruit_pixelbuf.mpy」も保存しています。
ディスカッション
コメント一覧
まだ、コメントがありません