
Le joystick

Présentation
Le module joystick renvoie deux valeurs analogiques : l'une pour la position X et l'autre pour la position Y du joystick.
Il est donc nécessaire d'utiliser les entrées analogiques de la carte (et donc de l'interface).
Après conversion en grandeur numérique par la carte :
- si le joystick n'est pas enfoncé, les valeurs X et Y sont comprises entre environ 250 et 750 suivant la position ;
- si le joystick est enfoncé, la valeur X est supérieure à environ 950.
Branchement et programmation
Branchement
Côté carte d'interface | Côté module | |
---|---|---|
GND | GND (Masse) | |
3V3 | VCC (Phase) | |
Entrée analogique (pin0, pin1 ou pin2) | Y | |
Entrée analogique (pin0, pin1 ou pin2) | X |
Seules les entrées P0, P1 et P2 sont des analogiques et peuvent être utilisées.
Cable spécifique
Il est nécessaire de préparer un cable spécifique pour relier le module à deux bornes différentes de l'interface (voir schéma ci-dessous) pour avoir deux entrées analogiques.

Exemple de code python
from microbit import *
while True:
xval = pin0.read_analog()
yval = pin1.read_analog()
if xval > 1000:
# enfoncé
display.show(Image.HEART)
elif xval > 600:
# droite
if yval > 600:
# haut
display.show(Image.ARROW_NE)
elif yval > 400:
# milieu
display.show(Image.ARROW_E)
else:
# bas
display.show(Image.ARROW_SE)
elif xval > 400:
# milieu
if yval > 600:
# haut
display.show(Image.ARROW_N)
elif yval > 400:
# milieu
display.clear()
else:
# bas
display.show(Image.ARROW_S)
else:
# gauche
if yval > 600:
# haut
display.show(Image.ARROW_NW)
elif yval > 400:
# milieu
display.show(Image.ARROW_W)
else:
# bas
display.show(Image.ARROW_SW)
sleep(50)