
240118 赤外線リモコンカーのプロトコル分析(CH32Vマイコン換装)[
2024年01月18日(Thu)]
2024年 最初の患者さま Q-STEER
赤外線コントロールチョロQで、当時は携帯電話でのコントロールが人気だった。
【経緯】
2年前のドクター自主研修以来、ボタン電池を入れっ放しだったので、3台とも危機的状況になっていた。これでは、おもちゃドクター失格である。面目ない。
老後の趣味として、生き甲斐を得るために始めたが、現在の私の心境は「おもちゃドクターは私の全て」、ドクター失格したまま、ここで辞めるわけにはいかない。
周囲の皆さまに支えられ良き師に巡り合えたことで、数年前から60の手習いでマイコン換装の真似ごとを始めている。基礎知識が全くない私だが、今回はCH32Vマイコン換装に挑戦したい。
赤外線リモコンカー (2024 診療記録より)
症状:電池液漏れで危機的な状況
これでは、おもちゃドクター失格
ここで、辞めるわけにはいかない
治療:3セットのうち、1セットは
液漏れが基板まで浸潤、修理不能
2セット目は、COB不良だが
CH32Vマイコンで換装する
3セット目は、正常動作確認済。
(ボタン電池は抜いておく)
退院:1月18日、治療完了して動作確認済
当クリニックの広報活動に活用する
【送信機の解析】
1セットは修理不能で部品取り用、2セット目はCOB不良をマイコン換装で修理予定、3セット目は(元旦の地震で散らかった集中治療室を片付けていて発見)正常動作品。
このブログでは、2セット目の Q−STEER コントローラの基板回路を解析する。
典型的なボタン電池の液漏れ症状
漏れ出た電解液が基板にまで浸潤
-thumbnail2.jpg)
2台目は両面ともレジストでカバー
されていて、かろうじて基板は無事
-thumbnail2.jpg)
COB不安定のため回路解析を進める
COB貫通の配線は、導通点検で発見

SW入力は正論理、IR出力も正論理
(電流値は正常動作品での測定値)

【マイコン換装回路】
そして、マイコン換装の回路図を作成、実機基板パターンを一部改造して取付ける。
さあ、あとは狭小スペースの中に、いかに上手く収めるかが問題。
【集中治療】
こんな簡単な回路でも私が回路図を書く理由は、いざ始まる手術治療に向けて集中力を高めるルーチンであり、思い違いによる単純ミスを防止する意味がある。
【ペアリング】
純正の Q-STEER コントローラは、スライドSWの切り替えで赤外線の信号を4種類に切り換え可能で、4人で4台まで同時に遊ぶことができる。
今回のマイコン換装ファームウェアでは、4種類をソフト実装でサポートする優れもの。
送信側ファームも、受信側ファームも1台で4種類のタイプに動的にペアリングできる。
//パワーオン後最初のキー入力でCH番号を記憶し、受信側にもCH番号設定を送信する。
//右折ボタンが押されていたらchA
//左折ボタンが押されていたらchB
//前進ボタンが押されていたらchC
//後退ボタンが押されていたらchD
//CH番号設定の指示データはCH番号+0b0000'
使用部品は全て、国内で調達可能なものばかり、コスト計算すると 171円。
【技術情報】
今回のファームウェア、(必読)赤外線リモコン送信機・受信機製作
(CH32V003J4M6をサポート)は、コチラ を参照
(参照)Q−STEER送信機の修理(マイコン換装)は、コチラ
(参考)Toy赤外線リモコンの信号フォーマットは、コチラ
(参考)CCP社W−DRIVEシリーズのプロトコル分析結果は、コチラ
今回も、技術的なサポートは「名張市つつじが丘おもちゃ病院」のDr.大泉さまに依頼。
初歩的な質問や要望にも、迅速にご対応いただき、感謝申し上げる。
【CAULの続き】
3月のおもちゃDr.医局会の技術研修では、実際に赤外線リモコンの実機を操作したいので、チョロQ並みに小さいQステアより、少し大きめの「CAUL」の方が、研修用に向いていると思われる。
少し長文になるが、プロトコル分析の試み、失敗〜改修〜成功までの経過を、バーチャル診療として報告し、成果品ファームウェアを公開する。
2年ほど前に中古品を安価に入手してあった
この機会に、研修用プロジェクトに仕上げる

実機送信機のIR信号を受光モジュールで録音
A/Bタイプのプロトコル分析、前進コードから
(画像クリックで拡大表示)

リーダー長やビット幅が違い、スパンが不安定
最後のSTOPデータは4回連続送信(A/Bは2回)

手持ちの実機送信機では、A/B/C/Dタイプの違いに加えて、個体差も相当あると考えられるが、エンコードルールは次のとおりと推測できる。
b0:前進
b1:後進
b2:左折
b3:右折
b4:バンド
だが、同じ個体でもスパン長やフレーム間隔が違っている理由は、全く分からない。
個体差やch切り替え配線による誤差の範囲なんだろうか?
Q−STEERと同じタカラトミー製であり、それに類似した仕様で、リーダー長とフレーム長はタイプ共通であると仮定すると、やはり A/Bと C/D タイプの2通りに集約できる。
Q−STEERファームウェアで、待ち時間だけをCAUL仕様に改変すれば、何とかなりそうな気がする。(エンコードルールの整理は必要だが)
そこで、プロトコル分析資料を整理して、開発者にCAUL仕様へのカスタマイズをお願いし、丁寧なご指導をいただいた。
単に正解だけを示すのではなく、初心者のペースに合わせ、あえて少しずつヒントをもらえたので、とても勉強になった。(何回失敗しても、迅速なサポートが心強かった。)
送信側(コントローラ)のカスタマイズ版の当初仕様は、次のとおり
//CAUL仕様の個別設定値・エンコードテーブルのカスタマイズ(2024/1/8 ToyDr.わたなべ)
// WCH_Q_STEERの個別設定値を参考に、CAUL仕様に改変する
// 変更後の設定値はオリジナルの下段に、カスタマイズ版として追記する
// CAULでは、ターボSWはないが、本ファームウェアではポート構成を変更していない
// 単に、ターボSW信号が入ってこないだけで、将来の改造の余地として残しておく
//ペアリング相手は、chAとchBか、chCとchDかのどちらかを、実装時に宣言する
// CH番号は(Q-STEER同様) b5・b4 で設定するが、エンコードでは b5は送信しないことに留意
// ペアリングの相手が、chCとchDのとき、STOPコードは4回連続送信する
受信側(車体用)のカスタマイズ版の当初仕様は、次のとおり
//CAUL仕様の個別設定値・デコードテーブルのカスタマイズ(2024/1/8 ToyDr.わたなべ)
// WCH_Q_STEERの個別設定値・デコードテーブルを参考に、CAUL仕様に改変する
// 変更後の設定値はオリジナルの下段に、カスタマイズ版として追記する
// CAULでは、ターボ出力はないが、本ファームウェアではポート構成を変更していない
// 単に、ターボ信号が出力されないだけで、将来の改造の余地として残しておく
【当初カスタマイズ】
CAUL仕様のプロジェクトで、タイプ別の最適設定値を割出すために、エクセル表で読取り数値を集計してタイプ別に平均値をとり、個体差にも配慮して上限値・下限値を自動計算させた。
CAUL仕様のカスタマイズ版は、試作〜失敗〜のたびに、開発者にアドバイスを求め、改修〜試作〜報告を経て取り敢えずは試作成功して、試作基板同士での送受信動作を確認することができた。
「取り敢えず」というのは、A/B/C/D タイプを A/B と C/D の2通りに集約して、実装時に宣言することでタイプ別のペアリング相手を設定するので、1台では2種類のタイプにしか対応できない。例えば、A/B タイプの送信側ファームで C/D タイプの実機車体は操縦できない。
//ペアリングの相手は、chAとchBか、chCとchDかのどちらかを、実装時に宣言する
//define TYPE_CD // chCとchDのときに宣言する
// chAとchBのときは宣言しない
開発者に試作成功を報告すると、さらなる改善の方向性が示された。
「タイミングを眺めると、リーダー部の長さで
A/BかC/Dタイプかを切り分けられますね。
タイプ別を動的に判別すればいいと思います。」
リーダー長と、バンド番号を判別し、なおかつ、即座に動的に個別設定値を書き換える、そんな芸当が可能なのか?
(カスタマイズと言うより、開発と言うべきか)私には難しいと思い、あらためて開発者にそんな芸当を織り込んだCAULファームウェアの開発を依頼した。
【カスタマイズ進化版】
開発者からのヒントを参考に、先に送信側ファームの進化版を作ってみる。
「ペアリング」の条件分岐設定の部分に、タイプ別の個別設定値を代入する方法。
深夜の試作は残念ながら失敗、集中力の限界でほぼ諦めモード、さすがにその時は正直言って、かなり落ち込んだ。
翌朝、開発者から単純ミスのご指摘で息を吹き返し、改修後の試作成功。
送信側ファームを修正して1台の試作基板から両タイプの実機操縦を実現。
(AタイプとCタイプの両方で、動作確認済。)
受信側ファームでは、タイプ別の個別設定項目を変数に持ち、リーダー長によりタイプを判別したら該当の最適設定値を代入する作戦。(変数名が大文字なのはご容赦を)
メインループ前に「ペアリング相手タイプ判別ループ」を置くが、これが全く動かず。
開発者が言う「悩みを楽しむ」ような余裕はなく、またヒントを頂戴する。
for〜breakで抜けたり、continueで頭に戻ったりと、初心者には大変勉強になる。
やっと受信側ファームの進化版も試作成功し、実機送信機を使って試作受信基板を操作できることを(AタイプとCタイプとで)確認済。
【ダウンロード】
下記リンクから、プロトコル分析資料と成果品プロジェクトをダウンロードできる。
プロトコル分析資料は、CAULのほか、COKEも同梱している。
気分転換で、赤外線リモコンカーのプロトコル分析を、別のおもちゃでも実施している。
COKEの愛称で有名な飲料自動販売機とデリバリー車がセットで、4つのタイプ。
送信機本体が健全なうちに、ここまで分析しておけば、いざという時も安心。
【
A ラジコン、赤外線、リモコンの最新記事】