Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

この記事は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は楽しめます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした