OS)が動作する従来からのラズパイにBlinkaというライブラリをインストールすると、CPython(PCなどで動作する普通のPython)からCircuitPython互換のAPIを使えるようになり、CircuitPythonのプログラムがLinux上で動くようになる。一連のインストール動作はAdafruit社によるPDF文書やWebドキュメントにまとめられている。これらを参考に、ラズパイLinux上でCircuitPythonのプログラムを動かしてみた。事前準備BlinkaのインストールI2Cデバイスの接続とポートの確認PythonコードでBlinkaの簡易テストCircuitPythonプログラムでSSD1306ディスプレイを動かすまずはドライバをインストール簡単なテキスト表示プログラムTrueTypeフォントでテキスト描画するプログラムまとめ事前準備システムのアップデートとPython3環境のインストールをやっておこう。setuptoolsBlinkaのインストール以下の手順でraspi-blinka.pyをダウンロードして管理者権限で実行すればOK。raspi-blinka.pyすると以下のようなメッセージ(「システムデフォルトのPythonがバージョン2だけどバージョン3にしていいか?」と聞かれている)が表示されるので、yを選択する。Packages”とのメッセージが表示され、暫く待っているとパッケージのインストールやハードウエアの有効化などが自動で行われる。最後に以下のようなメッセージが表示され(「リブートして良いか?」と聞かれてる)、yと答えればシステムの再起動がかかりBlinkaのインストールが完了する。/dev/spidev0.1の3つが表示されればインストールは成功だ。/dev/spi*I2Cデバイスの接続とポートの確認ラズパイでI2Cデバイスを使いたい場合のGPIOポートは以下のような割当となっている。GPIO2GPIOのピンアサインが分からなくなった時は、コマンドラインからpinoutコマンドを実行するとテキストコンソールにアスキーアートでボードのレイアウトとピンアサインを表示してくれるので便利だ。今回はMicroPythonでも愛用しているSSD1306小型OLEDディスプレイをCircuitPythonで動かしてみる。WにI2Cインタフェースで接続した。この状態で以下を実行する。1すると以下のような出力が得られ、I2Cの0x3C番地にディスプレイが検出されていると分かる。PythonコードでBlinkaの簡易テストBlinkaが正しくインストールされていれば、既にPythonコードからI2Cポートが使えるようになっている筈だ。以下のコードをi2cscan.pyというファイル名で保存する。i2c.scan()print(hex(port[0]))そしてi2cscan.pyをコマンドラインから実行して、”0x3c”の文字列がコンソールに表示されたら成功だ。i2cscan.py0x3cCircuitPythonプログラムでSSD1306ディスプレイを動かすSSD1306をCircuitPythonで動かすためのサンプルプログラムはSSD1306ドライバのGitHubページに幾つか用意されている。a...github.comこれらを参考に、2つほどテキスト表示のプログラムを作った。ドライバをインストールSSD1306のCircuitPythonドライバはPyPIに登録されており、pipで一発インストール可能だ。typing-extensionsがインストールされた。簡単なテキスト表示プログラム以下のプログラムをssd1306test.pyというファイル名で保存する。1)display.show()このプログラムを実行するためには、Adafruit_CircuitPython_framebufクラスが参照するデフォルトのフォントファイル(font5x8.bin)をダウンロードしてプログラムと同じディレクトリ階層に置いておく必要がある。以下をラズパイのコマンドラインから実行。ssd1306test.pyすると写真のような表示となった。OSにインストールされているTrueTypeフォントを使ったディスプレイ表示のプログラム。15行目でDejaVuSans.ttfの16ポイントを指定している。fill=255)display.image(image)display.show()これを実行すると、以下のように大きなフォントで表示された。W上のLinux環境でCircuitPythonプログラムの実行を試してみた。ドライバがPyPIに登録されているため、pipで簡単にインストール出来てしまうのは本当に楽。ヘッドレス運用のラズパイにWiFi経由でsshログインして使えるため、コマンドライン好きな自分としては最強の電子工作プログラミング環境かも。CircuitPythonはAdafruit社がドライバのメンテをしっかりやっているので、対応ハードウエアも多い。Wだったが、これからは電子工作への出番が増えそうだ。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。けん日々の電子工作やプログラミングの内容を備忘録を兼ねて記事にしております。趣味でやっている事なので「やりたい」と思ったら時間や手間を惜しまずにやり遂げることがモットー。記事の信頼性向上のため、情報源はターゲットデバイスの開発元による公式ドキュメントなど一次情報を徹底的に(しつこく)調べるようにし、その他の二次情報には極力頼らないように心がけています。e-DIYで行こう!.ホーム検索トップサイドバ。