LoginSignup
1
1

More than 3 years have passed since last update.

Microbit:DC motor制御(DFROBOT DFR0548ボード)その2

Posted at

前回 Microbit:DC motor制御(DFROBOTボード)、DFRobotのDFR0548(4chDCモータドライバー)を使ったロボットの無線制御について紹介しました。
今回は、そのプログラムを改良して、モータースピードを変えられるようにしました。
送信側と受信側のそれぞれのプログラムです。

送信側

controllor.png

送信側コード解説

最初だけのブロック中に無線グループの設定無線で送信でspeedの値を送信ます。
speedは0から255の値ですが、今回255をHighSpeed、125をLowSpeedとしました。
ボタンAの中に無線でspeedの値を送信の値として125をセットします。
ボタンBも同様に255をセットします。
これで、Aボタン、Bボタンを押すことでspeedを変えることができます。
後は、前回の記事と同じように、各ジェスチャーに対応するコントロール番号を無線で送信します。

受信側

reciver.png

受信側コード解説

最初だけのブロック中に無線グループの設定を行います。
送信側の最初だけブロックの中に入っていたspeedの値を受信します。
受信した値をspeedという変数に格納します。

※変数はスコープなどが気になりますが、ここではGlobal変数として取り扱っています。Global変数は、書き込むところを1か所にするのが理想です。

また、各ジェスチャーに対応して送られてくる番号に対応したアクションを行います。
アクション(例えば:前進「Forward」)について、その動作をまとめた関数を作ります。
これまで、関数に引数は取れなかった?のですが、引数が取れるようになりましたので、引数を入れた関数を作成します。
関数引数.PNG
数のところにspeedで受け取った値が入ることになります。

※関数を作成すると自動的にブロックが一番上に配置されます。JavaScriptのコードを見ればわかると思いますが、上からプログラムが実行されます。
※右上にあるボタンAが押されたときのブロックは、受信プログラムが動作するかのテスト用に作ったものなので、不要ならば削除してください。

完成して搭載したロボット

前から
P_20190715_01.png

後ろから
P_20190715_184915.jpg

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1