※需要があるかどうか、かなり疑問ですけど
[レイヤー1]
赤外線LEDの波長は、一般的に入手しやすい940nmのモノで動作できてます。
データは一般的なテレビリモコンと同じように、0と1をパルス幅(というか、パルスとパルスの間隔というか)で判断してます。0が短く1が長いのもテレビと一緒。ただ、長さはテレビリモコンとはちょっと違ってます。
もう少し具体的に書くと、赤外線をONしている時間は0を送るときも1を送るときも共通で、約390usec。その後のOFFの時間が0を送るときには約210usecで、ONを送るときには約600usec。整理すると、
0送信時 : ON→390usec OFF→210usec
1送信時 : ON→390usec OFF→600usec
ただし、RCgroupsのMLでの情報では、ON時間が270usec程度、0の時のOFF時間が330usec程度、1の時のOff時間が730usec程度なので、1bitのデータを送信する時間が、0の時は約600usecで1の時は1000usec程度であれば、良いのかもしれません。
また、ONの時間はこれまた通常のリモコンと同じく38kHzの周波数でON/OFFを繰り返しています。つまり、390usecの間に約15回、ON/OFFを繰り返しています。
[レイヤー2]
フレームのフォーマットは、フレームの開始時に2msecのON→2msecのOFFがあり、その後データが続きます。最終ビットの幅を認識させるために一番最後にONのパルスが1発必要です。
__|~~~~~~|______|~~|__|~~|____|~~|____|~~|__|~~|__ ・・・・|~~|__ | 2ms | 2ms |0.6ms| 1msec | 1msec |0.6ms|0.6ms| ・・・・
と、こんな感じです。データは全部で8×4の32bit。32ビット送信後は100msec程度の無送信区間があります。
つまり、操作は1秒間に約10回だけしか効かないということになります。といっても、操作していて違和感とかはありませんです。
[レイヤー3]
8ビットのうち、下位7ビットでプロポからの制御値を送信してます。上位1ビットは通常0で、3バイト目だけチャンネルによって0/1が変わります。
|0YYYYYYY|0PPPPPPP|CTTTTTTT|0AAAAAAA|
こんな感じで、Y→ラダー、P→エレベーター、T→スロットル、A→調整ツマミの値となってます。Cはチャンネルで多分0がAch、1がBch。
また、Aの値はs800Gではエルロンの値となっているようで、s800Gのプロポでs107Gを操作するとエルロン操作しているのにラダー操作したのと同じ動きをするようです(こちらもRCgroupsの情報)。
また、制御値は最大が127、中心が64、最小が0。値の大きさと動きの方向は以下の通り。
Y 右→小 左→大 P 前→小 後→大 T 遅→小 速→大 A 右→小 左→大
---
と、こんな感じです。
0 件のコメント:
コメントを投稿