狠狠撸
Submit Search
Arduino Cloud IoTとNode-RedでRumiCarを見える化する
?
0 likes
?
148 views
M
MinoruInoue2
Follow
【enebular developersコラボ】ビジュアルプログラミング交流会
Read less
Read more
1 of 18
Download now
Download to read offline
More Related Content
Arduino Cloud IoTとNode-RedでRumiCarを見える化する
1.
Arduino IoT CloudとNode-REDで RumiCarデータを見える化する 井上
稔(@henjin01_Fab) 【enebular developersコラボ】ビジュアルプログラミング交流会 2021/11/02(火)
2.
自己紹介 名前: 井上 稔(Minoru
INOUE) 出没先: コミュニティ“ゆるメカトロ” Facebook: minoru.inoue.90 Twitter : @henjin01_Fab 最近はIoTなネタで登壇していなかった。 なので既存のメカを無理矢理IoT化します
3.
今日話すこと Arduino IoT Cloudを有料プランにすると 既存のArduinoメカをIoT化できるかもって話 今回はRumicarと呼ばれる自律走行ラジコンを Node-REDを介してネットへつなぐ なにかのサービス 課金パワー!
4.
今回つかうもの 今回使うもの enebular Entry Plan (月$2.99)
5.
サービスとRumiCarの説明 skipシート
6.
Arduino IoT Cloudについて ESP32などを含め、ネットにつながるArduinoボードを 簡単にネット上から操作できるサービス 上に示すようなダッシュボードで見える化できる また、課金プランでHTTP(POST/GET)で制御可能 skipシート
7.
RumiCarについて 3基の距離センサの値をもとに車体を制御する 自律走行プログラム開発のためのプラットフォーム 基本形はArduino nanoとToFセンサの組み合わせ ネットを介した制御は特に無し https://github.com/RumiCar-group/RumiCar Arduino nanoと モータードライバ ToFセンサ (左右と正面) skipシート
8.
今回のNode-REDの取り扱い enebularを用いてherokuにデプロイして使用 & Arduino IoT
Cloud用外部フローをインストール rumicar.herokuapp.com/ デプロイ @arduino/ node-red-contrib-arduino-iot-cloud skipシート
9.
実装について skipシート
10.
今回の構成 rumicar.herokuapp.com/ HTTP wifi (独自プロトコル) Arduino IoT Cloudをインターフェースに RumiCarのToFセンサの値をNode-REDへ渡す
11.
Arduino IoT Cloud(Thing)設定 見える化だけできればいいのでToFセンサ値を定義
12.
今回のRumicar - ToFセンサ:VL53L0x - モータードライバ:DRV8833 -
制御ボード:Arduino MKR WIFI 1010 - いけにえ車体:ダイソーの600円ラジコン - フレーム:MDF/アクリルをレーザーカットして作成
13.
Rumicar本体に書き込むメインコード Arduino IoT Cloudへの接続コードは自動作成 かつ、コードの中身は通常Rumicarと大差なし #include
"RumiCar.h" int before_s1; int s0,s1, s2; int ibound; #include "thingProperties.h" void setup() { Serial.begin(9600); delay(1500); initProperties(); ArduinoCloud.begin(ArduinoIoTPreferredConnectio n); RC_setup(); ibound = 250; before_s1 = 0; setDebugMessageLevel(2); ArduinoCloud.printDebugInfo(); } int sat_value(unsigned intnum){ if(num >= 255){ return 255; } return num; } void loop() { ArduinoCloud.update(); s0=sensor0.readRangeSingleMillimeters(); s1=sensor1.readRangeSingleMillimeters(); s2=sensor2.readRangeSingleMillimeters(); Serial.print("Sensor0:"); Serial.print(s0); vl53L0x_1_measure=s0; Serial.print(" Sensor1:"); Serial.print(s1); vl53L0x_2_measure=s1; Serial.print(" Sensor2:"); Serial.println(s2); vl53L0x_3_measure=s2; if(s1<=100){ if(s0 < s2-10 ){ RC_steer(LEFT); }else if(s0 > s2+10){ RC_steer(RIGHT); } RC_drive(REVERSE,sat_value(300-s1)); return; }else if (s1<=150){ RC_drive(FORWARD,sat_value(s1+50)); }else if(s1<=250){ RC_drive(FORWARD,sat_value(s1*4/5)); }else{ RC_drive(FORWARD,255); } if(s0 < s2+10 && s0 > s2-10){ return; } if(s0>s2){ RC_steer(LEFT); }else if(s2>s0){ RC_steer(RIGHT); } } void onVl53L0x3MeasureChange() {} void onVl53L0x1MeasureChange() {} void onVl53L0x2MeasureChange() {} Green Code:自動作成コード Blue Code :Rumicar追記コード Red Code :Arduino IoT Cloudに値を渡すコード
14.
Node-REDフロー(つなぐだけ) サジェストされる!
15.
できあがったもの(肠丑补谤迟)
16.
できあがったもの(驳补耻驳别)
17.
まとめ 既存コードを流用しつつRumicarをネットに繋げられた - Arduino IoT
Cloudは基本クリック操作のみ - Node-REDフローはサジェストされた設定をそのまま選択するだけ herokuダッシュボードにそのままつないで終わり - 自分から加えたArduinoコードは3行だけ とにかく手軽すぎる。 手軽なのに可用性ヤバい - APIキー取得後はHTTP経由で別サービスと連携可能 - 既存のArduinoコードはほぼ流用可能
18.
ご清聴ありがとうございました みんなも課金しよう!
Download