Billentyűzet és egér vezérlés

Egy programban mutatja be az egér és a billentyűzet parancsait.


Utolsó felülvizsgálat: 2022.02.04 16:50


Ez a példa az egér és a billentyűzet könyvtárak együttes használatát mutatja be. Öt pillanatnyi kapcsoló a kurzor iránygombjaként működik. Ha megnyom egy gombot, a kurzor a képernyőn elmozdul, és az irányhoz tartozó betűnek megfelelő gombnyomást küld a számítógépnek. Miután beprogramozta és bekötötte a Leonardo, Micro vagy Due készüléket, nyissa meg kedvenc szövegszerkesztőjét az eredmények megtekintéséhez.

Megjegyzés: Amikor a Mouse.move() parancsot használja, az Arduino átveszi a számítógép kurzorát! Annak érdekében, hogy ne veszítse el az uralmat a számítógépe felett, miközben vázlatot futtat ezzel a funkcióval, feltétlenül állítson be egy vezérlőt, mielőtt meghívná a Mouse.move()-t.

A vázlat beolvassa a piezo kimenetet az analogRead() paranccsal, kódolva a 0 és 5 volt közötti feszültségtartományt egy 0 és 1023 közötti numerikus tartományba egy analóg-digitális átalakításnak vagy ADC-nek nevezett folyamatban.

Ha az érzékelők kimenete erősebb egy bizonyos küszöbértéknél, a kártya a "Kopognak!" stringet küldi a számítógépnek a soros porton keresztül.

A szöveg megtekintéséhez nyissa meg a soros monitort.

Hardver szükséglet

  • Arduino Leonardo, Micro vagy Due kártya

  • 5 nyomógomb

  • 5 10 kohmos ellenállás

  • összekötő vezetékek

  • dugdosós próbapanel (breadboard)

Szoftver szükséglet

  • Bármilyen szövegszerkesztő

Az áramkör

Csatlakoztassa a nyomógombok egyik végét a kártya 2., 3., 4., 5. és 6. kivezetéseihez. Csatlakoztassa a másik végét +5 V-ra. Használja az ellenállásokat lehúzóelemként, referenciát adva a kapcsolók földeléséhez. Csatlakoztassa őket a kártyához a kivezetéstől a földre.

Miután beprogramozta a kártyát, húzza ki az USB-kábelt, és nyissa meg a szövegszerkesztőt. Csatlakoztassa a kártyát a számítógéphez, és a gombok megnyomásával írjon a dokumentumba, miközben mozgatja a kurzort.

Vázlat

A kód

/*
  KeyboardAndMouseControl

  Az Arduino Leonardo, Micro vagy Due öt nyomógombbal vezérli az egeret.

  Hardware:
  - öt nyomógomb D2, D3, D4, D5, D6-hoz csatlakoztatva

  Az egér mozgása mindig relatív. Ez a vázlat négy nyomógombot olvas,
  és ezek segítségével állítja be az egér mozgását.

  FIGYELEM: Amikor a Mouse.move() parancsot használja, az Arduino átveszi az egeret!
  Az egérparancsok használata előtt győződjön meg arról, hogy rendelkezik a vezérléssel.

  created 15 Mar 2012
  modified 27 Mar 2012
  by Tom Igoe

  Ez a kód nyilvános.

  https://docs.arduino.cc/built-in-examples/usb/KeyboardAndMouseControl
*/

#include "Keyboard.h"
#include "Mouse.h"

// állítsa be a kivezetés-számokat az öt gombhoz:
const int upButton = 2;
const int downButton = 3;
const int leftButton = 4;
const int rightButton = 5;
const int mouseButton = 6;

void setup() { // inicializálja a gombok bemeneteit:
  pinMode(upButton, INPUT);
  pinMode(downButton, INPUT);
  pinMode(leftButton, INPUT);
  pinMode(rightButton, INPUT);
  pinMode(mouseButton, INPUT);

  Serial.begin(9600);
  // inicializálja az egérvezérlést:
  Mouse.begin();
  Keyboard.begin();
}

void loop() {
  // használjon soros bemenetet az egér vezérléséhez:
  if (Serial.available() > 0) {
    char inChar = Serial.read();

    switch (inChar) {
      case 'u':
        // mozgassa felfelé az egeret
        Mouse.move(0, -40);
        break;
      case 'd':
        // mozgassa lefelé az egeret
        Mouse.move(0, 40);
        break;
      case 'l':
        // mozgassa balra az egeret
        Mouse.move(-40, 0);
        break;
      case 'r':
        // mozgassa jobbra az egeret
        Mouse.move(40, 0);
        break;
      case 'm':
        // végezze el az egér bal gombkattintását
        Mouse.click(MOUSE_LEFT);
        break;
    }
  }

  // használja a nyomógombokat a billentyűzet vezérléséhez:
  if (digitalRead(upButton) == HIGH) {
    Keyboard.write('u');
  }
  if (digitalRead(downButton) == HIGH) {
    Keyboard.write('d');
  }
  if (digitalRead(leftButton) == HIGH) {
    Keyboard.write('l');
  }
  if (digitalRead(rightButton) == HIGH) {
    Keyboard.write('r');
  }
  if (digitalRead(mouseButton) == HIGH) {
    Keyboard.write('m');
  }

}

Tudj meg többet

További alapvető oktatóanyagokat a beépített példák részben talál.

Felfedezheti a nyelvi referenciát is, az Arduino programozási nyelv részletes gyűjteményét.