昨日作りました。

WindowsにはSendKeysという機能があって、仮想的にキーボードを操作する事ができます。

Serial2SendKeysは、シリアル通信から受信したテキストに基づいて、キーボードを操作するproxyプログラムです。

Serial2SendKeys

つまりこれを使うと、マイコンからシリアル通信で

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と同じ事ができるはず。