Go Down

Topic: Tastiera HID con Arduino UNO Rev 3 (Read 6013 times) previous topic - next topic

DanteAuditore

May 23, 2015, 07:30 pm Last Edit: Jun 26, 2015, 08:02 pm by DanteAuditore
salve, mi chiamo thomas, per il mio progetto d'esame volevo fare una keyboard HID, solo che con questo codice:

Code: [Select]
#include <SoftwareSerial.h>
uint8_t buf[8] = { 0 }; /* Keyboard report buffer */

#define KEY_LEFT_CTRL 0x01
#define KEY_LEFT_SHIFT 0x02
#define KEY_RIGHT_CTRL 0x10
#define KEY_RIGHT_SHIFT 0x20

void setup() 
{
  Serial.begin(9600); //connection between chips
  delay(200);


pinMode(8,INPUT);

pinMode(9,INPUT);

pinMode(10,INPUT);

pinMode(11,INPUT);

pinMode(12,INPUT);

pinMode(13,INPUT);

pinMode(7,OUTPUT);

}



void type(char *str)


   
    char *chp = str;
    delay(100);
    while (*chp) {
     
 if ((*chp >= 'a') && (*chp <= 'z')) {
     buf[2] = *chp - 'a' + 4; //Converts from char to usb code from HUT1_11.pdf
 } else if ((*chp >= 'A') && (*chp <= 'Z')) {
     buf[0] = KEY_LEFT_SHIFT; /* Caps */
     buf[2] = *chp - 'A' + 4; //Converts from char to usb code from HUT1_11.pdf
 } else if ((*chp >= '0') && (*chp <= '9')) {
     buf[2] = *chp - '0' + 30; //Converts from char to usb code from HUT1_11.pdf
 } else {

     switch (*chp) {
     case '1':
      buf[2] = 0x04; // a
  break;
     case '2':
      buf[2] = 0x26; // w
  break;
     case '4':
      buf[2] = 0x22; // s
  break;
     case '8':
      buf[2] = 0x07; // d
  break;
     case '16':
      buf[2] = 0x44; // space
  break;
     case '32':
      buf[2] = 0x04; // q
  break;

     default:
         /* Character not handled. To do: add rest of chars from HUT1_11.pdf */
  //buf[2] = 0x37; // Period
  break;
     }
 }

 Serial.write(buf, 7); // Send keypress
 buf[0] = 0;
 buf[2] = 0;
 Serial.write(buf, 7); // Release key
 chp++;
    }
}



void loop()

{
  char carattere[6];
  int i;

      carattere[0]=digitalRead(8);
            carattere[1]=digitalRead(9);
                  carattere[2]=digitalRead(10);
                        carattere[3]=digitalRead(11);
                              carattere[4]=digitalRead(12);
                                    carattere[5]=digitalRead(13);
                                   

  type(carattere);

}




mi viene fuori questo problema


Code: [Select]
Arduino: 1.6.3 (Windows 7), Плата"Arduino Uno"

Sketch uses 2 734 bytes (8%) of program storage space. Maximum is 32 256 bytes.

Global variables use 258 bytes (12%) of dynamic memory, leaving 1 790 bytes for local variables. Maximum is 2 048 bytes.

avrdude: ser_open(): can't open device "\\.\COM1": ?? ??????? ????? ????????? ????.




???????? ???????? ?? ?????. ??? ?????????? ????, ?????? http://www.arduino.cc/en/Guide/Troubleshooting#upload .

Board at COM1 is not available

  Это сообщение будет содержать больше информации чем
  "Отображать вывод во время компиляции"
  включено в Файл > Настройки



qualcuno sa come risolvere il problema? ho un arduino Uno Rev 3

grazie in anticipo,

Thomas

cyberhs

Errori in caratteri cirillici???  :)

Questa è la prima che vedo.

Non è che stai usando un windows 7 con nazionalizzazione russa?

Comunque, l'errore è sulla porta di comunicazione USB: sembra non vedere la scheda.


DanteAuditore

si, sto usando il computer della mia ragazza che è russa ahah, quindi mi viene così.

come posso fare per aggiustare il problema?

grazie per la risposta,

thomas

uwefed

Hai selezionato la COM giusta, quella del Tuo Arduino?
Ciao Uwe

DanteAuditore

eh si, l'ho selezionata, ma mi dice che non trova COM1, e non so cosa voglia dire D:

nid69ita

Ma quella board hai riprogrammato il FTDI come dichiari qui ? 
http://forum.arduino.cc/index.php?topic=323551.msg2235803#msg2235803
my name is IGOR, not AIGOR

DanteAuditore

non ancora, l'ho riportato alla normalità, adesso lo devo programmare e poi riprogrammare il FTDI

gpb01

Mmm ... mi sembra strano che Arduino sia su Com1 ... sei sicuro che sia quella che viene creata come "porta virtuale" quando lo attacchi alla USB ?

Fai una cosa, vai sul pannello dei device di Win (... non mi chiedere come, è un lontano ricordo di Win ... ora lavoro su OS X) e controlla le varie seriali. Anzi, se ci fai anche un "Print Screen" e lo alleghi, ci guardiamo anche noi ... ;)

Guglielmo

Search is Your friend ... or I am Your enemy !

DanteAuditore

#8
May 25, 2015, 07:25 pm Last Edit: May 25, 2015, 07:41 pm by DanteAuditore
allora, come vedete mi legge arduino come USB



adesso, quando collego arduino mi da un ulteriore problema:
 rimane una keyboard HID, con il risultato che :

  • la tastiera non funziona come dovrebbe
  • il mouse ha lo stesso problema della tastiera
  • anche scollegandolo non torna nulla alla normalità

...

ho provato anche a scrivere il bootloader, ma mi viene fuori questo messaggio

Code: [Select]
Arduino:1.6.3 (Windows 7), Scheda:"Arduino Uno"

C:\Users\Kristina\Desktop\Arduino uno Rev 3\programma\Arduino\hardware\tools\avr/bin/avrdude -CC:\Users\Kristina\Desktop\Arduino uno Rev 3\programma\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500v2 -Pusb -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m



avrdude: Version 6.0.1, compiled on Mar 30 2015 at 14:56:06

         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

         Copyright (c) 2007-2009 Joerg Wunsch



         System wide configuration file is "C:\Users\Kristina\Desktop\Arduino uno Rev 3\programma\Arduino\hardware\tools\avr/etc/avrdude.conf"



         Using Port                    : usb

         Using Programmer              : stk500v2

Errore durante la scrittura del bootloader

avrdude: usbdev_open(): did not find any USB device "usb"



e facendo come mi ha suggerito gpb01 l'altra volta, di mostrare l'output dettagliato durante la compilazione l'errore che mi viene fuori è questo ( se può aiutarvi maggiormente ad aiutarmi ):

Code: [Select]
avrdude: Version 6.0.1, compiled on Mar 30 2015 at 14:56:06
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Users\Kristina\Desktop\Arduino uno Rev 3\programma\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM1
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
avrdude: ser_open(): can't open device "\\.\COM1": Impossibile trovare il file specificato.



avrdude done.  Thank you.




o meglio, mi sembra sia un errore, perchè ciò che vedo è questo:




grazie per la pazienza ^^,

thomas

gpb01

No, scusa, ma per programmarlo, come ti è stato detto, NON può simulare un device USB ...

DEVI ripristinare il firmware originale sul convertitore USB <--> Seriale e devi vedere Arduino tra le COMx e non come USB ... altrimenti non lo programmi.

Inoltre, cortesemente, ALLEGA l'immagine originale e NON includerla ridotta nel messaggio che ... non si legge un bel nulla ...

Guglielmo
Search is Your friend ... or I am Your enemy !

DanteAuditore

#10
May 25, 2015, 08:00 pm Last Edit: May 25, 2015, 08:09 pm by DanteAuditore
ah, mi spiace.... beh adesso l'ho staccato e riattaccato e non so come mai mi è comparso tra i com ( non capisco perchè fa quello che gli pare  ::)  :smiley-cry:  )

come potete vedere qua:

http://i61.tinypic.com/2v29s2x.png

prima era su com4, l'ho messa io su com1, ma neanche così funziona

mi da lo stesso errore di prima

http://i59.tinypic.com/2w6utuf.png

e poi scusa gugliemo ma mi ero confuso, perchè TEORICAMENTE dovevo averlo riprogrammato, o almeno mi sembrava dato che prima mi veniva visualizzato con il nume di : Keyboard HID, nella sezione dedicata alle tastiere:
http://i58.tinypic.com/9krthe.png

gpb01

#11
May 25, 2015, 08:29 pm Last Edit: May 25, 2015, 08:29 pm by gpb01
Se era su COM4 perché sei andato a toccare le cose ? ? ? :o :o :o

Lascialo sulla COMx che gli assegna il sistema e, prima di programmare, verifica sempre che la COMx che hai scelto in Arduino IDE sia la stessa che gli ha assegnato il sistema operativo.

Guglielmo
Search is Your friend ... or I am Your enemy !

DanteAuditore

avevo letto da qualche parte hce poteva funzionare come risoluzione. comunque, reimpostato il com4, ma non so come impostarlo nell'IDE

gpb01

... ma non so come impostarlo nell'IDE
... come sempre ... magari, prima di avventurarsi in cose complicate, studiare le BASI ... no ? ? ?  :smiley-evil:

Mah ...
...comunque "Arduino IDE -> Tools -> [Serial] Port" (... la parola Serial è presente nella 1.0.6, ma mi sembra sia omessa nella 1.6.4) e li scegli la VERA porta a cui è connesso Arduino e che ti da il Sistema Operativo SENZA tue manipolazioni !

Guglielmo
Search is Your friend ... or I am Your enemy !

DanteAuditore

a mio malgrado, la situazione non differisce dalla precedente...

Go Up