micro:bitでラジコン(無線で文字列のみを送信)

micor:bitを2台用いると、無線機能を利用して、一つをラジコンのコントローラとし、もう一つを車に乗せて制御することができます。

micro:bitでラジコン(無線で文字列と数値のセットを送信)」という記事に、ラジコンとして働かせるためのmicro:bitとモータドライバと電池を一体化したモジュールと、モータを組み込んだレゴのバギー8048を使ったラジコンを書きました。そこでは、文字列と数値のセットを使いmicro:bit間の通信を行いました。この方法は、モータとして、方向制御のためのサーボモータと前後駆動のためのDCモータの組み合わせの場合には適しているのですが、2輪の車(左右の車輪をモータを駆動するタイプ)ではプログラミングがしずらくなります。

そこで、文字列のみで通信をするプログラムを作ってみました。

なお、下は、一体化モジュールやDCモータ、サーボモータを組み込んだレゴのバギー8048の写真です。

リモコンは、micro:bitを使いました。リモコン用のプログラムを下の図に示します。MakeCodeエディタを使っています。このプログラムでは、micro:bitを前後左右に傾けることによりコントロールするようにしました。

無線グループとは、送受するmicro:bitの組です。数値でセットできますので、ここでは、「10」にしてあります。

加速度とは、運動による加速度と重力加速度の合わさったもので、物理的な加速度です。ゆっくり動かした場合、ほぼmicro:bitの傾きになります。前後は「y」、左右は「x」になっています。

micro:bitを傾けた方向により、以下の文字列を送信します。

  • ”fw”:前進
  • ”fr”:右前方
  • ”fl”:左前方
  • ”bw”:後方
  • ”br”:右後方
  • ”bl”:左後方
  • ”st”:停止

以下に、車載側のプログラムを示します。サーボモータとDCモータの組み合わせタイプと、2つのDCモータを使うタイプを用意しました。

サーボモータ+DCモータの場合は下のとおりです。このプログラムは上のバギー8048に使えます。

受信した文字列に従い、関数を呼びます。サーボモータは端子p15を用い、DCモータは端子p0とp1を使っています。

2輪タイプ(2つのDCモータを使う)の場合は、下の図のようになります。

左の車輪のDCモータは端子p0とp1を用い、右の車輪のDCモータはp2とp8を用いています。

 

 

 

コメントを残す