昨日作りました。
WindowsにはSendKeysという機能があって、仮想的にキーボードを操作する事ができます。
Serial2SendKeysは、シリアル通信から受信したテキストに基づいて、キーボードを操作するproxyプログラムです。
つまりこれを使うと、マイコンからシリアル通信で
Serial.println(“zanmai!{ENTER}%{TAB}”);
と送るだけで、パソコン側のアクティブな画面に「zanmai!」と打ち込まれ、エンターキーが押され、さらにAlt+Tabでウィンドウが切り替ります。(上はArduinoの例)
FNCCも便利だけど、ほとんど全てのプログラミング言語はキーイベントの取得ができるのでSerial2SendKeysの方が楽な場合が多いでしょう。
また、LivedoorReaderなどを電子工作とマッシュアップする事も簡単です。
(ただしパソコンからマイコンへの送信はできません)
■ダウンロード
・Serial2Sendkeys ver.1.00
・Source Code (VisualStudio2005pro+C#2.0)
・archive
■使い方
“Connect”ボタンでシリアルポートと接続してから、
マイコンのシリアル通信で “\r\n” 区切りでキーコードを送って下さい。
例: “ABC\r\n”
(ABCが順に入力されます)
ArduinoならSerial.println()メソッドを使えば良いです
例: Serial.println(“ABC”);
■キーコード
ABC => AとBとCが順に押されます
{TAB}{ENTER} => Tabを押した後Enterキーが押されます
%{TAB} => Alt+Tabが同時に押されます
詳しくは下記を参照して下さい
・MSDNライブラリ SendKeys メソッド
・緑のバイク ★ 初めてのC# ユーザ入出力
■動作環境
Microsoft .NET Framework2.0が必要です。
起動しない場合は[スタート]→[Windows Update]を全部インストールしてから
下記をインストールして下さい。
.NET Framework2.0
・日本語 Language Pack (32ビット版:x86)
・再頒布可能パッケージ(32ビット版: x86)
をインストール
また、WindowsXP以前のOSではそれでも起動しないかもしれません。
これもインストールして下さい。
.NET Framework1.1
■マイコン側サンプル
Arduino 0007 Alpha版
これでzanmai!と書いてエンター押して、alt+tabで画面切り替えます。
Serial.begin(9600);//9600bpsに設定
Serial.println(“zanmai!{ENTER}%{TAB}”);//送信
AVRマイコンでなら適当にこのblog内を検索して(mega8とか90s4433とか)、それぞれのマイコンのプログラムで usart_sendStr() という関数を使っていると思うのでそれを使って下さい。
一応
usart_sendStr(“zanmai!{ENTER}%{TAB}\r\n”);
でArduinoと同じ事ができるはず。