BlocksCAD : la CAO “façon Scratch” pour des projets EPI avec imprimante 3D

Avec la réforme du collège, les projets impliquant la fabrication de maquettes et autres dispositifs expérimentaux devraient se multiplier, notamment dans le cadre des EPI (Enseignements Pratiques Interdisciplinaires). Comment parvenir à concevoir et réaliser rapidement et simplement avec les élèves des pièces pour ces maquettes ?

Les professeurs de Technologie au collège utilisent depuis des années divers logiciels de modélisation 3D suivant le thème abordé. En 6è la modélisation 3D permet aux élèves de visualiser des mécanismes, comme une transmission par chaîne. Dans ce cas l’élève se contentera d’exploiter une modélisation 3D avec SolidWorks par exemple, ou un logiciel comme edrawing. En 5è, les élèves commencent à faire de la modélisation 3D en rapport avec le thème Habitat et ouvrages. Des logiciels comme Sketchup ou Sweet Home 3D sont souvent utilisés. En 4e et 3e, SolidWorks est à nouveau très utilisé, mais la modélisation avec ce logiciel nécessite une phase d’apprentissage délicate pour de nombreux élèves.

Logo du logiciel BlocksCAD (source : blockscad.einsteinsworkshop.com)

J’ai découvert très récemment le logiciel BlocksCAD qui me semble très intéressant pour concevoir de nombreuses activités pédagogiques. C’est un logiciel développé par Einstein’s Workshop, un centre de formation pour enfants dans la région de Boston aux Etats Unis. Le développement a été financé sous-licence libre grâce à une campagne de crowdfunding (financement participatif) en 2013 et 2014. BlocksCAD est basé sur Blockly qui est une brique logicielle conçue en 2013 par Google pour permettre le développement de logiciels pédagogiques d’apprentissage de la programmation. Blockly permet de concevoir simplement un logiciel où la conception se fait graphiquement en assemblant des blocs, comme avec Scratch ou AppInventor. Blockly permet de générer du code à partir de cet assemblage de blocs. Ici BlocksCAD génère une modélisation en 3D en utilisant le code du logiciel OpenSCAD qui est un logiciel libre de modélisation en 3D (à partir de scripts). Les modèles créés avec BlocksCAD peuvent être exportés au format OpenSCAD, mais ce n’est pas sa fonction principale. Par défaut BlocksCAD travaille avec des fichiers au format XML et génère un fichier au format STL (STereoLythography) qui est devenu le format le plus courant pour les logiciels d’impression 3D (comme RepetierHost qui est un logiciel libre).

BlocksCad m’a permis de concevoir et fabriquer des mécanismes à usage pédagogiques. Il s’agit de vrais mécanismes entièrement imprimables en 3D, constitués de pièces mobiles, avec différents types de liaisons, différents types de motorisations …  Mais attention, pour imprimer toutes les pièces d’un petit mécanisme, il faut de 2h à 3h en moyenne. Cela nécessite généralement de l’ordre de 10 m de fil en PLA de 1,75 mm. A raison de 25 € la bobine de 1kg en moyenne (soit au moins 330 m), cela revient à quelques dizaines de centimes pour un petit mécanisme comportant quelques pièces, et moins de 2 euros pour un mécanisme comportant une vingtaine de pièces.

Même si BlocksCAD est simple, la conception des pièces d’un mécanisme n’est pas forcément simple. Mais un des intérêts de BlocksCAD est la possibilité pour l’enseignant de pouvoir donner aux élèves des modèles 3D de briques élémentaires : une sorte de bibliothèque de pièces mécaniques constituant une boîte de mécano virtuelle. On donnerait ainsi la possibilité pour les élèves de choisir les pièces correspondant à leur besoin, de les modifier pour tenir compte de leurs contraintes (parfois simplement en changeant des paramètres du modèle), de les assembler dans BlocksCAD, éventuellement de les animer (avec OpenSCAD), de les imprimer, de les assembler physiquement en les intégrant dans un système (avec une chaîne d’énergie et une chaîne d’informations), de valider des solutions techniques, …, que ce soit au collège ou au lycée. Il serait intéressant que les enseignants puissnet mutualiser les modèles 3D faits sous BlocksCAD pour constituer cette “boîte de mécano virtuelle”.

Voici quelques exemples que j’ai mis au point. Je les ais fabriqués et ils fonctionnent. Je publie ici des images et des vidéos issus des modèles 3D. Des photos et des vidéos des systèmes imprimés seront publiées prochainement.

1) Une pièce de base pour la construction de mécanismes : une barre avec des trous et un connecteur intégré à une extrémité

J’ai essayé de faire une conception paramétrique d’une pièce de base constituée d’une barre avec des trous (comme les jeux Mécano) avec un connecteur intégré pour obtenir des liaisons pivot : on peut choisir notamment le nombre de trous (n), la largeur de la pièce (b), la hauteur des deux premiers cylindres constituant les connecteurs (h1 et h2), … J’ai ajouté aussi un trou avec un méplat pour le moteur.

Barre 4 trous V14

Exemple de pièce conçue avec BlocksCAD. Les couleurs ont été ajoutées à des fins pédagogiques (Source : LP2I)

Barre_190416_V19_Top

L’ensemble est facilement paramétrable (Source LP2I)

Barres_assemblees_180616

Assemblage de deux barres, selon un angle que l’on peut facilement faire varier (voire animer avec OpenSCAD).

Essai_Barres_assemblees_180616

On peut très simplement imaginer et concevoir un tas de choses à imprimer en 3D. Ici les barres rouges sont imprimées sous la forme d’une seule pièce. Les liaisons cylindriques entre les pièces se clipsent et tournent bien.

2) Mécanisme bielle-manivelle

A partir de cette pièce de base j’ai conçu et imprimé en 3D un système bielle-manivelle à usage pédagogique. On peut notamment changer la course en connectant la bielle (en rouge) sur deux trous de la manivelle (en bleu). On peut allonger chacune des pièces pour y connecter d’autres pièces.

Bielle_manivelle_190416_V19_Top2

Système bielle-manivelle motorisé, conçu avec BlocksCad (Source : LP2I)

Bielle_manivelle_190416_V19_Bot2

Arrière du système bielle-manivelle motorisé, conçu avec BlocksCad. Le moteur peut se fixer sur la partie orange. (Source : LP2I)

Bielle_manivelle_190416_V19_Bot3

On peut aussi allonger la pièce verte en translation pour pouvoir y connecter un autre mécanisme. Il suffit de changer la valeur du nombre de trous pour cette pièce. (Source LP2I)

Continuer la lecture

Blockly Arduino : l’esprit d’Ardublock, sans ses inconvénients !

1. Une nouvelle interface graphique développée par Google

Le MIT et Google ont développé Scratch et AppInventor qui ont révolutionné l’enseignement des bases de la programmation. Ces logiciels étaient basés initialement sur une interface graphique très novatrice appelée Openblocs où on assemble des blocs pour générer du code. Openblocs est une application Java qui peut poser problème. Elle est utilisé aussi par Ardublock.

Google a ensuite développé Blockly, sorti en 2013, qui est un outil logiciel avec là encore une interface graphique pour programmer à partir de blocs et générer automatiquement du code. Blockly a été conçu pour être facilement intégrable à des logiciels pédagogiques de programmation graphique. Blockly est aussi conçu pour pouvoir être très configurable et s’adapter aux besoins pédagogiques : on peut facilement créer ses propres blocs, et définir le code qui doit être généré. Blockly est en javascript, il peut donc facilement être intégré à une application web multiplate-forme comme AppInventor 2 (en 2013).

Blockly est libre et est à l’origine aujourd’hui de nombreux logiciels de programmation graphique. Blockly est intéressant pour l’enseignement de l’algorithmie en Mathématiques conformément aux nouveaux programmes du collège comme le montre Patrick Raffinat dans son article : http://revue.sesamath.net/spip.php?article811

Pour programmer des cartes électroniques Arduino, j’utilise Ardublock depuis 2013 car c’est le logiciel qui correspondait le mieux à mes besoins en Technologie au collège mais aussi au lycée en Sciences de l’Ingénieur. Malheureusement Ardublock intègre Openblocs et non Blockly.

 

2. Intégration de Blocly avec Arduino par des enseignants

Parmi les nombreuses applications pédagogiques de Blockly, il y a Blockly Arduino développé depuis 2014 par Sébastien Canet, professeur formateur de Technologie de l’académie de Nantes. Blockly Arduino permet donc de programmer graphiquement avec des blocs et de générer du code pour Arduino, en langage C. La compilation du langage C en code exécutable par une carte Arduino est réalisée par le logiciel Arduino ou par un plugin du navigateur (CodeBender). La version actuelle de Blockly Arduino est opérationnelle et est très intéressante sur le plan pédagogique. Elle apporte de nombreux avantages par rapport à Ardublock, dont le développeur s’est inspiré.

Blockly Arduino est une application web qui ne nécessite donc aucune installation (pas besoin de droits administrateur non plus) et qui fonctionne sur toutes les plate-formes (PC, Mac, Androïd, …).

Exemple de programme simple avec Blockly Arduino utilisant un capteur de collision (logique), un capteur de vide (optique et analogique) , et un servomoteur à rotation continue. L’affichage se fait sur l’écran du PC via le câble USB.

Capteur collision ou vide + Servo rotation continue 150216.zip (version du 15/02/16)

Exemple de programme écrit avec Blockly Arduino. Il utilise un capteur de collision (logique), un capteur de vide (optique et analogique) , et un servomoteur à rotation continue (Source : Collège Jean Macé)

Exemple de programme écrit avec Blockly Arduino. Il utilise un capteur de collision (logique), un capteur de vide (optique et analogique) , et un servomoteur à rotation continue (Source : Collège Jean Macé)

5) Capteur colision ou vide + Servo rot continue 120515 (complet)

Le même programme fait avec Ardublock (Source : Collège Jean Macé)

Blockly Arduino est accessible à partir du lien suivant qu’il faut ouvrir avec Mozila Firefox (32 ou 64 bits) ou Google Chrome (32 bits uniquement) par exemple :

http://www.blockly.technologiescollege.fr/blockly@rduino/?lang=fr
Lien vers un tutoriel

Il est possible également de télécharger le site web de Blockly Arduino (moins de 10Mo) et de le lancer à partir du fichier index.html

Lien vers le logiciel pour un fonctionnement en local :

https://github.com/technologiescollege/Blockly-at-rduino

L’interface graphique de Blockly Arduino :

Menus, boîte à outils et espace de travail de Blockly Arduino (Source : Collège Jean Macé)

Menus (à gauche), boîte à outils (avec blocs “fonctions” ouverts, avec les fonctions utilisées) et l’espace de travail de Blockly Arduino avec un exemple de programme utilisant un capteur analogique et deux moteurs à courant continu. (Source : Collège Jean Macé)

Code Arduino généré par Blockly Arduino (Source : collège Jean Macé)

Code Arduino généré par Blockly Arduino (Source : collège Jean Macé)

Ne pas confondre Blockly Arduino avec Blockly Duino qui est une ancienne version.
Elle a inspiré le développement d’Ardublockly, qui est encore en version béta, mais qui devrait être intéressant également.
Voir une demo en ligne de l’interface d’Ardublockly ici : http://carlosperate.github.io/ardublockly/index.html
Pour une installation fonctionnelle (partiellement car en cours de développement) :
https://github.com/carlosperate/ardublockly
Mon premier essai d’Ardublockly m’a permis de voir notamment une fonction très intéressante, la possibilité de copier une partie d’un programme (sous forme de blocs) et de la coller dans le programme en cours. Cette fonction n’est pas visible dans la démo en ligne qui n’intègre pas les menus.

Continuer la lecture

Logiciels de programmation graphique pour le collège : Scratch pour Arduino (S4A) vs Ardublock

Mise à jour du 22 février 2016

Cet article date d’il y a près d’un an, une éternité dans le monde de l’informatique. Je constate aujourd’hui que de plus en plus d’enseignants s’intéressent à Ardublock, mais il faut avoir conscience que ce logiciel 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 d’avril 2015 : considérer qu’aujourd’hui Ardublock peut avantageusement être remplacé par Blockly Arduino !

Scratch et Ardublock sont deux logiciels libres, multiplate-formes, conçus pour l’apprentissage des bases de la programmation sous forme graphique. Tous deux utilisent une syntaxe très semblable (avec des blocs qu’on assemblent) développée par le MIT sous le nom d’Openblocks (Ardublock utilise la version Java).
Lien vers le site officiel de Scratch pour Arduino.
Lien vers un article que j’ai écrit sur Arduino + Ardublock.
Lien vers un article que j’ai écrit pour utiliser Arduino + Ardublock avec une clé USB Linux (donc très utile pour travailler sur nos PC sur lesquels on ne peut rien installer).

 

Interfaces de programmation : Ardublock permet des programmes plus lisibles

Scratch est plutôt destiné aux enfants, dès 8 ans, et vise d’abord des fonctions multimédia très ludiques. Ardublock est plus généraliste dans les fonctions visées mais son interface reste très simple et dépouillée (quelques boutons sans aucun menu), adaptée à des enfants. L’interface graphique de Scratch est plus complexe mais reste adaptée à des enfants. Les deux sont traduits en français (la traduction est parfois incomplète pour Ardublock, suivant les versions). Ce sont tous les deux des logiciels assez récents qui souffrent encore de défauts de jeunesse, d’autant qu’ils ne sont pas développés par des sociétés marchandes.

Pour la saisie d’un programme, Scratch propose beaucoup de blocs spécifiques au multimédia alors qu’Ardublock propose plus de blocs génériques. Scratch limite les broches utilisables pour les entrées/sorties et ne permet pas de donner un nom aux entrées/sorties (Analog 2 n’est pas très parlant par exemple). Scratch ne permet pas de structurer un programme avec des sous-programmes (bien utile pour masquer certaines parties d’un programme). Ardublock permet donc de présenter les programmes de manière un peu plus parlante, ou simplifier des programmes dont on ne veut analyser qu’une partie.

Interface d'Ardublock avec un exemple de programme (Source : Collège Jean Macé)

Interface d’Ardublock avec un exemple de programme (Source : Collège Jean Macé)

Une partie de l'interface de Scratch pour Arduino avec un exemple de programme (Source : Collège Jean Macé)

Une partie de l’interface de Scratch pour Arduino avec un exemple de programme (Source : Collège Jean Macé)

Scratch pour Arduino : la carte électronique est gérée comme un périphérique d’E/S et ne peut pas fonctionner de manière autonome

A la base, Scratch permet seulement de saisir graphiquement un programme et de l’exécuter sur un ordinateur (PC, Mac, …). Une version de Scratch, appelée S4A (Scratch for Arduino), permet de concevoir un programme qui va aussi gérer des entrées / sorties d’une carte électronique programmable de type Arduino. Pour cela, Scratch communique avec une carte Arduino par une liaison série (via un câble USB) de manière à ce que l’ordinateur qui exécute Scratch puisse lire des entrées ou écrire sur des sorties d’une carte Arduino. Il faut pour cela que la carte Arduino exécute un programme spécifique, le firmware de S4A, qui gère cette communication en permanence (toutes les 75 ms) avec l’ordinateur. La carte Arduino est gérée comme un simple périphérique d’entrée/sortie.
Avec Scratch pour Arduino (S4A), le programme conçu par l’élève n’est pas compilé : aucune ligne de codes ne peut être montrée aux élèves. Il n’est pas transféré vers la carte Arduino qui ne l’exécute pas car elle gère seulement la communication avec l’ordinateur. C’est l’ordinateur qui assure seul le traitement des informations selon le programme conçu par l’élève. Aucun fonctionnement autonome de la carte électronique n’est prévu : sans l’ordinateur, le système ne fonctionne pas !

 

Arduino + Ardublock : un outil simple de développement pour cartes Arduino

Ardublock fonctionne selon un principe tout à fait différent. Pour que l’élève puisse tester son programme, il doit le compiler, c’est à dire générer un programme exécutable par la carte Arduino choisie, puis le téléverser (uploader) dans la mémoire de la carte Arduino. Ces tâches sont réalisées en une seule étape en cliquant simplement sur l’icône “téléverser”. C’est essentiellement le logiciel Arduino qui gère ces fonctions. Ardublock n’est qu’un plugin qui gère l’interface graphique de programmation. Le programme conçu par l’élève est alors réellement exécuté par le processeur de la carte Arduino. Le câble USB ne sert plus qu’à alimenter la carte Arduino et éventuellement à communiquer des données pour afficher par exemple la valeur d’un capteur sur l’écran de l’ordinateur. On peut alimenter la carte Arduino par une batterie et obtenir un fonctionnement complètement autonome.

 

La place de la programmation dans le programme actuel de la Technologie au collège

Le programme actuel de la technologie au collège précise assez peu de choses sur la programmation. Dans le programme de 4e, on peut voir uniquement deux compétences :
– Identifier les étapes d’un programme de commande représenté sous forme graphique. Niveau 1.
– Modifier la représentation du programme de commande d’un système pour répondre à un besoin particulier et valider le résultat obtenu. Niveau 2.
Le B.O. précise aussi ceci :
La programmation  d’un support automatique ne demande pas l’écriture de lignes de code. Elle doit être graphique si le support présente une interface qui le permet. Le système automatique doit être simple. L’objectif est de comprendre de manière globale l’impact de la modification sur le fonctionnement du système.
Lien vers un article que j’ai écrit sur la place de la programmation dans le programme de la Technologie au collège.

 

La place de la programmation dans le projet de programme de la Technologie au collège pour la rentrée 2016

Le projet de programme pour la technologie au collège, pour la rentrée 2016, précise un petit peu plus la place de l’algorithmique et de la programmation en Technologie, de la 5è à la 3è.
Dans le socle commun apparaît cet objectif pour le domaine 2 :
Produire, implanter un programme simple pour répondre à un besoin, à un problème technique” avec un niveau taxonomique 2 en 5e et un niveau 3 en 4e et en 3e.
Il précise aussi quelques uns des savoirs faire.
Dans le domaine de la conception est évoquée la “chaîne numérique de conception“.
Dans le domaine de “l’algorithmique et de la programmation” :
– Analyser un programme informatique en identifiant la nature des instructions, leur rôle dans la chaîne d’information et leurs effets sur le comportement du système technique commandé.
– Concevoir et représenter un algorithme en vue de programmer le comportement d’un système technique.
– Utiliser un environnement de programmation graphique pour réaliser un programme commandant un système technique simple
– Corriger/déboguer un programme en fonction des résultats obtenus.

 

Conclusion quant à l’utilisation des logiciels de programmation avec des élèves en Technologie au collège

Que ce soit par rapport au programme actuel de la Technologie au collège ou par rapport au projet pour 2016, j’ai choisi de n’utiliser qu’Ardublock (associé au logiciel Arduino) car il me parait plus cohérent avec les objectifs pédagogiques.

Avec Scratch pour Arduino, l’élève peut travailler sur la plupart des compétences visées mais il ne verra pas complètement la chaîne numérique de conception puisqu’il ne générera pas de programme exécutable et ne l’implantera pas dans le système qu’il doit commander. Il ne pourra pas non plus analyser complètement le rôle de la carte Arduino qu’il utilisera comme un simple périphérique d’entrée/sortie qui communique via une liaison USB, avec des capteurs, des actionneurs, … car c’est l’ordinateur qui gère tout avec Scratch.

Avec Ardublock on peut montrer plus clairement le principe d’un système automatique programmable. On peut montrer le rôle de la carte Arduino qui traite vraiment les informations à partir du programme qu’il aura généré et téléversé dans sa mémoire. Le rôle de l’ordinateur apparaît plus clairement comme un simple outil de développement, éventuellement comme une interface de dialogue. Avec Ardublock l’élève peut concevoir et réaliser un objet technique programmable, dont le fonctionnement pourra être autonome et représentatif de solutions techniques réelles, par exemple dans le cadre d’un Enseignement Pédagogique Interdisciplinaire. Avec Scratch, ce n’est tout simplement pas possible, et l’utilisation d’une liaison sans fil ne change pas grand chose au problème.

D’un point de vue pédagogique, Ardublock me parait donc nettement plus adapté que Scratch, et il n’est pas plus compliqué à utiliser, au contraire.
Scratch peut être intéressant quand on veut gérer des images ou du son avec un ordinateur, sans carte électronique Arduino. Mais avec Ardublock on peut gérer du son en utilisant une carte Arduino et un module audio, sans être connecté à un ordinateur.

Pour ne pas multiplier les logiciels, je pense qu’Arduino + Ardublock suffit pour travailler au collège sur les notions de systèmes automatiques programmables, y compris avec les nouveaux programmes de la technologie au collège.
Scratch peut être un bon outil au cycle 3 (jusqu’en 6 ème), mais Ardublock me semble préférable dès la cinquième.

Programmation graphique avec Arduino et Ardublock

Mise à jour du 22 février 2016

Cet article date d’il y a plus d’un an, une éternité dans le monde de l’informatique. Je constate aujourd’hui que de plus en plus d’enseignants s’intéressent à Ardublock, mais il faut avoir conscience que ce logiciel 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 janvier 2015 et est obsolète !

En octobre 2013 je m’étais interrogé sur la place des ” solutions techniques programmées dans l’enseignement de la Technologie au collège “.

En novembre 2013 je m’étais interrogé sur la place d'” Arduino au collège ” en présentant la “succes story” que représente Arduino aujourd’hui, mais aussi en analysant ce qu’on pouvait en faire comparé à d’autres solutions concurrentes. A l’époque je cherchais des outils pour programmer graphiquement en Technologie au collège et je venais de découvrir Ardubock qui me semblait très prometteur. J’ai rapidement testé Arduino + Ardublock avec mes élèves au collège mais aussi au lycée, en Sciences de l’Ingénieur (1ère et Term SI). J’ai commencé par utiliser une carte Arduino Leonardo avec une plaque d’essai et des fils “volants”. J’ai essayé de consacrer un peu de temps assez régulièrement pour mieux exploiter les possibilités de ce couple Arduino + Ardublock avec le matériel disponible sur le marché. J’ai essayé aussi de développer des solutions plus adaptées à mes besoins pédagogiques.

Aujourd’hui le temps me manque toujours et je n’ai pas encore abouti, mais j’avance. Une réunion avec des collègues de Technologie collège m’a incité à prendre le temps d’écrire cet article pour essayer de faire le point, mais aussi pour partager mon expérience avec d’autres collègues, ici dans la Vienne, ou plus largement sur Internet. N’hésitez pas à laisser un commentaire pour me faire part de votre expérience.

Arduino et Ardublock au collège

Arduino est à la fois un type de cartes électroniques programmables et un logiciel qui permet de travailler avec ces cartes. En plus d’être libre et gratuit, ce logiciel a le gros avantage d’être devenu un standard mondial sur lequel une communauté très large développe rapidement de nouvelles applications, de nouveaux matériels et logiciels, notamment des “shields” qui sont des cartes d’extension que l’on connecte directement sur une carte Arduino, … le tout sous licences open hardware et open software (matériel et logiciels libres). Le matériel compatible Arduino est fabriqué aujourd’hui en grande série et distribué à des prix de plus en plus bas par de nombreux fournisseurs. Même la société A4 technologie, qui continue à développer son système Picaxe, essaie de “prendre le train en marche” en s’ouvrant un petit peu au monde d’Arduino (notamment avec son nouveau boîtier Autoprog-Uno), mais en conservant son modèle commercial basé sur des solutions fermées, incompatible avec la philosophie du libre.

Le logiciel Arduino a cependant le gros inconvénient de nécessiter une programmation en langage C. Son usage est donc hors programme, aussi bien au collège qu’au lycée. Le logiciel Ardublock est un logiciel libre et gratuit qui permet d’ajouter une interface de programmation graphique au logiciel Arduino. C’est un plugin Java qui convertit un programme graphique en langage C puis qui utilise Arduino pour la compilation (traduction en langage machine), la programmation USB, les interfaces de communication, … La syntaxe des programmes utilise des blocs qui s’emboîtent intuitivement comme des pièces d’un puzzle (syntaxe appelée “openblocs” utilisée également par Google dans le logiciel AppInventor qui permet le développement d’applications Androïd, même au collège). C’est très simple et ça limite fortement les sources d’erreurs. Ardublock est suffisamment simple et performant pour être utilisé aussi bien au collège qu’au lycée. Il est en développement constant depuis quelques années par une communauté très active à l’échelle mondiale mais reste encore assez peu utilisé, notamment dans l’éducation nationale. Je pense personnellement que Picaxe n’a pas beaucoup d’avenir comparé à Arduino + Ardublock qui pourrait devenir un bon remplaçant, à moindre frais.

Interface graphique d’Ardublock

L’interface graphique d’Ardublock ne possède que 6 boutons (et non pas 6 menus !) situés sur un bandeau en haut de l’interface : difficile de faire plus simple !

Le bouton “Téléverser vers l’Arduino” lance la compilation et upload le programme dans la mémoire de programme de la carte Arduino.

Le bouton “Moniteur série” permet d’échanger des données entre la carte Arduino et une fenêtre de l’écran, par exemple pour voir l’évolution d’un capteur ou d’une commande, pendant l’exécution du programme. Les données transitent par le câble USB (de manière bidirectionnelle). Cela remplace avantageusement l’écran LCD qu’on trouve habituellement sur les cartes de développement.

L'interface graphique d'Ardublock ne possède que 6 boutons (et non pas 6 menus) : difficile de faire plus simple (Source : Collège Jean Macé)

L’interface graphique d’Ardublock ne possède que 6 boutons (et non pas 6 menus) : difficile de faire plus simple (Source : Collège Jean Macé)

Une liste de librairies situées à gauche avec des boutons colorés permettent d’accéder à des blocs que l’on sélectionne et dépose sur l’espace de travail (cliquer / déposer) situé à droite, pour écrire le programme. Les librairies de la partie inférieure (en-dessous de blocs de code) correspondent à des blocs conçus pour des modules spécifiques, ceux d’un fabricant donnés par exemple. J’ai rarement vu un intérêt à ces dernières librairies.

On peut sélectionner le bloc correspondant à la structure de contrôle souhaitée : Boucle faire ..., Si ... alors ..., Tant que ... (Source : Collège Jean Macé)

On peut sélectionner le bloc correspondant à la structure de contrôle souhaitée : Boucle faire …, Si … alors …, Tant que … La qualité de la traduction varie en fonction des versions. Des sous-programmes peuvent être réalisés (blocs non visibles sur cette image). (Source : Collège Jean Macé)

Des librairies contiennent des blocs prédéfinis à sélectionner, comme ici les opérateurs mathématiques (Source : Collège Jean Macé)

Ici les opérateurs mathématiques. On ajoutera les blocs correspondant aux opérandes. (Source : Collège Jean Macé)

Interface graphique d’Ardublock, avec un programme pour faire clignoter une LED sur la broche 13. Des commentaires ont été ajoutés, ici en jaune pâle (ils peuvent être masqués éventuellement). Cliquer sur l’image pour zoomer. (Source : Collège Jean Macé)

Les blocs s’emboitent comme des pièces de puzzle de manière à empêcher la plupart des erreurs de syntaxe. Le programme ressemble alors plus à un algorithme qu’à un algorigramme. Cette écriture a l’avantage d’être simple : plus de traits dans tous les sens. L’écriture reste assez compacte. Déplacer ou copier des blocs se fait très simplement. Pour supprimer des blocs, on les glisse en dehors de l’espace de travail, tout simplement. De nombreux blocs sont éditables. On peut facilement changer un opérateur sans changer de bloc par exemple.

LDR + Led +BP EF V2

Autre exemple de programme écrit avec Ardublock : commande de la sortie 10 (lampe par exemple) à partir d’un capteur de lumière (entrée 5 mémorisée dans la variable Lum) avec deux seuils (< 500 ou > 600) et/ou de l’entrée 12 (bouton poussoir par exemple). Cliquer sur l’image pour zoomer. (Source : collège Jean Macé)

 

Le matériel de base pour utiliser Arduino au collège

La carte Arduino de base disponible actuellement s’appelle l’Arduino Leonardo (optimisée par rapport aux précédentes cartes Arduino Uno). Elle est amplement suffisante pour gérer la plupart des projets que nous menons au collège : 20 E/S dont 6 analogiques et 7 PWM, 32 Ko de mémoire Flash, … Elle coûte environ 20 € TTC. Un câble micro USB standard (celui de votre smartphone par exemple) suffit pour l’alimenter, la programmer, communiquer avec le PC, … Une alimentation 7 à 12 V est également possible par une entrée coaxiale (utile pour alimenter des cartes d’extension de plus forte puissance).

Carte Arduino Leonardo (Source : arduino.cc)

Cette carte Arduino Leonardo est disponible chez plusieurs fournisseurs (publicité involontaire) :

Présentation de la carte Arduino Leonardo sur le site officiel d’Arduino.
Chez Gotronic (21,50 € TTC le 18/01/15)
Chez Lextronic (19,74 € TTC le 18/01/15)
Chez Semageek (20,95 € TTC le 18/01/15)

Il existe des variantes de cette carte Arduino Leonardo. J’apprécie celle développée par DF Robot qui utilise des connecteurs de couleurs et qui a ajouté un connecteur qui permet d’ajouter notamment un module Bluetooth, tout en étant moins cher que la version de base (18 € TTC chez Gotronic le 18/1/15) :

Carte Arduino Leonardo DFRobot DFR0221 (Source : dfrobot.com)

Carte Arduino Leonardo DFRobot DFR0221.
Elle est disponible chez plusieurs fournisseurs (publicité involontaire) :
Chez Gotronic.fr (18 € TTC le 18/01/15)
Chez Zartronic (19 € TTC le 18/01/15)
Chez RobotShop (18,49 € TTC le 18/01/15)

Comment s’adapter à l’aspect minimaliste de la carte Arduino Leonardo

Cette carte Arduino Leonardo a deux inconvénients essentiellement pour moi.

– La connectique pour les entrées/sorties se limite à des barrettes femelles au pas de 2,54mm. On peut ainsi connecter directement des cartes d’extension (shields) : cette modularité est une des raisons du succès des cartes Arduino. On peut notamment ajouter une carte d’extension pour avoir une connectique plus fournie. Personnellement j’ai retenue cette carte d’interface d’entrée/sortie qui se connecte directement sur la carte Arduino Leonardo  :
. Carte d’extension (shield) d’entrée/sortie DFRobot DFR0625 V7

La carte d’extension (shield) d’entrée/sortie DFRobot DFR0625 V7 (Source : dfrobot.com)

Broche de la carte d’extension d’entrées/sorties DFRobot DFR0625 V7 (Source : dfrobot.com)

Présentation de la carte d’extension (shield) d’entrée/sortie DFRobot DFR0625 V7 sur le site officiel
Attention : bien choisir la version 7 dont le câblage est différent des précédentes versions.
Disponible chez plusieurs fournisseurs à partir de 14 € TTC (pub !) :
Chez Gotronic (17,40 € TTC le 18/01/15)
Chez Zartronic (14 € TTC le 18/01/15)
Chez l’Impulsion (14,2 € TTC le 18/01/15)

– La carte Arduino Leonardo a été conçu pour ne contenir que le minimum nécessaire pour programmer un microcontrôleur. C’est là encore une des clés du succès de ces cartes conçues pour des étudiants ou des bricoleurs peu fortunés, mais en tant qu’enseignant, j’aurais bien aimé une carte “tout en un” qui contient quelques fonctions supplémentaires de base pour faire de petites activités pédagogiques avec cette carte : 1 ou 2 boutons poussoirs, 1 ou 2 LEDs (il y en a une reliée à la broche 13 sur les cartes Arduino), au moins un petit capteur analogique (une photorésistance, un capteur de température, …), au moins une petite interface de puissance pour piloter directement un actionneur, … Je suis en train de développer une carte d’extension qui répondrait à ce besoin, mais ce projet n’avance pas au rythme ou je le souhaiterais. En attendant je me contente de la carte d’extension DFR0625 V7 de DFRobot ou j’utilise d’autres cartes comme celles-présentées ci-dessous.

Autres cartes Arduino et autres cartes d’extension pour piloter des moteurs

– La carte Arduino Romeo DFR0225 V2
Cette carte Arduino est basée sur la carte Arduino Leonardo. Elle coûte à peu près 2 fois plus cher que la carte Arduino Leonardo de DFRobot mais elle intègre la connectique pour les entrées/sorties ainsi qu’une interface pour deux moteurs (mais avec le circuit L298 qui est un peu dépassé). Elle se suffit donc à elle même.

Carte Arduino Romeo DFR0225 V2 : basée sur la carte Arduino Leonardo elle intègre des connecteurs d’entrées/sorties, une interface de puissance pour 2 moteurs, … (Source : dfrobot.com)

Brochage de la carte Arduino Romeo DFR0225 V2 (source : dfrobot.com)

Présentation de la carte Romeo sur le site DFRobot.
Carte Arduino Romeo chez Gotronic (36,50 € TTC le 18/01/15)
Carte Arduino Romeo chez Zartronic (35,00 € TTC le 18/01/15)

– Carte d’extension Pololu DRV8835 pour piloter 2 moteurs
Cette carte est très utile pour faire un petit robot pas cher. Cette petite carte d’extension (shield) se connecte directement sur une carte Arduino comme la Leonardo par exemple. On peut directement brancher chaque moteur sur les borniers à vis. Elle est performante (2V à 11V, 1.2A DC, transistors MOS, PWM à 250 kHz, …), très simple d’emploi, bien documentée, et très peu cher (6€ TTC chez exp-tech.de) mais encore peu diffusée. Elle peut aussi être utilisée avec la carte Arduino Leonardo associée à la carte d’extension (shield) d’entrée/sortie DFRobot DFR0625 V7 présentée plus haut.

Carte d’extension Pololu DRV8835 (verte) montée sur une carte Arduino Uno (bleue)  (Source : exp-tech.de)

Présentation de la carte d’extension Pololu DRV8835 chez exp-tech.de (6 € TTC le 18/01/15)
Version miniature sans bornier à vis chez exp-tech.de (4,20 € TTC le 18/01/15)

 

Installation d’Arduino

La dernière version d’Arduino est disponible ici (version 1.6.1 au 18/03/15).

Installation des drivers Arduino

Il suffit de brancher en USB une carte Arduino sur le PC qui installera les drivers (3).

“Installation” d’Ardublock

Ardublock n’est qu’un plugin Java d’Arduino. C’est une application Java qui ne nécessite aucune installation. On peut donc l’utiliser sans Arduino, sans les droits administrateur, pour développer un programme de manière graphique. Mais si on veut compiler le programme et le téléverser (uploader) vers une carte Arduino (pour l’exécuter), il faut intégrer Ardublock au logiciel Arduino installé au préalable sur un PC (ou un MAC, …). La solution que j’utilise est la suivante :
Après avoir installé Arduino, créer dans le dossier Program Files (x86) / Arduino / Tools, l’arborescence “ArduBlockTool / tool” puis coller dans “tool” l’application java d’Ardublock (fichier avec l’extension .jar).

Sur le blog officiel d’Ardublock (que je trouve assez peu intéressant pour ma part), les nouvelles versions ne sont pas diffusées car elles sont considérées comme des versions béta depuis le 12/07/2013 ! Je conseille donc de choisir une version béta récente d’Ardublock sur le site du projet en cours de développement :
http://sourceforge.net/projects/ardublock/files/

Personnellement j’aime bien la version du 04/07/2014 (notamment parce qu’elle permet une programmation multitâche avec les blocs Scoops). Je la préfère un peu à la version du 28/08/15 au niveau des librairies. J’ai intégrée la version du 04/07/2014 dans le fichier ci-dessous que vous pouvez directement décompresser et coller dans le dossier “Program Files (x86) / Arduino / Tools”. Rien d’autre à faire !

ArduBlockTool.zip (à décompresser et à coller dans “Program Files (x86) / Arduino / Tools”).

Arborescence Arduino

Arborescence Arduino pour l’installation du plugin Ardublock (Source : Collège Jean Macé)

 

Mise en œuvre d’une carte Arduino avec le logiciel Arduino (+ Ardublock)

1. Connecter la carte Arduino à l’ordinateur avec un câble USB / mico USB.
2. Ouvrir le programme Arduino (raccourci sur le bureau).
3. Dans le menu “Outils” sélectionner : Type de carte / Arduino Leonardo.
4. Dans le menu “Outils”, sélectionner le Port série correspondant à la carte Arduino. C’est normalement le dernier avec la chiffre le plus élevé (il est possible de le vérifier dans le gestionnaire de périphériques).
5. Dans le menu “Outils” sélectionner Ardublock.

Test et modifications de quelques programmes fournis

1. Copier le répertoire contenant les programmes à tester ou à modifier, dans le répertoire de travail de votre choix.
Quelques exemples de programmes sont disponibles dans le dossier ci-dessous (à décompresser) :
Prog Ardublock 18_01_15.zip
D’autres exemples de programmes seront fournis prochainement.
2. Dans Ardublock, cliquer sur “Ouvrir” puis sélectionner le premier programme à tester, Prog 1, dans votre répertoire de travail.
3. Cliquer sur “Téléverser vers l’Arduino” pour générer le programme (compilation) et l’envoyer dans la mémoire du processeur de la carte électronique programmable.
Remarque l’avancement de la compilation et du téléversement ne sont visibles que dans la fenêtre d’Arduino qui peut être regardée à cette occasion.
L’exécution se lance ensuite automatiquement. Le PC peut éventuellement être déconnecté, à condition de conserver une alimentation (USB ou coaxiale).
4. Observer le fonctionnement obtenu et comparer avec le fonctionnement souhaité.
5. Modifier le programme de manière à obtenir le fonctionnement souhaité.
Dans le programme n°1 fournis, modifier les durées lorsque la Led est allumée ou éteinte : cliquer sur la valeur à modifier, la modifier puis taper sur Entrer. Enregistrer éventuellement (bouton Enregistrer).
6. Tester à nouveau le programme en cliquant sur “Téléverser vers l’Arduino”. Modifier  à nouveau le programme si nécessaire.

Interface graphique d’Ardublock, avec le programme n°1 qui permet de faire clignoter une LED sur la broche 13. Des commentaires ont été ajoutés, ici en jaune pâle (ils peuvent être masqués éventuellement (Source : Collège Jean Macé)

Programme n°2 qui permet de piloter un servomoteur à rotation continue en fonction du niveau d’un capteur infra-rouge (représentatif d’un capteur de vide d’un aspirateur robot). (Source : Collège Jean Macé)

 Autre exemple de programme utilisé au lycée.

A suivre !

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

Les solutions techniques programmées en Technologie au collège

Problématique

Quelle est la place des solutions techniques programmées dans l’enseignement de la Technologie au collège ?

Analyse du Bulletin Officiel

D’après le bulletin officiel du 28/08/2008, l’enseignement de la technologie au collège a pour finalité, en autres, de permettre à l’élève d’identifier et de décrire les principes et les solutions techniques propres aux objets techniques de son environnement.

La technologie participe à l’appropriation des moyens informatiques qui permettent entre autres de piloter des dispositifs expérimentaux ou de fabrication (en lien avec la compétence 4 du socle commun), pour l’acquisition et le traitement de données issues de mesures par exemple.

Les solutions techniques programmées dans les objets d’aujourd’hui

Les solutions techniques programmées sont utilisées aujourd’hui de manière quasi systématique dans tous les objets techniques où on trouve une chaîne d’informations. De plus, l’évolution actuelle tend à ajouter des interfaces de dialogue et des interfaces de communication à de plus en plus d’objets, y compris ceux de l’environnement de l’élève. Les objets deviennent “intelligents” (smarts) et communicants.

Facebook sur un smartphone (Source : 20minutes.fr)

Smart TV (Source : pix-geeks.com)

Smart TV, c’est quoi ? Lien vers un article de lexpertvideo.com

L’importance de la classe de quatrième

Le thème “confort et domotique” de la classe de quatrième va dans le sens de l’évolution évoquée. L’électronique, l’informatique et les réseaux de télécommunications font leur apparition dans les systèmes d’éclairage, de chauffage, de sécurité, multimédia, électroménager, …

Si on analyse le référentiel des différentes classes, on constate que c’est surtout en classe de quatrième que les connaissances de base sur la chaîne d’information d’un objet technique sont introduites.

Contrôler sa maison avec sa tablette (Source : mamaisonmestravaux.com. Système Domovea-Tebis – Hager).

Compétences au niveau 3 en quatrième

Pour cette classe de quatrième, voici les quelques rares compétences du B.O. pour lesquelles l’élève doit “savoir faire” (niveau taxonomique 3 du B.O.) :

1. L’analyse et la conception de l’objet technique
– Établir un croquis du circuit d’alimentation énergétique et un croquis du circuit informationnel d’un objet technique.
Choisir et réaliser une solution technique.
– Créer une représentation numérique d’un objet technique simple avec un logiciel de CAO.
– Rechercher et sélectionner un élément dans une bibliothèque de constituants pour l’intégrer dans une maquette numérique.

2. Les matériaux utilisés
– Classer de manière qualitative plusieurs matériaux selon une propriété simple imposée par les contraintes que doit satisfaire l’objet technique.

6. Les processus de réalisation d’un objet technique
– Organiser le poste de travail.
– Effectuer un contrôle qualité de la réalisation pour chaque opération importante.
Réaliser tout ou partie du prototype ou de la maquette d’un objet technique.

Seuls les compétences repérées en gras sont en rapport direct avec les solutions techniques programmées. Ce sont des compétences plutôt au niveau d’un système pas sur la compréhension des solutions techniques en elles-mêmes.

Compétences au niveau 1 et 2  en rapport avec les solutions techniques programmées

Toujours pour la classe de quatrième, voici les autres compétences du B.O. pour lesquelles l’élève doit “savoir parler” de solutions techniques programmées, ou en avoir entendu parler, plus ou moins directement (niveaux taxonomiques 2 et 1 du B.O.) :

4. L’évolution de l’objet technique
– Repérer dans les étapes de l’évolution des solutions techniques la nature et l’importance de l’intervention humaine à côté du développement de l’automatisation. Niveau 2.

5. La communication et la gestion de l’information
En classe de quatrième l’accent sera mis sur les systèmes automatiques.
– Repérer, à partir du fonctionnement d’un système automatique la chaîne d’informations (acquérir, traiter, transmettre) et la chaîne d’énergie (alimenter, distribuer, convertir, transmettre). Identifier les éléments qui les composent. Niveau 1.
– Identifier les modes et dispositifs d’acquisition de signaux, de données. Niveau 1.
– Identifier la nature d’une information et du signal qui la porte. Niveau 1.
– Identifier les étapes d’un programme de commande représenté sous forme graphique. Niveau 1.
Modifier la représentation du programme de commande d’un système pour répondre à un besoin particulier et valider le résultat obtenu. Niveau 2.
– Identifier une condition logique de commande. Niveau 2.
– Identifier les composants d’une interface entre chaîne d’énergie et chaîne d’informations (réels ou objets graphiques virtuels). Niveau 2.
– Repérer le mode de transmission pour une application donnée. Niveau 1.
– Associer un mode de transmission à un besoin donné. Niveau 1.

Conclusion

Les solutions techniques programmées sont fondamentales dans l’enseignement de la technologie au collège. Elles sont introduites surtout en quatrième, avec le thème “confort et domotique”, mais elles peuvent être utilisées dès la classe de sixième ou de cinquième d’un point de vue fonctionnel ou comme aide au pilotage de dispositifs expérimentaux ou de fabrication, pour l’acquisition et le traitement de données issues de mesures par exemple. En classe de troisième ces solutions techniques programmées peuvent être facilement mises en oeuvre par les élèves et être un atout très précieux pour rendre les projets motivants, innovants, performants.

En classe de quatrième, le niveau d’exigence reste assez faible. L’élève doit faire des investigations sur des systèmes qui utilisent des solutions techniques programmées. Il doit savoir identifier, choisir et mettre en œuvre des solutions techniques, mais la compréhension doit rester globale. Il doit surtout être capable d’en parler, sans maîtriser les détails des solutions techniques et de leur mise en œuvre.

En ce qui concerne plus spécifiquement la programmation, le B.O. précise que :

la programmation  d’un support automatique ne demande pas l’écriture de lignes de code. Elle doit être graphique si le support présente une interface qui le permet. Le système automatique doit être simple. L’objectif est de comprendre de manière globale l’impact de la modification sur le fonctionnement du système.”

Les moyens matériels et logiciels

Quels moyens matériels et logiciels utiliser avec les élèves pour leur permettre d’atteindre les compétences évoquées dans cet article ?

J’ai choisi de faire travailler les élèves avec des solutions techniques représentatives de systèmes réels, que les élèves analyseront. Ils auront une démarche d’investigation en utilisant des cartes Arduino programmées graphiquement avec le logiciel Ardublock.

Je précise et justifie mes choix dans un premier article ici.

Carte Arduino Leonardo (Source : arduino.cc)

Daniel Pers (Prof.)