M5AtomでUiflowを使う
※このページは,コミュニケーションロボティクス研究室および神奈川工科大学 電気電子工学科/ホームエレクトロニクス開発学科の研究室チュートリアル用のページです。
https://www.youtube.com/watch?v=4dr5Y5ssQTk
1. M5Atom をビジュアルプログラミング で開発するための大まかな手順
参考サイト
UiFlow Web IDE : http://flow.m5stack.com/
UiFlow Web IDE のクイックスタート: https://docs.m5stack.com/ja/uiflow/uiflow_web
大まかな手順
手順1. M5Burner をインストールし、M5 Atomにファームウェアを書き込み
ここから自分のOSに対応したM5Burnerをダウンロード
M5Burnerを使って対応デバイスのファームウェアを書き込み(下に詳細な手順あり)
手順2. 開発環境の設定
【ブラウザからオンライン(Wi-Fi)で開発する場合】
UiFlow Web IDE を開き、対応のデバイスオプションを選択し、デバイスの API KEY を入力。
☆【デスクトップアプリでオフライン(USB Mode)で開発する場合】
ここからUIFlow-Desktop-IDE をダウンロード
起動の際に.NET をインストールする必要がある
設定すればWi-Fi経由での開発も可
Blockly でプログラムを作成し、「RUN」で実行(「Download」で実行するとBurnerからファームウェアを書き込み直す必要があるので注意)
※ドライバがうまく認識されない場合 
→ 手動でドライバ(これ)をインストール 
デバイスマネージャー → 「その他→M5Stack」→「右クリック」→「ドライバの更新」→「コンピュータを参照してドライバを選択」からフォルダを指定してのドライバインストールを2回繰り返す必要があります(伝統)
以下はUiflowをWiFiモードで使用する際の手順です
Step 1: M5 Burnerの設定
https://scrapbox.io/files/663d78e0545daf001cbf9382.png
①「COM」→ 各自の環境のポート番号(ポート番号はデバイスマネージャで確認)
参考:COMポート番号の確認方法(USB Serial編)
②「Baudrate」→ 1500000
③M5BurnerからATOMを選択
④UIFlow(LITE) から「v1.7.6-lite」(最新のもの)を選択して「Download」
⑤「Configration」の設定 → Save
「Start Mode」→ 「Internet Mode」に設定
WiFiを設定
ApiKeyの確認(コピーしておく)
https://scrapbox.io/files/663d78eb3cd552001c3ac665.png
⑥ 「Burn」で Atom に書き込み
Step 2: Uiflowの設定
https://gyazo.com/f98831099873751d2f2ba51bf870ecef
Api keyの登録(Step1-⑤でコピーしたものを貼り付け)
言語の設定:日本語
Deviceの設定 →Atom liteのアイコンを選択(Atom liteを使う場合)
※M5Atom liteを使う時の注意点
機能によって使えるポートが決まっている ※参考:ATOM Lite、Matrix、Echo GPIO比較
センサ入力(アナログ入力/AD変換):analogRead()
G32,G33のみOK
Wifi,Bluetoothを使用していないときはG25,G26もOKの
モータ制御(DA変換,PWM出力): dacWrite()
G25,G26のみOK
LEDのPWM調光(ledcWrite() )はすべてのポートでOK
digitalRead(),digitalWrite()もすべてのポートでもOK
※参考
https://github.com/m5stack/M5Atom
✅ 課題
ボタンを押すとLEDの色が赤→緑→黄と切り替わるプログラムをつくる
4回目に元の色に戻る
ヒント(カンタンな方法):
ボタンを押した回数をカウントする変数をつくり色を割り当てる
回数が3になったときカウントを0に戻す
※コレ以外の方法も考えてみよう
つまり:
ボタンが押されたら…
Step1: 変数cntを1増やす
Step2: 変数cntの値に応じて表示する色を変える
Step3: 変数cntの値が3を超えたら0に戻す
#IoT #ものづくりプロジェクトII
https://gyazo.com/71c7de59f100448c29cdb7f29fbd171b
Communication Robotics Lab.