WRX micro:bitを車両で使う その13 連続回転サーボモーターの利用
サーボモーターについてはここまで、オーソドックスな角度指定タイプを利用してきましたが、折角なので連続回転(360度)が出来るサーボモーターも購入してみました。今回はMicrosot MakeCodeでの連続回転サーボモーターの利用方法とその様子を見てみます。
連続回転サーボモーター
今回購入したのはTOWER PROの「SG90-HV」です。付属品として5種類のホーンとネジ(本体用2つ、ホーン用1つ)もあります。micro:bitでの定番のサーボモーター(角度指定タイプ)は同じメーカーの「SG90」ですが、大きさは微妙に異なる様子です。また仕様上の動作電圧はどちらも4.8~6Vとなっているのですが、SG90側のpdfでは「Operating voltage:3.3V(~6V)」ともなっています。
SG90を改造して連続回転が出来る様にする事も出来ますが、新たに購入するのであれば初めから連続回転タイプを購入した方が手間がありません。改造する場合はサーボモーター動作軸のストッパーを除去したり、ポテンショメータと動作軸の接続を解除、またポテンショメータが常に90度となる様に抵抗を入れたりする様ですが(偽装)、初めから連続回転となっているサーボモーターも内部の仕組みは同様かと思います。
動作プログラム
ここではMicrosot MakeCodeでプログラムを組みますが、サーボモーターの制御方法は幾つかあります。
「入出力端子」のブロック
最も簡単な方法は、高度なブロックの「入出力端子」にある「サーボ 出力する端子」ブロックを使用します。角度指定サーボモーターではそのまま角度を入力すれば指定した角度まで動作しますが、連続回転サーボモーターでは90度を基本(停止)として90度以下、あるいは90度以上の指定で回転方向、数値が「90」よりも小さければ小さい、あるいは大きければ大きいほど回転速度が速くなります。
上記のプログラムではAボタンで時計回りに遅く回転、Bボタンで反時計回りに速く回転、A+Bボタンで停止します。今回のSG90-HVはmicro:bit本体のみでも動作しましたが、あまり回転速度を遅くすると回転が不安定になったり、止まってしまう場合がありました。これは別途micro:bit本体のバッテリーコネクターへ乾電池を接続しても変わりませんでした。
さらにサーボモーターをIOブレイクアウトボード等で5V電源で動作させると(上記)、micro:bit本体(3.3V)よりも全体の速度が上がります。ただし低速時の不安定さは変わりませんでした。
拡張機能「servo」のブロック
Microsot MakeCodeでは拡張機能からサーボモーターに関するブロックを追加する事も出来ます(無い場合は検索欄から「servo」で検索)。ブロックを追加するとブロックのメニューに「サーボモーター」が表示されます。
この中の「普通のサーボモーター」にあるブロックは「入出力端子」のブロックの場合と同様ですが、その他に「回転サーボモーター」用のブロックもあります。
「回転サーボモーター」のブロックでは回転方向と回転速度は割合(%)で指定しますが、割合のプラス指定で反時計回り、マイナス指定で時計回りになります。また「止める」ブロックもありますが、割合を「0」としても止まります。※止まらずにゆっくりと回転する場合は角度や割合の微調整が必要(後述)。
サーボモーターモジュール用のブロック
ここでは動作電圧の高いサーボモーターを動かす為のサーボモーター用モジュールを使用する場合ですが、モジュールも数種類販売されているので、あくまで私が購入した物での場合になります。
購入したサーボモーター用モジュールでは「PCA9685」という制御チップを搭載していて、拡張機能からその為のブロックを追加して使用します。ブロックを追加すると「servo」のブロック同様にメニュー内に「PCA9685」が表示されます。
「PCA9685」の場合は「set servo position」が角度指定、「set c r servo position」が割合指定になり、利用方法も「servo」のブロックと同様です。
今回のモジュールを使用すると、micro:bitと5V電源を使用した時よりもさらに全体の回転速度が上がる印象です。ただし停止させる為に角度指定で「0度」、割合指定で「0」としてもサーボモーターがゆっくりと回転し続けて停止しませんでした。これはポテンショメータの90度偽装(抵抗値)が微妙にズレている様子で、動作電圧も高い事から停止しないのだと思われます。この場合は停止時の角度や割合を1~2程度(回転方向によってはマイナス)に調整すると停止します。上記プログラムでA+Bボタンの停止時の値が92度、2%となっているのはその為です。
その他
サーボモーターは回転速度や負荷によっては熱を持つ事があり、最悪の場合には故障に至ります。一般的なACサーボモーターの場合はその許容トルクや許容回転数も示されています。今回のラジコンや模型用のサーボモーターでも回転速度や負荷、連続回転時間には注意が必要です。
micro:bit 新バージョン「2.0」について
2020年11月25日より、Micro:bit本体の新バージョン「2.0」が発売になっています。従ってこれまでの古いmicro:bitを使用した記事(~その24)と新しいmicro:bitでは記事内容に相違がある場合があります。ただしこれまでのプログラムは基本的には新しいmicro:bitでも動作し、古いmicro:bitも引き続き使用する事が可能です(ハード的に新たに追加された機能は、拡張ボード等が必要ですが)。
なお新しいmicro:bitについては実際に1つ購入し、micro:bit関連記事「その25」から扱っています。
2022年4月追記
2021年12月にmicro:bit本体のバージョンが「2.2」になるとのアナウンスがありましたが、「2.0」との機能上の違いは無いとされています。
「micro:bit」関連記事
以下は「micro:bit」タグの記事一覧です(投稿順)。現在の記事とこれ以降に投稿した記事も含みます。「その24」までの記事ではmicro:bit本体のバージョン「1.5」を使用しています。
クリックで開きます
- WRX micro:bitを車両で使う その1 micro:bitの購入
- WRX micro:bitを車両で使う その2 Microsot MakeCodeとスマホ用アプリ
- WRX micro:bitを車両で使う その3 micro:bitの仕様と購入したブレイクアウトボード
- WRX micro:bitを車両で使う その4 本体ファームウェアの更新とWebUSB
- WRX micro:bitを車両で使う その5 無線機能の利用
- WRX micro:bitを車両で使う その6 方位センサーの利用
- WRX micro:bitを車両で使う その7 加速度センサーの利用
- WRX micro:bitを車両で使う その8 micro:bitからSIドライブのモード切替
- WRX micro:bitを車両で使う その9 サーボモーターの利用(準備編)
- WRX micro:bitを車両で使う その10 サーボモーターの利用(動作編)
- WRX micro:bitを車両で使う その11 可動式雲台を作る(2軸編)
- WRX micro:bitを車両で使う その12 可動式雲台を作る(1軸編)
- WRX micro:bitを車両で使う その13 連続回転サーボモーターの利用
- WRX micro:bitを車両で使う その14 Bluetoothでスマホから操作(データ受信)を行う
- WRX micro:bitを車両で使う その15 LCDパネル(I2C LCD1602・2004)の利用
- WRX micro:bitを車両で使う その16 シリアル通信(RS232C)を行う
- WRX micro:bitを車両で使う その17 光センサーと温度センサーの利用
- WRX micro:bitを車両で使う その18 LEDのフォントとスクロールスピードを変える
- WRX micro:bitを車両で使う その19 ELM327の車両との通信を確認する
- WRX micro:bitを車両で使う その20 アスキーコード16進数から数値10進数への変換
- WRX micro:bitを車両で使う その21 車両からエンジン回転数を得る
- WRX micro:bitを車両で使う その22 7セグメントLEDの利用(TM1637ドライバ)
- WRX micro:bitを車両で使う その23 DCモーターを制御する(TB6612FNG・DRV8833)
- WRX micro:bitを車両で使う その24 ステッピングモーターを制御する(ULN2003ドライバ)
- WRX micro:bitを車両で使う その25 micro:bit バージョン2.0を購入(2021年12月 v2.2アナウンスあり)
- WRX micro:bitを車両で使う その26 バージョン2.0で追加されたMakeCodeブロック
- WRX micro:bitを車両で使う その27 バージョン2.0の初期状態と追加された機能
- WRX micro:bitを車両で使う その28 新バージョン(v2.0)のI2C通信
- WRX micro:bitを車両で使う その29 環境モニターを作る(気温・気圧・湿度編)
- WRX micro:bitを車両で使う その30 環境モニターを作る(二酸化炭素・有機化合物編)
- WRX micro:bitを車両で使う その31 環境モニターを作る(LCD表示・動作確認編)
- WRX micro:bitを車両で使う その32 環境モニターを作る(RTCモジュール追加編)
- WRX micro:bitを車両で使う その33 環境モニターを作る(ロギングモジュール追加編)
- WRX micro:bitを車両で使う その34 環境モニターを作る(ログデータ記録編)
- WRX micro:bitを車両で使う その35 車内のCO2濃度と換気について
- WRX micro:bitを車両で使う その36 新バージョン(v2.0)でのI2C通信の問題解決
- WRX micro:bitを車両で使う その37 Microsoft MakeCodeの新バージョン(v4)と新機能データロガー
- WRX micro:bitを車両で使う その38 mp3音声ファイルの再生(DFPlayer Mini)
- WRX micro:bitを車両で使う その39 車速パルス信号から速度を計算する
- WRX micro:bitを車両で使う その40 フルカラーLED(WS2812B)でメーターを作る
- WRX micro:bitを車両で使う その41 フルカラーLEDマトリックス(WS2812B)で時計を作る
- WRX micro:bitを車両で使う その42 フルカラーLEDマトリックス(WS2812B)でピクセルアートアニメーションを作る
「micro:bit+プラレール」も始めました。
その他
FA用PLCとELM327を使用した「OBD2」関連の記事は以下の記事から始まります。
注記
-
- このブログ内で書いている内容はあくまで私の利用する製品(アプリ含む)や機器での場合です。他メーカーの製品や機器をはじめ、同じメーカーの製品・機器であってもバージョン違い等の場合もあるので、記事内容の保証や責任を負う事は出来ません。
- 記事内で紹介している製品や、その他の類似製品を購入・利用する場合はそのメーカーや購入先で仕様等を確認し、自己判断と自己責任の下で利用して下さい。
- 記事内で公開しているmicro:bit用プログラムは自由に利用・改変して頂いて構いません。ただし不具合やバグもありますので、プログラムを利用した際の故障や事故等についての保証や責任を負う事は出来ません。自己判断と自己責任の下で利用して下さい。
- micro:bit製品やプログラミング、その他記事内容について個別の問合せや依頼を頂いても回答する事は出来ませんので、予め御了承下さい。
- BBC micro:bitは、micro:bit教育財団の登録商標です。その他のブランド名または製品名は各所有者の商標です。