マイクロビットを使って「動くもの」をつくる場合、モーターやサーボモーターをつなぐ機会が多くなります。
これまでも、モーターやサーボモーターを使った作例をいくつか紹介してきましたが、ここで改めて、マイクロビットでモーターやサーボモーターを動かす方法を説明します。
モーター
モーターは、秋月電子で販売されている「FA-130RA-2270L(税込120円)」を使います。
プラモデルなどでもよく使われている、ごく一般的なモーターです。
モーターは消費電力が大きいため、マイクロビットで直接モーターを動かすことができません。 マイクロビットでモーターを操作するためには、マイクロビットとモーターの間に「モータードライバ」という部品をつなぎます。
ここでは、秋月電子で販売されている「DRV8835(税込450円)」というドライバモジュールを使います。
このドライバひとつで、2個のモータを制御できます。
動作仕様は以下のとおりです。
xIN1 | xIN2 | xOUT |
---|---|---|
0 | 0 | 空転 |
0 | 1 | 逆転 |
1 | 0 | 正転 |
1 | 1 | ブレーキ |
つなぎ方は以下のとおりです。




なお、図ではモーター用の電池とマイクロビット用の電池が別になっていますが、両者の電源電圧が同じであれば、基本的には同じ電池で動かすことができます。
ただし、モーターは消費電力が大きいため、モーター動作開始時、停止時などに電源ラインに大きなノイズが乗ってしまいます。そのノイズにより、マイクロビットが誤動作してしまう可能性があるため、電源に適当なコンデンサを付けるなど、ノイズ対策が必要となるかもしれません。
写真は「モーター1個、正転と逆転」のときのものです。写真では、マイクロビットには「MI:電源ボード」が取り付けてあり、マイクロビットの電源はボードのボタン電池から供給しています。

モーターを動かすプログラムはこのような感じになります(ひとつのモーターに対し、正転1秒→停止1秒→逆転1秒→停止1秒 をくりかえすプログラムです)。

ところで、Amazonで非常に安価なモータードライバを見つけました。
12個セットで1520円(2021年7月現在)、ピンヘッダが付属していないのでそれを買い足したとしても、1個あたり140円程度です。
これが使い物になるのであれば非常に魅力的だと考え、早速購入してみました。
端子は「+」「-」「IN1」「IN2」「IN3」「IN4」「MOTOR-A(2本)」「MOTOR-B(2本)」の計10本です。
このうち「+」「-」はなぜか、他の端子に対してブレッドボードのピッチにあっておらず、ピンヘッダをつけてもブレッドボードに差し込むことができません。
やむを得ず、「+」「-」のピンヘッダのみ上向きに取り付け、ジャンパー線でつなぐことにしました。

また、このドライバの使い方の説明などはなく、搭載されているICも印字が消されていて型番がわかりません。
そんな訳で、以下のように見当をつけて、実際に動かしてみました。
DRV8835 | HAMILO |
---|---|
VCC | なし |
MODE | なし |
AIN1 | IN1 |
AIN2 | IN2 |
BIN1 | IN3 |
BIN2 | IN4 |
VM | +(プラス) |
AOUT1 | MOTOR-A |
AOUT2 | MOTOR-A |
BOUT1 | MOTOR-B |
BOUT2 | MOTOR-B |
GND | -(マイナス) |
モータードライバのみを変更して、先ほどと同じプログラムを動かしたところ、問題なく動きました。
安価なので、ちょっとしたおもちゃの改造などに使えそうです。

サーボモーター
ここでは、秋月電子で最も安く販売されている「FEETECH FS90(税込360円)」を使います。
このサーボモーターの電源電圧は「4.8~6V」で、マイクロビット(3V)とは電源電圧が異なります。
そのため、普通はサーボモーター用とマイクロビット用で別々に電池を準備し、以下のようにつなぎます。


写真では、マイクロビットには「MI:電源ボード」が取り付けてあり、マイクロビットの電源はボードのボタン電池から供給しています。
また、「マイクロビット」「電池」「サーボモーター」の3つのグランド端子をつなぐために、ブレッドボードを使っています。
ちなみに、私が以前作成した「二足歩行ロボット」では、「サーボモーターとマイクロビットを同じ電池で動かしたい」かつ「レギュレータなどの追加部品を使いたくない」という理由から、3.6V(Ni-MH電池3個直列)をサーボモーターとマイクロビットの両方につなぎました。
マイクロビットの電源電圧範囲は「1.95~3.6V」のため、3.6Vは上限ギリギリ、サーボモーターの電源電圧範囲は「4.8~6V」のため、3.6Vは下限以下となります。
この接続で、一応「二足歩行ロボット」は動きました。
この時のつなぎ方は以下のとおりです。


写真では「M5:Bit」という、マイクロビットを取り付けることのできるソケットを使っています。
マイクロビットの大きい信号端子は3本ですが、このようなパーツを使うことで小さい信号端子も使うことができ、4つ以上のサーボモーターを制御することができるようになります。
サーボモーターを動かすプログラムはこのような感じになります( 30°→150°→30°と、少しずつ一定速度で角度をかえるプログラムです)。

なお、サーボモーターはマイクロビットのPWM出力信号で制御しますが、マイクロビットで同時に使用できるPWM出力信号は3つまでとのことです。
このように、4つ以上のサーボモーターを同時に動かそうとしても、正しく動くのは3つだけです。


写真の状態で動いたのは右3個(P14〜P16)のサーボモーターのみで、残り5つは動きませんでした。
ただし、それぞれのPWM信号を時間をずらして出力すれば、すべてのサーボモーターを動かすことができます。

なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。
初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。