Publié le 8 novembre 2015 - par

CodeBug, une petite carte rigolote

codebug_boite_250pxJ’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é ===========

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…

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

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

codebug_boite_03

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 !

codebug_taille_01

Pour l’occasion, j’ai ressorti ma pièce de 5 centimes. Elle permet d’avoir une idée de la taille de la carte

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

codebug_taille_01_dessousSur la face arrière de la CodeBug, un emplacement destiné à recevoir une pile CR2032 qui permet de disposer d’une carte complètement autonome.

codebug_taille_02a

Les boutons poussoirs et la prise USB (Alimentation/Données)

codebug_taille_03

Le connecteur d’extension permet également de connecter la carte sur les ports GPIO d’un Raspberry Pi.

codebug_procLe 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

 codebug_proc2Le 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 :

codebug_doc_01codebug_doc_02codebug_doc_03codebug_doc_04codebug_doc_06codebug_doc_07codebug_doc_08codebug_doc_09codebug_doc_10codebug_doc_11codebug_doc_12codebug_doc_13Voilà, 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)

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

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

projet_04Dans 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 :

projet_09Bin oui quand on n’a pas l’habitude, ça pique un peu les yeux 😉

LED_centrale_clignotteUne 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 :

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

projet_02

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

projet_07Ouvrez 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…

projet_10Le même en mode programme :

projet_11

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.

prog_framboise314

Connecter CodeBug sur un Raspberry Pi

codebug_montage_0C’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

codebug_montage_1Il 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 !

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

codebug_allum_01

CodeBug branchée sur le Raspberry Pi

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

codebug_python_lib

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.

exemple_pythonCet 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

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…

exemple_python3Ce que doit afficher la carte…

exemple_python2Et ce qu’elle affiche… Yep !

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…

image_4Des fils munis de fiches bananes (qui a dit toi-même ?) connectent ici un bouton poussoir…

image_2Une 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 😀

image_5CodeBug peut détecter que quelqu’un touche les contacts

image_6ç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.

Faut-il publier un cours de programmation CodeBug en Français ?

Voir les résultats

Loading ... Loading ...

Sources

 

 

Share Button

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. .

4 réflexions au sujet de « CodeBug, une petite carte rigolote »

  1. Ping : Apprendre à programmer pour les enfants | Pearltrees

  2. Damien

    Ç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 !

    Répondre
  3. Ping : CodeBug, une petite carte rigolote | Framboise 314 | titoonthecat

  4. Ping : Le jeu de Noël 2015 de framboise314 | Framboise 314, le Raspberry Pi à la sauce française….

  5. Ping : Coder - mfcoen | Pearltrees

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP * Time limit is exhausted. Please reload CAPTCHA.