J’avais vu passer la petite carte CodeBug dans les nouveautés de Kubii. Cette carte est un système portable programmable pour l’enseignement du codage à des débutants, en particulier les enfants.
Je l’ai trouvée rigolote avec ses allures de chouette ou de petit nounours.
Elle a été créée par une équipe dirigée par Dr Andrew Robinson, qui est à aussi l’origine des cartes PiFace pour le Raspberry Pi. Elle a fait l’objet d’une campagne Kickstarter financée à hauteur de 18 836 £. Assez petite pour tenir dans la main d’un enfant, elle dispose d’une matrice de 25 LED (5 x 5) pour afficher des figures ou faire défiler un message. Sur les côtés six « jambes » circulaires (à trou métallisé) sont des broches d’Entrée/Sortie. A une extrémité deux boutons poussoirs permettent des interaction avec le programme. Une batterie peut prendre place dans un support à l’arrière de la carte pour l’alimenter.
Cette carte m’a été envoyée gracieusement pour les tests par Kubii (merci Julie), c’est donc un…
=========== Article Sponsorisé ===========
Au sommaire :
Carte CodeBug
Déballage
Comme toujours dans ce genre de test, la rubrique déballage permet de se rendre compte de la façon dont le matériel est conditionné, s’il est bien protégé pour le transport…
Ici on a au premier abord une boîte de petite taille 14 x 6 x 3.3cm. La façon dont les faces de la boîte sont illustrées montre bien que la carte est plutôt à destination des enfants.
Quand on fait glisser le tiroir qui se trouve dans le carton extérieur, on sort une boîte rigide, pourvue d’une ouverture dans laquelle il y a la carte CodeBug.
Après ouverture de la boîte, on extrait la carte Codebug, le câble USB de liaison et un mode d’emploi multilingue. Vous trouverez la version française de ce guide de démarrage rapide un peu plus bas dans ce billet.
Visite guidée de la carte CodeBug
Quand je présente mon livre sur le Raspberry Pi, avec ses 600 et quelques pages, on me demande souvent comment on peut écrire tant de pages sur une si petite carte 😉 La carte CodeBug est encore plus petite, elle a certainement moins de possibilités, mais elle mérite également une visite guidée détaillée… Suivez moi !
On voit de haut en bas sur la carte :
- Les boutons poussoirs A (gauche) et B (droite)
- La prise micro USB située entre les deux boutons
- Le microcontrôleur juste au dessus de la sérigraphie CodeBug
- La matrice de LED 5 x 5 (notez que chaque ligne/rangée est numérotée)
- De chaque côté de la matrice de LED les pieds ou pattes
(PWR et GND sur le pattes centrales) - Complètement en bas le connecteur pour brancher la CodeBug sur le GPIO du Raspberry Pi
Sur la face arrière de la CodeBug, un emplacement destiné à recevoir une pile CR2032 qui permet de disposer d’une carte complètement autonome.
Le cœur de la carte CodeBug est un microcontrôleur 18F25. Ce composant a les caractéristiques suivantes :
Type de mémoire programme | Flash |
Taille de la mémoire programme (Ko) | 32 |
Vitesse CPU (MIPS) | 12 |
Octets de RAM | 2,048 |
EEPROM stockage des données (octets) | 256 |
Communication avec les pétiphériques | 1-UART, 1-A/E/USART, 1-SPI, 1-I2C1-MSSP(SPI/I2C) |
Capture/Comparaison/PWM | 1 CCP, 1 ECCP |
Timers | 2 x 8-bit, 2 x 16-bit |
ADC / CAN | 14 canaux, 10-bit |
Comparateurs | 2 |
USB (canaux, vitesse, compatibilité) | 1, FS, USB 2.0 |
Gamme de température (°C) | -40 à 125 |
Gamme de tension d’alimentation (V) | 1.8 to 5.5 |
Le 18F25 est le seul et unique composant actif de la carte. Tout les autres composants qui apparaissent sont des résistances, condensateurs ou diodes.
La documentation
J’ai extrait la partie du guide de démarrage en français. La voici :
Voilà, vous disposez de la documentation de la carte pour vous faire une idée de son utilisation.
Au passage vous aurez noté les 3 modes d’alimentation possibles :
- Par le port USB
- Par Pile CR2032
- Par le port GPIO du Raspberry Pi
Premier programme
Le site CodeBug
L’objectif de cet article n’est pas de faire un cours de programmation CodeBug mais de montrer les possibilités de la carte. De nombreux projets sont disponibles sur le site CodeBug.
Pour pouvoir utiliser le site CodeBug, il faudra vous inscrire puis vous rendre sur le site de conception en ligne et cliquer sur CREATE (1)
La première fois vous aboutissez directement sur l’interface, ensuite vous aurez vos différents projets affichés, et un bouton NEW CODEBUG PROJECT ce bouton vous amènera à l’interface de création de programme.
Si vous avez fait une peu de Scratch vous ne serez pas trop dépaysé. A gauche vous avez l’émulateur qui exécutera vos programmes et affichera le résultat sur une CodeBug virtuelle.
Dans l’espace (2) se trouvent les briques qui vont permettre de créer les programmes. J’ai créé un programme qui fait clignoter la LED centrale de la matrice (toutes les 500mS) pendant 1 minute.
Après avoir effacé tous les pixels (éteint les LED) j’allume la LED centrale (2, 2) pendant 500 mS en mettant le pixel à 1. Ensuite le pixel de (2, 2) est mis à zéro avec une pause de 500 mS.
Les 4 lignes sont incluses dans une boucle repeat while true (répéter tant que Vrai) qui est en l’occurrence une boucle infinie…
Le même programme en mode Code :
Bin oui quand on n’a pas l’habitude, ça pique un peu les yeux 😉
Une fois que vous êtes satisfait(e) de votre programme, il suffit de cliquer sur le bouton de mise en route de l’émulateur (3) pour vérifier qu’il correspond à vos attentes. Sinon… modifiez le 😉
Dans notre cas, la LED centrale clignote, c’est généralement l’un des premiers programmes qu’on écrit sur un système qu’on découvre pour vérifier qu’on a compris le concept et qu’on est capable de piloter une LED…
Maintenant que notre programme est au point il faut le transférer sur la carte CodeBug. Faites en tout d’abord une sauvegarde sur le site CodeBug en cliquant sur le bouton SAVE.
Transférer le programme sur la carte CodeBug
Cliquez sur le bouton Download (4) pour récupérer le programme sur votre ordinateur. Une fenêtre d’information s’ouvre.
Puis la fenêtre de téléchargement habituelle apparait :
Enregistrez le programme dans un dossier de votre machine. Si ce n’est déjà fait, branchez la carte CodeBug sur un port USB de votre PC (ATTENTION : ENLEVEZ LA PILE CR2032 SI ELLE EST PRÉSENTE !). Appuyez sur le bouton A pendant le branchement. La LED située en haut à gauche de la matrice clignote.
Vous devez retrouver votre carte CodeBug dans l’environnement de votre PC, comme si c’était une clé USB. Sa taille est faible et correspond à la mémoire disponible sur le microcontrôleur embarqué (45 Ko).
Ouvrez le périphérique CodeBug et faites un glisser déposer du programme que vous avez téléchargé. Lorsque le transfert dans CodeBug est fini, la LED située en haut à droite de la matrice s’allume. Le petit film ci-dessous vous montre cette étape de l’utilisation de CodeBug.
Questions fréquemment posées – FAQ
Pourquoi ma carte CodeBug apparaît-elle comme une clé USB?
La mémoire disponible dans le microcontrôleur 18F25 apparait comme si vous aviez branché une clé USB sur votre PC… Attention, certains câbles USB sont uniquement faits pour l’alimentation des appareils. Ils ne pourront pas servir pour programmer la carte CodeBug. Assurez-vous que vous utilisez un câble de données USB pour connecter la carte CodeBug à votre ordinateur. (le câble d’origine)
Comment puis-je programmer ma carte CodeBug équipée d’une batterie?
Il faudra réinitialiser votre carte CodeBug afin de le mettre en mode de programmation. Pour ce faire : maintenez les deux boutons A et B appuyés pendant 10 secondes, puis relâchez le bouton B.
Tester le programme
Par exemple un programme qui affiche le message défilant framboise314 sur les LED…
Procédez comme ci-dessus : Branchez la prise USB en tenant le bouton A appuyé, copiez le programme que vous avez téléchargé dans la mémoire de la carte, quand la LED en haut à droite est fixe appuyez sur le bouton B pour lancer le programme que vous venez de charger dans la mémoire de la carte CodeBug. Le programme démarre… ci-dessous test du programme qui fait défiler un message sur les LED.
Connecter CodeBug sur un Raspberry Pi
C’est le connecteur situé en bas de la carte CodeBug qui va être raccordé au GPIO du Raspberry Pi. Assurez vous que le Raspberry Pi n’est pas sous tension et que la Codebug n’est pas équipée de sa pile. Si vous voulez piloter la carte CodeBug avec le Raspberry Pi, lisez tout ce chapitre avant de vous lancer…
Il est impératif de respecter scrupuleusement la connexion
telle que représentée ici car il y a risque de
destruction de la carte CodeBug et/ou du Raspberry Pi !
Vérifiez plutôt deux fois qu’une que le connecteur est bien en place, pas décalé… surtout si ce sont des enfants qui sont chargés de relier la CodeBug au Raspberry Pi !!
Une fois tout ça bien vérifié… Mettez le feu sous tension. Si tout va bien, il n’y aura pas de dégagement de fumée 😉 et la carte va vous souhaiter la bienvenue en faisant défiler des lignes verticales et horizontales sur la matrice. (Uniquement lors de la première mise sous tension ! Ensuite si vous avez chargé un programme en mémoire, c’est celui là qui s’exécutera).
La connexion de la carte CodeBug à votre Raspberry Pi peut décupler son potentiel. Vos programmes peuvent:
- Utiliser CodeBug en E/S avec Minecraft
- Afficher vos Tweets sur CodeBug
- Contrôler CodeBug à distance via le Web
- Allumer/éteindre les LED de CodeBug en fonction des appuis sur les boutons
- Créer des jeux (et tout ce que vous pouvez imaginer d’autre) avec des programmes en Python
- Connecter CodeBug avec l’IoT (IdO = Internet des Objets)
Le mode « connecté » implique de charger un programme spécial dans la CodeBug avant de l’enficher sur le GPIO du Raspberry Pi.
Téléchargez le fichier codebug_i2c_tether.cbg et copiez le dans la mémoire de la carte CodeBug en utilisant le câble USB (voir procédure un peu plus haut dans ce billet).
Assurez vous que le Raspberry Pi n’est pas alimenté (toutes les LED éteintes), vérifiez que la CodeBug n’a pas de pile dans le support à l’arrière de la carte. Maintenant vous pouvez connecter votre carte CodeBug sur le GPIO du Raspberry Pi (suivez la procédure ci-dessus).
Il faut maintenant mettre en service le bus I2C sur votre Raspberry Pi. Ouvrez un terminal et entrez
sudo raspi-config
puis choisissez
8 Advanced Options > A7 I2C > Would you like the I2C interface to be enabled? > OUI > Would you like the I2C kernel module to be loaded by default? > OUI
Allez ensuite sur <Finish>. Le bus I2C de votre Raspberry Pi est maintenant activé et vous allez pouvoir l’utiliser pour communiquer avec la carte CodeBug.
Installons maintenant les librairies Python qui vont se charger du dialogue avec la carte CodeBug :
sudo apt-get update sudo pip-3.2 install codebug_i2c_tether
On va tester tout ça avec un exemple fourni par le site CodeBug…
Vous êtes en train de lire cette page sur votre Raspberry Pi ? cliquez sur un exemple pour télécharger cet exemple… enregistrez le dans le dossier /home/pi.
Cet exemple nous montre une autre des possibilités de la CodeBug. Remarquez que ce programme pilote les LED ligne par ligne (raw) et que les LED sont allumées/éteintes en envoyant l’information en… binaire ! (0b11100).
On exécute cet exemple
1 |
code language="bash"]python3 example.py[/code] |
et, miracle de la technologie moderne, votre carte Codebug affiche une flèche orientée vers le haut à gauche…
Ce que doit afficher la carte…
Nous venons de piloter la carte CodeBug en Python via l’interface I2C… Je vous laisse imaginer toutes les applications possibles de ce pilotage. Vous en saurez plus sur la construction des programmes « connectés » en vous rendant sur la page du site consacré au fonctionnement de la carte CodeBug avec le Raspberry Pi.
Et après ?
La carte offre d’autres possibilités que vous découvrirez au fur et à mesure que vous avancerez dans sa programmation.
Ses « pattes » sont aussi des entrées sorties. Lorsque ce sont des entrées, elles sont déclenchées par un simple appui avec un doigt…
Des fils munis de fiches bananes (qui a dit toi-même ?) connectent ici un bouton poussoir…
Une sortie pour commander une LED …
Et vous pouvez écrire un programme qui allume une LED quand on appuie sur le bouton… Oui, je sais pas besoin de CodeBug pour ça… Alors faites donc clignoter la LED en sortie 😀
CodeBug peut détecter que quelqu’un touche les contacts
ça fonctionne également avec deux participants !
Vidéos
Conclusion
Cette carte à moins de 20€ peut permettre d’amener des enfants (à partir de 8 ans) à découvrir la programmation de façon ludique. Leurs programmes ont des effets immédiats, visibles sur la matrice de LED.
Le site de CodeBug propose de nombreuses activités (en Anglais) mais très bien illustrées, ce qui devrait faciliter la transposition en Français…
La possibilité de la piloter depuis un Raspberry Pi permet de créer des « postes de travail » à moindre coût.
Sources
- http://www.kubii.fr/cartes-extension-cameras-raspberry-pi/1221-codebug-carte-programmable-portative-640522710737.html
- https://www.framboise314.fr/wp-content/uploads/2015/11/codebug.pdf
- http://www.codebug.org.uk/create/codebug/2254/clignotte-led-centre/
- http://www.codebug.org.uk/create/codebug/2255/scrolling-framboise314/
- http://www.codebug.org.uk/learn/activity/
- http://www.codebug.org.uk/learn/activity/62/raspberry-pi-controlled-codebug-with-i2c/
- http://www.codebug.org.uk/assets/extras/codebug_quick_start_guide_p1.pdf
- https://www.facebook.com/CodeBug-1471741099705261/
- http://simplesi.net/scratchcodebug-beta-testing/
Ping : Apprendre à programmer pour les enfants | Pearltrees
j’adore c’est ludique et sympa …
Ça à l’air effectivement sympa pour apprendre à programmer à des enfants, car très visuel.
Mais la mise en place à l’air un peu complexe justement pour un enfant non ?
Maintenir un bouton appuyé tout en branchant l’USB;
Ne pas oublier d’enlever la pile avant de mettre en USB;
Programmer sur le net, puis télécharger le programme, puis copier/coller le programme sur la carte, …..
Quand on voit de quoi est capable une carte Arduino avec son IDE, ils auraient peut-être pu faire plus simple
Bon après c’est sur que au moins ça apprend aux enfant à être rigoureux dans la manière de faire. Peut-être un peu trop, l’apprentissage doit être fun !
Ping : CodeBug, une petite carte rigolote | Framboise 314 | titoonthecat
Merci pour vos commentaires. l’éditeur pour codebug est maintenant disponible en français. http://www.codebug.org.uk/create/codebug/new/ . Nous traduirons plus du site en français bientôt
merci pour cette information !
Ping : Le jeu de Noël 2015 de framboise314 | Framboise 314, le Raspberry Pi à la sauce française….
Ping : Coder - mfcoen | Pearltrees