ラジコンカーの送受信機+micro:bit(マイクロビット)でサーボモータを動かす

10年程前に人気を博していたラジコンカー、タカラトミーのエアロRCが、壊れたまま何台か家に残っていましたので、そのリモコン(送信機)と受信機を活かしてサーボモータを使えるラジコンにできるか試してみました。

エアロRCでは、前後の動きはモーターで、左右の方向舵はクラッチ付きのモーターで動かしていますが、レゴなどでラジコンカーを作るとしたら、方向を制御するにはサーボモーターの方が扱いやすそうです。

ここでは、micro:bit(マイクロビット)に、リモコンからの信号に応じてサーボの駆動信号を発生させるようにしました。micro:bitを使うと、いとも簡単に信号の変換ができることが実感できました。

エアロRCのリモコン

下がリモコンです。かなりコストダウンした造りになっています。前進後退ボタンと、左右ボタンがあります。

 

エアロRCの受信部とモーター制御

リモコン受信部、モーター制御部、電池ボックス(単3が2本)が駆動部とともに、下の写真のシャーシーにコンパクトに収められています。前進後退はモーターで、左右の制御はクラッチ付きモーターで動かしています。

前進後退の駆動用モーターに接続される端子の電圧は以下のようになっています。Nは、ニュートラルポジションです。Hは約3V、ーはハイインピーダンス状態、Lは約0Vです。端子1、2は勝手に付けた名前です。

ボタン 前進 N 後退

端子1 H  ー  L

端子2 L  ー  H

左右の方向制御用の端子の電圧は以下のようになっています。エアロRCでは、1.5V (M)の端子と制御用端子との間にモーターをつなぎ、リモンからの信号で回転方向を変えるようになっています。

ボタン 左  N  右

端子  H  ー  L

この信号をmicro:bitに入力しサーボモーターの制御信号を発生したいのですが、このままだと、ニュートラルのときにハイインピーダンスになりmicro:bitは電圧を読み取れません。そのため、1.5V端子から10kオームの抵抗で端子を吊っておき、ニュートラルで1.5V程度のなるようにしています(受信部の回路上の改造はこれだけです)。その結果、端子の電圧は下のようになります。Mは約1.5Vです。

ボタン 左  N  右

端子  H  M  L

micro:bitのプログラム

下は、端子p0から左右制御の信号を入力し、端子p1からサーボ制御用の信号を出力するプログラムです。左右制御の信号は、上で書いたように、ほぼ3V、1.5V、0Vの3値です。micro:bitのアナログ入力の場合、最大電圧で1023、最小電圧で0となります。したがって、下のプログラムでは、p0端子の入力値を700と300のしきい値で3つの状態に分けています。700以上の場合は、サーボ角を180度にし(端子p1)、更にmicro:bitに2を表示します。700~300の場合はサーボ角を90度にし、1を表示します。300以下の場合はサーボ角を0度にして0を表示するようになっています。なお、入出力端子の制御のためのブロックは、「高度なブロック」の中の「入出力端子」のグループの中にあります。micro:bitに数字を表示しているのは確認のためです。実際には不要です。

 

動作確認

下の写真は、動作確認の実験の様子です。右上にあるのが、壊れたエアロRCから取り出したリモコン受信部+モーター制御部+電池ボックスで、ピンプラグ付きのコードをつなぎました。シャーシーの不要部分を少し切断してあります。右下がモーター(ちっちゃいものくらぶ)、その左がサーボモーター(SG90)、左側がmicro:bitと電池です。サーボモーターには、エアロRCの受信部から+3V電源を供給し、制御信号のみmicro:bitから与えています。3Vでは電圧が少し低めですが、動くかどうかの確認だけなのでこれで済ませました。

リモコンの前進後退のボタンでモーターが動き、リモコンの左右ボタンでサーボモータのホーンが動くことを確認できました。これで、レゴなどで作った自動車にモーターとサーボモーターを組み込み、リモコンで動かすことができるようになります。

 

コメントを残す