Samedis bénévoles spécial Arduino Workshop n°2
Transcription
Samedis bénévoles spécial Arduino Workshop n°2
Samedis bénévoles spécial Arduino Workshop n°2 EVRY, 5 SEPTEMBRE 2015 1/7 SOMMAIRE 1. Présentation .................................................................................................................................... 3 1.1. Pourquoi Arduino ? ..................................................................................................................... 3 1.2. Les workshops ............................................................................................................................. 3 1.3. Pré-requis : retour sur le 1er workshop spécial Arduino ............................................................. 3 2. Se perfectionner avec l’Arduino ...................................................................................................... 4 2.1. Le programme de la deuxième session ....................................................................................... 4 2.2. Les séquences de la 2ème session ................................................................................................. 4 2.3. Le matériel nécessaire (pour les deux sessions) ......................................................................... 5 2/7 1. Présentation 1.1. Pourquoi Arduino ? Apparue au milieu des années 2000, la plate-forme Arduino a été largement adoptée dans les milieux artistiques, la robotique de loisirs et la domotique. Matériel « Open Source », c'est-à-dire libre d’utilisation et de reproduction, elle fonctionne à partir de microcontrôleurs de la société Atmel et peut être programmée à l’aide d’un environnement de développement logiciel (IDE ou Integrated Development Environnement) en licence libre lui-aussi. En 2015, ce circuit est très largement répandu et il existe de nombreux ouvrages en français et en anglais accompagnant sa mise en œuvre ainsi qu’une communauté de développeurs très active qui partage des bibliothèques de code qui en augmentent les possibilités. Une première application est celle du contrôle et de la commande de robots autonomes ou filoguidés dans le cadre des Trophées de la robotique. Mais la relative facilité de mise en œuvre et d’apprentissage de cette technologie permettent des applications très diverses, en particulier pour la mesure de grandeurs physiques (éclairement, température, distance…) et la régulation (alimentation solaire, charge d’un accumulateur ou d’un supercondensateur). Enfin, le prix de ce circuit (quelques dizaines d’euros) et la gratuité de son environnement permettent de le mettre à la portée des particuliers et des clubs de loisirs ou établissements scolaires. La mise en œuvre de cette technologie suppose cependant une connaissance des bases de l’algorithmique et de la programmation, étant précisé que des outils visuels d’aide au développement basés sur une logique proche de celle du logiciel Scratch du MIT devraient prochainement arriver à maturité et se diffuser. 1.2. Les workshops Ces deux workshops ont pour but de donner les bases nécessaires à l’utilisation du circuit Arduino pour piloter un robot 1 et réaliser les actions de jeu des Trophées de la robotique organisés par Planète Sciences. Ils s’adressent à un public désirant se former à la programmation et évoluer vers des logiques de commandes de robot de plus en plus poussées, comme pour le pilotage d’un robot autonome, par exemple. Il permettent également d’ouvrir les possibilités d’applications à de nombreux champs ou disciplines : défis solaires, fusées, mesures physiques, œuvres d’art, environnement… Articulé en 2 sessions d’une journée découpées en séquences, il permettent une mise à niveau et l’acquisition d’un bagage de base sur les possibilités de l'arduino, directement utilisable pour réaliser un robot en vue des Trophées et d’apporter dans un deuxième temps un complément sur des points délicats ou des opportunités de réalisation avec ce circuit. 1.3. Pré-requis : retour sur le 1er workshop spécial Arduino Organisée en quatre séquences alternant des présentations et des manipulations sur une plaque d’expérimentation et avec un ordinateur, ce premier workshop visait l’apprentissage de la programmation et du contrôle des moteurs, des capteurs et des actionneurs. A l’issue de ce workshop, les participants devaient connaître et si possible maîtriser : - le principe et l'intérêt d'utiliser l'Arduino en robotique (versus solutions basées sur des circuits et des transistors), l'installation des drivers et de l'environnement de développement ; - le strict nécessaire permettant de programmer l’Arduino pour le pilotage d’un robot : contrôle des moteurs, de la 1 http://www.planete-sciences.org/robot/?section=pages&pageid=84 3/7 direction du robot avec un joystick ou deux potentiomètres, commande de servomoteurs classiques et de servomoteurs à rotation continue, programme anti-rebond des boutons pour fiabiliser le fonctionnement du robot., qui seront assemblées dans un programme final permettant de contrôler le robot ; - Appliquer le programme réalisé en matinée à des composants physiques : servomoteurs et moteurs ; - Connaître les conditions de bon fonctionnement de l'arduino et d'un robot piloté par lui : séparation des alimentations, filtrage de l'alimentation des moteurs et des servomoteurs, protection par fusible, mise à la masse, transposition du circuit de la plaque d'expérimentation sur un circuit imprimé 2. Se perfectionner avec l’Arduino 2.1. Le programme de la deuxième session Dans le prolongement de la première, cette 2ème session apporte des compléments sur des points délicats ou des opportunités de réalisation avec Arduino. Elle vise à renforcer les compétences en programmation et à ouvrir des pistes sur l’utilisation d’une variété de capteurs et de périphériques d’entrée et à sécuriser la mise en œuvre de l’Arduino comme composant d’un robot. Symétriquement, elle aborde de façon concrète la commande de différents actionneurs avec la réalisation pratique d’un afficheur par LEDs. Enfin, elle amène les participants au cœur de la robotique en étudiant puis en mettant en pratique un asservissement simple en pilotant la rotation d’un servomoteur selon la mesure réalisée par un capteur et traitée par un programme de l’Arduino. 2.2. Les séquences de la 2ème session Séquence Durée Objectif Pré-requis, déroulement et résultat ère Séquence 1 Programmer comme un pro 1h Erreurs fréquentes et débogage, règles pratiques et conseils pour mettre au point un programme rapidement, gestion des librairies, réutilisation et assemblage du code Pré-requis : Avoir suivi la 1 session ou disposer de connaissances en programmation Déroulement : un diaporama est présenté et un programme est élaboré puis modifié en direct par l’animateur avec un exemple de la démarche de correction de bugs Résultat : une approche consolidée de la programmation de l’Arduino et la maîtrise des bibliothèques de code qui permettent de gérer certains capteurs et actionneurs Pré-requis : un ordinateur et une carte Arduino installée et paramétrée, un capteur de distance, une photorésistance, une plaque d’expérimentation Déroulement : Les capteurs physiques sont présentés avec leur correspondance dans un programme. Au choix, les manipulations pourraient concerner : Séquence 2 Capteurs et périphériques d'entrée 2h Maîtriser la gestion des capteurs et le paramétrage et/ou l’étalonnage de l’Arduino Démonstration puis application par chaque participant de la mesure d’une distance et de la détection d’obstacle par des capteurs ultrasons et infrarouge ; Mesure d’une intensité lumineuse ; Réglages des paramètres de l'arduino (point mort d'un servomoteur à rotation continue, vitesse des moteurs) par un potentiomètre. Résultat : chaque participant disposera de procédures permettant de gérer différents capteurs et qui pourront 4/7 être intégrés dans un programme de commande de l’Arduino Une pause casse-croûte car on devrait avoir atteint la mi-journée Pré-requis : un ordinateur et une carte Arduino installée et paramétrée, un servomoteur classique, un afficheur à LED 4 digits, un circuit de commande de l’afficheur, 1 résistance de 10K, une plaque d’expérimentation Séquence 3 Actionneurs et afficheurs 2h Maîtriser la commande de servomoteurs et gérer un afficheur à LED Déroulement : un rappel sur la commande de servomoteurs en faisant varier l’angle d’un servomoteur classique et en lisant la valeur de la position obtenue. La gestion des afficheurs par un montage autour de l’Arduino qui pilote un afficheur 4 digits à 7 LED. Indication de la manière d’étendre le montage à une matrice de LED. Affichage de chiffres et de lettres sur l’afficheur Résultat : chaque participant disposera de procédures permettant de gérer différents actionneurs et qui pourront être intégrés dans un programme de commande de l’Arduino Séquence 4 Asservissement 1h Mettre en pratique ce qui a été acquis lors des 3 premières séquences en assemblant leur résultat Pré-requis : les connaissances théoriques et pratiques acquises au cours de la journée Déroulement : commande de l'angle d'un servomoteur à partir d'une distance mesurée en intégrant le montage du matin (mesure) et celui de l'après-midi (affichage) par un programme Arduino, tests et mise au point. La distance mesurée est affichée ainsi que l’angle. Le servomoteur se déplace d’une valeur égale à cet angle pour permettre, par exemple, d’atteindre une cible par un tir parabolique (action de jeu Préhistobots, Trophées 2014) Résultat : une connaissance approfondie de la mise en œuvre de l’Arduino dans un contexte réel 2.3. Le matériel nécessaire (pour les deux sessions) Les matériels nécessaires pour la 2ème session sont indiqués en gras : - un module Arduino (type uno, mega ou due, sachant que le UNO est suffisant pour ces ateliers) - un circuit de commande de moteurs à 2 voies de type L298N (max 2A) - 2 moteurs à courant continu standards (pas de moteur pas à pas ni brushless) 3 à 6V, 2A maxi - 1 servomoteur à rotation continue - 1 servomoteurs classique - 1 plaque d'expérimentation (moyen modèle) - 1 sachet de connecteurs pour plaque d'expérimentation - 1 afficheur 7 LEDs, 5 segments - 1 circuit MAX-7219 pour le pilotage de l'afficheur - 10 résistances de 200Ω, - 5 résistances de 1KΩ - 5 résistances de 10KΩ - 1 condensateurs de 1000µF - 2 condensateurs de 10nF - 1 capteur ultra-sons de type SRF05 - 1 capteur infrarouge (module émetteur-récepteur) de type Sharp GP2Y0A21 - 1 photorésistance - 3 LED rouge, 3 jaunes, 3 bleues, 3 vertes, 3 blanches - 1 connecteur pile 9v - 1 bouton joystick type playstation et son support - 3 boutons poussoirs (à fermeture) - 1 petit interrupteur 1A maxi 5/7