samedi 17 octobre 2015

Scratch sur Raspberry Pi (1): Faisons clignoter une LED

Fourni par défaut avec Raspbian, Scratch est un logiciel conçu pour enseigner la programmation aux jeunes de 8 à 16 ans.  Vous pensiez peut-être que Scratch se limite à déplacer un chat virtuel dans une fenêtre? Détrompez-vous:  depuis la sortie de Raspbian Jessie, il est maintenant possible d'utiliser Scratch pour contrôler les pins GPIO du Raspberry Pi, sans qu'il soit nécessaire d'installer le moindre module supplémentaire (ce tutoriel suppose donc que vous utilisez la plus récente version de Raspbian).

Comme point de départ, faisons clignoter une LED.

Le circuit

Le circuit est constitué d'une LED branchée en série à une résistance de protection (220 Ω, par exemple).

Le tout est branché à la pin BCM 14 et à une des pins GND, tel qu'illustré ci-dessous.  GND est la 3e pin en haut à partir de la gauche, alors que 14 est la 4e pin en haut à partir de la gauche.

Attention, la LED n'est pas réversible:  c'est sa broche la plus longue qui doit être branchée à la pin 14.



Démarrons Scratch

Vous pouvez démarrer Scratch au moyen du menu, dans la catégorie "Programmation".




Scratch affiche, dans la partie gauche de sa fenêtre, des blocs contenant des instructions.  Ces blocs peuvent être déplacés dans la zone centrale pour former un programme qui s'exécute généralement dans la zone de droite.


Puisque nous désirons contrôler les pins GPIO, nous allons dans le menu "Éditer" et sélectionnons l'article "Start GPIO Server" (qui sera certainement traduit en français dans une future mise à jour de Scratch).



Allumons une LED

Dans la zone de gauche, en haut, cliquez sur le bouton "Contrôle".   Les blocs disponibles dans la zone de gauche sont maintenant de couleur orange.



Faites glisser dans la zone centrale le bloc "Quand (drapeau vert) est pressé":  ceci nous permettra de démarrer notre programme (lorsqu'il sera terminé) en cliquant sur le bouton qui a la forme d'un drapeau vert, dans la zone de droite (au-dessus du chat).



Glissez maintenant le bloc "envoyer à tous" en l'imbriquant sous le bloc précédent, comme une pièce de puzzle.



Cliquez sur le triangle inversé dans le bloc "envoyer à tous" et choisissez "nouveau/edit...".


Dans la boîte de dialogue, vous écrivez "config14out":  cette instruction permet de régler la pin numéro 14 en sortie.


Faites glissez dans la zone centrale un deuxième bloc "envoyer à tous" (en provenance de la zone de gauche).  Vous l'imbriquez sous les deux blocs précédents.  Dans ce bloc, vous écrivez l'instruction "gpio14on", qui ordonne au Raspberry Pi d'activer la pin numéro 14.



Un clic sur le drapeau vert en haut à droite de la fenêtre de Scratch devrait exécuter le programme, et la LED devrait donc s'allumer!




Éteignons la LED

Pour éteindre la LED, remplacez l'instruction "gpio14on" par l'instruction "gpio14off" afin de désactiver la pin 14.



Cliquez à nouveau sur le drapeau vert: la LED devrait s'éteindre.

Faisons clignoter la LED

Nous avons réussi à allumer et à éteindre la LED, nous allons maintenant automatiser un peu le résultat afin qu'elle s'allume et s'éteigne plusieurs fois de suite.

Dans un premier temps, retirez temporairement le bloc "envoyer à tous gpio14off" (faites-le glisser vers le bas pour le séparer des deux autre blocs).



Maintenant, ajouter un bloc "répéter 10 fois", qui permettra de répéter 10 fois les instructions qu'il contiendra.



Faites glisser votre bloc "envoyer à tous gpio14off" à l'intérieur du bloc "répéter 10 fois".


Ajoutons un délai d'une seconde grâce à un bloc "attendre 1 secondes" (il doit se trouver à l'intérieur de la boucle qui sera répétée 10 fois).



Ensuite, on ajoute un autre bloc "envoyer à tous" qu'on règle à "gpio14on", et un autre délai d'une seconde:


Lorsque vous démarrer votre programme en cliquant sur le bouton en forme de drapeau vert (en haut à droite de la fenêtre, au-dessus du chat), votre LED devrait clignoter 10 fois.

Il ne vous reste plus qu'à vous amuser à modifier le programme à votre guise en modifiant le nombre de répétitions, la durée du délai, etc.  Vous pouvez également inverser les instructions "gpio14off" et "gpio14on" afin que la LED soit éteinte lorsque le programme est terminé.

Dans le prochain article, nous verrons comment lire l'état d'un bouton poussoir.

Si vous préférez, vous pouvez également faire clignoter une LED en utilisant Python ou Processing.

Yves Pelletier   (TwitterFacebook)

Aucun commentaire:

Enregistrer un commentaire