Errore sketc con Keyboard

Ciao a tutti,

avevo questo sketch di Arduino perfettamente funzionante. Dopo aver aggiornato l’IDE però adesso, non funziona più.

Versione IDE: 1.8.5

Sketch:

int PIN_PISTA_1 = 2;
int PIN_PISTA_2 = 3;
int PIN_PISTA_3 = 4;
int PIN_PISTA_4 = 5;
String readString;

void setup() {
  Serial.begin(9600);
  //ATTIVO I PIN PER LE 4 PISTE
  pinMode(PIN_PISTA_1, INPUT);
  pinMode(PIN_PISTA_2, INPUT);
  pinMode(PIN_PISTA_3, INPUT);
  pinMode(PIN_PISTA_4, INPUT);

   pinMode(8, OUTPUT);
   pinMode(9, OUTPUT);
   pinMode(10, OUTPUT);
   pinMode(11, OUTPUT);   

  

  //Keyboard.begin();
  //Keyboard.println("ciao Michele");
  //delay(1000);
  //Keyboard.println("ciao Michele 2");
  ///delay(1000);
  //Keyboard.releaseAll();
}


void loop() {
  // put your main code here, to run repeatedly:
  /**
    CON QUESTO CODICE POSSO SCRIVERE SULLA TASTIERA
  */
  Keyboard.begin();
  //Keyboard.println("ciao Michele");
  //delay(1000);
  //Keyboard.println("ciao Michele 2");
  //delay(1000);
  //LEGGO IL VALORE DALLA PISTA 1
  int pista1 = digitalRead(PIN_PISTA_1);
  int pista2 = digitalRead(PIN_PISTA_2);
  int pista3 = digitalRead(PIN_PISTA_3);
  int pista4 = digitalRead(PIN_PISTA_4);
  //CODICE DA COMMENTARE DOPO
  /*pista1 = 1;
  pista2 = 1;
  pista3 = 1;
  pista4 = 1;
*/
  if (pista1 <= 0)
  {
    Keyboard.println("1");
  }
  if (pista2 <= 0)
  {
    Keyboard.println("2");
  }
  if (pista3 <= 0)
  {
    Keyboard.println("3");
  }
  if (pista4 <= 0)
  {
    Keyboard.println("4");
  }
  Keyboard.releaseAll();
  //delay(300);
  readString = "";
  while (Serial.available()) {
    char c = Serial.read();

    if (c == '&') {
      int pin;
      if (readString.indexOf("ON") == 0) {
        //do corrente alla pista
        Serial.println("do corrente");
        //recupero il numero della pista a cui togliere la corrente
        String numeroPista = readString.substring(2);
        pin = numeroPista.toInt();
        Serial.println(pin);
        digitalWrite(pin, HIGH);
      } else if (readString.indexOf("OFF") == 0) {
        //tolgo corrente alla pista
        Serial.println("tolgo corrente");
        String numeroPista = readString.substring(3);
        Serial.println(numeroPista);
        pin = numeroPista.toInt();
        digitalWrite(pin, LOW);
      }
    }
    readString.concat(c);
  }
}

Provando a verificare lo sketch ottengo il seguente messaggio di errore:

D:\Dropbox\Arduino\easyCorse\sketch_apr13a\sketch_apr13a.ino: In function 'void loop()':

sketch_apr13a:37: error: 'Keyboard' non trovata. Il tuo sketch include la riga '#include <Keyboard.h>'?
   Keyboard.begin();

   ^

exit status 1
'Keyboard' non trovata. Il tuo sketch include la riga '#include <Keyboard.h>'?

Ho provato ad aggiungere #include Keyboard.h facendo Sketch → Include Keyboard → Keyboard

ma l’errore è lo stesso.
Come lo risolvo

Io continuo a NON vedere, in testa al tuo programma la riga:

#include <Keyboard.h>

… verifica che ci sia e se non c’è … aggiungila tu a mano.

Guglielmo

Immagino tu abbia anche provato a scrivere manualmente l'inclusione della libreria, e non te l'abbia accettata per lo stesso motivo. Se non lo hai fatto prova. Se no, brutale brutale, falla tu la include: prendi il testo della Keiboard.h e della Keyboard.cpp e copia/incollalo ad inizio codice. E vedi se funziona. Comunque scusa, ma non ho capito cosa pu9 voler dire "scrivere sulla tastiera", almeno non usando una print. La tastiera che ho in mente é un oggetto formato da tasti che fa solo da input al sistema, non ha schermi o altro output. Sono stato preceduto

Silente: ... Comunque scusa, ma non ho capito cosa pu9 voler dire "scrivere sulla tastiera", almeno non usando una print. ...

Non conosci la libreria "Keyboard" ... essa permette, SOLO con alcuni modelli di Arduino (Leonardo, Micro, Due, Zero ed Esplora), di simulare una tastiera e quindi, da programma, inviare sulla USB la pressione di tasti come ci fosse una tastiera che viene premuta.

Guglielmo

Ciao Guglielmo,

esatto a me serve usare arduino proprio come una tastiera.

A questo putno però mi viene da dire che che io ho un Arduino UNO/Genuino e non vedo menzionato questo arduino nei tuoi modelli, dal momento che quando feci la prima volta questo sketch, avevo Arduino Leonardo, allora mi viene da pensare che il codice è tutto ok ma è la versione del mio Arduino sbagliata.

Interessante, scusate non lo sapevo. Grazie per il link

bircastri: A questo putno però mi viene da dire che che io ho un Arduino UNO/Genuino e non vedo menzionato questo arduino nei tuoi modelli, dal momento che quando feci la prima volta questo sketch, avevo Arduino Leonardo, allora mi viene da pensare che il codice è tutto ok ma è la versione del mio Arduino sbagliata.

ESATTO ... occorre una MCU che abbia la porta USB in gradio di emulare un device HID ... è la UNO non l'ha. Devi prendere una delle schede che ho elencato.

Guglielmo