Arduino LeonardでMS-Excelを操作

Arduino LeonardはUSB キーボードとマウスの動作をエミュレートすることが出来ます。 そこでArduino LeonardからPC (Windows 7)を操作して、Microsoft Ecxelを起動し、時刻とアナログ入力の値をセルに入力させてみました。

やっていることは簡単で、Windowsキー→excelを検索して起動してから、 数値(時刻)を入力→タブ→数値(アナログ入力)を入力→エンターを繰り返しています。 実用性はありません。

ほかのスケッチを書くときに、Leonardがキーボードを操作するのが邪魔な場合は、リセットスイッチを押したままUSBケーブルをつないでUploadボタンをクリックしてから、リセットスイッチを離します。

スケッチ

int delayCounts = 0;

void setup()
{
  Keyboard.begin();
  Mouse.begin();
}

void loop()
{
  if (delayCounts <10) {
    delay(1000);
    delayCounts ++;
    return;
  }    
  Keyboard.press(KEY_LEFT_GUI);  // windows key (left)
  Keyboard.releaseAll();
  Keyboard_write("excel\n");
  
  Mouse.move(0, -100, 0);
  delay(1000*10);

  for (;;) {
    char buf[100];
    
    snprintf(buf, sizeof(buf)-1, "%d", millis()/1000);
    Keyboard_write(buf);
    Keyboard.write(KEY_TAB);
    snprintf(buf, sizeof(buf)-1, "%d", analogRead(0));
    Keyboard_write(buf);
    Keyboard.write(KEY_RETURN);
    
    delay(1000);
  }
  while(1){}
}

void Keyboard_write(const char *p)
{
  while (*p>0) {
    if (*p == '\n')
      Keyboard.write(KEY_RETURN);
    else
      Keyboard.write(*p);
    p ++;
  }  
}

ダウンロード

  • ExcelInput-120716a.zip

    変更履歴

    戻る
    コメントは E-mail で: mnoriaki < at mark > gmail.com
    (本を出しました: はじめてのPICアセンブラ入門 | センサとデジカメで遊ぶ電子工作入門 | 玄箱PROと電子工作で遊ぼう )
    Copyright (c) 2012, Noriaki Mitsunaga