北東北 LabVIEWユーザー会

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

USB DAQと同じくらい簡単! MicroPythonのReplを使ったDigital IOとPWM出力の操作

最近MicroPythonを使う機会が多いのですが、コンパイル不要というのがとても取りつきやすい特徴だと感じています。インタープリタ方式なのでプログラミングのトライアンドエラーの敷居が低いという利点があります。プログラムを自動起動するように保存してしまえばスタンドアロンで動作してくれます。

LabVIEWではHobbyistツールキットを使ってArduinoボードにファームウェアを書き込むことでマイコンのIOを活用することができます。LabVIEW側からコマンドを送ってIOを操作し、センサーのデータを受け取ることもできます。

 

先日ふと気が付いたのですが、MicroPythonを対話モードでLabVIEWから使えば低速のデジタルIOとかPWM出力などはUSB DAQの手軽さで活用できるのではないだろうか。きっと、もう、誰かが使っているだろうと思います。

 

P1210074s.JPG

 

以前はReplという名称でしたが、最近は「MicroPython Interactive Interpreter Mode」と呼ばれるようです。対話的に実行してくれるのでHobbyistツールキットと同じですが、ブラックボックスの程度が極めて薄いのでもっと取りつきやすいのではないかと思います。

 

sc1.pngsc2.png

 

シリアル通信のサンプルを少し改造しただけでLabVIEWからMicroPythonを使うことができます。

sc3.pngsc4.png

 

文字列をプログラムで順番に送るだけで簡単なIOができあがりです。

 

 

 

 

 

 

 

 

 

 

 

メッセージ1/2
1,115件の閲覧回数

MicroPythonとのコマンドが多くなるとLabVIEWプログラムが煩雑になるので嫌いだ、と思われた方も多いと思います。その場合は関数定義してモジュール化するとよいでしょう。

 

sc6.png

 

module_PWM_15.pyというファイルをPicoに作っておけば、「module_PWM_15」から「pwm_out」という関数(モジュール)をインポートして使いことができます。LabVIEWプログラムではモジュールのインポートと関数をコマンドとして使うことができます。

 

DIO15からPWM出力する例を書いてみました。

PWM(%)というスライダーを左右するとDutyが変化します。

sc7.png

 

プログラムはイベント駆動キュードステートマシンです。"init"でモジュールをインポートする文字列を用意して、コマンドを送信します。あとはスライダーの値が変更されるたびにコマンドを作成して送信します。

 

sc8.pngsc9.pngsc10.pngsc11.png

 

これだけでPWMの周波数やDutyを自由に変更することができます。

LabVIEWは使わずにスタンドアロンの装置ですが、昨秋にモミジなどの翼果を観察する風洞を作りました。PWM制御付きの空冷ファンを同様な方法で制御しています。

M8250446.JPGM8260455.JPGM8270467 2.JPG垂直風洞.JPG

 

 

 

メッセージ2/2
1,038件の閲覧回数