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. .