FC2ブログ

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

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

2.4GHzラジコン用ファームウェア(A7105)

【前振り】
2.4GHzのラジコンを修理するときに代替部品として使える送信機・受信機のひな型を作っている。 nRF24L01+ と SE8R01 を使ったものは既に公開している。

今回はその延長戦で A7105 を使ったものを作った。


【構成】
2.4GHzトランシーバモジュールは A7105 で、送信側と受信側とも同じ。
2.4GHzラジコン用ファームウェア製作(A7105)表

2.4GHzラジコン用ファームウェア製作(A7105)裏
上記の画像ではGIO1の配線がしてあるが、4-wireでのインタフェースを実験した名残りであり、3-wireで使用する場合は不要である。

トランシーバ基板のピン接
2.4GHzラジコン用ファームウェア(A7105)ピン接

A7107のトランシーバは2018年5月29日の購入実績で3個509円だった。@170円とかなり高価なのでホビー向けだ。おもちゃ修理には今のところ SE8R01(@40円) しか選択肢が無い。

マイコンは 16F1503 または 16F1705 を使う。

【実験ボード】
nRF24L01+とSE8R01の統合版のデモボード を流用している。

以下に掲げる回路図はあくまでファームウェアの動作を確認するためのものであり、実際のラジコンおもちゃに応用する場合は実用環境を考慮した設計を加える必要がある。

送信側
2.4GHzラジコン用ファームウェア製作(A7105)送信側
2.4GHzラジコン用ファームウェア製作(A7105)デモボード(回路図)送信側

受信側
2.4GHzラジコン用ファームウェア製作(A7105)受信側
2.4GHzラジコン用ファームウェア(A7105)デモボード製作(回路図)受信側


【ファームウェアの機能】
フルアクション動作とプロポ動作の2種類のデモができるファームウェアを開発した。

・フルアクション動作では、送信機側の5個のタクトSWのオン/オフ状態を送信し、受信機側では5個のLEDに表示する。

・プロポ動作では、送信機側の2個のボリュームの操作角を送信し、受信機側では2個のサーボ信号を出力する。

実際のおもちゃに適用するときは色んな要件が被さってくると思うので、カスタマイズが必要であれば 「故障したICやマイコンの代替品をお作りするサービス」 で依頼をして欲しい。


【トランシーバとのインタフェース】
A7105はMCUとSPIでインタフェースするのだが、3-wireと4-wireの2種類があり、初期値は3-wireになっている。

3-wireではMOSIとMISOが1本のSDIOピンに集約されていて、I2Cに似ている。MCU側のピン数が節約できて、転送速度等のデメリットはないのでこちらを採用した。


【トランシーバの設定内容】
主な設定条件は以下のとおり。

・パケット(データ)長:9バイト
 送信時間(=エアー占有時間)を少なくするため、データ長は必要最小限とする。

・データレート:500kbps
 送信時間(=エアー占有時間)を少なくするため、最高速を選択する。

・CRC・FEC:有効
 通信の信頼性確保はチップの機能に任せる。

・RF出力:1dBm
 10m以上の飛距離を確保するため、最大出力を選択する。


【評価】
・飛距離は基板アンテナだけで、屋内で14mを楽々クリアした。流石にホビー向けであると感じた。

・送信側のSleep時の消費電流は全体で13uAであり、フルアクション動作では電源SWは不要である。通常動作時の平均電流は1.8mAで、かなりの省電力だ。

・SE8R01のときはデータシートに載っていないおまじないのようなキャリブレーション手順を実行しないと動作しなかったのだが、A7105はデータシートの通りに設定すれば素直に動いてくれた。このことは、僕のような素人にとっては大変有難いことだ。


【ダウンロード】
ファームウェアの設計資料と開発プロジェクトは ここから ダウンロードできる。
スポンサーサイト



  1. 2018/06/25(月) 11:02:23|
  2. 2.4GHzラジコン
  3. | コメント:0

2.4GHzラジコン用ファームウェアのデモボード

【前振り】
廉価な2.4GHzトランシーバモジュールを使ったラジコン用ファームウェア は、おもちゃ病院新津(新潟) 様によってフルアクションのラジコンカーの換装を行い、評価結果が公開 されている。しかし、僕自身はデバグ環境でしか動作検証をしていないのと、このファームウェアを紹介するのにデモボードの必要性を感じていた。また、ファームウェアはデジタルプロポ仕様になっているので、それも実演したい。


【デモボード】
2.4GHzトランシーバは nRF24L01+の出力強化版と非強化版、SE8R01 が使える。DIPタイプとSMDタイプのどちらも使えるが、VccとGNDのピン接が逆なので要注意だ。

ファームウェアは nRF24L01+用とSE8R01用)の統合版 を使っている。

以下に掲げる回路図はあくまでファームウェアの動作を観せるためのものであり、実際のラジコンおもちゃに応用する場合は実用環境を考慮した設計を加える必要がある。

送信側
2.4GHzラジコン用ファームウェアのデモボード送信側
2.4GHzラジコン用ファームウェアのデモボード(回路図)送信側

受信側
2.4GHzラジコン用ファームウェアのデモボード受信側
2.4GHzラジコン用ファームウェアのデモボード(回路図)受信側


デモボードはフルアクション制御とプロポ制御の両方の動作モードに対応している。電源投入後に最初にターボボタンを押すとフルアクション動作、後進ボタンを押すとプロポ動作に設定される。動作モードを変更するときは送信側と受信側の両方の電源を切ってから設定をやり直すこと。

フルアクション制御は、ターボ、前進/後進、左折/右折のデコード結果をLEDに表示する。モーター制御回路は含まない。

プロポ制御は、サーボパルスを出力し市販のサーボを動作させる。

ボリュームの操作角とサーボパルスの巾の対応はファームウェア内の定数宣言で、chごとに設定ができる。

上記の回路では制御用マイコンは16F1503を使っているが、16F1705用のファームウェアも用意してあり、ピン割り当ても同じにしているのでそのまま差し替えられる。


【実演】
フルアクション動作


プロポ動作


到達距離は屋内で10m程度だった。トランシーバにアンテナを付けると屋外見通しで30m程度まで届いたとの報告がある。

【ファームウェア】
ファームウェアの設計資料と開発プロジェクトは ここから ダウンロードできる。

ファームウェアの説明は ここに ある。
  1. 2018/06/17(日) 19:18:45|
  2. 2.4GHzラジコン
  3. | コメント:0

2.4GHzラジコン用ファームウェア(nRF24L01+用とSE8R01用)の統合

【前振り】
廉価な2.4GHzトランシーバモジュールを使ったラジコン用ファームウェアを作っていて、従来は nRF24L01+用 と SE8R01用 の2種類となっていたが、それらを統合して1種類にした。


【開発の経緯】
最初にポピュラーなnRF24L01+用を開発して、その後により廉価なSE8R01用を開発した。SE8R01はnRF24L01+の類似品との触れ込みなのだがキャリブレーションというおまじないをしないと動作しないのと、nRF24L01+より多くのレジスタが定義されているので別個のファームウェアとして開発した。しかし、その後の改善の結果、SE8R01用のファームウェアでnRF24L01+も正常に動作するようにできた。


【対応した内容】
ファームウェアではトランシーバの識別は行わず、SE8R01用のコードを実行している。

SE8R01は電源をオンしてから通信が開始するまで数秒掛かるため、ダミーデータを送信することで速やかに通信が開始するようにしている。しかし、nRF24L01+は受信FIFOがフルになると受信が詰まってしまうので、受信チェックの前に受信FIFOフルをチェックしてフラッシュするようにした。

SE8R01用に特化した設定はnRF24L01+に対しては無効果である。


【注意事項】
トランシーバは同じ種類のもの同士でないと動作しない。但し、nRF24L01+の出力強化版と非強化版の組み合わせは動作する。


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

実際のおもちゃの修理では、色んな要件が被さってくると思うので、カスタマイズが必要であれば 「故障したICやマイコンの代替品をお作りするサービス」 で依頼をして欲しい。


(重要)後日談】
当初は SE8R01 と nRF24L01+ とはインタフェースを共通化して同じファームウェアを適用していたが、トランシーバのバージョンによっては非互換があることが判ったので、その後は SE8R01 と nRF24L01 のそれぞれに専用のプロジェクトを作っている。詳細は 「2.4GHzラジコン用ファームウェアのnRF24L01+とSE8R01の統合版は失敗だった」 を参照。

  1. 2018/06/13(水) 17:45:15|
  2. 2.4GHzラジコン
  3. | コメント:0

PICプログラマーの機能改善(EEPROMの速度向上)

PICプログラマー
プログラマー外観
PICプログラマーと呼んでいるが、シリアルEEPROMやAVRもサポートしている。
当初の製作記事は ここ
その後の改善記事は、「PICプログラマー」 でブログ内を検索。


【改善事項】
シリアルEEPROMの読み書き速度を向上した。

1Mビットの24FC1025のフル書き込み/照合が改善前の41秒から、改善後は22秒に短縮された。読み込みは9秒で終わる。

【改善内容】
アクセス速度の遅いデバイスを考慮してSCLとSDAの信号タイミングを遅めに設計していたが、遅いものを今まで使うことがなかったので、400kbps以上のデバイスに合わせた。

PC側の制御ソフトで信号線の「セットアップタイム」の設定を可能としていたが、これも廃止した。

信号の速度が速くなったので、I2Cのプルアップ抵抗を3.3kΩに変更した。

【ダウンロード】
PICプログラマーの設計資料とソフトウェアは ここから ダウンロードできる。

PC側の制御ソフトはGUIとプログラマー制御の2つから成る。
①GUIを担うVBプロジェクトは「ISP」、実行ファイルは「ISP\bin\ISP.exe」

②プログラマー制御を担うVCプロジェクトは「ISPdll」、実行ファイルは「ISPdll\Release\ISPdll.dll」

プログラマー側の制御ソフトは制御用マイコンの型番により3種がある。
③18F14K50
ディレクトリは 「ISPpic18F14K50」
MPLABXプロジェクトは 「ISPpic18F14k50\apps\usb\device\cdc_basic\firmware\ISPpic18F14K50.X」
HEXファイルは 「ISPpic18F14k50\apps\usb\device\cdc_basic\firmware\ISPpic18F14K50.X\dist\LPCUSBDK_18F14K50\production\ISPpic18F14K50.X.production.hex」
USBドライバー組み込みに必要な inf と cat は 「ISPpic18F14k50\Windows」 にある。

④16F1459
ディレクトリは 「ISPpic16F1459」
MPLABXプロジェクトは 「ISPpic16F1459\apps\usb\device\cdc_basic\firmware\ISPpic16F1459.X」
HEXファイルは 「ISPpic16F1459\apps\usb\device\cdc_basic\firmware\ISPpic16F1459.X\dist\LPCUSBDK_16F1459\production\ISPpic16F1459.X.production.hex」
USBドライバー組み込みに必要な inf と cat は 「ISPpic16F1459\Windows」 にある。

⑤16F1454
ディレクトリは 「ISPpic16F1454」
MPLABXプロジェクトは 「ISPpic16F1454\apps\usb\device\cdc_basic\firmware\ISPpic16F1454.X」
HEXファイルは 「ISPpic16F1454\apps\usb\device\cdc_basic\firmware\ISPpic16F1454.X\dist\LPCUSBDK_16F1454\production\ISPpic16F1454.X.production.hex」
USBドライバー組み込みに必要な inf と cat は 「ISPpic16F1455\Windows」 にある。


今回のバージョンアップは上記の①②③④⑤のすべてが更新されているので、PC側の制御ソフトとプログラマー側のファームウェアをともに差し替える必要がある。

PC側の制御ソフトは、OSへのインストールは必要なく、任意の1つのフォルダにISP.exeとISPdll.dllをコピーするだけで良い。
VisualStudio2008のランタイムが無いと言われたら、ビルゲイツの指示に従って別途インストールする。

PICプログラマーを始めて導入するときにUSBドライバーの登録が必要な場合がある。USBドライバー本体はWindows標準のものを使用するので、inf と cat の所在のみをビルゲイツに伝える。

ハードウェアの設計書は「USB接続簡易共用プログラマー設計・回路図・配線図.xls」。
各デバイス毎のソケットアダプタ結線は、シート名「ソケット・・・」を参照。
  1. 2018/06/11(月) 09:36:14|
  2. プログラマー
  3. | コメント:0

「故障したICやマイコンの代替品をお作りするサービス」での要件提示

故障したICやマイコンの代替品をお作りするサービス」では依頼元から開発要件を提示していただくのだが、要件に漏れがあると不完全なファームウェアを提供することになってしまう。そこで、ファームウェアの種類ごとに要件のチェックシートを作っておこうと思う。

先ずは「ラジコンデコーダ」について考えた。この記事は随時ブラシアップして行く。


ラジコンデコーダ(デジタル式)の要件
①エンコード信号のレベル
・ターゲットマイコンに入力されるエンコード信号の論理極性(正論理/負論理)
・信号レベル(H/L)の電圧値
・立上り/立下りの特性

②ch番号設定
・ch番号設定の有無
・ch番号設定SWの信号

③フレームの全体像
・フレーム長[時間、ビット数]、繰返し周期
・フレーム開始/終了の見極め方
・捨てビットの有無

④エンコードルール
・ビット値0/1の見極め方
・操作に対するコードのビット位置とコード値

⑤STOP(END)コード
・コードの有無
・コード値
・繰り返し周期、回数

⑥ペアリングのルール
・コード
・タイミング

⑦上記①~⑥を示す信号波形
  1. 2018/06/09(土) 09:09:47|
  2. おもちゃ病院
  3. | コメント:2

スーパーショベル(CCP)(COB故障をPICで補完)の改善

故障したICやマイコンの代替品をお作りするサービス」 でラジコンショベルカーの故障COBをPICで補完するためのファームウェアを開発し提供済みだが、今回は要件をより合理的に変更してファームウェアを改善した。

【改善点】
①依頼元からはターゲットとして16F1705がご指定だったが、必要なポート数が少なくて、ピン数の少ない廉価なデバイスに変更した。12F509、tiny13Aの2種を新たに開発した。

②入力となるエンコード信号の立ち下がりが訛っていて、より安定な動作を担保するためtiny13Aではコンパレータ入力とした。


【設計】
①8ピンPICで最廉価なのが12F509(2018年秋月価格@50円)なので、これで前作と同等の機能を実現する。但し、前作の「ch選択信号出力」は必要性を感じない(僕の個人的見解)のでサポートしない。必要ならポートは空きがあるのでサポートは可能。

②12F509はタイマーがTMR0しかなく、割り込み機能もないので、TMR0のクロック周期を1usにして、エンコード信号のパルス巾計測と2msのキャタピラ駆動制御のタイミング検出を行うようにした。

③右キャタピラの駆動のみであれば10F322でも可能で、5円安くできる。しかし、左右のキャタピラの駆動仕様を合わせないとアンバランスになるので、10F322はやめた。

④ATtiny13Aはエンコード信号をコンパレータで受ける。リファレンス電圧は内部固定電圧の1.1Vとする。

⑤ATtiny13Aは割り込み機能があるのだが、初期設定やポートアクセスなどのハードウェア依存部分を除いて12F509とソースコード互換を保つ目的で、割り込みは使用しない。

⑥16F1705でも割り込みは必ずしも必要ではないので、依頼元へ提供したものとは別物として、今回のソースコードを共通化したものを開発することも考えたが、この要件で16F1705の選択はコスト的にあり得ないので、意味の無い開発作業はやめた。


【ダウンロード】
本ファームウェアの設計資料と開発プロジェクトは ここから ダウンロードできる。
  1. 2018/06/03(日) 16:09:48|
  2. マイコン換装
  3. | コメント:0

プロフィール

大泉茂幸

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

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

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

当ブログで公開している技術情報や成果物の複製、改変および再配布はフリーです。読者様のおもちゃ病院活動のお役に立てば幸いです。ご利用いただいた結果や感想等を記事へのコメントやメールでフィードバックしていただけると有難いです。なお、公開ファイルは最新版を載せているので、古い記事の内容から変わっている場合があります。

カテゴリ

おもちゃ修理技術 (124)
¦ ・電子オルゴール+音声再生 (52)
¦ ・音声再生・録音再生 (13)
¦ ・2.4GHzラジコン (35)
¦ ・レガシーラジコン (13)
¦ ・赤外線リモコン (4)
¦ ・RFID (3)
¦ ・タッチセンス (4)
ツール製作 (35)
¦ ・プログラマー (27)
¦ ・USB-シリアル変換 (3)
¦ ・その他のツール (5)
修理事例 (157)
¦ ・マイコン換装 (75)
¦ ・電子・電気修理 (59)
¦ ・メカ修理 (23)
製作記事 (5)
PIC開発 (4)
おもちゃ病院 (9)
ドクター研修会 (2)
未分類 (0)

最新記事

最新コメント

月別アーカイブ

訪問者数

検索フォーム

RSSリンクの表示

リンク

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

QRコード

QR