部品の働き
次に上げる主な部品の働きを知っていると回路図などを読んだりプログラムや回路を改造することもできてきます。また、今回部品は実績もあり、大事をとって、参考文献通りのものを使っていますが、理解が深まれば、同等品で代用できてくると思います。
(1)PICチップ(送受信両方)
プログラムを組み込め、プログラム通りにインとアウトの情報を制御してくれます。
今回使用するPICの型番は「PIC12F629」と呼ばれるものです。送信機側ではトレーナー端子から出てきた信号を受け取り、赤外線LEDに信号を送ります。受信機側では受光素子がキャッチした信号を取り込み制御を行います。
![](./pics/PIC12F629.GIF)
機能(特徴)
|
CPU |
最高速度 |
20MHz |
内蔵オシレータ |
4MHz |
プログラムメモリー |
1024x14ワード(フラッシュ) |
データメモリー |
64x8バイト |
EEPROMデータメモリー |
128x8バイト |
特殊機能レジスタ |
16 |
ハードウェアスタック |
8 段 |
周辺機能 |
I/Oピン数 |
6本 |
基本仕様 |
電源電圧 |
2.0〜5.5V |
難しく考えがちですが、
・まず、5Vの電池のプラスをVddにつなぎ、Vssから電池のマイナス極につなぐことで、このチップは動作します。
・つぎに、4番ピンのMCLRには信号を入力することができます。
・そして、2,3,5,6,7番ピンは信号を出力することができます。
・最後に、このチップはプログラムによって入力情報やタイマーを元に、出力情報を制御することができます。
というたったこれだけのことです。
(2)低電流正電圧3端子レギュレーター(送信機)
安定した直流電源を作ります。
今回使用するレギュレータは「78L05」と呼ばれ、3本の足があり,入力端子(IN)と出力端子(OUT)にはコンデンサ(0.01μ〜0.1μF)を取り付けます。
PICに安定した直流電流を送ります。
![](./pics/inv.GIF)
![](./pics/78L05S.gif)
わかりやすく描くと、次のようになると思います。
![](./pics/Simple78L05.GIF)
(3)赤外線発光ダイオード(送信機)
送信機側のPICで変調した信号を機体の受信機に向けて送ります。
今回使用するのは、赤外線投光器キット100個入りです。型番はSLR932AV-7Kです。
(4)DCDCレギュレーター(受信機)
低い電圧を高い電圧に上げてくれるチップです。
今回使用するDCDCレギュレーターは「LTC3200-5」と呼ばれるもので、2.7〜4.5Vの電圧を5.0Vに上げてくれるチップです。PICのチップの動作最低電力が2.5Vであるため、3.6Vのバッテリーが電圧低下で、この2.5Vより下になることを防ぐために電圧を上げます。
![](./pics/DCDC.GIF)
わかりやすく描くと、次のようになると思います。
![](./pics/SimpleDCDC.gif)
(5)FET(受信機)
ゲート(G)、ドレイン(D)、ソース(S)の3端子から構成される半導体素子で、G-S間電圧に従って、D-S間電流を制御する事が出来ます。これを使って飛行用モーターの回転を制御します。
今回使用するFETは「IRLML2502」と呼ばれるものです。
![](./pics/FET.GIF)
わかりやすく描くと、次のようになると思います。
![](./pics/SimpleFET.gif)
(6)赤外線受光素子(受信機)
発信された赤外線の信号を受け取り、PICチップの入力端子に信号を送ることができます。
今回使用する赤外線受光素子は「PNA4612M/PNA4614M
シリーズ」と呼ばれるものです。
送信機の原理
・RCプロポからの信号
プロポには2チャンネルとか4チャンネルなどといわれるものがありますが、これは一度にコントロールできる装置の数を表しています。たとえば、4チャンネルならば、スピードコントロール、ラダー、エルロン、エレベーターを一度に操れます。これらの信号はある一定の間隔で信号として出力されます。その一定間隔とは18msらしいのです、そうすると約一秒間に55回くらい信号情報が更新されることになります。
![](./pics/Propo1.gif)
この一回の信号のなかにプロポのいろいろな操作用のスティックの倒れ具合を数値として盛り込みます。信号にはONとOFFしかないので、最初にONからOFFになったときを1チャンネル目のスティックのことだとします。それからすぐにOFFからONになるのですがこれは今はあまり考えないでおきます。しばらくして、またONからOFFになる信号が起こります。これは2チャンネル目のスティック情報が始まったことになります。(これを繰り返します。)
このとき、1チャンネル目の情報がスタートして終了したわけですが、この時間がキーとなります。この時間の間隔はスティックの倒れ具合によって1ms〜2msの間で変化します。
![](./pics/Stick4Pulse.gif)
Futabaの場合、 |
上へ倒したとき |
1100μS |
中立のとき |
1520μS |
下へ倒したとき |
1940μS |
・赤外線発信用信号
次に信号を読み取る赤外線受光素子ですが、これはある決まった周波数で送られてきたパルスを受け取ると信号としてONをそれ以外をOFFとして出力するようになっています。そのため、この受光素子が信号と認識できる形式に送信機の信号を変調してあげなければいけません。
基本的にはONの信号を出したいときには、受け取る素子の周波数でプルプルとすればいいのです
それにもう少し信号を安定させるために信号の幅を大きくし、また、ONとOFFの間隔を同じにします。この信号にあわせて赤外線LEDを使ってハイパワーで光を発射すればいいわけです。
![](./pics/IR.gif)
プログラムの流れを簡単に書くと次のようなフローになります。
![](./pics/Flow.gif)
受信機の原理
受信はについては「toko's Home Page」の内容だけでなく、「電池とモーターで模型飛行機が飛ぶ」のHPのソースなども参考にさせて頂いています。
・受光素子による信号の再生
受光素子は特定の周期(38KHzなど)の信号を受けたときに5Vの値、それ以外は0Vの値を信号として出力するので、38KHzなどに変調された信号は受光素子によって元の信号に戻ります。
![](./pics/signal.gif)
・信号の解析
メインルーチンは受光素子から入ってきた信号から各チャネルの周期を取得するだけの処理です。ここに1μS毎に割り込みが入り、取得したデータを元に下記のアクチュエーターの制御を行います。
![](./pics/SigAnal.gif)
・アクチュエーターの制御
今回はラダーのみの説明になりますが、基本的にチャンネル数分この処理が増えるだけです。
分解能が5段階の時、次のように五回の割込により、1つの動作角度を示します。(一回の割込が1μSに一回発生するとして5μSで一回の動作角度を示すことになります。)
今回の設定
分解能 |
5段階 |
左へ最大にスティックを倒したとき |
1100μS |
スティックを中立にしたとき |
1500μS |
右へ最大にスティックを倒したとき |
1900μS |
機能 |
端子 |
1回目
(0μS) |
2回目
(100μS) |
3回目
(200μS) |
4回目
(300μS) |
5回目
(400μS) |
ラダー |
R1 |
1500μS以上ならON |
1600μS以上ならON |
1700μS以上ならON |
1800μS以上ならON |
1900μS以上ならON |
R2 |
1500μS以下ならON |
1400μS以下ならON |
1300μS以下ならON |
1200μS以下ならON |
1100μS以下ならON |
たとえばプロポのスティックを右に半分ほど倒して、1750μSの信号がでている場合、R1とR2の5μSの間の電圧の値は次のようになります。
![](./pics/coil1.gif)
R1 = 5V → 5V → 5V → 0V → 0V 平均すると 3V
R2 = 0V → 0V → 0V → 0V → 0V 平均すると 0V
反対にスティックを倒し、1150μSの信号がでるようにした場合のR1とR2の5μSの間の電圧の値は次のようになります。
![](./pics/coil2.gif)
R1 = 0V → 0V → 0V → 0V → 0V 平均すると 0V
R2 = 5V → 5V → 5V → 5V → 0V 平均すると 4V
スティックを中立にして1500μSの信号がでるようにした場合のR1とR2の5μSの間の電圧の値は次のようになります。
![](./pics/coil3.gif)
R1 = 0V → 0V → 0V → 0V → 0V 平均すると 0V
R2 = 0V → 0V → 0V → 0V → 0V 平均すると 0V
現実的な分解能を20段階として、20μSで一回なので、1秒間に5万回ほど繰り返しますのでほとんど平均値の電圧として扱うことができます。
・モーターの制御
モーターの制御も基本的にはアクチュエーターの制御と同じことをすればいいのですが、PICにPWM制御機能をもった型があり、今回選択したPIC12F683もこの機能をもっているので、プログラム構造が簡単になるため、制御方法を変えます。
PWMとはPulse Width Modulationの略で、要するに0〜255の値をセットすると出力側にONとOFFを切り替えるタイミングを制御することです。たとえば0をセットすると出力側には0Vが、255をセットすると5Vが出力されっぱなしになり、128あたりの値をセットするとONとOFFの時間をほとんど同じくらいの割合で、切り替えてくれます。そのため、見た目が2.5Vになります。この電圧をFETを使って大きな電力に変えてモーターに出力します。
モーター制御用の信号も1100μS〜1900μSの値で取得されるので、この値を0〜255に正規化した値をモータ制御出力にセットしてあげるだけです。
アクチュエーターの原理
ラジコンといえばサーボを使って機体をコントロールすることが当たり前ですが、超小型機をサーボを使ってコントロールすることは困難な面がたくさんあります。超小型サーボも現在では2g程度までになっていますが、高価なうえ、超小型機ではまだまだ重いという状況にあります。そこでマグネットアクチュエーターというサーボの代わりになるものが登場します。アクチュエーターはコイルの巻き数によって重量が異なりますが、だいたい1.0g程度の重さとなります。1.0gを切るサーボも近いうちに出現することでしょう。ただ、値段は桁違いに高いでしょう。
アクチュエータの原理は非常に簡単です。電線に電流を流すと磁界が発生します。この磁界を強くするためにぐるぐると同じ方向に電線を巻いたものをコイルといいます。このコイルが発生させる磁界(要するに磁石)を使ってサーボモーターの様な遠隔操作ができるようにします。
![](./pics/act.gif)
コイルの中には回転軸を持った磁石があります。この磁石がコイルの発生させた磁界に反応して反発と引合いで回転します。この回転する力を利用します。ちょうどテスター(アナログ)のメーター針の構造に似ています。基本的にヒンジなどの弾性を用いてセンターリングをとっており、電流値とヒンジの弾性の関係により、プロポーショナルな動作をします。
どのくらいの巻き数にするかは制御できる電流と電圧で変わってきます。PICから直接コントロールしようとする場合、出力電位差は最大5Vになります。また、PICの許容電力量は25mAなのでオームの法則から5V÷0.025A=200Ωとなります。コイルをぐるぐると200オームになるまで巻く必要があります。(だいたいですが)そのため、最近は0.05mmのマグネットワイヤーを使用される方が多いようです。