Scratch 3 et Playground Express
Présentation
1. La carte Playground Express
La carte Playground Express est une création de la société Adafruit très impliquée dans l’univers des makers et du Raspberry Pi. C’est un concentré de technologie qui intègre de nombreux actionneurs et capteurs pour l’apprentissage de la programmation. Elle supporte de nombreux langages de programmation comme Python ou l’IDE Arduino, mais elle peut également être programmée en Scratch 3.
La Playground Express ne mesure que 5 cm de diamètre, mais recèle une quantité importante de composants. Elle possède deux prises destinées à l’alimentation du circuit et quatorze pastilles situées en périphérie permettant de relier du matériel (LED, rubans de LED, interrupteurs, capteurs…).
2. Le matériel
a. Microcontrôleur ATSAMD21G
Le modèle utilisé sur la carte Playground Express est un processeur 32 bits en boîtier 48 broches doté de 256 Ko de mémoire Flash et 32 Ko de SRAM. Le microcontrôleur est équipé d’un processeur ARM Cortex M0, fonctionnant sous 3,3 V avec une fréquence d’horloge de 48 MHz. Une mémoire Flash SPI de 2 Mo équipe la carte et étend la mémoire de stockage.
Le microcontrôleur possède de nombreuses...
Installer le logiciel
1. Le programme FirmataCPx
Pour faire communiquer Scratch 3 et la carte Playground Express, une version modifiée de Firmata, appelée FirmataCPx, doit être installée sur la carte Playground Express.
La carte Playground Express utilise un boatloader (chargeur d’amorçage) UF2 (USB Flashing Format = Format de transfert USB). Son installation est rapide et simple car il suffit de le copier sur la carte.
Les étapes suivantes décrivent l’installation de FirmataCPx sur la carte Playground.
2. Télecharger le bootloader
Ouvrez le navigateur internet du Raspberry Pi et saisissez https://github.com/MrYsLab/pymata-cpx/raw/master/FirmataCPxUF2/FirmataCPx.uf2 dans la ligne d’adresse et validez avec la touche [Entrée], ce qui entraîne le téléchargement du fichier dans le dossier Downloads.
Mettez la carte Playground Express en mode bootloader :
-
Connectez la carte Playground Express sur un port USB de votre Raspberry Pi.
-
Double cliquez rapidement sur le bouton Reset de la carte Playground Express.
-
Les dix LED NeoPixels s’allument en vert pour confirmer le passage en mode bootloader.
3. Copier le bootloader sur la carte
Sur le bureau du Raspberry Pi, la fenêtre Périphérique amovible inséré s’ouvre. La carte Playground Express est vue comme une clé USB et le transfert du fichier...
Synthèse
Le synoptique ci-dessus présente le schéma de communication entre le Raspberry Pi et la carte Playground Express.
La communication entre le Raspberry Pi et la carte Playground Express se fait via les ports USB. Sur le Raspberry Pi, il faudra démarrer le serveur s3c avant de lancer l’exécution de Scratch 3.
Connecter la carte Playground Express
La connexion de la carte Playground Express au Raspberry Pi 4 se fait avec un câble USB qui va assurer l’alimentation et le transfert des données.
Lors de la mise sous tension, la LED verte (On) s’illumine sur la carte Playground Express, indiquant que la tension de 5 volts est bien fournie par le port USB du Raspberry Pi 4.
Utiliser la carte Playground Express avec Scratch 3
1. Démarrer le serveur OneGPIO
Comme pour les autres cartes, il faut démarrer le serveur s3-extend qui va se charger de la communication avec la carte Playground Express.
Démarrez le programme serveur OneGPIO en ouvrant une fenêtre de terminal et en saisissant la commande pour lancer le serveur approprié. Ici, ce sera le serveur pour la carte Adafruit Circuit Playground Express.
Liste des serveurs disponibles :
-
s3a - pour l’Arduino
-
s3c - pour l’Adafruit Circuit Playground Express
-
s3e - pour l’ESP8266
-
s3p - pour la carte Picoboard
-
s3r - pour le Raspberry Pi
Ouvrez une fenêtre de terminal et saisissez la commande s3c.
La fenêtre de terminal affiche le démarrage du serveur, puis après quelques secondes, indique que la passerelle vers la Playground Express a démarré.
Le serveur fonctionnera tant que vous ne l’arrêterez pas avec un [Ctrl] C.
Laissez cette fenêtre ouverte pour que le serveur puisse communiquer avec la carte NodeMCU.
Ne fermez pas la fenêtre en cliquant sur la croix dans le coin en haut à droite. Ceci arrêterait le serveur de façon brutale et pourrait compromettre son prochain démarrage.
Si le programme s3c s’interrompt pour une raison ou pour une autre, le prompt pi@raspberrypi :~$ s’affiche sous le texte ci-dessus et la fenêtre Scratch 3 informe l’utilisateur de la perte de connexion avec la carte Playground Express :
Il faut alors sauvegarder le programme en cours si nécessaire, fermer Scratch 3 puis relancer le serveur s3c et enfin rouvrir Scratch 3.
Si vous connectez plusieurs cartes d’extension au Raspberry Pi, il faudra ouvrir une fenêtre de terminal par carte et lancer le serveur d’extension correspondant à chaque carte dans des fenêtres séparées.
2. Démarrer Scratch 3
Vous pouvez maintenant démarrer la version de Scratch 3 installée précédemment et contenant les extensions...
Exemple de programme
1. Faire clignoter une LED
Comme vu précédemment pour l’Arduino et l’ESP8266, le premier programme consiste à faire clignoter une LED. Cette action simple permet de vérifier toute la chaîne et de s’assurer que l’utilisateur est capable de piloter de bout en bout le dispositif (connexions, logiciel, programme…). Avec la carte Playground Express, il n’y a pas de câblage à effectuer dans un premier temps, puisque la LED D13 est présente sur la carte.
Dans l’espace des scripts de Scratch 3, saisissez le programme ci-dessous. Le programme est téléchargeable sous le nom CPx_LED_blink.sb3.
Le script est démarré en cliquant sur le drapeau vert. Ensuite, dans une boucle infinie, la sortie GPIO13 est mise à 1 (LED D13 allumée) pendant 0,25 seconde, puis à 0 pendant 0,5 seconde.
Le script est arrêté en cliquant sur le panneau stop rouge.
quand drapeau vert est cliqué
répéter indéfiniment// ouverture d'une boucle de répétition.
LED D13 allumée// la LED D13 de la carte s'allume.
attendre 0.25 secondes
LED D13 éteinte// la LED D13 de la carte s'éteint.
attendre 0.5 secondes
// fermeture de la boucle de répétition.
On s’aperçoit que si les temps sont trop courts (par exemple 0,05 s et 0,1 s), il peut y avoir des "ratés" dans le rythme en raison des délais de la communication entre Scratch et la carte Playground Express. Dans ce cas, il est préférable d’allonger un peu les temporisations pour que la communication se fasse sans encombre.
2. Afficher la position de la carte
Ce script est destiné à afficher la position de la carte. C’est le chat Scratch qui dit comment est la carte.
Dans l’espace des scripts de Scratch 3, saisissez le programme ci-dessous. Le programme est téléchargeable sous le nom CPx_hbgd.sb3.
Le programme principal est exécuté lors de l’appui sur le drapeau vert. Il ne fait rien et attend simplement 0,5 seconde en boucle.
quand drapeau vert est cliqué
répéter indéfiniment// ouverture d'une boucle de répétition.
attendre 0.5 secondes
// fermeture...
Conclusion
La gestion de cette carte avec Scratch 3 ouvre de nouvelles possibilités par rapport au Raspberry Pi seul, au vu des nombreux capteurs embarqués par la Playground Express.
La prise en main est facilitée par les blocs Scratch, ce qui peut constituer une première étape pour la mise en œuvre de cartes à microcontrôleur.