2
4

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 3 years have passed since last update.

Arduino DueをつかってHID(Human Interface Device)機能をためしてみた

Posted at

はじめに

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と接続しました。
arduinodue_button.jpg

また、Arduinoにはプルアップ抵抗を接続しなくても「INPUT_PULLUP」を使うと、プルアップ抵抗を挟む必要はなくなります。

ちなみにですが、Arduino Dueのシリアル通信には「SerialUSB」を使用しています。
Arduino Unoと同じように「Serial」とするとシリアルモニタに表示されないので、慌てないようにしましょう(下記の画像のUSB CDC NAMEとDUEの欄より)。こちらが参考になります。

image.png

//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についてさらに理解を深めるには、こちらも参考になります.

2
4
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
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?