Python系の電子工作用ブロック言語「PIPER MAKE」
「ブロック言語」はスクラッチが有名で自由に使いこなしている小学生も珍しくはないと思います。マイコン基板のIOを制御できるブロック言語はMicro:Bitのブロックエディター(Microsoft MakeCode for micro:bit)が有名ですが、Micro:Bitでしか使えないという大きな制約があります。スクラッチとArduinoではS4Aというスクラッチベースのプログラム環境でArduinoにファームウェアを書き込んでシリアル通信でIOを制御します。LabVIEW Hobbyistツールキットと同様の環境です。
「PIPER MAKE」はRaspberry Pi Picoで使えるブロック言語です。(Pico以外にもRP2040マイコンを使用したボードであれば使うことができます。)プログラム環境のまとまった説明資料が見つからないため、この記事は使いながら推測した内容になりますのでご注意ください。
少しPiper Makeを使って理解できたことを計測・解析ラボのブログにまとめました。
電子工作用ブロック言語 Piper Make について
「紫波町かいわいIT事情」にも少し説明を書きましたので添付ファイル「IT事情Num031k0.pdf」をご覧ください。
PCのWebブラウザに表示される「Setup My Pico」ボタンを押せば、いくつかの手順を踏んでPicoにはMicro Pythonから派生したAdafruitのCircuit Pythonがインストールされます。WebブラウザでPIPER MAKEのブロックコードを作るとPythonプログラムに変換され、Pico内のCircuit Pythonと対話モードでプログラムを実行します。ブロックコードで用意されているのは、Digital IO、アナログ入力(未確認)、シリアルフルカラーLED、サーボモーター(未確認)、ジャイロ加速度センサーMPU-6050モジュール(未確認)など限定されていますが、pythonプログラムで独自のブロックを作ることができます。
CircuitPythonでもMicroPythonと同様に、LabVIEWから対話モードで実行することができますので、ビジュアルプログラミングでなければ嫌だ、という方はブロック言語Piper MakeとLabVIEWでPicoのIOを使うことができます。
8x8のシリアルフルカラーLED(neopixel)をLabVIEWから制御する例を簡単に紹介します。
関数ブロックで"show_led"という関数名で"list_led_color"というリストを引数に持ちます。このリストにLED表示色(r,g,b)のタプルが64個入っていることを期待しています。このプログラムから生成されるpythonコードを"my_led.py"という名前でPicoに保存しておきます。
プログラムでは14ピンに64個のneopixelをセットアップし、brightnessは20%にしておきます。
LabVIEWプログラムのフロントパネルです。関数show_ledに64個のrgbデータを引数にして送ります。
空文字列とshow_led関数をmy_ledからインポートした後で、ループで64個のLEDの色を制御します。
このままでは実用性はありませんが、機器の状態などを示すアイコンを表示するとか、何か考えられるのではないでしょうか。