1.はじめに
2.4GHz帯の無線モジュールTWELITEを使ったラジコン(RC)送信機です。(対応する受信機は
RXA0です。)
数年前にモノワイヤレス(株)から提供されている開発環境がTWELITE SDKからMWSTAGEに変わり、これを機に、MWSTAGEで新たにRC用
のプロポシステムを制作をしてみることにしました。
新しい開発環境は、aruduinoライクで、以前の開発環境よりは、とっつきやすかったです。
ところが、いざ制作してみるとサーボがスムーズに動作しないのです。
原因は、データの送信間隔で、RCプロポシステムでは、最低でも20msec以下の間隔でデータを送信する必要がありますが、データが時々歯抜けになってしまっています。
プログラムの作り方が悪いのか、或いはどこかに重たい処理があるのかわかりませんが、駄目でした。
しかたないので、旧開発環境のTWELITE SDKで新たに制作してみました。
今回は、ブレッドボード上で動作確認しただけで、今後プリント基板化する予定です。プリント基板が完成したら、追記します。
TWELITE SDKは、メーカー非推奨となっているようなので、ご注意ください。
尚、ソフト作成にあたり、下記のサイトを参考にさせていただきました。
http://dsas.blog.klab.org/archives/52201101.html
2.機能
●ラジコン送信機
●プロポーショナル チャンネル : 4ch
●デジタル チャンネル : 8ch
3.仕様
●入力電源電圧 : 3.7V〜4.5V (Li-Po:1セル or Ni-MH:3セル or 単三乾電池:3本)
●消費電流 : 20mA
●基板外形 :
●重量 :
4.回路図(MD1の端子名はデバイス本来の名称で記載しています。)
5.部品表
部品番号 |
部品名 |
仕様 |
メーカー |
備考 |
MD1 |
無線モジュール |
TWELITE-DIP |
モノワイヤレス |
BLUE or RED |
IC1 |
3端子レギュレータ |
TAR5SB33 |
東芝 |
|
IC2 |
可変レギュレータ |
NJM11100 |
日本無線 |
|
LED1 |
LED |
|
|
青、白色以外で高輝度タイプを推奨 |
C1_C4 |
セラミックコンデンサ |
10uF/16V |
|
|
C5 |
セラミックコンデンサ |
0.1uF/25V |
|
|
C6 |
セラミックコンデンサ |
100pF/50V |
|
|
C7 |
セラミックコンデンサ |
0.1uF/25V |
|
|
C8_C12 |
セラミックコンデンサ |
0.1uF/25V |
|
|
R1 |
抵抗 |
15kΩ |
|
|
R2 |
抵抗 |
9.1kΩ |
|
|
R3 |
抵抗 |
10kΩ |
|
|
R4 |
抵抗 |
10kΩ 9.1kΩ |
|
|
R5 |
抵抗 |
470Ω |
|
|
VR1_VR4 |
ポテンショメータ |
RKJXV122400R etc |
アルプス電気 |
ジョイスティック(数量:2) |
VR5 |
ポテンショメータ |
1kΩ 2kΩ |
|
|
SW1_SW8 |
トグルスイッチ |
|
|
必要な分だけ |
6.プログラム
ソースリスト
txa00.c
オブジェクト・コード(バイナリファイル)
BLUE
TXA0_Master_JN5164_1_2_15.bin
RED
TXA0_Master_RED_L1101_V1-2-15.bin
7.調整
TWELITE(MD1)の10番ピン(DIO6)からジョイスティック(VR1〜VR4)の電圧のAD変換値が出力されていますので、
この出力を利用して、ジョイスティックをニュートラルにした状態で、AD変換値が0x0200になるようにVR5を調整します。
すべてのAD変換値を0x200にすることは、まず不可能ですので、なるべく0x200に合わせればOKです。
別の調整方法として、IC2の出力(4番ピン)をVR5を回して、2.52Vになるように調整します。(多少ずれていても問題ありません。)
8.説明
8.1 バッテリーモニタ機能について
回路上にあるLED1は、バッテリーモニタを兼ねています。
通常は、電源ONで点灯しますが、バッテリー電圧が低下すると点滅に変わります。
抵抗R1とR2で分圧された電圧が約1.23V以下になるとLEDが点滅して、バッテリー電圧低下を警告します。
乾電池4本(6V)でも送信機としての動作に問題ありませんが、その場合はR1とR2の値を39kΩ、15kΩ程度にするとよろしいかと思います。
8.2 バインド(ペアリング)
本システムでは、プログラム上で送信機と受信機の周波数チャンネルとアプリケーションIDを直接書き込んでいるので、バインドさせる操作は不要です。
本システムを同時に複数使用すると混信してしまいますが、混信を避けるには、プログラム上のTX_CH(周波数チャンネル)を書き換えるのが簡単です。TX_CHは11から26まで選択可です。
また、TX_IDを変えても混信を避けることができます。TX_IDは、16進で0〜Fの任意の16文字で設定します。
周波数チャンネル、アプリケーションIDを変更した場合は、受信機のTX_CHとTX_IDも同じ値に変更してください。
8.3 デジタル入力
デジタル入力は、8chありますが、これは、おまけ機能のようなもので、模型側に取り付けたLEDなどを簡単にON/OFFさせることができるものです。
SW1〜SW8は、必要数だけ取り付ければいいです。内部プルアップされていますので、使わないSW入力はオープンのままで構いません。
8.4 ジョイスティックについて
本送信機は、最大で4つのサーボモータをコントロールできるように、2チャンネルのジョイスティックを左右2個使った4ch仕様になっています。
しかし、必ず4ch使わなければいけないものではありませんが、使わないAD入力は、オープンのままにしないで、GNDかVcc(3.3V)に接続してください。
ちょっと話が横道にそれますが、 RC飛行機のスティックについて説明します。
ジョイスティックは左右2つあって、それぞれ左手と右手で操作します。
右手の左右方向の操作は、エルロンコントロール(3ch仕様の場合はラダーコントロール)。
右手の上下方向の操作は、モード1ではエンジンコントロール、モード2ではエレベータコントロール。
左手の左右方向の操作は、ラダーコントロール。
左手の上下方向の操作は、モード1ではエレベータコントロール、モード2ではエンジンコントロール。
モード1、モード2という言葉がでてきましたが、モード1とモード2では、エンジンコントロールとエレベータコントロールの操作が左手と右手で反対になります。
海外では、モード2が主流ですが、日本においては、昔からRC飛行機をやっている人たちの間ではモード1が主流になっています。
私の場合は、モード2ですので、右のジョイスティックの左右がch1、上下がch2。左のジョイスティックの左右がch4、上下がch3としています。
ここで、問題となるのは、エンジンコントロール(エンコン)スティックで、エンコン以外のスティックは、手を離すとニュートラルに戻りますが、エンコンスティックだけは、中立に戻らない構造になっているのが普通です。
ラジコン用のプロポ送信機では、スティックを中立に戻すバネを外すだけですみますが、市販のジョイスティックは、ほとんどのものが中立に戻る構造なので、
エンコンスティックに使うには何らかの改造が必要となります。
話を回路に戻しますが、ジョイスティックに使われているポテンショメータには1チャンネルにつき3本の端子があります。
3本のうち真ん中の1本はADコンバータ入力に接続しますが、左右は、2.52V電源とGNDに接続します。
左右どちらを2.52V電源、GNDに接続しても動作はしますが、サーボの回転方向が反対になります。
どちらかに統一しておいた方がよろしいかと思いますので、ここではジョイスティックを(右手操作側、左手操作側ともに)右に倒すとポテンショメータの電圧が上がる方向、
ジョイスティック上下に関しては、上に倒すとポテンショメータの電圧が上がる方向とします。(下図参照)
8.5 無線モジュールについて
無線モジュールTWELITEには、電波出力が標準のBLUEと高出力のREDの2種類があります。(BLUEとREDでは、ファームウェア書き込みのオブジェクト・コード(バイナリコード)が異なります。)
受信機は、BLUEで問題ないですが、送信機の実用上電波到達距離は、BLUEで50〜100m、REDで200〜300mくらいです。(条件によって大きく変わります)
室内用のRCカーや小さな公園で飛ばせる超小型飛行機でしたら、送信機側もBLUEで十分ですが、予算に余裕があれば、電波出力に余裕があるREDをお勧めします。(書き込み時のバイナリファイルが異なります。)
また、外部ダイポールアンテナ(同軸コネクタ タイプ)にすると、更に電波到達距離アップが期待できます。
9.動画
https://youtu.be/i7ZUgfaSBno