ELECTRONIQUE EMBARQUEE INITIATION Aéro3 TRAVAUX PRATIQUES 1 Prise en main de la carte Arduino DUE Référence du module utilisé : CARTE ARDUINO - DUE - LOGICIEL IDE I. OBJECTIFS Installation de l'ide, y compris les extensions requises pour le DUE Validation de la configuration du pilote USB Structure d'un programme Arduino: "Sketch" Conception et réalisation de clignoteur simple sur la LED Programmation plus avancée: Fonctions, Variables, Conception et réalisation de clignoteur dynamique sur la LED Nicolas Roddier Avril 2016 Électronique embarquée initiation Page 1/5
II. INSTALLATION ET VALIDATION DE L'IDE Suivre le pdf d'installation. S'assurer d'obtenir et/ou télécharger une version récente de l'ide: Versions 1.6.3 ou 1.6.4 (Mai 2015) L'installation de l'ide de base est suffisante pour les processeurs de type AVR. Pour la DUE qui utilise un processeur de type ARM, il faut installer l'extension correspondante. Suivre le pdf d'installation. Pour valider la communication USB: Connecter la carte (port programming; micro USB proche du jack noir) Lancer l'ide. Un projet vide est automatiquement créé. Ne pas le modifier. Choisir la carte: Tools->Board->Arduino Due (programming port) Choisir le port: Tools->Port->Arduino Due (programming port) Compiler le projet vide et le télécharger sur la carte en appuyant sur l'icône "Upload" (flèche vers la droite) comme indiqué sur la figure ci dessous: On doit obtenir le script de fonctionnement suivant avec succès: Opérations d'effacement, écriture, vérification. Nicolas Roddier Avril 2016 Électronique embarquée initiation Page 2/5
III. FUNDAMENTALS OF ARDUINO MICROCONTROLLER a) What is Arduino? The arduino system is a tool built to sense and control external process. It is an open-source electronic platform that is based on the AVR/ARM families and development environment to write, compile and download the program to the target card. Arduino can be used to to develop interactive objects that can receive inputs and outputs (analog or digital). The Arduino projects can be standalone or the can be linked to the computer to display the information processed in the microcontroller. b) Why using Arduino? Arduino system simplifies the way of working with microcontrollers, it offers significant advantages to teachers, students and amateurs interest on implementing microcontroller-based applications. Not expensive The Arduino software based on Java is compatible with different OSs as Windows, Mac and Linux. A simple programming environment. The arduino software is simple for beginners but also is flexible for advanced users. Open-source software and extendable. c) Basic Arduino software setup A program is setup in a file called a "sketch". It includes 2 main functions: setup(): This function is executed once at startup. It is used to initialize variables, peripherals, and whatever needs to be given as an initial state. loop(): This function is executed continuously. As soon as it's over, it starts again. Use a delay function if its repetition rate needs to be controlled setup() { // put your setup code here, to run once: initializations } loop() { // your periodic code goes here. watch out it is a loop! } The syntax is "C" like. It is possible to create functions and use variables Nicolas Roddier Avril 2016 Électronique embarquée initiation Page 3/5
IV. PROGRAMMATION D'UN SIMPLE CLIGNOTEUR Dans ce premier exemple, nous allons simplement faire clignoter la LED de la carte avec une spécification de période 3s et allumage de 1s. Les étapes à suivre: Créer un nouveau projet; sketch vide à remplir Écrire la fonction setup() Pour ce TP il faut configurer la broche du micro-contrôleur correspondante à la LED Trouver d'après le schéma le numéro XX de cette broche On peut également utiliser le document connect.pdf Utiliser la syntaxe suivante pour la configurer en sortie digitale (nous verrons les autres types d'entrées-sorties ultérieurement): Écrire la fonction loop() pinmode(xx, OUTPUT); Pour ce TP il faut allumer la LED: digitalwrite(xx, HIGH); Puis il faut attendre le délai DD1 exprimé en ms: delay(dd1); Puis il faut éteindre la LED: digitalwrite(xx, LOW); Et enfin attendre le délai DD2 exprimé en ms: delay(dd2); Compiler et télécharger Vérifier visuellement le fonctionnement désiré Nicolas Roddier Avril 2016 Électronique embarquée initiation Page 4/5
V. PROGRAMMATION PLUS AVANCÉE Dans cette partie nous allons faire appel à des fonctions et à des variables afin d'obtenir des comportements de périphériques plus intéressants. La spécification demandée est de faire clignoter la LED avec une durée "allumée" de plus en plus longue: Période totale constante de 1s Durée allumée qui change à chaque cycle: 100ms, 200ms, 300ms. Jusqu'à allumée à 100% qui bascule ensuite à éteinte, puis recommence le cycle par pas de 100ms a) Méthode basique Reprendre le code précédent, modifier le contenu de la fonction loop() comme il faut pour obtenir le résultat souhaité. b) Utilisation d'une variable Créer une variable globale qui correspond à l'indice de cycle. La syntaxe de création d'une variable est identique au "C". L'initialiser, l'incrémenter à chaque itération, la boucler, et l'utiliser comme il faut pour obtenir le résultat souhaité. c) Utilisation d'une fonction Créer une fonction auxiliaire dont la seule mission est d'allumer et éteindre la LED avec la durée et période spécifiées. On demande que cette fonction ait 2 arguments: Durée allumée et période totale, spécifiées en ds. Dans la fonction loop() on appellera cette fonction auxiliaire avec les arguments corrects pour obtenir le résultat souhaité. d) Conclusion Comparer l'efficacité de codage avec et sans variable et/ou fonction auxiliaires. Réfléchir à une dualité avec ce qui a été vu pour le FPGA/VHDL. Nicolas Roddier Avril 2016 Électronique embarquée initiation Page 5/5