01-21-2024 01:08 AM
最近MicroPythonを使う機会が多いのですが、コンパイル不要というのがとても取りつきやすい特徴だと感じています。インタープリタ方式なのでプログラミングのトライアンドエラーの敷居が低いという利点があります。プログラムを自動起動するように保存してしまえばスタンドアロンで動作してくれます。
LabVIEWではHobbyistツールキットを使ってArduinoボードにファームウェアを書き込むことでマイコンのIOを活用することができます。LabVIEW側からコマンドを送ってIOを操作し、センサーのデータを受け取ることもできます。
先日ふと気が付いたのですが、MicroPythonを対話モードでLabVIEWから使えば低速のデジタルIOとかPWM出力などはUSB DAQの手軽さで活用できるのではないだろうか。きっと、もう、誰かが使っているだろうと思います。
以前はReplという名称でしたが、最近は「MicroPython Interactive Interpreter Mode」と呼ばれるようです。対話的に実行してくれるのでHobbyistツールキットと同じですが、ブラックボックスの程度が極めて薄いのでもっと取りつきやすいのではないかと思います。
シリアル通信のサンプルを少し改造しただけでLabVIEWからMicroPythonを使うことができます。
文字列をプログラムで順番に送るだけで簡単なIOができあがりです。
01-21-2024 10:29 PM
MicroPythonとのコマンドが多くなるとLabVIEWプログラムが煩雑になるので嫌いだ、と思われた方も多いと思います。その場合は関数定義してモジュール化するとよいでしょう。
module_PWM_15.pyというファイルをPicoに作っておけば、「module_PWM_15」から「pwm_out」という関数(モジュール)をインポートして使いことができます。LabVIEWプログラムではモジュールのインポートと関数をコマンドとして使うことができます。
DIO15からPWM出力する例を書いてみました。
PWM(%)というスライダーを左右するとDutyが変化します。
プログラムはイベント駆動キュードステートマシンです。"init"でモジュールをインポートする文字列を用意して、コマンドを送信します。あとはスライダーの値が変更されるたびにコマンドを作成して送信します。
これだけでPWMの周波数やDutyを自由に変更することができます。
LabVIEWは使わずにスタンドアロンの装置ですが、昨秋にモミジなどの翼果を観察する風洞を作りました。PWM制御付きの空冷ファンを同様な方法で制御しています。