Billentyűzet újraprogramozása

Új ablakot nyit meg az Arduino IDE-ben, és egy egyszerű villogó programmal újraprogramozza a Leonardot.


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


Ez a példa a Keyboard könyvtárat használja egy új Arduino Software (IDE) vázlatablak megnyitására, a Blink példában szereplő billentyűzetparancsok küldésére és a tábla újraprogramozására. Miután lefuttatta ezt a vázlatot, és a 2-es kivezetést a földhöz csatlakoztatta a nyomógombbal, a kártyának új programja lesz, a Blink.

Megjegyzés: Amikor a Keyboard.print() parancsot használja, az Arduino átveszi a számítógép billentyűzeté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, győződjön meg arról, hogy egy megbízható vezérlőrendszert állít be, mielőtt meghívja a Keyboard.print() parancsot. Ezt a vázlatot úgy tervezték, hogy csak a 2. digitális kivezetés földre húzása után küldjön el billentyűzet parancsokat.

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

  • nyomógomb

  • összekötő vezetékek

  • dugdosós próbapanel (breadboard)

Szoftver szükséglet

  • Arduino IDE futtató

Az áramkör

Vázlat

A kód

Csatlakoztassa a kártyát az USB-porthoz, majd nyomja meg a gombot a D2 és a GND összekapcsolásához, és indítsa el a billentyűzet billentyű-megnyomás emuláció vázlatát. Ne felejtse el kiválasztani az Arduino Software (IDE) ablakot, mielőtt megnyomja a gombot.

/*
  Arduino Programs Blink

  Ez a vázlat a Keyboard könyvtárat mutatja be.

  Csak a Leonardo és Due kártyákhoz.

  Amikor a 2-es kivezetést a földhöz csatlakoztatja, egy új ablakot hoz
  létre egy billentyűkombinációval (CTRL-N), majd beírja a Blink vázlatot,
  majd automatikusan megformázza a szöveget egy másik billentyűkombinációval
  (CTRL-T), majd feltölti a vázlatot az aktuálisan kiválasztott Arduino-hoz
  egy végső billentyűkombináció (CTRL-U) használatával. 

  Az áramkör:
  - Arduino Leonardo, Micro, Due, LilyPad USB, vagy Yún
  - vezeték a D2 földhöz csatlakoztatásához

  created 5 Mar 2012
  modified 29 Mar 2012
  by Tom Igoe
  modified 3 May 2014
  by Scott Fitzgerald

  Ez a kód nyilvános.

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

#include "Keyboard.h"

// használja ezt a lehetőséget OSX esetén.
// Tegye kommentté, ha Windows vagy Linux rendszert használ:
char ctrlKey = KEY_LEFT_GUI;
// használja ezt a lehetőséget Windows és Linux rendszeren.
// hagyd kommentnek, ha OSX-et használsz:
//  char ctrlKey = KEY_LEFT_CTRL;


void setup() {
  // tegye a 2-es kivezetést bemenetté, és kapcsolja be a felhúzó ellenállást,
  // hogy magasra menjen, hacsak nincs földelve:
  pinMode(2, INPUT_PULLUP);
  // inicializálja a billentyűzet vezérlését:
  Keyboard.begin();
}

void loop() {
  while (digitalRead(2) == HIGH) {
    // ne csináljon semmit, amíg a 2. kivezetés LOW-ra nem megy
    delay(500);
  }
  delay(1000);
  // új dokument:
  Keyboard.press(ctrlKey);
  Keyboard.press('n');
  delay(100);
  Keyboard.releaseAll();
  // várja meg, amíg megnyílik az új ablak:
  delay(1000);

  // az Arduino IDE 1.5 utáni verziói előre kitöltik az új vázlatokat a
  // setup() és loop() függvényekkel, töröljük az ablakot, mielőtt bármi
  // újat írnánk jelöljük ki az összeset
  Keyboard.press(ctrlKey);
  Keyboard.press('a');
  delay(500);
  Keyboard.releaseAll();
  // töröljük a kiválasztott szöveget
  Keyboard.write(KEY_BACKSPACE);
  delay(500);

  // Írd ki "blink":
  Keyboard.println("void setup() {");
  Keyboard.println("pinMode(13, OUTPUT);");
  Keyboard.println("}");
  Keyboard.println();
  Keyboard.println("void loop() {");
  Keyboard.println("digitalWrite(13, HIGH);");
  Keyboard.print("delay(3000);");
  // 3000 ms túl hosszú. Töröld:
  for (int keystrokes = 0; keystrokes < 6; keystrokes++) {
    delay(500);
    Keyboard.write(KEY_BACKSPACE);
  }
  // legyen helyette 1000:
  Keyboard.println("1000);");
  Keyboard.println("digitalWrite(13, LOW);");
  Keyboard.println("delay(1000);");
  Keyboard.println("}");
  // kitakarítani:
  Keyboard.press(ctrlKey);
  Keyboard.press('t');
  delay(100);
  Keyboard.releaseAll();
  delay(3000);
  // kód feltöltés:
  Keyboard.press(ctrlKey);
  Keyboard.press('u');
  delay(100);
  Keyboard.releaseAll();

  // várja az újraprogramozás édes feledését:
  while (true);
}

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.