前回の記事「pico USBシリアル input待ちに_thread利用」で作ったMicroPythonのプログラムに以下の機能を追加しました。
1.1秒間隔でpicoの内蔵温度センサーの値(温度換算)を送信する。
2.コマンド 'stop'を受信すると1の送信を停止する。
3.コマンド 'run'を受信すると1の送信を再開する。
4.コマンド '1' を受信するとpicoの内蔵LEDを点灯する。
5.コマンド '0' を受信するとpicoの内蔵LEDを消灯する。
送信される文字列は温度とLEDの状態で、以下のような文字列です。
25.0,0
外付けハードウェアを一切使わずに動作確認出来るようにしました。
センサーやアクチュエーターを外付けしてPCやRaspberry Pi からUSBシリアル経由で制御できる装置を製作する時の参考になると思います。
測定用や検査装置と言った用途の事前準備と考えています。
ご希望があれば、マンマシン・インタフェースを提供し、ログをファイルやデータベースに記録するPCやRaspberry Pi 側のPythonアプリを提供することも可能です。
pico のプログラムは以下のように実現しました。
threadによるinput待ち合わせ
inputを実行すると他の処理が出来なくなるのを避けるために、前回同様にthreadを使っています。
インターバルタイマーを利用
前回の記事はsleepで時間(1秒)を作っていましたが、タイマー割込みによる方法に変更しました。
classを作成
温度センサー読み出しとLED制御はclassを作って実現しました。
実行結果
24.2,0
23.8,0
1
23.8,1
23.8,1
0
23.8,0
24.2,0
stop
1
run
24.2,1
23.8,1
23.8,1
stop
0
run
24.2,0
24.2,0
ソースコードを添付しようと試みましたが、ココナラブログにファイルを添付する方法が解りませんでした。
ご存知の方は教えて頂けると助かります。
ソースが必要な方がいらっしゃいましたら、お手数ですがメッセージでお知らせ下さい。無料で添付してお送りします。
宜しくお願い致します。