マイクロビットを使ってみる 〜マイクロビットロボカーのスピードを変える

先日、「マイクロビットロボカー」をつくりました(記事は こちら)。
ふたつのモーターで動く車です。マイクロビットでモーターを制御することで、前進、後進、右折、左折など、自由に動かすことができます。


このロボカーでは、秋月電子の「TC78H653FTGモータドライバモジュール(K-14746)」というモータードライバを使っているのですが、同じく秋月電子の「DRV8835使用ステッピング&DCモータドライバモジュール(K-09848)」というモータードライバの取扱説明書を見ていたところ、こちらのモータードライバを使えばモーターのスピードを変更できるようなことが書いてありました。
具体的には、モータードライバの入力に与えるアナログ値(PWM)を変えることで、モーターのスピードが変わるようです。

そんな訳で、マイクロビットロボカーのモータードライバを「TC78H653FTG」から「DRV8835」に取り替えて、ロボカーのスピードを変更できるようにしてみたいと思います。

ロボカーから「TC78H653FTG」を外し、代わりに「DRV8835」を取り付けます。
モータードライバの接続は以下のとおりです。

ブレイクアウトボードモータードライバ
ソケット「P13」AIN2
ソケット「P14」AIN1
ソケット「P15」BIN1
ソケット「P16」BIN2
ソケット「3V」VM
ソケット「3V」VCC
ソケット「GND」GND
モータードライバ右モーター
AOUT2
AOUT1
モータードライバ左モーター
BOUT1
BOUT2

*MODEのみ、空きピンになります。

プログラムは以下のとおりです。

Aボタンを押すと、「動作」関数を8回呼び出します。呼び出すたびに、スピードを表す「カウンター」の値をカウントアップします(0〜7)。
「動作」関数では、ロボカーを「1秒前進」→「1秒後進」させます。その際には、アナログ出力の値を127(カウンターが0のとき)から1023(カウンターが7のとき)まで変動させます。

結果は以下のとおりです。

カウンターが「3」(アナログ値が511)の時まで、ロボカーは動きませんでした。
カウンターが「4」(アナログ値が639)以上でロボカーが動きます。「4」と「7」ではスピード(1秒間での移動距離)が変わりますが、それほど大きな違いではありません。

一応、ロボカーのスピードを変えることはできましたが、超低速で動かすなど、きめ細かい制御まではできませんでした。


なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。


初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。


このサイトで書いている、マイクロビットに関するブログ記事を、「さとやまノート」という別のブログページに、あらためて整理してまとめました。

他のマイクロビット記事にも興味のある方は「さとやまノート」をご覧ください。