top of page

LE MODULE ME JOYSTICK

Le module "Me Joystick" comporte un mini-joystick et un bouton poussoir. Le module délivre donc deux tensions analogiques (comprise entre 0 et 5 V) fonction de la position du joystick et un niveau logique  fonction de l'état du bouton poussoir. Les fonctions contenues dans la bibliothèque Makeblock sont :

  • Me4Joystick joystick(PORT_X) où PORT_X est le port sur lequel est branché le module. Cette fonction permet de créer l'objet.

  • joystick.readX() renvoie la position en X du joystick.

  • joystick.readY() renvoie la position en Y du joystick.

  • joystick.CalCenterValue(X_offser,Y_offset) où X_offset et Y_offset représentent l'écart entre la position au repos et la position idéale (X=0 et Y=0). Cette fonction permet de recalibrer le joystick.

  • joystick.angle() renvoie l'angle entre X et Y.

  • joystick.OffCenter() renvoie la distance entre la position du joystick et le centre (joystick au repos).

Le tableau ci- dessous donne les ports des cartes "Me Orion" et "Me Auriga" pouvant être connectés à ce module.

Exemple :

Nous souhaitons déplacer un cercle dessiné sur un module  "Me Afficheur LCD" en fonction de la position d'un module "Me Joystick".

Programme :

/*Joystick_Makeblock est un programme qui déplace un cercle sur le module "Me Afficheur LCD TFT" en fonction de la position du joystick du module "Me Joystick". */

#include "MeOrion.h"                                       // appel des bibliothèques
#include <SoftwareSerial.h>

MeSerial serie(PORT_5);                                 // création de l'objet serie (module branché sur le PORT5)
MeJoystick joystick(PORT_6);                         // création de l'objet joystick (module branché sur le PORT6)

int x;
int y;

void setup()
{
  serie.begin(9600);                                         // initialisation de la liaison série à 9600 bit/s
  joystick.CalCenterValue(12,2);                     // calibration du joystick. Au repos, celui que je possède affiche x=-12 et y=-2
}

void loop()
{  
 x = joystick.readX();                                       // on récupère la position du joystick
 y = joystick.readY();
 x=map(x,-500,500,10,305);                          // on change les coordonnées en tenant compte de la taille du point (10) et de l'écran (320X240)
 y=map(y,-500,500,230,10);
 serie.print("CLS(0);");                                    // on efface l'écran
 serie.print("DR0;");                                        // on configure l'écran dans le sens horizontal
 serie.print("CIRF(");                                       // on dessine un cercle de centre
 serie.print(x);                                                 // e x            
 serie.print(',');
 serie.print(y);                                                // et y
 serie.println(",10,1);");                                  // et de diamètre 10 et de couleur rouge                   
 delay(200);
}

bottom of page