6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

littleBitsAdvent Calendar 2016

Day 15

littleBits Arduinoモジュールで特定文字のキー入力補助を行う

Last updated at Posted at 2016-12-14

この記事はlittleBits Advent Calendar 2016の15日目の記事です。

littleBits Arduinoモジュールで特定文字のキー入力補助をしてみます。

しくみ

ArduinoをPCに認識させるとお気づきかもしれませんが、実は一部のArduinoボードはマウスやキーボードとしても認識されます。

実際、Arduinoのリファレンスを見るとキーボードやマウスを扱うライブラリがあります。

Arduino - MouseKeyboard

littleBits Arduinoモジュールを認識させるときも、中身はArduino Leonardoなので実は同様にマウスやキーボードとしても認識されているので操作が可能です。

いままで、やりたいのにやったことがなかったのでやってみます。

課題

さて課題です。

突然ですが、私、自著の書籍のプロフィールにウォンバット好きと書くくらい好きでして、毎日1ウォンバットをTumblrに予約投稿すべく、いろいろなところのウォンバット写真を見て回りTumblrシェアしています。

そのときのTumblrのシェアするときの画面はこんな感じです。

image

こちらでタイトルや写真などは自動で引き継がれるのですがひとつだけ手入力の箇所があります。

それは、タグ入力。

image

いつもどこかにwombatを打ち込んでコピーペーストしているのですが、これを特定文字のキー入力補助として行えないかという実験をしてみます。

用意

littleBitsはこのような構成にします。

image

押して反応する役目のボタンモジュール、押されたかの反応をわかりやすくするLEDモジュール、Arduinoモジュールの構成でPCにつながります。

プログラムを書いてみる

さて早速プログラムを書いてみます。

キー入力は以下の関数を使えばよいそうです。

Arduino - KeyboardWrite

その上で、wombatを入力させるプログラムを書きます。

#include <Keyboard.h>

void setup() {
    pinMode(A0, INPUT);
    Keyboard.begin();
}

void loop() {
  if( digitalRead(A0) == HIGH ){
    Keyboard.write('w');
    delay(10);
    Keyboard.write('o');
    delay(10);
    Keyboard.write('m');
    delay(10);
    Keyboard.write('b');
    delay(10);
    Keyboard.write('a');
    delay(10);
    Keyboard.write('t');
    delay(10);
  }
  delay(1000);
}

A0のポートにつながっているボタンを押せば人間ではありえない超高速で10ミリ秒でwombatと入力する仕組みです。

書き込んで動かしてみる

早速、書き込んでみましょう。

書き込む流れについては、わたしの記事の磁石で電子工作できる「littleBits」のArduinoモジュールでLチカしてみた(Windows・Mac) | littleBitsではじめるArduinoを参考に書き込みます。

image

無事書き込まれたら、Tumblrでシェアしたいウォンバット画像をシェア画面に表示しておきます。

image

カーソルを合わせて、IMEは英語入力モードしておきます。

image

IMEを日本語入力モードにしてしまうと思い通りに入力されず変換候補が表示されてしまうので注意しましょう。

image

いざ入力!

image

うまくwombatを入力されました!

長押しは注意

今回は一度押してすぐ離しましたが長押しは注意です。

image

(ウォンバットボタンらしさを出すために、以前3Dプリントしたウォンバットパネルを粘着粘土でボタン上に仕込みました)

image

長押ししてみます。

image

こうしてしまうと、1秒ごとにwombatがたくさん入力されてしまい、私はかまいませんが、タグを付けるという意味ではよろしくない結果になってしまいます。

まとめ

このように、littleBitsからキーボードの入力をいじれる例を上げてみました。

今回はキーボードの入力を中心に行いましたが、もちろんマウスの操作も可能です。

Arduino - MouseKeyboard

こちらみてみると、普段、人が行う操作はたいていできそうな印象です。

このように操作ができると、たとえば、Ctrl + Cのようなコピーといったショートカットキーをうまくエミュレートして、コピーするボタンをlittleBitsで作れたり、上下左右を一定時間経過するたびにシャッフルして操作のイタズラするコントローラーをlittleBitsでつくれたりと、人の操作にちょっと割り込んで便利にしたり不便にしたりする体験が可能です。

littleBits Arduinoモジュールの、ちょっと面白い使い方、是非試してみて下さい!

追記

当初、Arduino Unoを例にしてキーボードを使えると説明していましたが間違えで、正確にはArduino Microでした。

また、UnoのようにArduinoでも使えたり使えなかったりするため、冒頭の表現を変えさせていただきました。ひとまず、littleBits ArduinoモジュールはLeonardoベースなのでキーボード&マウスが使えるということで、今回のTIPSは楽しめます。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?