ふるお〜と!- FullAuto

AI・ロボットが普及しBI(ベーシックインカム)が早急に実現されることを願う元ニートのブログ

ふるお〜と!-FullAuto

Node-RED上でArduinoに接続したモータを動かす

...

以前、開発PCからのコマンドを通じてArduinoでモータを動かすプログラムを書いたけど、 さっぱり忘れてしまった...

あのときは1台だったけど、現段階で使用するモーターが24台もある...99%わけわかんなくなりそう...テカムリ

というわけでNode-REDとArduinoを連携してみよう。

Prerequisite

Node-RED インストール - Qiita

Software | Arduino

nodered.jp

上記を読むことで13番PinにLEDを接続してチカチカすることができる。


補足:
/dev/ttyACM0のその他のユーザの書き込み権限も付与する。
全権限付与👇😅

$ sudo chmod 777 /dev/ttyACM0

Arduinoの設定

Arduino IDEでFirmataを書き込みする。
「ファイル」→「スケッチ例」→「Firmata」→「StandardFirmata」 を呼び出し、ビルド⇒書き込みをする。

Node-RED : arduino outの設定

Flow

値:90をインジェクトから投げるだけ。(90°に動く)

[{"id":"a9a0b66ca6ad624a","type":"arduino out","z":"ee0e2f0bae30d36d","name":"モーター","pin":"7","state":"SERVO","arduino":"d7663aaf.47194","x":680,"y":160,"wires":[]},{"id":"1345a30662f04efc","type":"inject","z":"ee0e2f0bae30d36d","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"90","payloadType":"num","x":510,"y":160,"wires":[["a9a0b66ca6ad624a"]]},{"id":"d7663aaf.47194","type":"arduino-board","device":"/dev/ttyACM0"}]

課題

node-red-node-arduinoはシリアルポートに対応している。
しかし、シリアルポートだと
前にROS2トピック上で遅延が発生したことがあった。
よって、TCPあるいはUDP上で通信させる必要がある。