Arduino Due를 사용하여 HID (Human Interface Device) 기능을 사용해 보았습니다.

4854 단어 HIDArduinoArduinoDue

소개



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에 대한 더 많은 이해를 얻으려면 이쪽도 참고

    좋은 웹페이지 즐겨찾기