見出し画像

Atom Mate for toio ビジュアルプログラミング ⑦回転サーボ編

久々に Atom Mate for toio シリーズに戻ってまいりました。⑥サーボモーター編に続いて今回は回転モーターに挑戦です!

レゴの遊具を作った時の記事にて マイクロビットで回転サーボモーターを動かせることが分かりました。そこで、M5stack製品でも同じように使えるか、UIFlowで試してみました。結果は大丈夫そうです('ω')ノ

★スイッチのオンオフ
始めに、スイッチを押すと回転のオンオフが切り替わるように UIflowでプログラミングしてみました。押す度にLEDの色が変わります。

Aボタンを押す度に、回転のオンオフが切り替わります。
サーボの角度は79度あたりでゆっくりと時計回りに回転、90度で停止します。


★距離センサーにて回転スピードを制御する
次に、内蔵されているセンサーを使って回転スピードを変えられるようにしました。


Aボタンを短く押すと回転方向が時計回りまたは反時計回りに切り替わります。
Aボタンを長押しするとモータが止まります。
内蔵の距離センサーからの値を常時読み取っています。
読み取った距離センサーの値に応じて回転モータのスピードが変化するようにしました。
左側が時計回り、右側が反時計回りの関数です。LEDの色もそれぞれ変化するようにしました。
上の図は途中で切れてしまっています。分かりづらくてすみません。


【今回の作業で気づいたこと】
・回転モーターの値は90度で停止しますが、動き始める値が微妙で少し分かりづらかったです。今回は79度と103度あたりに設定しました。

・回転モーターのスピードはマイクロビット用のモジュール(単4電池3本)の時とほとんど同じでした。

・UIFlowのずっとブロックの中はなるべくシンプルにした方が良さそうです。細かな設定は関数の中でプログラミングしました。

・ボタンを押して切り替える時は、変数を作ってFalesかそうでないかで判断させるとうまくいきました。

・常時距離の値を読んだり回転の切り替えをさせているので止める操作がなかなかうまく作動しませんでした。3秒停止ブロックを置いてなんとか止まりました。

・モーターを制御するにはこのブロック以外にもPWMというものがあり、こちらの方が角度やスピードを細かく変化させられるようです。

・UIFlowの基礎的な操作は大体理解できました。今後は複数の機体同士で情報や命令を交換できるESP Nowと呼ばれる機能を試してみたいです。

最後まで読んでいただきありがとうございました😊


この記事が参加している募集

親子で楽しめるゲーム

この記事が気に入ったらサポートをしてみませんか?