2008/11/11
PCM信号をデコードすることができたので、FMS用のアダプタを作ってみました。
FMSをインストールすると、Docディレクトリが生成され、その中の
”readme_en.htm”というファイルにFMSのプロトコルについての
記載があります。
19200 baud
8bit data
1 stop bit
no parity
pulse length | converted to |
760us | 0x00 |
1528us | 0x80 |
2284us | 0xFE |
PCM信号をデコードして得た各チャンネルのデータを、このフォーマットに
合わせてシリアルで送り出してあげればよいはずです。
ソースコードとHEXファイルです。
ソースコードはfreeで使えるCC5Xでコンパイル可能です。
pcmdecode.c
pcmdecode.hex
回路図はトレーナー信号測定と同じものです。
実験レベルなので、+5V電源は実験用電源から供給しています。
実用的にするには、シリアルの信号線から+5Vを作るようにすると
良いでしょう。PICも12F675のような8pinタイプにすると小さくできます。
PMCのデコードを試していたときは 16F88をEXT16MHzで動かして
いましたが、simで時間を測定しているとどうやらINT8MHzでも
大丈夫そうでしたので、今回は少しでも部品を減らすために
INT8MHzにしてあります。
トレーナー信号の測定
で使ったAcknowrich.exeで、シリアルデータを受けたところです。
最初のデータであるFFに続いて、4Byteのデータが並んでいます。
一つ目から順に、THRO、AILE、RUDD、ELEVのデータとなっています。
データを受けたときに送信機の左側のスティックを動かしていたので
RUDDとELEVのデータが変化しています。
実験の写真もFMSの画面もありませんが、うまく動作しました。
FMS2.0 Alpha8.5で試しています。もちろん送信機(JR-PCM9X)は
PCMモードです。
ノーマルだと敏感すぎて操縦しにくいので、FMSの設定でEXPに
チェックを入れておくとちょうど良い具合です。
機体によっては、"I"キーでスタートしたときに少しだけ
スロットルを開けておかないと、動き出さないものがあるようです...
どうしてかは調べていません。