FC2ブログ

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

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

2.4GHzラジコン用ファームウェア製作(ESC対応)

【前振り】
当ブログの記事 「2.4GHzラジコン用ファームウェアのデモ」 に対してESC機能も内蔵して欲しいとの要望を受けた。折角PICで構成しているのだから、機能と性能の限りトコトン使ってあげないとPICに申し訳ないということで、モーターの正逆転PWM信号を出力する機能を追加した。これにモータードライバを付ければESCが実現できる。


【ファームウェアの実現範囲】
RFトランシーバでやり取りするデータペイロードは8chデジタルプロポを想定して9バイト長にしているが、デモボードとしては14ピンPICを使っているため、2chを実装している。

制御タイプは、フルアクション制御、サーボ制御、ESC制御のうち1つを各ch毎に決めることができる。

デモの実演を想定して、実行開始時および実行中にでもボタン操作で制御タイプを設定する機能を設けている。おもちゃ修理に応用する場合は制御タイプを固定するように、制御タイプの設定機能を殺して、目的の制御タイプを初期値として与えるようにコードを書き換えればよい。


【PWMのタイミング】
・サーボパルスの生成

サーボパルスの標準仕様は周期20msに対してパルス巾は1~2msである。PIC16FのPWMは10ビットなので、PWM周期を20msにすると1ビットは20usになり、サーボパルスの1msに対して2%の分解能になる。もう少し分解能を稼ぎたいので、少し工夫をする。

PWM周期をサーボパルスの1/nに設定し、n周期中の1周期だけPWMのパルスを出力し、残りの周期はパルスを止める。PWM周期はサーボパルス巾に近い方が分解能が高められるが、クロックとプリスケーラの選択条件の中では Fosc=16MHz、プリスケ=1/64、PR=249 の設定で 周期は4msになり、これがベストだ。分解能は 4us になる。4ms以内にソフトでPWM出力を有効/無効に設定しないといけないが、この程度はメインループの中で十分に実行可能である。


・モーター制御PWMの生成

PWMモジュールが複数あっても廉価PICの宿命でPWM周期は共通になる。従ってモーター制御のPWM周期は4msになる。

一般的なモータードライバは正転と逆転の入力端子が分かれているので、PICからは別ピンに出す必要がある。この切り替え方法を考える。16F1503はPWMが4個あるので、正転用と逆転用にPWMを括り付けて、2ch分が賄える。16F1705はPWMが2個しかないので、各chに1個を割り当ててPPS機能を利用して正転用と逆転用の別のピンに出力する。

正転と逆転が切り替わるときは、デューティ0の1周期を設けることで貫通電流を抑止する。

16F1705で考慮しないといけないことは、PWMデューティの設定レジスタにはバッファがあるのでPWM周期の切れ目でデューティ値が切り替わるのだが、PPSはリアルタイムに切り替わってしまうことだ。そのため、正転と逆転が切り替わるときに設けるデューティ0の周期にPPSを変更する。


【RFトランシーバ】
対応するRFトランシーバは以下のとおり。

nRF24L01+(出力強化版と非強化版)

SE8R01

A7105

CC2500


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

受信側
2.4GHzラジコン用ファームウェア製作(A7105)受信側

回路図
下図は SE8R01(DIP)の送信側 (nRF24L01+(DIP)と共通)2.4GHzラジコンデモボード回路図(SE8R01・nRF24L01+DIP)送信側
16F1503 は 16F1705 に差し替えられるが、ファームウェアはそれぞれのプロジェクトのものを使うこと。


下図は SE8R01(DIP)の受信側 (nRF24L01+(DIP)と共通)2.4GHzラジコンデモボード回路図(SE8R01・nRF24L01+DIP)受信側
16F1503 は 16F1705 に差し替えられるが、ファームウェアはそれぞれのプロジェクトのものを使うこと。


下図は SE8R01(SMD)の送信側 (nRF24L01+(SMD)と共通)2.4GHzラジコンデモボード回路図(SE8R01・nRF24L01+SMD)送信側
16F1503 は 16F1705 に差し替えられるが、ファームウェアはそれぞれのプロジェクトのものを使うこと。


下図は SE8R01(SMD)の受信側 (nRF24L01+(SMD)と共通)
2.4GHzラジコンデモボード回路図(SE8R01・nRF24L01+SMD)受信側
16F1503 は 16F1705 に差し替えられるが、ファームウェアはそれぞれのプロジェクトのものを使うこと。

下図は A7105(SMD)の送信側2.4GHzラジコンデモボード回路図(A7105SMD)送信側
16F1503 は 16F1705 に差し替えられるが、ファームウェアはそれぞれのプロジェクトのものを使うこと。


下図は A7105(SMD)の受信側
2.4GHzラジコンデモボード回路図(A7105SMD)受信側
16F1503 は 16F1705 に差し替えられるが、ファームウェアはそれぞれのプロジェクトのものを使うこと。

下図は CC2500(SMD)の送信側
2.4GHzラジコンデモボード回路図(CC2500SMD)送信側

下図は CC2500(SMD)の受信側
2.4GHzラジコンデモボード回路図(CC2500SMD)受信側
16F1503 は 16F1705 に差し替えられるが、ファームウェアはそれぞれのプロジェクトのものを使うこと。


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

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

A7105 と CC2500 は専用のプロジェクトを利用する。
関連記事
スポンサーサイト
  1. 2018/07/02(月) 19:35:14|
  2. 2.4GHzラジコン
  3. | コメント:0
<<2.4GHzラジコン用ファームウェア製作(CC2500) | ホーム | 2.4GHzラジコン用ファームウェア(A7105)>>

コメント

コメントの投稿


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

プロフィール

大泉茂幸

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