FC2ブログ

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

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

2.4GHzラジコン用ファームウェア製作(16F18325をサポート)

【前振り】
2.4GHzラジコンに限らず、僕のファームウェアでは全般的に16F1705使ってきた。コストパフォーマンスが良かったからだ。しかし、以前は100円(秋月2017年)だったが、今は110円(DIPタイプ秋月2018年)に値上がっている。おもちゃの患者さんとしては10円でも安い方がいいと思うので、100円(秋月2018年)の16F18325をサポートした。これでサポート済みのPICは、16F1503、16F18325、16F1705の3種になった。

と言うことで話は終わってしまうのだが、それでは味気ないので、今回の移植作業の状況でも。


【移植作業】
トランシーバへのアクセスエンジンは同じだし、デモボードの扱いも既存踏襲なので、PICの差異を吸収するだけだ。従来は16F1503と16F1705をサポートしていたので、16F18325に近しい方の16F1705のソースコードをベースに書き換えた。16F1705との違いは

・オシレータ設定 → OSCFRQの設定を追加
・PWMモジュールの番号の値 → PWM3、4をPWM5、6に変更
・内部プルアップの設定 → OPTION_REGのnWPUENビットが無くなり、WPUxのみで設定

上記を変更して、SE8R01(含むnRF24L01+)、CC2500はスンナリ動いた。しかし、A7105が送信側、受信側ともサッパリ動かない。RFチェッカーでモニタすると、送信時間が短くなっている。トランシーバへの設定は何も変更していないので???だ。

原因はA7105のSPIはMISOとMOSIがピンを共用していて、MISOのピン割当ての定義(#define)がそのようになっていなかったことだ。MISOは空きピンに定義されていた。

今回の移植作業は、「ターボ機能の仕様変更」(後述)も併せて行った。これは先にSE8R01で行ったので、移植作業はSE8R01と16F1705のソースコードをベースにして、それを他のトランシーバ、そして他のPICへとコピペして行った。16F1503に対しては、ピン割り当てを含む構成定義の部分を16F1503の既存コードから戻したので正しく書き替えられたが、16F18325は新規だったので、違いを意識していた部分のみを個別に書き換えていた。そのときにA7105のヘンなSPIを失念してしまった。

MISOが空きピンに定義された結果、空きピンはL出力設定のため読み込みデータは常に0となっていた。MISOをセンスするのはレジスタの読み込み時で、送信側ではキャリブレーションと送信の実行完了のチェックに使っていた。実際にはまだ実行中なのに完了したと誤認識していた。そのため、送信時間が短くなってしまい、データペイロードが尻切れトンボになってしまったのだ。

以上がA7105で手古摺ったことの顛末で、次は「ターボ機能の仕様変更」の話に移る。


【ターボ機能の仕様変更】
フルアクションラジコンではターボ機能を搭載したものがあり、僕の2.4GHzラジコンでもターボ機能を搭載しているのだが、ターボのオン/オフのビットをデータペイロードのラジコン操作データの部分ではなく、制御タイプを設定するバイトに置いていた。これは、制御タイプを動的に変更するデモ向けの機能をターボボタンの操作で行う仕組みにしていたからだ。機能追加を重ねる過程でこのような間に合わせ的な設計をしてしまったのだが、ずっと気になっていた。それで、今回はターボのオン/オフをCH3の制御値に設定することにした。フルアクションの制御タイプでは、CH1が前後進、CH2が右左折、CH3がターボのオン/オフになった。これで気持ちは晴れ晴れスッキリした。プロポ制御タイプとESC制御タイプではターボ設定はあまり意味はないが、CH3に設定している。なお、この仕様変更は内部の処理の是正のみなので、回路や操作には影響はない。但し、送信側と受信側は共に今回のバージョンを使う必要がある。


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

SE8R01 と nRF24L01+ とはトランシーバとのインタフェースが共通化されているので、SE8R01のプロジェクトを共通に利用する。nRF24L01専用のプロジェクトは無い。

A7105 と CC2500 は専用のプロジェクトを利用する。

プロジェクト名に トランシーバ名、TX/RXの別、PIC型番 を織り込んでいる。
関連記事
スポンサーサイト
  1. 2018/09/14(金) 08:02:47|
  2. 2.4GHzラジコン
  3. | コメント:0
<<PIC電子オルゴールVer5_7で大容量SPIフラッシュメモリ(W25Qxx)をサポート | ホーム | アンパンマンことばずかんのセンサー信号>>

コメント

コメントの投稿


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

プロフィール

大泉茂幸

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

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

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

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

カテゴリ

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

最新記事

最新コメント

月別アーカイブ

訪問者数

検索フォーム

RSSリンクの表示

リンク

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

ブロとも申請フォーム

この人とブロともになる

QRコード

QR