October 23, 2008

FTDIチップ経由でマイコン等と通信するためのCGI

Linux時計ガジェットChumbyからFTDIのUSBシリアル変換チップでマイコンをコントロールしようと企んでいます。そこで、大本のコントロールはChumby上で実行できるFlashを考えているのですが、Flashからハードウェアを直接叩くことが満足にできにないので、間にCGIプログラムを噛ませることにしました。そこでできたのが今回のプログラムです(車輪の再発明な気もしないでもないですが、笑)。

ソースはftdi_cgi.cppで、C++で書いてあります。C++ということでバイナリ効率が物凄く悪い(40KBytes近くになりましたorz)ですが、動けばいいので気にしていません。クロスコンパイラのg++(以前の記事『CygwinでChumbyの開発環境』で開発環境を作っているならarm-linux-g++)でコンパイルしてChumbyの/psp/cgi-bin/に転送後、ブラウザからURLを適当に叩いて動作テストをしましたが、動いているようです。

非常に単純で、URLに送信や受信設定を書いて送ると、ポートをその通りに制御するまでのプログラムです。例えばhttp://cumby_url/cgi-bin/custom/ftdi_cgi?to=10&bl=0&push=00010203&pull=4のようなURLでアクセスすると、読み出しタイムアウト10[0.1sec]、最低読み出し待ち文字0バイト、送信文字列4バイト{0x00, 0x01, 0x02, 0x03}、受信期待文字バイト数4バイト、といった具合です。

次はFlashなので、ActionScriptを久しぶりにやるか、といったところです。

※Chumbyでも使えるもっといい方法があるようですぜ
※※(2008/12/9) 16進変換で大変な勘違いをしていたことがわかり、ソースを修正版に差し替えました。

10:53 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | この記事をdel.icio.usでブックマーク | トラックバック
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/670
コメント
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。