Le joystick

Module Grove : Afficheur 4 digits / 7 segments

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)