前回の実験ではTWE-Liteの標準アプリを用い、それなりに動作はしましたが微妙な遅延が気になりました。 そこで今回は最低限の遅延で動作する様、新たにTWE-Liteのアプリを作成してみました。
構想
TWE-Liteにアナログジョイスティックやボタンを接続し、その値を電波で飛ばします。それを受信側のTWE-LiteでUARTの信号に変換してPIC18F14K50に渡します。前回と違うのは受信側のTWE-LiteとPIC18F14K50の間をPWM→AD変換ではなくシリアルで直接伝える点で、無駄をなくした分反応が早くなる事を期待しています。
無線には下のデータが流れます。またTWE-LiteとPICマイコン間の通信も全く同じフォーマットが流れます。先頭のR::に続く2桁の16進数はボタンの状態、続く3桁の16進数×4はアナログ軸の状態です。
R:01:3ff:3ff:3ff:3ff R:00:3ff:3ff:3ff:3ff R:01:040:0C0:3ff:3ff R:01:040:0c0:3ff:3ff
TWE-Liteのプログラム
TWE-Liteは搭載されたマイコンのプログラムを書き換える事が出来るという特徴がありますが、このプログラムの作り方が結構分かりづらく、一度挫折した事があります。今回はDSAS開発室の部屋の記事を参考にさせて頂きました。このサイトはLチカから始まって基本的なところを説明してあり私でも理解できました。 但し今回の実験ではペアリングの設定処理は省略しており、チャンネルやアプリケーションIDはハードコーディングしています。
PIC18F14K50のプログラム
OensStickLiteのファームを改造しています。OpenStickLiteではマイコン内蔵のADCやGPIOの状態を取り込んでいましたが、これらをUART入力に変更します。
UARTからは上に記したフォーマットでデータを受け取り、これをジョイスティックの状態としてUSBに流します。
実行結果
前回の標準ファーム使用時よりだいぶ早くなっています。無線を使わないときと比べると微妙な遅延はありますが、まあこんなもんではないでしょうか。
今回は遅延確認だけを目的としているので公開するにはまだ色々と変更が必要です(ペアリングのあたりとか、コンフィグツールとか・・)。
BTLE化
並行してBluetooth化も検討していますが・・・なんか難しいです。先日から写真の本を読んでいますが、これでで基本的な知識を付けた上で公式サイトの資料を読む必要があり、ここでまた英語を頑張る必要があります。いつ完成するかわかりません。
これまたぼちぼちやっていこうと思います。
最近は「ぼちぼち」ばっかりです。「ほいほい堂本舗」ではなく「ぼちぼち堂本舗」にしようかと思います(ウソです)。
こんにちは。MEDです。
遅くなりましたが今年も宜しくお願い致します。
Bluetoothの方はぼちぼちでお願い致します。
また、フォースフィードバックの方も期待しております。
MEDさん、今年もよろしくお願いいたします。
フォースフィードバックですねえ~。
これまたぼちぼち頑張ります(えっ英語が・・・)。
ピンバック: TWE-Liteプロポ化計画 | ほいほい堂blog