マイクロビットでサーボモーターを動かす

micro:bit

ロボットアームの制御などでサーボモーターという位置決めを行うことのできるモーターがよく使われます。みんながよく知る回転型のモーターとは異なります。

まず,回路図は以下のようになります。

PCとマイクロビットが接続されているのは,プログラム転送と電源供給のためです。プログラム転送後は,PCの代わりに乾電池3Vを接続します。

サーボモーターはSG90(一般形)かSG92R(高トルク型)を用います。サーボモーターからはケーブルが3本つながっています。

それぞれGND(接地),Vcc(電源電圧),SIG(信号線)です。以下に写真を示します。

写真で茶色がGND,赤がVcc,黄色がSIGです。

なお,乾電池の6Vは4.5Vに修正してください。

回路自体はそんなに複雑ではないと思います。

GNDの扱いですが,電池の-とマイクロビットのGNDとサーボモーターのGNDがすべてつながるように気を付けてください。

接続の様子をイラストで表すと,以下のようになります。

接続が終了したら,プログラミングです。まず,makecodeにアクセスしてください。

次に【拡張機能】をクリックします。

検索窓に「servo」と入力します。

servoと書かれたブロックをクリックします。

すると,サーボモーターのブロックを選択することができるようになります。

では,一例として次のようなプログラムを作ってみましょう。

このプログラムでは,上述の通り,サーボモーターは0端子に接続されているものとします。

左のプログラムでは
 サーボモーターを角度0°の位置にする
 1000msec(=1秒)待機する
 サーボモーターを角度90°の位置にする
 1000msec(=1秒)待機する
 サーボモーターを角度180°の位置にする
 1000msec(=1秒)待機する
という動作を繰り返します!

最後に少し機能を追加します。マイクロビットには光センサーが用意されています。このセンサーを利用して,周りが暗くなったらサーボモーターが動くようにします。また,上記のプログラムではサーボモーターの動作は0°→90°→180°→0°でしたので,動きがかくっとする部分がありました。そこで,今回は0°→90°→180°→90°→0°として,スムーズに動くようにします。

回路の接続はそのままでOKです(素晴らしい!)。プログラムだけ変更します。

このプログラムでは条件分岐を使っています。

光センサーにより検出した値(明るさという変数で与えられます)が150未満であればサーボモーターを45°ずつ動かします。

すなわち,マイクロビットの周囲が暗くなると,サーボモーターが動くようになります。

ただし,この150という値は状況により変わります。値の決め方は,数を表示ブロックで明るさを表示させることで決めることができます。

最後に,動画を載せます!

コメント

タイトルとURLをコピーしました