はじめに
HID(Human Interface Device
コンピュータの周辺機器・構成要素のうち、マンマシンインタフェースを担当するものの総称(例えば、キーボードやマウスなど)
です。
Arduinoの一部の製品では、そういったHIDをつかう機能が用意されています。
これを使うことで、Arduinoをキーボード入力で操作したり、Arduinoにつなげたボタンに何か文字を割り当てて入力するといったことができます。
Arduino Dueの情報があまりでてこないので、こちらに書き残しておきたいと思います。
Arduino DueはSRAMが64kBだったり(Arduino Unoは2kB)、GPIOピンが多かったりと、性能が良いので使いこなせるとものづくりの幅が広がりそうです。
対応しているマイコン
HIDに対応しているArduinoは
- Arduino Due
- Arduino Leonardo
- Arduino pro micro
などがあります。
Arduino Dueのプログラム
このプログラムではデジタルピンに3番につながれたタクトスイッチが押されたときに「a」という文字を入力するプログラムとなっています。タクトスイッチはプルアップ抵抗をはさんでArduinoと接続しました。
また、Arduinoにはプルアップ抵抗を接続しなくても「INPUT_PULLUP」を使うと、プルアップ抵抗を挟む必要はなくなります。
ちなみにですが、Arduino Dueのシリアル通信には「SerialUSB」を使用しています。
Arduino Unoと同じように「Serial」とするとシリアルモニタに表示されないので、慌てないようにしましょう(下記の画像のUSB CDC NAMEとDUEの欄より)。こちらが参考になります。
//HIDをつかうためにライブラリ
#include "Keyboard.h"
//デジタルピン3番にタクトボタンを繋いだ
const int inputPin = 3;
void setup() {
//Arduino Dueのシリアル通信は「Serial USB」と表記
SerialUSB.begin(115200);
SerialUSB.println("Hello World");
pinMode(inputPin,INPUT);
Keyboard.begin();
}
void loop() {
int currentState = digitalRead(inputPin);
SerialUSB.println("This is loop");
SerialUSB.println(currentState);
if ( currentState == 1){
//スイッチがおされたときに「a」という文字を送信する
//
SerialUSB.println("Push!");
Keyboard.press( 0x61 );
} else {
SerialUSB.println("Release!");
Keyboard.release( 0x61 );
}
delay(500);
}
動作確認
こちらを動かして、タクトスイッチを押すと「a」と入力されます。
HIDについてさらに理解を深めるには、こちらも参考になります.