L'extension OneGPIO Raspberry Pi
Introduction
Les blocs officiels développés par la Fondation ne permettent pas de contrôler des servomoteurs et d’utiliser des signaux de type PWM. Alan Yorinks a développé différentes extensions pour piloter des microcontrôleurs avec Scratch (Arduino, ESP32), ainsi que des blocs pour les GPIO : l’extension OneGPIO Raspberry Pi.
Dans ce chapitre, vous allez découvrir ces blocs et apprendre à les utiliser pour programmer de nouveaux composants.
Installation
Les modalités pour installer l’extension d’Alan Yorinks sont décrites dans le chapitre Scratch 3 et Arduino - Installation de Scratch 3 avec les extensions. Une fois l’installation effectuée :
1. Cliquez sur l’icône du lanceur Scratch3_Ext pour exécuter le navigateur chromium et ouvrir la page de Scratch 3 avec les extensions.
2. Puis ajouter l’extension OneGPIO dans la palette des blocs :
Sélectionnez Ajouter une extension .
Choisissez l’extension OneGPIO Raspberry Pi.
Les blocs spécifiques sont présents dans la Palette des blocs.
3. Connectez-vous au serveur en tapant dans la console la ligne de commande :
s3r
Les blocs OneGPIO
L’extension OneGPIO ajoute sept blocs aux blocs classiques.
Attention, bien qu’il soit fait mention de "pin" dans les blocs, il s’agit bien de la numérotation GPIO qui est utilisée. En effet, ces blocs sont pourvus d’un menu déroulant pour définir "la Pin" sur laquelle est connecté le composant. Or, la numérotation possible est comprise entre 2 et 27, c’est-à-dire les numéros GPIO. La nomenclature Pin, quant à elle, proposerait une numérotation comprise entre 1 et 40. (cf. Le chapitre L’extension Simple Electronics - Les ports GPIO).
Pour une connexion à distance sur le serveur, il vous faut renseigner l’adresse IP de votre Raspberry.
Ce bloc est pourvu de deux menus déroulants pour définir :
-
le numéro du GPIO utilisé pour le contrôle de composant ;
-
l’état du GPIO, c’est-à-dire 0 (éteint/ Off) ou 1 (allumé/ On).
Il fonctionne de la même manière que le bloc set gpio () to output () de l’extension Raspberry Pi GPIO.
Ce bloc est utilisé pour générer des impulsions de type PWM (Pulse With Modulation / modulation de largeur d’impulsion) pour faire tourner un moteur à rotation continue et gérer sa vitesse. Il est pourvu de deux zones :
-
Un menu déroulant pour définir...
Les LED
Dans les chapitres consacrés à l’extension Simple Electronics et Raspberry Pi GPIO, nous avons déjà abordé différents programmes pour allumer une LED. Les blocs de l’extension OneGPIO peuvent être utilisés de la même manière. Leur intérêt est de permettre de faire varier l’intensité d’une LED.
1. Branchements
Le montage ci-dessous vous servira pour les deux programmes proposés dans cette section. Au niveau du matériel vous avez besoin :
-
d’une LED et de sa résistance de 330 Ω ;
-
de deux fils mâle/femelle.
2. Le Blink
Ce programme disponible en téléchargement depuis la page Informations générales a pour nom Blink_OneGpio.sb3.
Un Blink consiste à faire clignoter une LED. Pour cela, il suffit de jouer sur son état, de l’allumer et l’éteindre alternativement.
quand drapeau vert est cliqué
Mettre la pin numérique 17 à 0 // initialisation de la LED.
Connectée au GPIO 17 (Pin 11), elle est éteinte.
répéter 10 fois// la LED va s'allumer et s'éteindre alternativement 10 fois.
attendre 0.5 secondes
Mettre la pin numérique 17 à 1 // la LED est allumée.
attendre 0.5 secondes
Mettre la pin numérique 17 à...
La LED RGB
Dans le chapitre L’extension Raspberry Pi GPIO, nous avons vu qu’une LED RGB se compose de trois LED (rouge - vert - bleu) qui permettent d’obtenir une grande gamme de couleurs en modulant leurs signaux ou par synthèse additive. Les GPIO du Raspberry Pi étant de type numérique, avec les extensions Raspberry Pi GPIO nous ne pouvons pas faire varier la quantité de "couleur" émise par les trois LED et obtenir une grande variété de couleurs. En effet, une LED RGB permet de créer 256 couleurs.
L’utilisation du bloc PWM permet de moduler la couleur émise par les trois LED.
Matériel nécessaire
-
Une LED RGB pourvue d’un module de connexion.
-
Trois fils mâles.
Les branchements
Pour utiliser la LED RGB, il n’est pas nécessaire d’utiliser une plaque d’expérimentation. Les branchements peuvent se faire directement en connectant les pattes de la LED aux GPIO du Raspberry via quatre fils de type femelle/femelle.
-
La masse est branchée sur la Pin 6.
-
La broche contrôlant la LED rouge (R) est reliée à la Pin 11/ GPIO 17.
-
La broche contrôlant la LED verte (G) est reliée à la Pin 12/ GPIO 18.
-
La broche contrôlant la LED bleue (B) est reliée à la Pin 13/ GPIO 27.
1. Une console pour modifier les couleurs
Le programme disponible en téléchargement depuis la page Informations générales a pour nom Console LED RGB.sb3.
a. Le graphisme
Il s’agit d’un projet...
Le Buzzer
Ce bloc est spécialement dédié à l’utilisation d’un buzzer. Il est utilisé pour modifier la fréquence émise par le buzzer (exprimée en Hz) pour jouer des airs de musique.
Voici un programme pour jouer le thème du jeu Tetris. Il est disponible en téléchargement depuis la page Informations générales : Tetris_Buzzer.sb3.
quand drapeau vert est cliqué
répéter indéfiniment // s'agissant d'un thème de jeu vidéo,
celui-ci est exécuté en boucle.
Au sein de la boucle, les notes s’enchaînent avec un temps de pause entre l’exécution de chaque note.
Définir le buzzer sur la pin 21 à (note) Hz pendant (durée) ms//
attendre () secondes // pause entre l'exécution de chaque note.
Le tableau ci-dessous facilitera la saisie du programme.
|
Note |
|
Durée |
|
2637 |
|
200 |
Attendre 0.4 s |
|
|
|
|
1975 |
|
200 |
Attendre 0.2 s |
|
|
|
|
2093 |
|
200 |
Attendre 0.2 s |
|
|
|
|
2349 |
|
200 |
Attendre 0.4 s |
|
|
|
|
2093 |
|
200 |
Attendre 0.2 s |
|
|
|
|
1975 |
|
200 |
Attendre 0.2 s |
|
|
|
|
1760 |
|
200 |
Attendre 0.4 s |
|
|
|
|
1760 |
|
200 |
Attendre 0.2 s |
|
|
|
|
2093 |
|
200 |
Attendre 0.2 s |
|
|
|
|
2637 |
|
200 |
Attendre 0.4 s |
|
|
|
|
2349 |
|
200 |
Attendre 0.2 s |
|
|
|
|
2093 |
|
200 |
Attendre 0.2 s |
|
|
|
|
1975 |
|
200 |
Attendre 0.4 s |
|
|
|
|
1975 |
|
200 |
Attendre 0.2 s |
|
|
|
|
2093 |
|
200 |
Attendre 0.2 s |
|
|
|
|
2349 |
|
200 |
Attendre 0.4 s |
|
|
|
|
2637 |
|
200 |
Attendre 0.4 s |
|
|
|
|
2093 |
|
650 |
Attendre 0.4 s |
|
|
|
|
1760 |
|
650 |
Attendre 0.4 s |
|
|
|
|
1760 |
|
650 |
Attendre 0.8 s |
|
|
|
|
1760 |
|
650 |
Attendre 0.4 s |
|
|
|
|
2349 |
|
650 |
Attendre 0.2 s |
|
|
|
|
2794 |
|
650 |
Attendre 0.2 s |
|
|
... |
Servomoteur
Utilisé en robotique et en modélisme, le servomoteur n’effectue pas de rotations complètes. Son angle de rotation est compris entre 0° et 180°. Il permet donc d’atteindre des positions prédéterminées et de les maintenir. La position du servomoteur est donc une mesure d’angle.
1. Les branchements
Matériel nécessaire
-
Un servomoteur de type SG90 ou TGY-1440A. Il existe des servomoteurs de plusieurs tailles et de plusieurs puissances (cf. chapitre Matériel et composants).
-
Trois fils de type mâle/femelle.
Branchement
Un servomoteur est pourvu de trois fils :
-
un fil marron ou noir : la masse. Il est connecté à la pin 6 ;
-
un fil orange ou jaune : pour contrôler le servomoteur. Il est connecté sur la Pin 18/GPIO 24 ;
-
un fil rouge : pour alimenter le servomoteur en 5 V. Il est branché à la pin 2 qui délivre une tension de 5 V. Mais pour un projet fixe, il sera branché à une alimentation externe.
2. Positionner le moteur en fonction d’un angle
Ce programme disponible en téléchargement depuis la page Informations générales a pour nom : servomoteur1_OneGpio.sb3.
Un servomoteur se déplace avec un angle compris entre 0 et 180 degrés. Mais les servomoteurs bas de gamme supportent mal les valeurs extrêmes 0 et 180. Sur ces positions, ils ont tendance à vibrer. Ces deux angles ne seront pas exploités dans les exemples.
Ce premier programme va nous permettre de voir comment fixer le servomoteur sur un angle bien défini en appuyant sur une touche du clavier.
Certains projets peuvent nécessiter de positionner le servomoteur sur un angle bien défini, pour par exemple ouvrir ou fermer une barrière.
quand drapeau vert est cliqué
mettre le servo 24 à 10 Deg. // la valeur 0 n'est pas utilisée
pour les raisons expliquées ci-dessus.
quand la touche flèche gauche est pressée
Mettre le servo 24 à -90 Deg. // le servomoteur se positionne
au niveau de l'angle spécifié.
attendre 0.01 secondes
quand la touche flèche droite est pressée
Mettre le servo 24 à 90 Deg. // le servomoteur se positionne
au niveau de l'angle...
Capteur de distance
Le capteur HC-SR04 est utilisé pour mesurer des distances grâce à l’envoi et la réception d’ultrasons :
-
Trig envoie un train d’ultrasons
-
Echo mesure le temps aller/retour du signal pour calculer la distance en centimètres de l’obstacle.
Ce capteur est couramment utilisé sur les véhicules motorisés pour leur permettre de détecter des obstacles afin de les éviter en s’arrêtant ou en les contournant. Programme de mesure.
Le programme disponible en téléchargement depuis la page Informations générales a pour nom : Capteur distance_OneGpio.sb3.
1. Branchement
-
La broche VCC est utilisée pour alimenter en 5 V le capteur, la Pin 2 peut être utilisée par exemple.
-
La broche GND qui correspond à la masse est reliée et connectée à une Pin de masse comme la Pin 6.
-
Trigeur (Trig) l’entrée qui déclenche les ultrasons est connectée à la Pin 11/GPIO 17.
-
Echo, la sortie qui calcule la distance émise par les ultrasons est connectée sur la Pin 12/GPIO 18.
2. Programme
Voici l’exemple d’un programme comportant deux piles de blocs qui peuvent être utilisées indépendamment l’une de l’autre :
-
la première permet de connaître la distance et de l’afficher grâce...
Conclusion
L’intérêt de l’extension OneGPIO est qu’elle permet de piloter des composants supplémentaires par rapport à l’extension Rapsberry Pi GPIO.
Il est à noter que les programmes présentés dans le chapitre Scratch 3 et Arduino peuvent également être utilisés avec cette extension.