Liste du matériel :
-
1 Manette DFRobot
Exemple :
Nous souhaitons afficher sur le moniteur série l'état des boutons et la valeur des joysticks.
Programme :
/* Manette est un programme qui permet de tester la manette DFRobot */
int bouton[16];
int joystick[4];
unsigned long timer = 0;
#define vibration 2
#define led 17
void setup()
{
Serial.begin(9600); // initialisation de la liaison série
for(int i = 3; i < 17; i++) // les broches 3 à 16 sont en entrées
{
pinMode(i,INPUT);
}
pinMode(vibration,OUTPUT); // la broche vibration est en sortie et inactive
digitalWrite(vibration,LOW);
pinMode(led,OUTPUT); // la broche led est en sortie
digitalWrite(led,LOW);
}
void loop()
{
if(millis() - timer > 500) // toutes les 500 ms
{
bouton[0] = analogRead(0); // on lit l'état la valeur des boutons des joysticks
bouton[1] = analogRead(1);
for(int i = 0; i < 2; i++) // on transforme la valeur en état logique
{
if (bouton[i]<128)
{
bouton[i]=0;
}
else
{
bouton[i]=1;
}
}
for(int i = 3; i < 17; i++) // on lit l'état des autres boutons
{
bouton[i-1] = digitalRead(i);
}
for(int i = 2; i < 6; i++) // on lit la valeur des deux joysticks
{
joystick[i-2] = analogRead(i);
joystick[i-2]=map(joystick[i-2],0,1023,0,255); // on change l'échelle
}
for(int i = 0; i < 16; i++) // on affiche l'état des boutons
{
Serial.print(bouton[i]);
Serial.print(" ");
}
Serial.println(); // on va à la ligne
for(int i = 0; i < 4; i++)
{
Serial.print(joystick[i]); // on affiche la valeur des joysticks
Serial.print(" ");
}
Serial.println(); // on va à la ligne
Serial.println();
if (bouton[0]==HIGH) // si le bouton 0 (bouton du joystick droit) est inactif
{
digitalWrite(vibration,LOW); // on désactive les vibrations
}
else // sinon
{
digitalWrite(vibration,HIGH); // on active les vibrations
}
if (bouton[1]==HIGH) // si le bouton 1 (bouton du joystick gauche) est inactif
{
digitalWrite(led,HIGH); // on éteint la led RX
}
else // sinon
{
digitalWrite(led,LOW); // on allume la led RX
}
timer = millis();
}
}
LA MANETTE DE JEU DFROBOT
La manette de jeu DFR0182 développée par DFRobot ressemble à celle développée par une célèbre marque japonaise de console. Elle comporte une carte Arduino Leonardo sur laquelle nous pourrons enficher un module XBee ou Bluetooth Bee ou Wifi Bee afin de communiquer avec une plateforme robotique ou autre.
Cette manette comporte :
-
2 joysticks analogiques avec leur bouton poussoir
-
10 boutons sur la face avant
-
4 boutons à l'arrière
-
1 moteur de vibration
-
1 led verte programmable
Ci-dessous le tableau indiquant la connections des différents boutons et joysticks :