Formation Arduino Rapport d’expérience 2018 Maxime Barbier
1
2
Formation Arduino Rapport d’expérience 2018 Maxime Barbier
3
Sommaire
4
L’automate
5
Matériel
6
Sablier numérique
9
Lampe tactile
11
Logo Arduino
13
Conclusion
15
5
Jacquemart de la collégiale Saint-Pierre de Louvain, automate à l’effigie humaine datant du Bas Moyen Âge. Son rôle est d’indiquer l’heure en frappant une cloche à l’aide d’un marteau.
6
L’AUTOMATE Comme la figure du Golem, être servile dépourvu de libre-arbitre, ou les figures modernes telles que la créature de Frankenstein, l’Homme est obnubilé par la création d’êtres de synthèse. Mais loin de scénarios dystopiques où création divine et technologie seraient sources d’abominations, il est une discipline fascinante regroupant coopération, participation et partage : Arduino. Arduino est cerveau de nombreux de projets, coordonant la programmation et communication entre de petits ordinateurs appelés « micro - contrôleurs », éléments permettant l’interactivité entre les divers objets qui nous entourent. Cette technologie reposant sur l’Open Source, elle favorise donc le partage, ayant ainsi permis à une communauté toujours plus vaste de makers, artistes, designers, étudiants, de tous âges à créer des objets mouvants, s’illuminant, intéragissant avec les êtres vivants.
7
MATÉRIEL Dans le cadre de cet apprentissage, j’utilise le « starter kit » Arduino comprenant une carte de prototypage à micro-contrôleurs Arduino Uno, une breadboard, platine de construction de circuits électroniques à l’aide de diodes, condensateurs, ainsi que de résistances. Cet ensemble comprend aussi divers capteur, qui permettront d’obtenir des informations provenant de plusieurs sources de notre entourage : son, lumière, chaleur. Enfin, les composants restants peuvent tout aussi bien répondre aux informations collectées par les capteurs qu’à des commandes strictes issues du langage de programmation Arduino, et agir en bougeant, s’allumant, émettant des sons. Des diodes LED, un moteur un buzzer piézoélectrique sont disponibles, et peuvent être actionnés manuellement à l’aide depotentiomètres, de boutons poussoirs ou encore d’interrupteurs. Cela constitue une base plus que convenable pour mener à bien plusieurs projets, où l’ultime pièce sera l’imagination !
8
9
Arduino promeut l’Open Source, pratique selon laquelle est un programme informatique dont le code source est distribué sous une licence libre, permettant à quiconque de lire, modifier ou redistribuer ce logiciel.
10
PROJETS Après m’être familiarisé avec les différents rôles du matériel à ma disposition, le temps est venu de connecter ces organes entre eux et ainsi explorer les possibilités offertes par la technologie Arduino. J’effectuerai trois montages, soit trois façons de dialoguer avec l’environnement. Dans un premier lieu, je réaliserai un sablier numérique, afin de mesurer mon efficacité lors des montages Arduino. Par la suite, je m’intéresserai à l’interaction entre le micro-contrôleur et l’Homme, à l’aide d’une lampe s’allumant au contact de la peau. Le troisième projet abordera la communication du logiciel sur l’espace numérique, en faisant dialoguer Arduino avec le langage de programmation génératif Processing.
11
SABLIER NUMÉRIQUE En tant que premier projet, quoi de mieux qu’un chronomètre numérique, marquant le départ de la mise en pratique de mes connaissances ? Bien que le sablier ne soit qu’un allumage classique de diodes LED selon un intervalle régulier, c’est cet intervalle qui nous intéressera. Représenté par la fonction millis() qui compte le temps en millisecondes dès la mise en route de l’Arduino, sans interruption ou délai. En l’assignant à un intervalle de 600.000 milliseondes, en 10 min, une LED sera allumée. La variable unsigned long enregistrera les données de l’interrupteur à bascule, correspondant dernier instant où une LED a été allumée, une sorte de mémoire comme un chronomètre. Ainsi, il ne reste plus qu’à définir un ordre d’allumage des LED avec une variable led. Voici un premier exercice qui permet d’obtenir une suite d’instructions strictes par l’Arduino.
12
13
LAMPE TACTILE Ce second projet a pour but d’allumer une diode LED en utilisant la conduction électrique. La bibliothèque CapacitiveSensor créée par Paul Badger, permettant de mesurer la capacité du corps, c’est-à-dire la quantité de charges électriques pouvant être stockées dans un objet. La bibliothèque mesurant l’état d’une broche émettrice et réceptrice sur l’Arduino, elle mesure le temps qu’il leur faut pour être au même état. Ces broches doivent être reliées à un matériau conducteur. Ici, j’ai choisi d’utiliser un fruit, son aspect purement organique contrastant avec la technologie de programmation. En touchant la pomme, mon corps absorbe une partie des charges, retardant le moment où les broches seront au même état.
14
15
LOGO ARDUINO Ce projet propose de faire intéragir Arduino avec Processing. On peut alors prendre contrôle de son ordinateur à l’aide du micro-contrôleur. La liaison série est un échange de données entre deux applications, ce que peut faire Arduino avec l’ordinateur via Processing. La fonction Serial.write() de l’Arduino envoie des données à l’ordinateur, mais ces octets sont envoyés sous forme de chiffres compris entre 0 et 255. Les valeurs sont donc restreint les valeurs que l’Arduino peut transmettre mais améliore la vitesse de communication. La mémoire tampon stocke ces informations jusqu’à ce que qu’elles soient lues par un programme. Ces informations seront lues par Processing. Ainsi, l’échange des valeurs modifiées par le potentiomètre sont interprétées par Processing qui variera les couleurs de background. Cela permet un dialogue entre trois parties : L’individu change les valeurs par son action, qu’Arduino transmettra à Processing, ce dernier affichant ces informations visuellement.
16
17
RETOUR D’EXPÉRIENCE Arduino est un langage de programmation qui favorise tant l’échange entre divers acteurs dans ses interactions (fruits conducteurs de courant, autres langages via liaisons séries...) que dans sa réalisation. L’élaboration d’un code Arduino n’est pas sans erreur ou complications : Un même résultat peut être envisageable avec différentes façon de programmer. Il est néanmoins important de veiller à ce que les instructions soient les plus claires et les plus simples possibles. C’est donc à la croisée des chemins que se trouve Arduino : langage poussant à l’entraide entre utilisateurs à travers le monde, en dépit de l’âge, du sexe ou de la profession, à travers de nombreuses machines et applications, on peut parler d’Arduino comme d’une tour de Babel numérique, ou chaque bloc de texte est le ciment d’une collaboration nouvelle, afin de lier les individus entre eux, et au monde qui les entoure.
18
19
20
21
22