先日、「マイクロビットロボカー(改良版)」をつくりました(記事は こちら)。
モータードライバが搭載されているマイクロビット用拡張ボード「KEYESTUDIOモータードライバー拡張ボード(KS4033)」をつかうことで、マイクロビットのプログラムによって自在に動かすことのできる「ロボカー」を、とても簡単につくることができました。
今回はこのロボカーを応用して、クレーン車のような車をつくってみたいと思います。
サーボモーターをふたつ使って、アームを横方向に回転させたり上下に移動させたりできるようにします。
秋月電子で購入した「FS90」というサーボモーターを使います。
ふたつのサーボモーターを90度ずらして並べ、一方の回転軸は下向きに、もう一方は横向きになるようにします。
この状態でふたつのサーボモーターを両面テープで接着します。
サーボモーターの軸に取り付けるパーツを「サーボホーン」というそうですが、下向きのサーボモーターには円形のサーボホーンを、横向きのサーボモーターには直線状のサーボホーンを取り付けておきます。
直線状のサーボホーンにはクレーン車のアームになるプラスチックの棒を取り付け、円形のサーボホーンは両面テープでロボカーに固定します。

サーボモーターの端子を拡張ボードにつなぎます。
直線状のサーボホーンが付いているサーボモーターは、拡張ボードの「2」番端子に、円形のサーボホーンが付いている方は拡張ボードの「8」番端子につなぎます。
今回使っているサーボモーターの電源電圧は4.8V〜6Vなので、拡張ボードの「5V」端子から電源供給することができます。また、サーボモーターの端子の並びは拡張ボードと同じなので、以下のようにサーボモーターのコネクタをそのまま拡張ボードに差し込むだけでOKです。

できあがりはこのような状態になります。

まずは動作確認のため、サーボモーターだけを動かしてみます。
プログラムは以下のとおりです。

直線状のサーボホーンが付いているサーボモーターを「サーボ2」、円形のサーボホーンが付いているサーボモーターを「サーボ8」と呼ぶことにし、「サーボ2を動かす」「サーボ8を動かす」という関数をつくります。
これらの関数では、それぞれのサーボモーターを「数値」の角度から「数値2」の角度まで、角度を1度ずつ変化させながらゆっくり動かすことができます。
このプログラムでは、Aボタンを押すと、まずはアームが45度の角度まで上がり、その後180度回転して前に向きます。そこで一旦アームを下ろして再度上げます。それから先程とは逆方向に180度回転してからアームを下ろし、元の状態に戻ります。
動作確認の結果、所望のとおり動いたので、次はロボカーの移動と組み合わせて動作させてみます。
プログラムは以下のとおりです。

プログラムがややこしくなっていますが、モーター動作関連の関数は「ロボカー基本動作」でつくったものをそのまま使っています(記事は こちら)。また、サーボモーター動作関連の関数は先ほどつくったものですので、新規につくったのは「ボタンAが押されたとき」の中だけです。
このプログラムでは、Aボタンを押すとロボカーが直進して向きを変えます。その場で先ほどと同じアーム動作を行い、元の向きに戻ってから後進して、最初の位置に戻ります。
動作の様子は以下のとおりです。
プログラムどおりに動きました。
今回はあらかじめプログラミングしたとおりに動かしただけですが、プログラムを変更することで、例えばマイクロビット親機で無線操作するなど、さまざまな動かし方ができます。
また、さらにセンサーなどのパーツを追加して、例えばロボカーが走っているときに何かを検知したらアームを動かすなんてこともできるかもしれません。
ロボカー本体の移動に加えてサーボモーターの動きを追加することができましたので、クレーン車に限らず、さまざまな動きをする車をつくることができそうです。
なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。
初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。