カメラロボ (その2)

Trevaで取り込んだイメージデータをPCに送信していますが、5秒以上かかっていたので、高速化に取り組んでみました。


【やったこと】
XBeeのボーレートを38400bpsから115200bpsに変更
・ハードウェアフロー制御でCTS信号をチェックするようにした。
CTSが立っていないのにデータをロストすることがよくあったので、送信時に少しWAITを入れてあげると改善しました。(この辺は良く分かりません。)


フロー制御は以下のように行いました。

  • XBeeCTS端子をマイコンの適当な入力端子に接続
  • XBeeCTSは反転しているので、LOWの時に送信し、HIGHになったら送信を待つ。
  • なお、XBeeはデフォルトでCTSフロー制御がONになっています。確認方法はX-CTUでDIO7が1-CTS FLOW CONTROLになっていればOKです。
  • しかし、CTSの効果は微妙で、上記にも書いたWAITの方が効きました。


上記で、80Kbpsぐらい出るようになりました。
Trevaのイメージデータは96*72*2 (約14KB)ですので、1.5秒ぐらいでデータの送信が完了します。1.5秒は短いようですが、実際に見てみるとかなり遅いです。
また、間に壁等の遮蔽物があると、かなりのデータロストが発生します。


やはり、XBeeでリアルタイムにイメージデータを送ろうというのは少し無理があるようです。
定期観測ぐらいであれば問題ないでしょうが。。。
無線LANが本命でしょうか?


とりあえず、高速化はこれぐらいであきらめて、解像度を減らすなどデータを減らすことを試してみます。(既にかなりの低解像度なのですが。)


あと、上位階層でデータロスト対策を考えます。(今の仕組みだとデータロストすると待ちに入って止まってしまうので)


カメラといえばモッパーさん(http://moparlab.sblo.jp/article/40142757.html)も試されているTCM8230MD/TCM8240MDにも興味があります。このスペックのカメラが約\1,100で売られているのですから、もうTrevaを使っている場合ではないですね。
コントロールFPGACPLDを使われている方が多いようですが、マイコンでもSH-2Aぐらいの性能とメモリー容量があればなんとかなるのではないかと考えています。