Arduino au collège

Mise à jour du 22 février 2016

Cet article date de novembre 2013, une éternité dans le monde de l’informatique. Je constate aujourd’hui que de plus en plus d’enseignants s’intéressent à Arduino et à Ardublock, mais il faut avoir conscience que le logiciel Ardublock est en fin de vie. Il n’est plus maintenu depuis longtemps et presque plus personne ne développe de nouvelles fonctionnalités d’Ardublock.

Depuis maintenant deux ans environ, de nouveaux logiciels de programmation ont été développés, la plupart à partir de Blockly conçu spécialement par Google pour faciliter justement le développement de ce type de logiciels pédagogiques. On trouve aujourd’hui des logiciels capables de remplacer avantageusement Ardublock. J’ai choisi d’utiliser Blockly Arduino qui a entre autre l’avantage de pouvoir facilement s’adapter à mes besoins pédagogiques. J’ai rédigé un article qui vous expliquera plus précisément les avantages de Blockly Arduino par rapport à Ardublock, ainsi que les points à améliorer prochainement.

 

La suite de cet article date de novembre 2013 : considérer qu’aujourd’hui Ardublock peut avantageusement être remplacé par Blockly Arduino !

1. Arduino : c’est quoi ?

Arduino est le nom d’une gamme de cartes à microcontrôleur, c’est à dire de cartes électroniques programmables. Elles utilisent toutes un même logiciel de programmation (environnement de développement ou IDE) appelé logiciel Arduino également. Le langage de programmation utilisé est proche du langage C. Arduino est aussi aujourd’hui le nom d’une entreprise qui gère et développe ces produits.

Arduino est donc une solution concurrente des cartes Picaxe très utilisées depuis longtemps en Technologie au collège.

Carte Arduino Leonardo (Source : arduino.cc)

IDE Arduino

2. Arduino : ça sert à quoi ?

Une carte Arduino, comme toutes les cartes à microcontrôleur, permet de piloter un système  physique de manière interactive à partir du programme que l’on aura défini et mis dans sa mémoire. Par exemple gérer automatiquement l’ouverture d’une porte de garage, envoyer un SMS quand le jardin est trop sec et gérer le système d’arrosage à distance, piloter un nouveau robot, … Il faut pour cela associer à la carte Arduino des capteurs (de lumière, de température, de position, …), des actionneurs (moteurs, pompe, …), des organes de sortie (lampe, chauffage, …), des interfaces de puissance (relais, pont en H, …), une alimentation (piles, panneaux solaires, …), des interfaces de dialogue (boutons, LEDs, écran, …), des interfaces de communication (réseau filaire, réseau sans fil, …), …

Une carte Arduino (de base) gère essentiellement le traitement de l’information (source : developpez.com)

Arduino peut être utilisé pour des applications en domotique (source : jeromeabel.net)

Un robot intégrant une carte Arduino Leonardo (source : mhobbies.com)

3. Arduino : ça sert à qui ?

Arduino a été conçu pour l’enseignement de l’électronique et de l’informatique. Il a été optimisé dès sa création pour être accessible à tous les « bricoleurs » les adeptes du “Do It Yourself” (ou DIY) : système pas cher, simple,  multiplateforme, … mais performant ! Il permet de développer très rapidement et simplement une maquette fonctionnelle pour un projet. Si le projet doit être produit en série, alors Arduino servira uniquement à la conception d’un prototype.

Des étudiants de l’école Louis Lumière travaillent sur un projet avec des effets sonores pilotés par une carte Arduino (source : digitalarti.com)

Deux raisons principalement au succès du système Arduino : sa connectique standardisée et sa licence libre.

La connectique des cartes Arduino est conçue pour pouvoir y connecter des cartes additionnelles en les empilant sur la carte à microcontrôleur (sur deux rangées de connecteurs traversants). A cause du succès des cartes Arduino, cette connectique est aujourd’hui un standard de fait, ce qui a facilité l’apparition d’un très grand nombre de cartes additionnelles compatibles, appelées shields Arduino (shield = bouclier en anglais). Ces cartes sont fournis avec une bibliothèque de fonctions logicielles pour faciliter son utilisation dans un programme. La conception matérielle et logicielle d’un projet devient ainsi très modulaire. Les modules (shields) vendus dans le commerce sont fabriqués industriellement et sont fiables. La conception d’un projet est ainsi facilité. Le système obtenu est mieux optimisé au niveau du prix, voire de la taille (composants CMS), …

Carte additionnelle (shield) avec une interface de puissance MC33926 pour des moteurs à courant continu, alimentés sous 8 à 28V avec 3A maxi (source : robotshop.com)

 

Carte Seeedstudio Music Shield V2.0 : carte audio connecté ici sur une carte Arduino (source : seeedstudio.com)

 

Empillement de 3 cartes compatibles avec la connectique Arduino (source : developpez.com)

Arduino est sous licence libre de droits (open source) aussi bien au niveau du logiciel (l’environnement de développement) que du matériel, donc des cartes à microcontrôleurs, mais aussi des cartes additionnelles compatibles. Les composants utilisés, eux ne sont pas libres de droit. N’importe qui peut développer du matériel ou du logiciel utilisant le système Arduino sans payer de licence. La seule limite demandée est de laisser le nom Arduino aux produits officiellement développés par l’équipe Arduino. Il existe donc de nombreux produits compatibles Arduino avec des noms très variés finissant souvent par « duino » comme freeduino, seeduino, …

Extrait schema Leonardo (source : arduino.cc)

Extrait schema carte rduino Leonardo (source : arduino.cc)

5. Arduino : ça coûte combien

Pour tester Arduino :
Carte Arduino Leonardo = 18 € Câble USB A / micro USB B (1,8 m) = 4 €
Logiciel Arduino : gratuit
Total = 22 € TTC (hors frais de port)
Cartes (shields) à connecter sur la carte à microcontrôleur : prix très variables, mais entre 10 et 30 € généralement.
Modules à connecter sur ces cartes (shields) : quelques euros à 30 € généralement.
Les plans de ces cartes sont libres et des cartes peuvent être fabriquées à moindre coût (?) avec en plus la possibilité de les adapter à différents besoins, de les commercialiser, …

6. Arduino : ça vient d’où ?

Monsieur Massimo Banzi enseignait la conception interactive en Italie. En 2005, il a conçu une carte électronique minimaliste et low cost pour permettre à ses étudiants de bricoler dans des activités de projets. Il appellera cette carte Arduino comme le bar où il avait l’habitude d’aller. Ce nom correspond à celui du roi Arduin (en 1002 en Italie). Avec l’aide d’une équipe de développeurs, ils conçoivent un environnement de développement spécifique. Le succès grandissant rapidement au fil des années, différentes versions matérielles et logicielles seront développées avec notamment l’Arduino Uno en 2010 qui est encore la carte de référence aujourd’hui. En 2012 sort l’Arduino Leonardo qui est une version optimisée.

L’équipe de développeurs des produits Arduino officiels, avec Massimo Banzi en bas à droite (source : atelier-objets-communicants.ensad.fr)

7. Arduino : c’est utile au collège ?

Arduino a été développé au départ pour des étudiants où des bricoleurs qui ne maîtrisent pas l’électronique où l’informatique. Mais la programmation se fait avec un langage proche du langage C. Au collège, en Technologie, l’utilisation d’une carte à microcontrôleur correspond au programme (voir cet article), mais pas la programmation en langage C qui, même avec un programme simple, détournerait l’élève des objectifs : analyser les aspects fonctionnels d’un système, les solutions techniques utilisées, la structure algorithmique d’un programme, la réalisation d’une maquette, … Une programmation graphique est nécessaire pour simplifier l’aspect informatique.

Depuis de nombreuses années, ce sont les solutions concurrentes de type Picaxe qui se sont imposées au collège. En ce qui me concerne, je découvre cette année l’enseignement de la Technologie au collège. Je me pose donc la question de savoir quelles sont les solutions qui existent pour le collège. Il en existent plusieurs et Picaxe ne me semble pas être la meilleure solution pour l’enseignement de la Technologie au collège. Je développerai l’analyse de Picaxe dans un prochain article. Voyons plutôt ici quelques une des autres solutions disponibles actuellement.

Le grafcet est utilisable en Technologie au collège : il permet la programmation d’automates. Automgen Collège me semble être une solution intéressante pour ce type d’applications, mais les tarifs sont un frein important. Son utilisation n’est pas adapté à la réalisation de maquettes simples, de petits montages expérimentaux, de petits robots, …

Le logiciel Flowcode permet la programmation de cartes à microcontrôleur comme l’Arduino avec des algorigrammes (ou organigrammes). Flowcode est assez cher : environ 100 € la licence éducation (environ 1000 € les 10 licences). Il permet d’aborder la programmation de manière assez simple et efficace. Il permet également la simulation. Flowcode n’est pas compatible avec les cartes Picaxe.

Une autre solution existe pour programmer graphiquement des cartes Arduino : c’est le logiciel Ardublock. Au collège, cette solution me semble vraiment être la solution la plus intéressante.

Exemple de programme, la commande servomoteurs, avec un langage proche du langage C (source : LP2I, capture d'un exemple d'Arduino, servo sweep)

Exemple de programme, la commande servomoteurs, avec un langage proche du langage C (source : LP2I, capture d’un exemple d’Arduino, servo sweep)

 

Extrait d'un programme simple avec Floxcode V5 (Source : LP2I)

Extrait d’un programme simple avec Floxcode V5 (Source : LP2I)

8. Arduino + Ardublock : la solution idéale pour débuter ?

Ardublock permet de programmer graphiquement, à l’aide de blocs, une carte à microcontrôleur de type Arduino. Il suffit de sélectionner dans une bibliothèque des blocs de programme correspondants aux structures de contrôle, aux traitements, aux données, … comme avec le logiciel Scratch (initiation à l’informatique) ou App Inventor (développement d’application Androïd) qui utilisent la même base appelée OpenBlocks. C’est une application Java, libre et gratuite comme le logiciel Arduino. Elle s’intègre sous forme d’un plugin à l’environnement de développement Arduino. La programmation d’une carte Arduino avec Ardublock est accessible aux débutants en informatique, à partir de 10 ans environ. Ardublock est particulièrement bien adaptée à une utilisation pédagogique au collège et au lycée en Sciences de l’Ingénieur ou en STI2D. Avec Ardublock, l’interface de programmation du logiciel Arduino peut être complètement ignorée par l’élève : pas de menus, pas de code à écrire, … En cliquant sur le bouton « Téléverser vers l’Arduino », Ardublock génère automatiquement le programme et le transfère dans la carte Arduino qui exécute le programme. Par essais successifs, l’élève peut faire le lien entre son programme sous forme graphique et le comportement du système piloté par la carte Arduino. Il est à noter que le programme généré par Ardublock est visible dans l’interface Arduino en langage Arduino, proche du C, de manière assez propre et lisible, pour le prof. Ce qui n’est pas le cas avec App Inventor (aucun programme visible en Java).

Lien pour télécharger l’environnement de développement Arduino.
Lien pour télécharger la version béta du plugin Ardublock (du 12 nov 2013).
Lien pour voir comment intégrer Ardublock dans Arduino.

Interface d’Ardublock : à gauche les bibliothèques de blocs, à droite le programme avec les blocs sélectionnés et édités (source : LP2I)

8. Arduino : quel avenir ?

Arduino est devenu une solution standard pour le développement de projets à bases de carte à microcontrôleur. Il y a de plus en plus de matériel et de logiciels compatibles Arduino. Fin 2013 est sorti l’Arduino Yún qui permet un accès performant à Internet en Wifi ou Ethernet. Cette carte contient un processeur (MIPS) tournant sous Linux en plus du microcontrôleur, avec un format réduit par rapport à la carte Arduino Uno de référence, le tout pour 60 à 70 € seulement . L’Arduino Yún est disponible depuis décembre 2013. Grâce à ses interfaces réseau, l’Arduino Yún peut communiquer facilement avec les appareils Androïd. La carte Arduino peut servir comme d’habitude d’interface intelligente avec des capteurs, des actionneurs, … Une tablette ou un smartphone peut alors servir d’interface de dialogue intelligente. Les deux communiquent sur le même réseau, en Wifi par exemple, et partagent des ressources communes sur le cloud. D’ailleurs Yún signifie cloud en chinois !

Carte Arduino Yun avec interface Wifi et Ethernet (source : arduino.CC)

Lien vers la suite de ma réflexion avec un article écrit le 18 janvier 2015 sur la Programmation graphique avec Arduino et Ardublock

Accueil

Mis en avant

Ce blog présente l’enseignement de Technologie au collège Jean-Macé de Châtellerault dans la Vienne (86).

2013-09-06 17.28.30

Salle de Technologie au collège Jean Macé de Châtellerault (Source : Collège Jean Macé)

Les principaux objectifs de ce blog

– Montrer ce qui se fait en Technologie au collège Jean Macé de Châtellerault (dans la Vienne près de Poitiers).

– Echanger avec d’autres professeurs pour mutualiser nos expériences. Internet est une source formidable d’informations. Avec ce blog nous espérons apporter notre contribution à cette richesse en montrant comment la Technologie et son enseignement évoluent en permanence.
Des blogs spécifiques à chaque niveau, de la 6ème à la 3ème, ont été créés par ailleurs pour montrer les activités proposées et permettre aux élèves de rédiger des articles qui rendent compte de leur travail.

Voici les liens vers ces blogs :
Technologie en 5ème au collège Jean Macé
Technologie en 4ème au collège Jean Macé
Technologie au collège Jean Macé (ce blog)

N’hésitez pas à contacter les enseignants de Technologie du collège Jean-Macé, en laissant des commentaires sur ces blogs.

Mise à jour du 28/09/2016

Monsieur Teruel et Monsieur Pers n’enseignent plus au collège Jean Macé depuis cette année scolaire 2016-2017.

Monsieur Pers continue de partager des informations utiles en lien avec l’enseignement de la technologie sur cet autre blog :

https://blogpeda.ac-poitiers.fr/lp2i-si/

Daniel Pers

daniel.pers@ac-poitiers.fr