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進変換で大変な勘違いをしていたことがわかり、ソースを修正版に差し替えました。
コメント
コメントする
- 匿名でのコメントは受け付けておりません。
- お名前(ハンドル名可)とメールアドレスは必ず入力してください。
- メールアドレスを表示されたくないときはURLも必ず記入してください。
- コメント欄でHTMLタグは使用できません。
- コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
- コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。
- 投稿ボタンを押してエラーがでなければ、投稿は成功しています。反映されるまでには少し時間がかかります。