
micro:bit+(moto:bit or keyestudio)=?
これまでmicro:bitを動かすためにいろいろな拡張ボードやジョイスティックを使ってきました。

発売中止のものもありますが、まだ使えるため、こちらに記録として残しておきます。
mono:bitはsparkfun社製の拡張ボードです。モータを2つ、センサーを6つt等を接続できます。2019年頃、2000円程度で購入したと思います。
ここではサーボモータ2個を動かしてみます。micro:bitとmoto:bitのほか、サーボモータを2個、9V電池を1個用意します。この青いサーボモータには角度を指定するものと連続書回転するものがありますが、ここでは前者を使用します。電池の端子があまり見かけない丸いものだったので、こちらもオンラインで購入しました。

micro:bitのサイトにmoto:bitの拡張ブロックもありましたが、まずは一般的なコマンドでも動くと思い、試してみました。
ボタンAを押すと
LEDがスマイル表示をしてから、サーボモータAが100度回転する。
ボタンBを押すと
LEDの表示が変わり、サーボモータBが100度回転する。
ボタンAとボタンBを同時に押すと
LEDの表示が消えて、サーボモータA、Bが元の位置に戻る。

次にkeyestudio社製のservo moduleを使ってみます。
こちらは下記を参考にして、micro:bitの開発環境に拡張ブロックを組み込みます。
作成したプログラムはこちらです。ここではサーボモータを2つ動かします。スタートすると、ずっとLEDにスマイルが表示されて、20度から100度までの動きを繰り返します。2つのモータはそれぞれ異なる方向に回転します。また、回転方向を変えるときにスマイルから表情が切り替わります。
moto:bitはサーボ―モータが2個まででしたが、こちらはサーボモータは16個まで取り付けることができるので、関節が多いロボットなども作れるでしょう。

こちらが動作中の写真です。モータを回転させるための電源は別途とる必要があるため、充電器を使用しました。

ピン番号が0からでなく1から始まっているので、はじめ間違えました。左側から、1,2,3,…16まで接続できます。

keyestudioにはmicro:bitのピンに差し込んで使用できるセンサがたくさんあります。これを使用するにはサーボモータだけでなく、センサに対応したピンがある基板を使用します。私は1箱に37種類のセンサが入っているセットを買い、一つずつ試したことがあります。
下記にも同様の事例が載っています。どんなセンサにも、+、̠̠-、そして信号線の3本の線があるので、ボードの適切な場所に差し込んで使用します。
Gravity DFROBOT社製
連続回転のサーボモータを利用するために、こちらの拡張機能を追加します。

こちらがコマンドの一覧とブロック例です。
ピン番号は0を利用して、ボタンAが押されるとスピード80(最高が100)でモータが連続回転します。ボタンBが押されると停止します。

実際に接続した写真です。

もう一つ、サーボモータを動かすための拡張機能を見つけました。

拡張機能を探すときにはservoと英語で出てきますが、日本語ブロックではサーボモータという表示になります。ここでは普通の角度指定のサーボモータと回転サーボモータのどちらも使用できて便利です。モータを逆回転させたいときにはー50のようにマイナスをつけます。
こちらがコマンドの一覧とブロック例です。

また何かあったら追記します。