名張市つつじが丘おもちゃ病院

三重県名張市つつじが丘でおもちゃの病院を開院しています。年中無休で修理は無料、部品代のみ実費です。おもちゃの修理依頼は tutuji@cb4.so-net.ne.jp へメールにてご連絡下さい。なお、宅配便での受け付けは行っておりません。このブログにはおもちゃ等の修理事例やツール製作などを載せていきます。故障診断や修理方法の改善等、ご意見をお寄せ下さい。

2.4GHzラジコン用ファームウェアの開発(SE8R01)

この記事はトランシーバモジュール 「SE8R01」 を使ったものだ。 「nRF24L01+」 を使ったものは こちら

「おもちゃ病院 新津(新潟)」様 が本ファームウェアを利用して、実際のラジコン修理で送受信機の換装を行った。換装作業の状況と動作確認の結果は、 彼のブログ記事 で詳しくレポートされている。限られたスペースに格納するため表面実装で細かい工作をされていて、いつも感心させられる。結果は 「30m前後まで完璧に動作した」 とのことだ。

2.4GHzラジコンの修理については今年(2017年)春から、RFチェッカーの検討と合わせて、彼と2人3脚で進めてきたプロジェクトだ。それが良好な結果を以って完了し、おもちゃ病院業界での2.4GHzラジコンの修理の道筋をつけることができた。

【前振り】
2.4GHzのラジコンはRF部分とエンコーダ/デコーダ部分が一体化して1個のCOBで実装されているものが多い。こうなると故障部位のみを修理することができず、全体を換装することになってしまう。また、RFモジュールが別物になっていても、インタフェースが不明なので結局は全体を換装せざるを得ないことになる。更に問題なのは、コントローラ側と本体側の双方を同じタイプのトランシーバモジュールで、且つ同じプロトコルのファームウェアで換装しないと通信できないことだ。それでコストが多大になり、修理することができなかった。

しかし、最近は2.4GHzのトランシーバモジュールが安く出回るようになってきたので、比較的低コストで全体を換装できる可能性が出て来た。そこで、2.4GHzラジコン用のファームウェアの評価版ができたので、みんなでブラシアップして行きたいと思う。評価結果やコメント、改善提案などをいただきたい。

【構成】
2.4GHzトランシーバモジュールは応用事例が多く比較的廉価な SE8R01 (2017年9月時点で@40円くらい)を採用した。
こんなに廉価ならレガシーバンドのラジコンの場合でも、ディスクリート部品で作るよりこれで換装した方が安くつく。

DIPタイプ(表)
2400MGHzラジコン用ファームウェア(SE8R01)外観2

DIPタイプ(裏)
2400MGHzラジコン用ファームウェア(SE8R01)外観3

DIPタイプ(ピン接)
2400MGHzラジコン用ファームウェア(SE8R01)DIPタイプピン接

SMDタイプ(表)
2400MGHzラジコン用ファームウェア(SE8R01)外観4

SMDタイプ(裏)
2400MGHzラジコン用ファームウェア(SE8R01)外観5

SMDタイプ(ピン接)
2400MGHzラジコン用ファームウェア(SE8R01)SMDタイプピン接

制御用のマイコンはポピュラーな 16F1503T-I/SL (2017年9月時点で@70円)を使用し、トランシーバモジュールとのインタフェース機能と、コントローラ側では操作スティックの読み取りとエンコード、本体側ではデコードとHブリッジへの信号出力を行う。デバグにはUARTを内蔵した 16F1705 を使っている。
2400MHzラジコン用ファームウェア(SE8R01)外観説明

コントローラ側と本体側のハード構成は同じで、搭載するファームウェアをコントローラ用と本体用に分けている。


【ファームウェアの機能】
前進/ターボ前進/後進、左折/直進/右折のフルアクションコントロールを行う。

ポートの割り当てはソースコード中のコメントを参照。

データ形式

・8chデジタルプロポへの応用を意識して、データペイロードは9バイトとしておく
 現時点ではch1にドライブの制御値、ch2にステアリングの制御値を入れて動作確認している。

・バイト位置(先頭から):内容
 0:ペアリング番号(未実装のため常に0xa5)
 1:ch1制御値(ターボ前進=255、前進=192、停止=128、後進=64)
 2:ch2制御値(左折=192、中立=128、右折=64)
 3:ch3制御値(未実装のため常に0x5a)
 4:ch4制御値(未実装のため常に0x5a)
 5:ch5制御値(未実装のため常に0x5a)
 6:ch6制御値(未実装のため常に0x5a)
 7:ch7制御値(未実装のため常に0x5a)
 8:ch8制御値(未実装のため常に0x5a)
 無線通信としては9バイトのデータペイロードを伝送するだけなので、制御データの意味付け、使い方は個々の応用にて適宜決めればよい。

トランシーバモジュールの設定

・キャリブレーションとRF設定

 nRF24L01+ではこのような処理は要らなかったが、SE8R01ではこれを実行しないと動かない。データシートにはこの辺りの記述が見当たらず、先達の事例に倣って処理を行ったところ動き出した。複数の事例で内容が微妙に異なる部分があり、最終的には試行錯誤で完成に至った。確たる情報をお持ちの方はコメントをいただきたい。

・自動応答しない指定でのペイロード送信
 これは同一のキャリア周波数で 1:n の通信モデル(ブロードキャスト)を実現するため、個々の受信側が応答を返さない設定にしている。

・送受信アドレスは4バイト、「'S','R','C',0x01」に固定
 無闇に長くする必要性は無い。

・自動再送しない
 自動応答しない、と同じ理由による。

・チャネルは40(キャリア周波数は2440MHz)
 特に40にする意図はない。

・データレートは2Mbps
 実験の結果、2Mbpsが最も感度が良かったことによる。

・CRCは2バイト
 特に2バイトにする意図はない。

・RF送信レベルは+5dBm
 信号到達距離10mを確保するため、最大レベルを設定する。

送受信タイミング

・コントローラ側から20ms周期でフレームを送信する
・本体側は1ms周期で受信ポーリングし、200msの無通信検出で全停止する

Hブリッジ出力

・モーターの正転と逆転の間にデッドタイム(1ms)を確保する
 今回のフルアクションリモコンとしての対策である。

パワーダウンモード

・コントローラ(送信機)に電源SWが無い場合への対応として、操作をしていないときはSE8R01をパワーダウンモードに設定して、PICはSleepする。このときの消費電流は22uAであった。

・コントローラが操作されるとPICがIOC割込みにてWakeUpし、SE8R01を送信モードに設定する。このときの消費電流の平均値は1mAであった。

【ダウンロード】
開発プロジェクトの一式は ここから ダウンロードできる。
プロジェクト名にTX/RXの区別とターゲットのデバイス名を織り込んでいる。

【今後の展開】
・ペアリング機能が未実装だが、換装した複数のラジコンを使い回しするシーンが無さそうで、腰が上がらない。
スポンサーサイト
  1. 2017/10/12(木) 17:57:24|
  2. 製作記事
  3. | コメント:0
<<27MHz~2.4GHz対応RFチェッカー(ラジコン電波検知器)表示部の省電力化(第2弾) | ホーム | 27MHz~2.4GHz対応RFチェッカー(ラジコン電波検知器)表示部の省電力化>>

コメント

コメントの投稿


管理者にだけ表示を許可する

プロフィール

大泉茂幸

Author:大泉茂幸
名張市つつじが丘おもちゃ病院
名張市つつじが丘南3番町129
tutuji@cb4.so-net.ne.jp
090-5534-6494
連絡は上記のメール、またはSMSでお願いします。

子どもの頃から趣味は電子工作一筋でやってきました。理科離れが進む中で科学技術に興味を持つ子どもが少しでも増えて行くことを願って、子ども達に電子工作の活動の場を提供しています。

1981年からおもちゃ病院の活動を始め、2014年に三重県名張市への移住を機に「つつじが丘おもちゃ病院」を開院しました。自分でおもちゃを設計し製作する【おもちゃ工房】と、マイコンを応用した電子工作を楽しむ【マイコンクラブ】も併設しています。新規参加メンバーを募集しています。

本ブログで公開している技術情報や成果物のご利用および再配布はフリーです。読者様の技術活動のお役に立てば幸いです。ご利用いただいた結果や感想等を記事へのコメントやメールでフィードバックしていただけると有難いです。

最新記事

最新コメント

月別アーカイブ

カテゴリ

おもちゃ病院 (7)
技術情報 (9)
修理事例 (141)
製作記事 (74)
ドクター研修会 (2)
PIC開発 (9)
未分類 (8)

訪問者数

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QR