今年の夏休みに、マイクロビットを使った子供向けプログラミングワークショップの開催を計画しています。
ワークショップの題材については、マイクロビットだけを使った、それほど難しくないものにする予定です。
ただ、その他にも、マイクロビットを使ったいくつかの作例を紹介しようと思っており、そのひとつとして、二足歩行ロボットをつくれないか?と考えています(去年のワークショップでは、無線操縦の戦車が非常に好評だったので)。
二足歩行ロボットについては、これまでつくったこともなく、できるかどうか見当もつきませんが、一度やってみることにしました。
構想
Webで調べたところ、最も簡単な二足歩行ロボットは、片足につき2個、合計4個のサーボモーターで実現できるようです。
足首のサーボモーターで体を傾け、片足立ちになり、足の付け根のサーボモーターで、体を前に進めるようです。
以下のような動作になります。
この情報を踏まえて、以下のようなロボットにすることにしました。
サーボモーターは2個とも、足の部分に実装します。
また、サーボモーターは、マイクロビットで制御します。サーボモーターは4個ですが、マイクロビットの大きな信号端子は3個しかないので、「micro:bit用エッジコネクタピッチ変換基板」を使い、小さい端子の信号も取り出せるようにします。
回路構成
できるだけコンパクトなロボットにしたいので、マイクロビットとサーボモーターの両方を、同じ電源で動かしたいと思います。
マイクロビットへの電源供給方法には、「USBポートから」、「PHコネクタから」、「エッジコネクタから」の3種類がありますが、今回はせっかく「micro:bit用エッジコネクタピッチ変換基板」を使うので、エッジコネクタから電源供給することとし、接続をできるだけシンプルにしたいと思います。
こちら の記事によれば、エッジコネクタから電源供給するときの供給電圧範囲は、1.7V~3.6Vとのことです。
一方、今回使用するサーボモーターは、「FS90」というもので、こちらの供給電圧範囲は、4.8V~6Vです。
両者の電圧範囲は異なりますが、今回は電圧レベル変換など、面倒なことは行いたくなく、できれば電池を直結させて動かしたいと考えています。
そのため、マイクロビットの供給電圧上限である「3.6V」で、マイクロビットとサーボモーターの両方を動かすことができないか、確認してみます。
エネループ(ニッケル水素電池)の電圧は1.2Vなので、単4型のエネループ3個をマイクロビットとサーボモーターに供給します。
エッジコネクタに、マイクロビット、「サーボモーター、電池を、以下のようにつなぎます。
マイクロビットに、以下のスケッチを書き込みます。
サーボモーターは、きちんと動きました。
次に、実際のロボットと同じ構成になるよう、サーボモーターを4個に増やして、動かしてみます。
4個のサーボモーターへの電源、グランドの接続が煩雑になるので、エッジコネクタの電源、グランドラインにピンヘッダをはんだ付けし、ここにサーボモーターを差し込めるようにします。
そのままでは、サーボモーターの信号端子が取り出せないので、間にピンソケットをかまし、隙間を確保した上で、ジャンパー線で信号を取り出します。
接続内容は以下のとおりです。先ほどの回路に対して、サーボモーターが4個に増えただけです。
マイクロビットに、以下のスケッチを書き込みます。
サーボモーターは4個とも、きちんと動きました。
マイクロビットで、4個のサーボモーターを制御できることが確認できたので、この回路構成で、ロボットを組み立てていきたいと思います。
この記事を書いた後に発売開始された「M5:bit」という拡張ボードには、はじめから電源、グランドにピンヘッダが取り付けられており、それらと入出力端子(GPIO)が2.54mmピッチで並んでいます。 このため、「エッジコネクタピッチ変換基板」の代わりに「M5:bit」を使うことで、特別な加工をせずにマイクロビットとサーボモーターをつなぐことができるようになります。 今後、この記事と同様のロボットをつくる場合は、「M5:bit」を使う方が良いと思います。 「M5:bit」を使ったマイクロビットとサーボモーターのつなぎ方については、こちら の記事をご覧ください。
なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。
初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。