mardi 29 décembre 2015

Processing sur Raspberry Pi: "Etch A Sketch" à 5 boutons poussoirs


Dans un précédent article, nous avons vu comment utiliser le langage Processing pour contrôler des pins GPIO du Raspberry Pi configurées en sortie.

Cette fois, nous allons utiliser Processing pour lire l'état logique de pins GPIO configurées en entrées.  L'état de ces entrées sera contrôlé par des boutons poussoirs.

Quand j'étais petit, nous allions parfois visiter mes grands-parents, chez qui les jeux pour enfants se résumaient à 3 ou 4 aventures de Martin le Malin, et un écran magique "Etch A Sketch".  Il s'agissait d'une espèce de tablette sur laquelle on dessinait en tournant deux boutons:  un bouton qui permettait de tracer des lignes horizontales, et un bouton qui permettait de tracer des lignes verticales.  Pour effacer le dessin, il s'agissait de retourner la tablette à l'envers et la secouer. 



Pour illustrer comment lire l'état de boutons poussoirs au moyen de Processing, je vous propose de transformer (temporairement) votre Raspberry Pi en écran Etch A Sketch:   un programme tracera à l'écran des lignes horizontales et verticales qui seront contrôlées par 5 boutons:  "vers le haut", "vers le bas", "vers la gauche", "vers la droite" et "effacer".

Nous supposons que Processing est déjà installé sur votre Raspberry Pi (si ce n'est pas le cas, prière de vous référer à ce précédent article).

Le circuit:

Chaque bouton est associé à une résistance de tirage vers le haut (pull up).  De cette façon, le signal sera de 3,3 V quand le bouton est relâché, et de 0 V quand il est enfoncé.  Prévoyez une résistance suffisamment grande pour que le courant circulant à travers les pins GPIO ne soit pas trop élevé (10 kΩ, par exemple).



Pour les boutons, je propose les branchements suivant (la numérotation utilisée est BCM, en jaune sur le schéma ci-dessous):
  • Bouton "Vers le haut":  pin GPIO 2
  • Bouton "Vers le bas":  pin GPIO 3
  • Bouton "Vers la gauche":  pin GPIO 4
  • Bouton "Vers la droite":  pin GPIO 17
  • Bouton "Effacer":  pin GPIO 27

Puisque nous avons également besoin d'une pin "3,3 V" et d'une pin "GND", nous utilisons 7 pins adjacentes, tel qu'illustré ci-dessous:



Le programme:

Rien de très compliqué:  on vérifie l'état des boutons associés aux pins GPIO 2, 3, 4, 17 et 27, et on trace un bout de ligne dans la direction appropriée.  Il faut aussi s'assurer qu'on ne sort pas à l'extérieur des limites de la fenêtre.


Le résultat:

En appuyant sur les différents boutons,  vous pouvez tracer de jolis dessin...


Et maintenant, on démonte tout!  Je viens de me rappeler à quel point ce jouet m'ennuyait quand j'étais petit...

Yves Pelletier   (TwitterFacebook)


Aucun commentaire:

Enregistrer un commentaire