Skip to content

Test d'un Joystick

Ce que l'on va faire ici

Dans ce programme Micropython, nous allons voir comment tester un Joystick. Un joystick est l'association :

  • de 2 résistances variables, une pour chaque axe X et Y
  • d'un bouton poussoir.

Matériel

  • une carte Pi Pico flashée avec MicroPython et préparée pour utilisation en vertical sur plaque d'essai

  • un module "prêt à câbler" Joystick

  • une petite plaque d'essai

  • quelques jumpers

Le montage à réaliser

  • On utilise ici la carte Pi Pico en vertical sur la plaque d'essai.

On utilise les broches suivantes :

  • le bouton poussoir est sur GP22
  • X est sur ADC0
  • Y est sur ADC1

Le module est connecté par ailleurs au 3.3V et à GND.

Le code

  • pour chaque axe X et Y, on déclare un objet ADC basé sur la broche ADC0 (X) et ADC1 (Y)
  • on met en entrée avec rappel au plus la broche sur laquelle est connecté le bouton poussoir
  • on lit les valeurs à intervalle régulier, à l'aide d'un Timer

La fonction read_u16() renvoie une valeur 16 bits, bien que la mesure soit en 12 bits.

# code Micropython - www.micropython.fr - CC-BY-SA

from machine import Pin, ADC, Timer

bp=Pin(22,Pin.IN, Pin.PULL_UP) # rappel au plus
axisX=ADC(0) # axe X
axisY=ADC(1) # axe Y


timer=Timer()

def loop(timer):

    print("X="+str(axisX.read_u16()))
    print("Y="+str(axisY.read_u16()))
    print("BP="+str(bp.value()))


timer.init(freq=1, callback=loop)

Résultat

La valeur des axes reste centrée à mi-course, aux environ de 31000. Si on active le joystick dans un sens ou dans l'autre, on passe respectivement aux alentours de 100 et 65000. Le BP passe à 1 si on appuie dans l'axe du bouton poussoir.

Note

Faîtes-vos essais et observez les valeurs. Augmenter la fréquence de lecture si vous voulez, mais vous n'aurez pas le temps de lire les valeurs... En pratique, on accélèrera effectivement, mais pour un test, une fréquence de 1 suffit. .