Cos'è arduino?
In poche parole Arduino è una famiglia di schede di prototipazione molto semplici da programmare anche grazie all'immensa community che ci gira in torno e alle svariate librerie rilasciate per questa scheda
E a noi come può essere utile Arduino?
Fra le varie schede dell'ampia famiglia Arduino ce ne sono 2 che in particolare ci possono essere utili al nostro scopo e sono Arduino Leonardo e Arduino Micro
Come mai solo queste due schede sono utili al nostro scopo?
Perchè al momento sono le uniche in grado di fingersi una periferica usb come una tastiera, un joystick o un mouse.
Quali sono le differenze fra Leonardo e Micro?
Per quanto ci riguarda la principale differenza sono le dimensioni visto che gli input che accetta sono 20 per entrambe le schedine
E cosa mi serve per programmare Arduino?
-una scheda Aruduino Leonardo o Micro
-un cavo micro USB per la connessione al pc
-Il software Arduino IDE che utilizzeremo per programmare la schedina
Come collego i tasti ad Arduino?
Semplice uno dei contatti dello switch (COM) del pulsante lo colleghiamo a uno dei pin GND l'altro (NO) a uno dei pin di I/O (input output) che sono dal pin 0 al 13 e dal pin A0 al pin A5. Vi metto un immagine che vi schiarirà le idee
Ora che ho collegato tutto come lo programmo Arduino?
Andate sul sito ufficiale e scaricate il software arduino e installatelo. Installate pure tutti i driver che richiede di installare e siete pronti a programmare il vostro arduino

Codice: Seleziona tutto
#include <Keyboard.h>
//Interfaccia Arducade con gestione combinazione tasti//
//Sketch scritto da Nicolas Delaidelli//
//Il Dela su arcadeitalia.net//
void setup() {
Keyboard.begin();
//Impostazione Input
pinMode(0, INPUT_PULLUP); //Joystick Su
pinMode(1, INPUT_PULLUP); //Joystick Giù
pinMode(2, INPUT_PULLUP); //Joystick Sinistra
pinMode(3, INPUT_PULLUP); //Joystick Destra
pinMode(4, INPUT_PULLUP); //Tasto 1
pinMode(5, INPUT_PULLUP); //Tasto 2
pinMode(6, INPUT_PULLUP); //Tasto 3
pinMode(7, INPUT_PULLUP); //Tasto 4
pinMode(8, INPUT_PULLUP); //Tasto 5
pinMode(9, INPUT_PULLUP); //Tasto 6
pinMode(10, INPUT_PULLUP); //Coin
pinMode(11, INPUT_PULLUP); //Start
}
void loop() {
// Definisco le Variabili:
int joystickSu = digitalRead(0);
int joystickGiu = digitalRead(1);
int joystickSx = digitalRead(2);
int joystickDx = digitalRead(3);
int tasto1 = digitalRead(4);
int tasto2 = digitalRead(5);
int tasto3 = digitalRead(6);
int tasto4 = digitalRead(7);
int tasto5 = digitalRead(8);
int tasto6 = digitalRead(9);
int coin = digitalRead(10);
int start = digitalRead(11);
int shift = 0; //Variabile utilizzata per segnalare se è stata usata una combinazione dopo la pressione di Start
// Start - 1
if (start == LOW) // Se start è premuto apro la gestione combinazione tasti
{ do
{ tasto1 = digitalRead(4);
coin = digitalRead(10);
tasto2 = digitalRead(5);
// Start+Tasto1 - TAB
if (tasto1 == LOW)
{ Keyboard.press(9);
shift = 1;
}
else
{ Keyboard.release(9);
}
// Start+Coin - ESC
if (coin == LOW)
{ Keyboard.press(177);
shift = 1;
}
else
{ Keyboard.release(177);
}
// Start+Tasto2 - p
if (tasto2 == LOW)
{ Keyboard.press(112);
shift = 1;
}
else
{ Keyboard.release(112);
}
start = digitalRead (11);
}
while (start == HIGH); // Finchè start rimane premuto continuo a ripetere il controllo sulle combinazioni
if (shift == 1) // Se è stata utilizzata una combinazione riporto la variabile a 0 e me ne vado
{
shift = 0;
}
else // Altrimenti se non è stata usata nessuna combinazione premo il tasto start
{ Keyboard.press(49);
delay(200);
Keyboard.release(49);
}
}
else
{
// Joystick Su - Freccia Su
if (joystickSu == LOW) {
Keyboard.press(218);
}
else {
Keyboard.release(218);
}
// Joystick Giu - Freccia Giu
if (joystickGiu == LOW) {
Keyboard.press(217);
}
else {
Keyboard.release(217);
}
// Joystick Sinistra - Freccia Sinistra
if (joystickSx == LOW) {
Keyboard.press(216);
}
else {
Keyboard.release(216);
}
// Joystick Destra - Freccia Destra
if (joystickDx == LOW) {
Keyboard.press(215);
}
else {
Keyboard.release(215);
}
// Tasto 1 - CTRL sx
if (tasto1 == LOW) {
Keyboard.press(128);
}
else {
Keyboard.release(128);
}
// Tasto 2 - ALT sx
if (tasto2 == LOW) {
Keyboard.press(130);
}
else {
Keyboard.release(130);
}
// Tasto 3 - Spazio
if (tasto3 == LOW) {
Keyboard.press(32);
}
else {
Keyboard.release(32);
}
// Tasto 4 - SHIFT sx
if (tasto4 == LOW) {
Keyboard.press(129);
}
else {
Keyboard.release(129);
}
// Tasto 5 - z
if (tasto5 == LOW) {
Keyboard.press(122);
}
else {
Keyboard.release(122);
}
// Tasto 6 - x
if (tasto6 == LOW) {
Keyboard.press(120);
}
else {
Keyboard.release(120);
}
// Coin - 5
if (coin == LOW) {
Keyboard.press(53);
}
else {
Keyboard.release(53);
}
}
//Iscriviti ad arcadeitalia.net per questa ed altre favolose guide sul mondo arcade!!
}
Joystick Su - Freccia Su
Joystick Giu - Freccia Giu
Joystick Sinistra - Freccia Sinistra
Joystick Destra - Freccia Destra
Tasto 1 - Ctrl SX
Tasto 2 - Alt SX
Tasto 3 - Spazio
Tasto 4 - Shift SX
Tasto 5 - z
Tasto 6 - x
Start - 1
Coin - 5
Start 1 + Coin - Esc
Start 1 + Tasto 1 - TAB
Start 1 + Tasto 2 - p
Tutti i tasti funzionano alla pressione tranne il tasto Start 1 che funziona al rilascio
