Primissimo Progetto - Bottone Arcade USB

salve a tutti, vorrei (anzi DEVO XD) realizzare un bottone arcade (stile quelli delle slot machine nei bar) USB, che simuli la barra spaziatrice, premettendo che sto a zero in elettronica, avevo pensato di realizzare questo:

e quindi di usare teensy, il problema è che deve arrivare dagli usa e non ho tempo di aspettare qualche settimana, poi m'è venuto in mente, perche non usare arduino che "lo abbiamo in casa"? pero sorge il problema che li avevo una foto esatta di cio che dovevo fare, dove e come dovevo collegare i fili e perfino il codice da usare:

/*

 * Button.pde

*/
 

void setup() {

  Serial.begin(9600);

  pinMode(10, INPUT_PULLUP);

  delay(4000);
} 

void loop() {

  if (digitalRead(10) == HIGH) {

    delay(10);

  } else {

    Keyboard.print(" "); // we print a space

    delay(1000);
  }

  delay(10);
}

ora mi chiedevo, come posso fare lo stesso con arduino? e quale delle versioni potrei usare? me ne serve "semplicemente" una già pronta da programmare a cui collegare quel tasto arcade e con usb per collegarla al pc.. e posso usare quello stesso codice?

grazie a tutti per l'aiuto e la pazienza

E' uscito da pochissimi giorni l'Arduino Micro, che monta lo stesso chip della Leonardo e come questa può essere programmato per simulare Mouse e Tastiera.
--> http://arduino.cc/en/Main/ArduinoBoardMicro
Per conoscere i negozi dove aquistarlo
--> Distributors — Arduino Official Store

Riguardo al codice forse dovrai modificare qualcosina, per il pulsante nessun problema.

purtroppo è ancora in preview a me servirebbe provare in massimo in paio di giorni, altri consigli? riguardo al codice cosa c'è da modificare?

A quel punto prendi la Leonardo.
Riguardo al codice c'è da aggiungere il Keyboard.begin();

Questo è l'esempio preso dal reference (Keyboard.begin() - Arduino Reference)

void setup() {
  // make pin 2 an input and turn on the pullup resistor so it goes high unless connected to ground:
  pinMode(2, INPUT_PULLUP);
  Keyboard.begin();
}

void loop() {
  //if the button is pressed
  if(digitalRead(2)==LOW){
    //Send the message
    Keyboard.print("Hello!");
  }
}

Come vedi è molto simile al precedente.
Cambiano solo il pin da connettere il 2 invece del 10, ma lo puoi cambiare tranquillamente, e le temporizzazioni.
Nel tuo sketch c'è una pausa di 1 secondo.

Essendoci la pull-up il collegamento diventa:
Fig. 4 --> Collegare un pulsante ad Arduino | McMajan
Con la pull-up interna si semplifica ulteriormente il circuito quindi basta collegare il pulsante a GND e al pin (2 o 10 o quello che vuoi) con la resistenza in serie.
Teoricamente la resistenza può essere omessa (c'è quella interna di pull-up), ma se fai un errore nei cablaggi rischi di bruciare il pin, quindi mettila ugualmente.

PS: Ho trovato anche questa --> http://www.robot-italy.com/it/atmega32u4-breakout-board.html

la temporizzazione non mi serve, basta che a pressione del tasto è come se premessi la barra spaziatrice, al posto dell'hello world posso semplicemente usare " " e mi simula la barra spaziatrice?

non puoi usare la classe Keyboard con la UNO, semplicemente non ha l'hardware necessario per simulare una tastiera USB.

MA puoi simulare una tastiera PS/2, e visto che esistono adattatori da PS/2 a USB in pratica puoi aggirare il problema in questo modo.

cerca arduino keyboard ps/2 e troverai le librerie e gli esempi che ti servono!

lesto:
non puoi usare la classe Keyboard con la UNO

Chi ha parlato della UNO? :cold_sweat:

Lui ha parlato del Teensy, io della Micro e della Leonardo oppure di un'altra boarda ma sempre col 32U4.
A questo punto però gli consiglio la Leonardo perché in futuro potrà montarci sopra gli shield ed espanderla. :grin:

posso prendere qualsiasi versione tanto mi serve per lavoro, basta che sia usb e abbia la possibilità di fare qeullo che mi serve, cioè emulare la barra spaziatrice... e un'altra cosa, è per forza necessario alimentarla esternamente? non c'è l'alimentazione via usb?

ok ho dato un'occhiata e ordinerò la Leonardo, che se ho capito bene si alimenta anche via usb, poi dovrò soltanto capire bene i collegamenti, in questo (spero) mi aiuterete voi e un'amico che ne sa di elettronica XD vi aggiorno appena arriva! nel frattempo se avete altri consigli o schermi o geni della lampada scrivete pure, mi sarebbe piaciuto avvicinarmi al mondo dell'elettronica un pò piu con calma ma ora è necessario!

lesto:
e visto che esistono adattatori da PS/2 a USB in pratica puoi aggirare il problema in questo modo.

Non esiste nessun adattatore da PS/2 a USB, quelli che dici tu sono semplicemente degli adattatori di connettore, è il device, mouse o tastiera che sia, che deve integrare l'hardware PS/2 e USB.
Semmai esistono i convertitori da PS/2 a USB che ti costano quasi quanto una Leonardo.

PaoloP:

lesto:
non puoi usare la classe Keyboard con la UNO

Chi ha parlato della UNO? :cold_sweat:

perche non usare arduino che "lo abbiamo in casa"

quindi do per scontato avere una UNO/2010/2009

non c'è l'alimentazione via usb?

tutte le board aruino sono alimentabili via USB, quindi se hai già un'arduino in casa, un pio di diodi zener a 3.6v hai già tutto quello che ti serve

http://www.practicalarduino.com/projects/virtual-usb-keyboard

astrobeed:

lesto:
e visto che esistono adattatori da PS/2 a USB in pratica puoi aggirare il problema in questo modo.

Non esiste nessun adattatore da PS/2 a USB, quelli che dici tu sono semplicemente degli adattatori di connettore, è il device, mouse o tastiera che sia, che deve integrare l'hardware PS/2 e USB.
Semmai esistono i convertitori da PS/2 a USB che ti costano quasi quanto una Leonardo.

ma io ho usato tastiere vecchie di 20 anni con un adattatore da 5 euro e funzionavano :astonished:

lesto:

perche non usare arduino che "lo abbiamo in casa"

quindi do per scontato avere una UNO/2010/2009

Io l'ho interpretato come: perché devo comprare un prodotto americano che per arrivare ci mette 40 giorni e non un prodotto italiano, fatto in italia da italiani, che, se lo ordino, ci mette meno di una settimana per averlo?

Madwriter:

astrobeed:

lesto:
e visto che esistono adattatori da PS/2 a USB in pratica puoi aggirare il problema in questo modo.

Non esiste nessun adattatore da PS/2 a USB, quelli che dici tu sono semplicemente degli adattatori di connettore, è il device, mouse o tastiera che sia, che deve integrare l'hardware PS/2 e USB.
Semmai esistono i convertitori da PS/2 a USB che ti costano quasi quanto una Leonardo.

ma io ho usato tastiere vecchie di 20 anni con un adattatore da 5 euro e funzionavano :astonished:

IO avevo letto che dovevano integrare la logica dell' usb per funzionare con gli adattatori delle bancarelle

dal link che ho postato PARE che bastino un paio di diodi per limitare la tensione in arrivo alla tastira, dopodichè il protocollo USB pare possedere un "retro-driver" che riconosce i comandi PS/2 e li interpreta in modo corretto..

lesto:
dal link che ho postato PARE che bastino un paio di diodi per limitare la tensione in arrivo alla tastira,

Quello che hai postato è una applicazione del famigerato Vusb, ovvero emulazione software della USB che ho sempre sconsigliato di utilizzare per tutta una serie di problematiche sia software che hardware.
Non esiste nessun "retrorodriver USB" che ti consente di collegare una tastiera PS/2 direttamente alla USB, non solo sono totalmente diversi come protocollo, ma anche il bus hardware è totalmente differente, la PS/2 è una seriale, a 5V, sincrona molto simile alla I2C, l'USB è un bus differenziale a 3.3V.

già, ero convinto usasse la classica libreria PS2

non è possibile collegare il bottone ad una UNO che alla pressione manderà un segnale sulla porta seriale, poi dal computer con un semplice programma si intercetta il dato e si emula la tastiera?? spero di non aver detto una baggianata :stuck_out_tongue_closed_eyes: