micro:bitのコントローラーを使う

今回はmicro:bitとYaboomのコントローラーを使って遠隔操作をする方法をまとめます。うちの教室ではもう何人もクリアしていますし、小学生も一回の授業で作りきることができるので、簡単にできると思います。

用意するもの

・micro:bit 2枚

・Yaboom製コントローラー YB-EMH02 1台

・コントローラー用の電池パック

 PH2.0 2ピン(JST-PH 2.0)コネクタが付いていればなんでも

 単4が2本のmicro:bitに対応している電池パックが使えます。

・Yaboomのコントローラー用の拡張プログラム(のアドレス)

 「https://github.com/lzty634158/GHBit

・micro:bitで動く車

教室で使っている車について

教室では、keystudioのKS4033という拡張ボード(モータードライバ付き)を使ってTTモーターを2個使って動かす車を自作してもらっています。

モーターを動かすためにはできれば5V近い出力が欲しいので、単3が3本入る電池パックを使っています。micro:bit単体では3V程度で一応動くには動きますが、トルクが落ちるはずです(試してません

拡張ボードとの接続

電池パックとモーターは青い部分に差し込んでマイナスドライバーで閉めて固定します。

DCモーターは+ーが逆になったら逆回転するだけなので(電圧差で回転速度、回転方向が決まるため)、気にする必要はないのですが、順番を考えると電池の+ーと逆になるので注意です。

基盤にA1、A2、B1、B2という文字が見えますが、それぞれがP12、P13、P15、P16に対応しています。その他、GがGND(グランド、ー)、VMがバッテリーからの給電(+)になります。

タイヤと動き方について

タイヤはTTモーターとセットで売っているものを買うのが一番楽に入手できると思います。LEGOのタイヤは軸の形が違うので注意が必要です。

今回は、左右のモーターのスピード差で直進や旋回を行います。そのためモーターは並列に配置して、前後どこかにキャスターを取り付けるか、オムニホイールを取り付けて横滑りに対応するなどで解決できます。

オムニホイールをつけた車です。

カラーボードを土台にしているので、4.8mmの穴を開けることができれば、LEGOのピンが使えるようになるので色々なパーツを追加できます。

使いすぎると重くなるので注意が必要です。

もっと簡素な車でも十分ですし、モータードライバも特に指定はないです。(要するに動けばOKです)

micro:bit間の通信プログラム

0.(やっておくと便利)車の動きを作って関数化しておく

1.無線のグループを設定

2.コントローラーが操作されたら、対応する数字を送信する

3.車側は受信した数字に合わせた動きを作る

  先に関数化しているなら、数値に合わせて関数を呼び出すだけ

簡単に動かすだけであればこれでできます。

0.車の動きを作る

ここでの例はKS4033を使った時の制御です。(モータードライバの機能を使いきれていない気がしますが・・・)

KS4033はP12、P13でA側のモーターを、P15とP16でB側のモーターを動かすことができます。DCモーターなので電圧差を作ることでモーターが回転しますが、スピードはしれているので全速力で動いてもらいます。

モーターの付け方次第で、1023と0の値が逆になる場合もあります。

P12とP13がセットなので、動かす時はどちらかが1023なら、もう片方が0で全速力で回転します。

P15とP16も同じです。

一度動かしてみて、前進したらこれで確定させ、後退したら関数名を変えてしまうのも良いと思います。

動かしたものを止めるために、停止の関数も作っておきます。

0で揃えると惰性で止まり、1023で揃えると力を入れて(ブレーキをかけて)止まります。

止まる部分も作れたら、動くプログラムを作ってみます。

1秒前進したら止まるプログラムです。

試していないので憶測ですが、ブレーキをかけた状態で止めてしまうと、そのまま電気が流れ続けるので、電池が減りやすくなる気がします。

うまくいけば、他の動きも作っていきます。

右や左に旋回するのも、それぞれの組み合わせで考えます。

とはいえ、動かしてみてから修正する方がわかりやすいと思います。

後退、右旋回、左旋回ができれば基本の動きは完了です。

1.無線グループを決める

たいそうに章立てしていますが、簡単です。

数字が共通であれば通信が可能になる、だと思います。たくさんのmicro:bit間で色々とする場合は変えた方がいいと思いますが、特になければこのままでもいいと思います。

2.送信(コントローラー)側のプログラム

専用のプログラムブロックを追加

追加方法は簡単で、拡張機能をクリックすると

ここの検索欄に「https://github.com/lzty634158/GHBit

と入力します。

これだけしか出てこないので迷うこともないと思います。

選択すると、ブロックが追加されます。

この二つのグループが増えます。

NeopixelはLED用のようです。使ったことないのですが・・・

プログラムを作る

GHBitを選ぶと色々なブロックがあります。

英語なので小学生には少し難しいものがあると思いますが、Rocckerでレバーの動き、Buttonでぼたんの状態を調べることができます。

サンプルです。

3.車側の動き

送受信する数字の組み合わせに注意です。

この手の痩身方法に慣れるまではメモを作っておくのもいいと思います。

動かしているところ

見た目はまだまだハリボテ感がありますが、動くことで気持ちが入ることもありますからね。次回の改良に期待しています。

体験授業を実施中です

枚方ロボットプログラミング学習塾では無料で体験授業を実施しております。

興味を持たれた方はお気軽にお申し込みください。事前の問い合わせも可能です。

メール(info@hrktrpg.com)への問合せもお待ちしております。