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

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

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. 製作記事
  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の区別とターゲットのデバイス名を織り込んでいる。
  1. 2018/06/13(水) 17:45:15|
  2. 製作記事
  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

I2CインタフェースEEPROM(24シリーズ)ライターの製作

PIC電子オルゴールで外付けのEEPROMから音声再生をさせる事例を公開したら、方々からEEPROMへの書き込み手段についての問い合わせを多くいただいた。PICユーザの多くはPICkit3を使っていると思うが、PICkit3では24シリーズの書き込みができない。ドキュメント「PICkit3アプリケーション」のReadMe.txtによると、24シリーズに書くためにはPICkit3の基板から部品を2個(TR3とR50)取り外す改造を行うように指示されている。しかし、実際にそれをやる人は少ないのではないかと思う。

I2C_EEPROMライターPICkit3改造

24シリーズに書き込みができるライターが出回っている。例えば下記は24と25に対応していて、250円くらいだ。
I2C_EEPROMライターCH341A


僕の PICプログラマー は24と25に対応しているので、EEPROM書き込み環境としてお薦めするが、製作がやや面倒だ。そこで、PICプログラマーから24の書き込み機能のみを抜き出して、超簡易な 「I2C_EEPROMライター」 を作ったので紹介する。

今流行りの16F1454(@130円2018秋月価格)を使って廉価にした。200円くらいで作れる。

【外観】
I2C_EEPROMライター外観

【回路図】
I2C_EEPROMライター回路図

USBの+5VからLEDのVf分を降下させて、3.3Vを作っている。デバイスによっては動作電圧が3.6V以下のものがあるので、このようにしている。どうしても5Vで書きたいときはショートピンを挿す。

【配線図】
I2C_EEPROMライター配線図

【ソフトウェア】
PC側の制御ソフトはPICプログラマーの 「ISP」 をそのまま使う。

ライターのファームウェアはPICプログラマーの16F1459のものを16F1454に移植した。ピン数が少なくなるので、buildエラーにならないだけの必要最小限の変更に止めた。

【ダウンロード】
詳細な製作資料とファームおよびPC側制御ソフトの開発プロジェクトは ここから ダウンロードできる。

PC側の制御ソフトはGUIとプログラマー制御の2つから成る。
①GUIを担うVBプロジェクトは「ISP」、実行ファイルは「ISP\bin\ISP.exe」
カレントディレクトリを 「ISP\bin」 に置いて起動すればよい。

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

プログラマー側の制御ソフトは
③16F1454のファームウェアでMPLABXプロジェクトは 「ISPpic16F1454\apps\usb\device\cdc_basic\firmware\ISPpic16F1454.X」
USBドライバー組み込みに必要な inf と cat は 「ISPpic16F1454\Windows」 にある。

【注意事項】
PC側の制御ソフトでは24シリーズ以外もデバイスの選択ができるが、それを選択してプログラムを実行すると爆発する恐れがあるので注意されたい。
  1. 2018/05/01(火) 19:15:59|
  2. 製作記事
  3. | コメント:0

PICプログラマー(18F14K50)のファームウェアのMPLABXへの移行

プログラマー外観

前作の USB接続PICプログラマー は制御マイコンに18F14K50を使っているが、開発開発環境が旧MPLABで、アプリケーションライブラリも古いものを使っている。それで、今回はMPLABXとMLAへ開発環境の移行を行った。

開発環境の移行のみで、プログラマーとしての機能は変わらない。

【新環境】
・MPLABX Ver4.10
・XC8 Ver1.45
・MLA v2017_03_06

【ダウンロード】
詳細な製作資料とファームウェアおよびPC側制御ソフトの開発プロジェクトは ここから ダウンロードできる。

ディレクトリ 「ISP」 はPC側ソフトのGUIを実現するVBのWindowsアプリケーション
VBプロジェクトは 「ISP\ISP.sln」
カレントディレクトリを 「ISP\bin」 に置いて起動すればよい。

ディレクトリ 「ISPdll」 はデバイスのプログラミング仕様を実現するC言語のDLL
VCプロジェクトは 「ISPdll\ISPdll.sln」

ディレクトリ 「ISPpic18F14K50」 は今回の新環境へ移行したプログラマー側のファームウェア
MPLABXプロジェクトは 「ISPpic18F14k50\apps\usb\device\cdc_basic\firmware\ISPpic18F14K50.X」
USBドライバー組み込みに必要な inf と cat は 「ISPpic18F14k50\Windows」 にある。
  1. 2018/04/29(日) 09:34:56|
  2. 製作記事
  3. | コメント:0
次のページ

プロフィール

大泉茂幸

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

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

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

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

最新記事

最新コメント

月別アーカイブ

カテゴリ

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

訪問者数

検索フォーム

RSSリンクの表示

リンク

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

ブロとも申請フォーム

この人とブロともになる

QRコード

QR