Coincé(e)s à la maison pour cause de confinement, c’est le moment de ressortir vos cartes qui dorment au fond d’un tiroir. Avec un Arduino et un Raspberry Pi, je vous propose de découvrir ArduBlockly, une interface graphique en français pour programmer l’Arduino.
Au sommaire :
Apprendre la programmation Arduino avec ArduBlockly
ArduBlockly c’est quoi ?
C’est un fork (dérivé) de BlocklyDuino, un projet construit avec la librairie Blockly de Google. Elle donne la possibilité aux développeurs de créer des interfaces pour n’importe quel langage ou, comme ici, de carte. On trouve des versions de BlocklyDuino en ligne, ce qui permet de découvrir l’interface à moindre frais. Il est aussi possible d’installer BlocklyDuino sur Chrome.
Si vous souhaitez essayer BlocklyDuino, vous trouverez un article en Anglais sur linux-magazine.com.
A qui s’adresse ArduBlockly ?
Basé sur un système de briques, il permet d’apprendre l’algorithmique sous forme graphique. Finies les fautes de frappes ! Si votre raisonnement est bon, le programme fonctionnera. Vous avez eu l’occasion de travailler avec Scratch ? Voici une adaptation rapide vers Arduino. Votre programme en blocs sera traduit directement en langage Arduino.
Installer ArduBlockly
Comme d’habitude, je vous conseille de démarrer avec une installation « propre » de la dernière version de Raspbian stretch, suivie d’une mise à jour.
Installer ArduBlocky depuis github :
1 |
git clone https://github.com/carlosperate/ardublockly.git |
Déplacez vous dans le dossier ardublockly qui vient d’être créé :
1 |
cd ardublockly |
et installez les sous-modules dans le dossier
1 |
git submodule update --init --recursive |
Voilà, c’est tout ! Vous pouvez lancer le programme.
1 |
python start.py |
Ceci lance l’interface web, avec comme adresse
1 |
http://localhost:8000/ardublockly/index.html |
qui permet d’accéder au serveur.
Un premier programme
L’intérêt d’un logiciel comme ArduBlockly c’est qu’en quelques secondes on peut créer son premier programme :
A gauche vous trouvez les rubriques, chaque rubrique contenant les briques correspondantes. Cliquez sur Fonctions. Les blocs de la zone fonction s’affichent. Prenez le premier bloc, il contient 2 boucles : Arduino first et Arduino forever. Le premier bloc contient les initialisations, déclarations… et le deuxième est la boucle infinie qu’exécute l’Arduino après les initialisations. Prenez cette brique et glissez la dans la fenêtre centrale. La brique d’origine devient grise. En effet comme elle ne peut être utilisée qu’une fois, elle n’est plus disponible dès lors qu’elle a été déposée dans la fenêtre centrale.
Dans la fenêtre de droite nommée {} Arduino Source Code vous retrouvez directement le code de ce premier programme :
1 2 3 4 |
void setup() { } void loop() { } |
C’est un programme « vide », sans instructions mais tout à fait valide. Simplement il ne fait rien 🙂
Envoyer le programme à l’Arduino
Tout seul ArduBlockly est juste capable de créer un programme sous forme de blocs et de le traduire en langage Arduino. Pour convertir ce programme et l’envoyer à l’Arduino, ArduBlockly passe par l’IDE Arduino.
On va donc devoir installer cet IDE si ce n’est pas encore fait sur votre Raspberry Pi. Vous trouverez la méthode d’installation de l’IDE Arduino dans cet article.
Deuxième étape, indiquer à ArduBlockly où il va trouver l’IDE Arduino pour pouvoir compiler le programme et l’envoyer à l’Arduino.
Cliquez sur les 3 barres en haut à gauche de l’écran pour ouvrir le menu (flèche rouge). Au passage vous voyez Sketch_Name, c’est le nom du programme que vous pouvez modifier à votre choix (flèche jaune).
Dans le menu, Cliquez sur Settings pour ouvrir la fenêtre de configuration d’ArduBlockly.
Si vous avez installé comme dans l’article cité en référence, la copie d’écran ci-dessus vous indique comment configurer ArduBlockly pour le faire travailler avec l’IDE Arduino. Si votre IDE Arduino se trouve à un autre endroit… à vous de jouer 😉 Votre programme est maintenant prêt pour la création d’un premier « vrai » programme.
Faire clignoter une LED
Un développeur qui découvre un langage a pour coutume d’écrire « Hello World! » sur l’écran. Cette première prise en main permet de découvrir l’environnement de développement, d’écrire un programme minimal, de le compiler ou de l’interpréter et de vérifier qu’on peut envoyer des informations sur l’écran… Quand on arrive à réaliser « Hello World! », on sait qu’on a déjà un premier pas de fait 🙂
Quand on passe à du matériel, il arrive qu’on n’ait tout simplement pas d’écran… Comment dans ce cas vérifier qu’on maîtrise la chaîne de construction et d’exécution d’un nouvel environnement ? En allumant une LED. Ce sera notre « Hello World! » d’électronicien. On va même « compliquer » le programme en faisant clignoter la LED ! Eh oui, nous sommes des fous, nous les #makers, rien ne nous fait peur 😀
Pour les tests j’ai connecté une LED rouge sur la borne Digital 9 de l’Arduino.
[stextbox id=’info’ caption=’Vérification’]Pour continuer, vérifiez que votre Arduino est bien connecté sur le Raspberry Pi et que l’IDE Arduino fonctionne. Essayez par exemple le programme exemple « Blink » qui fait… exactement ce que nous allons faire maintenant, mais sous forme de texte.[/stextbox]
Dans le menu de ArduBlockly, choisissez les blocs comme ci dessus. Ne plissez pas les yeux, je vous les affiche en plus grande taille 🙂
Dans les initialisations Arduino exécute en premier éteignez la LED en mettant la pin 9 à zéro.
Dans la boucle infinie exécutée par l’Arduino J’allume la LED 100mS, puis je l’éteins 500 mS.
Cliquez sur le bouton rouge (lecture) en haut de la fenêtre. Regardez les icônes qui apparaissent et l’animation qui tourne autour du bouton pendant la compilation par l’IDE.
Au bout d’un (court) moment, la LED doit commencer à clignoter.
Les blocs disponibles
La rubrique Logique comporte la fonction Si, des comparaisons, des fonctions logiques, l’inversion, les valeurs vrai (true) et nul ainsi que le test.
La rubrique Boucles contient les boucles ainsi que la sortie de boucle.
Dans Maths on va trouver… les fonctions mathématiques (vous aviez deviné ?)
La rubrique Texte permet de tester ou créer un texte
Ici vous pourrez créer vos variables.
Dans les fonctions figurent les fonctions de base de l’Arduino ainsi que l’outil pour créer vos propres fonction, avec ou sans valeur de retour. Vous remplacerez « faire quelque chose » par le nom de votre fonction.
Dans les entrées sortie vous gérez les E/S analogiques et numériques.
La rubrique Time met à votre disposition des délais ou des mesures de temps
Dans Audio vous pourrez envoyer un son sur une sortie.
Les moteurs utilisables sont le servomoteur et le moteur pas à pas
Finalement la rubrique Comms gère la communication série. Il y a également une brique de configuration du bus SPI qui permet d’utiliser les deux briques en bas de la fenêtre.
Version Windows
Merci à Jean Marie qui a signalé cette version Windows dans les commentaires :
Je me permet de vous signaler qu’il existe une version complète sous la forme d’un zip à extraire en bloc pour Windows :https://github.com/carlosperate/ardublockly/releases/
il suffit de le décompresser dans un répertoire, puis dans les paramètres de passer en français, et on peut s’entrainer même si la Framboise est confinée
Et en ligne
Sarah nous signale qu’il existe une possibilité en ligne si vous n’avez pas physiquement d’Arduino sous la main : https://www.tinkercad.com/learn/circuits
Conclusion
ArduBlockly n’est pas encore terminé, c’est un logiciel en cours de développement et de nouvelles fonctions vont s’ajouter à l’existant.
Ce qui est disponible permet déjà de s’amuser avec un Arduino et de découvrir les bases de l’algorithmique. Vous pourrez partir à la découverte de l’Arduino si vous avez des notions de Scratch.
Sources
- https://github.com/carlosperate/ardublockly
- https://github.com/carlosperate/ardublockly/wiki/Installing-Ardublockly
Bonjour !
Sympathique interface : je ne connaissais pas !
Je vais donc profiter d’un peu de temps libre… Emprisonné à la maison pour la tester !
Le système de briques m’évitera peut-être de faire certaines erreurs !
J’en profite pour poser une question à propos de l’Arduino. Quelqu’un connait-il un émulateur qui permettrait de tester le programme pas à pas au lieu de le blinder de « printf » et de programmer systématiquement le microcontrôleur lors des phases de développement ?
PS : pour les coquillettes O:-)
– ressortir vos carteS
– Pour Convertir : « C » en minuscule !
Merci
et merci pour la relecture, celles là je ne les avais pas vues 🙂 c’est rectifié.
je ne connais pas de pas à pas pour Arduino…
cdt
françois
Je conseille effectivement d’utiliser blocklyarduino en local et même mieux : l’intégrer dans en plug-in dans l’interface de l’environnement Arduino.
J’ai en effet rencontré pendant des semaines entières des problèmes de téléversement des programme (chaque nouvelle version de chrome ou de Firefox remettait en cause toute solution trouvée et je n’ai jamais pu utiliser le fameux plug-in code Ember.)
plus d’infos ici : http://www.libreduc.cc/2018/03/07/blocklyrduino-en-plugin-de-ledi-arduino/
merci Cyrille
Je m’éclate avec APPINVENTOR qui, sur le même principe, permet de faire des applications sous android.
Je n’y connais rien en programmation et j’aimerais savoir si il existe ce genre de « soft » pour faire des application pour mon raspberry.
Bonjour David
il y a Scratch sur le Raspberry Pi, très puissant aussi pour développer des programmes et apprendre
même s’il est souvent dit que Scratch c’est pour les enfants, c’est un vrai langage de programmation.
cdt
françois
Regarde du coté de Node-Red
D’abord bravo pour ce magnifique article. Je me permet de vous signaler qu’il existe une version complète sous la forme d’un zip à extraire en bloc pour Windows :https://github.com/carlosperate/ardublockly/releases/
il suffit de le décompresser dans un répertoire, puis dans les paramètres de passer en français, et on peut s’entrainer même si la Framboise est confinée, far, far away dans une autre galaxie!
Ping : Apprendre à programmer Arduino avec ArduBlockly – Framboise 314, le Raspberry Pi à la sauce française…. – Jhc Info