まほろば

micro:bitでおもちゃを動かす 2

投稿者:マーチン  2019年9月23日 
カテゴリ:障碍者全般::micro:bit

 micro:bit でサーボモータを動かすサンプルを、3通り作ってみました。ボタンA、Bを使うのではなく、外付けのプッシュボタン2個でモータを制御することを考えます。まずは、ブレイクアウトボードとブレッドボードを使って、動作確認をしています。モータ用に別電源を用意する必要があります。


●サーボモータとは

 サーボモータとは、位置や速度を制御できるモータのことです。micro:bit や Arduino でよく使われている小型のモータに以下のものがあります。
【Amazon】デジタル・マイクロサーボ SG90
・重量:9g
・外形寸法:22.2x11.8x31mm
・トルク:1.8kgf・cm(4.8V)
・動作速度:0.1秒/60度
・動作電圧:4.8V(~5V) ← 3V では電圧不足
・温度範囲:0℃~55℃
・制御角:±約90度(180度)
・配線:茶=GND、赤=電源[+]、橙=制御信号 [JRタイプ]
・PWMサイクル:20ms
・制御パルス:0.5ms~2.4ms

【TowerPro】SG90 Analog

 SG90は以下の波形で0.5msで0度、2.4msで180度になるという仕様です。MakeCodeでプログラミングする時には、これを意識する必要はありません。


●ブレイクアウトボード

 micro:bit のテストプログラムを作成するには、ブレイクアウトボードを使うと便利です。いろいろなタイプのものがありますが、ブレッドボードに挿して使うタイプの、次のものを選択しました。

 電池3本の電池ボックスから、黒:GND と赤:電源(4.5V)とを、ブレッドボードの-と+に挿し、モーターから茶:GND、赤:電源、黄:信号の3本の線が出ているので、短いオス-オスのジャンパーワイヤーで、ブレッドボードの-と+とP0に挿します。-とブレイクアウトボードのGNDをジャンパーワイヤー(青)で結びます。
 モータを別電源にしなくても、電池2本でPHコネクタを介して供給すれば、電池が新品のうちは動きました。でも、電池が消耗して電圧が下がると動かなくなります。


 プッシュボタンは、オス-オスのジャンパーワイヤーを半分に切って、切った端をオーディオジャックにはんだ付けして、GNDとP1、GNDとP2に挿します。

 モータが1個、プッシュボタンが2個の場合の全体の構成は、この記事の最初の写真になります。

●サンプル1:角度を増減させる

 モータをP0、プッシュボタンをP1とP2 に接続し、P1のボタンを押すと 時計回りに30度、P2のボタンを押すと 反時計回りに30度回転させるサンプルです。


 角度は、0度~180度までしか回らないので、それ以上の値を指定しないようなプログラムになっています。イベント処理(タッチされた時)を実行するには、メインのループ内に一時停止が必要です。

 変数は、以下の2個です。

●サンプル2:3つのポジションを選択する

 モータをP0、プッシュボタンをP1とP2 に接続し、P1のボタンを押すと下を、P2のボタンを押すと上を、両方同時に押すと右を指すようなサンプルです。
で紹介したタッチボードを作成してじゃんけんの入力と、グー・チョキ・パーを書いた紙をモータの矢印が指し示すようにすれば、じゃんけんゲームができそうです。


 P1タッチ、P2タッチのフラグを"偽"にする → アイコン表示 → 一時停止 の順番がミソです。

 変数は、以下の2個です。

●サンプル3:ボタンを押している間2つのモータを動かす

モータをP0 と P14に、プッシュボタンをP1とP2 に接続し、P1のボタンを押している間はモータ1が一杯に振れボタンを離すと元に戻り、P2のボタンを押している間はモータ2が一杯に振れボタンを離すと元に戻るサンプルです。旗揚げゲームみたいなものができそうです。


 前の2つのサンプルと違って、イベント処理を使わずに、単純にタッチされていれば上、されていなければ下に移動させています。

変数は、以下の4個です。

●micro:bit の電源供給

 【Qiita】micro:bitの電源供給について に分かりやすく書かれています。
 USBケーブルから電源供給した時は、90mAなので、これではモータを動かすことはできません。


●モータ用電源


 モータに別電源から供給する方法として、別売りの基板を使うのが最も簡単です。
 micro:bit用に乾電池2本と、モータ用に乾電池3本が必要です。


 あるいは、
では、4.8V(充電式ニッケル水素電池4本)からモータに電源供給をして、そこから3.3Vの電圧を作り、micro:bit を駆動する方法が紹介されています。


 または、こんな製品もあります。
【Amazon】micro:bit用 Servo:Lite
・単4電池3本で3.3 Vのサーボモータを三つまで制御できる、BBC micro:bit用の拡張ボードです。
・5本のねじでmicro:bitのエッジコネクタに直接取り付けます。

【kitronik】Getting Started With The Servo:Lite Board
Servo:Lite と microbit のピン割り当て
microbitServo:Lite.
Pin 0.ZIP LEDS.
Pin 1.Servo 1.
Pin 2.Servo 2.
 モーターを2個繋ぐと、スイッチに割り当てるピンが1個しかないので、使わないだろうな。

●プログラミングのダウンロード



◆連載
◆関連記事
◆関連サイト