Publié le 20 mars 2020 - par

Apprendre à programmer Arduino avec ArduBlockly

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.

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 :

git clone https://github.com/carlosperate/ardublockly.git

Déplacez vous dans le dossier ardublockly qui vient d’être créé :

cd ardublockly

et installez les sous-modules dans le dossier

git submodule update --init --recursive

Voilà, c’est tout ! Vous pouvez lancer le programme.

python start.py

Ceci lance l’interface web, avec comme adresse

http://localhost:8000/ardublockly/index.html

qui permet d’accéder au serveur.

Vous devriez voir cet écran.

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 :

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.

Circuit ArduBlockly, IDE, Arduino UNO

En haut à gauche : ArduBlockly, à droite l’IDE Arduino et dessous l’Arduino UNO.

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.

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.

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

 

 

 

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. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

8 réflexions au sujet de « Apprendre à programmer Arduino avec ArduBlockly »

  1. Christophe

    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 !

    Répondre
  2. Cyrille

    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/

    Répondre
  3. David TESSON

    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.

    Répondre
    1. François MOCQ Auteur de l’article

      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

      Répondre
  4. deconinck

    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!

    Répondre
  5. Ping : Apprendre à programmer Arduino avec ArduBlockly – Framboise 314, le Raspberry Pi à la sauce française…. – Jhc Info

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.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.