Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Du 22 au 24 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Scratch et Raspberry Pi
  3. L'extension OneGPIO Raspberry Pi
Extrait - Scratch et Raspberry Pi Projets maker pour s'initier à l'électronique et à la robotique (2e édition)
Extraits du livre
Scratch et Raspberry Pi Projets maker pour s'initier à l'électronique et à la robotique (2e édition)
6 avis
Revenir à la page d'achat du livre

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 images/13LF01.PNG.

 Choisissez l’extension OneGPIO Raspberry Pi.

Les blocs spécifiques sont présents dans la Palette des blocs.

images/13LF02.png

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

images/13LF03.PNG

Pour une connexion à distance sur le serveur, il vous faut renseigner l’adresse IP de votre Raspberry. 

images/13LF04.PNG

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.

images/13LF05.PNG

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.

images/13LF10.png

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

images/13LF21.PNG

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. 
images/13LF22.png

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 :

  1. un fil marron ou noir : la masse. Il est connecté à la pin 6 ;

  2. un fil orange ou jaune : pour contrôler le servomoteur. Il est connecté sur la Pin 18/GPIO 24 ;

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

images/13LF23.png

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

images/13LF31.PNG

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.

images/13LF32.png

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.