[PDF] Initiation `a la programmation embarquée/robotique avec Arduino





Previous PDF Next PDF



Cours pour lapprentissage des bases de lélectronique et de la

et de la programmation sur Arduino. L'accent de cet ouvrage est mis sur une initiation ... La programmation se fait dans le logiciel Arduino IDE:.



Initiation Arduino

L'environnement de programmation Arduino. (IDE en anglais) est une application écrite en Java inspirée du langage Processing. L'IDE permet d'écrire de modifier 



? Initiation à Arduino

Ils découvriront les bases de la programmation en C++ à l'aide du logiciel. Arduino IDE (Integrated Development. Environment). Objectifs d'apprentissage. • 



Initiation `a la programmation embarquée/robotique avec Arduino

Initiation `a la programmation embarquée/robotique avec Arduino. Audrey Robinel (arobinel@univ-ag.fr). 13 mai 2014. 1 Introduction.



Initiation à Arduino

Après la présentation générale le tutoriel décrit



INITIATION à la programmation en ROBOTIQUE ARDUBLOCK : la

Le Robot suiveur de ligne équipé de : - 2 moteurs à courant continu. - 1 carte Arduino UNO R3. - 1 Motor Shield R3 :carte de contrôle du sens de rotation 



INITIATION à la programmation en ROBOTIQUE ARDUBLOCK : la

Le Robot suiveur de ligne équipé de : - 2 moteurs à courant continu. - 1 carte Arduino UNO R3. - 1 Motor Shield R3 :carte de contrôle du sens de rotation 



Cours dinitiation à Arduino

En effet beaucoup de librairies et de fonctionnalités de base occulte certains aspects de la programmation de logiciel embarquée afin de gagner en simplicité.



TP – La programmation avec arduino

TP – LA PROGRAMMATION AVEC ARDUINO INITIATION A LA PROGRAMMATION ... Le modèle UNO de la société ARDUINO est une carte électronique dont le cœur est un ...



Initiation Arduino

Arduino est un ensemble d'outils Open Source comprenant un microcontrôleur simple des composants complémentaires qui facilitent la programmation et 



arduino programming notebook - NYU Tandon School of Engineering

Beginning with the basic structure of Arduino's C derived programming language this notebook continues on to describe the syntax of the most common elements of the language and illustrates their usage with examples and code fragments



Initiation Arduino - univ-paufr

L'environnement de programmation Arduino (IDE en anglais) est une application écrite en Java inspirée du langage Processing L'IDE permet d'écrire de modifier un programme et de le convertir en une série d'instructions compréhensibles pour la carte Quelques exemples d'applications :



Arduino For Beginners - Makerspacescom

Arduino is an open source programmable circuit board that can be integrated into a wide variety of makerspace projects both simple and complex This board contains a microcontroller which is able to be programmed to sense and control objects in the physical world By responding to sensors and inputs the Arduino is able to interact



Searches related to initiation programmation arduino PDF

Arduino à l'école – Arduino pour apprendre à coder

  • Overview

    This guide is divided into four main sections: hardware, software tools, Arduino API, and Quick Reference. You can navigate to each of these sections directly through the links below:

  • Arduino API

    Visit the Arduino Language Referenceto explore the full Arduino API. The Arduino API, aka the "Arduino Programming Language", consists of several functions, variables and structures based on the C/C++ language.

  • Arduino Software Tools

    The Arduino IDEs are available for download for free in the Software downloads page. Another integral part of the Arduino ecosystem are its software tools. The Arduino IDE, as it is commonly referred to, is an integrated development environment.But what does that mean exactly? In order to program your board, you need to write a program, compile tha...

  • Quick Reference

    In this section, you will find a list of some of the most common elements in the standard Arduino API. This will help you get familiar with some key building blocks. To explore the whole Arduino API, please refer to the Arduino Language Reference, an in-depth wiki maintained by Arduino and its community. You will find hundreds of entries, accompani...

What is the basic operation of an Arduino?

The basic operation of an Arduino. Circuits consist of at least one active electronic component, and a conductive material, such as wires, so that current can pass through. When working with an Arduino, you will in most cases build a circuit for your project. A simple example of a circuit, is an LED circuit.

How do you program a board using Arduino IDE?

In order to program your board, you need to write a program, compile that program into machine code, and finally: send over the new program to your board. The Arduino IDE facilitates all this, from the first line of code written, to have it executed on the Arduino board's microcontroller.

What is setup function in Arduino?

This function is the core of all Arduino programs and does the bulk of the work. setup() The setup() function is called once when your program starts. Use it to initialize pin modes, or begin serial.

What is the purpose of the Arduino notebook?

This notebook serves as a convenient, easy to use programming reference for the command structure and basic syntax of the Arduino microcontroller. To keep it simple, certain exclusions were made that make this a beginner’s reference best used as a secondary source alongside other websites, books, workshops, or classes.

Initiation a la programmation

embarquee/robotique avec Arduino

Audrey Robinel (arobinel@univ-ag.fr)

13 mai 2014

1 Introduction

Pour cette partie de l'option informatique, notre objectif sera de programmer un robot pour le rendre autonome. Nous disposons d'un robot programmable, mais qui par defaut ne sait rien faire. Notre objectif sera de creer un programme an de permettre a celui ci de se deplacer ecacement dans un environnement en evitant les obstacles. Bien que cela puisse sembler complexe, il n'y a pas d'inquietude a avoir, car la programmation se fait depuis un logiciel tres performant et simple, et le langage de programmation est tres proche du C que l'on utilise en TP. En pratique, on ecrira du code dans le programme, avec la m^eme syntaxe qu'en C, et on utilisera quelques fonctions predenies pour activer les moteurs, ou lire les capteurs du robot. Par la suite, on branche le robot en USB, et on appuie sur un bouton dans l'interface de programmation pour compiler et envoyer le programme au robot. Ainsi, aucune competence en robotique n'est requise, et quelqu'un qui conna^t quelques bases de programmation pourra sans probleme programmer ce robot.

1.1 Arduino

Notre robot est base sur une plate-forme materielle et logicielle libre appelee Arduino. Il s'agit d'une carte contenant un micro-contr^oleur programmable, a savoir une puce electronique qui peut executer des commandes. Cette carte sera le "cerveau" de notre robot, et on pourra la programmer pour qu'elle puisse faire des entrees (lire les capteurs par exemple), ou des sorties (allumer une LED, faire un bip, faire tourner les moteurs...). On pourra trouver davantage d'informa- tions sur cette carte sur le site ociel de Arduino :http://arduino.cc/fr/. Pour ceux qui souhaitent se pencher davantage sur l'electronique programmable, sachez que ce genre de carte co^ute une vingtaine d'euros (la carte seule, pas le ro- bot entier!) et que vous pouvez tout a fait vous en servir pour fabriquer toutes sortes de choses. N'hesitez pas a me contacter pour plus d'informations a ce sujet. 1 Figure1 { La base du robot que nous utilisons est le Zumo de pololu. Si on ajoute une carte Arduino et un capteur de distance, on obtient notre robot.

1.2 Notre robot

Le robot que nous utiliserons ici est base sur le robot "Zumo", de l'entreprise Pololu :http://www.pololu.com/product/2506, visible sur la gure 1 p 2. Ce robot est un "mini sumo", utilise entre autres pour des competitions de robots sumo. Il s'agit d'un robot dit "a conduite dierentielle", c'est a dire qu'il y a deux moteurs, un a gauche et un a droite. Chaque moteur entra^ne une chenille. Si l'on veut avancer, il faudra faire tourner les deux moteurs dans le sens positif. Pour reculer, on les fait tourner dans le sens negatif. Enn, pour tourner, on fait tourner les moteurs dans des sens contraires. Ainsi, le robot tournera sur lui m^eme. Le robot fait 10*10cm, et est alimente par 4 batteries AA rechargeables. Nous lui avons ajoute un capteur infrarouge, qui permet de conna^tre la distance des obstacles situes devant le robot. Le robot embarque une boussole magnetique, permettant de conna^tre l'orien- tation du robot, un accelerometre, permettant de de mesurer les chocs et vibra- tion, ainsi qu'un buzzer, permettant de faire de petits bruits. Pour ce projet, nous nous baserons principalement sur le capteur infrarouge pour eviter les obstacles. 2

2 Processing : le logiciel de programmation

Nous utiliserons pour programmer notre robot un IDE (Integrated Deve- lopment Environement, environnement de developpement integre) appelepro- cessing. Ce logiciel permet d'editer le code source, le compiler, et l'envoyer au robot.Le code source est enregistre sur l'ordinateur sur lequel vous travaillez, et ne peut pas ^etre lu depuis le robot, pensez donc a l'enregistrer d'une seance a l'autre! Vous pouvez telecharger l'archive contenant l'IDE et les librairies a cette adresse :https://www.dropbox.com/s/h8h31cb0yriwufn/arduino-1.0.5libs. tar.gz Suite au telechargement, decompressez l'archive quelquepart, puis ouvrez le repertoire ainsi cree. Vous trouverez un chier arduino, qui permet de lancer le

programme par la commande./arduino.Figure2 { Le logiciel "processing" permet d'editer le code, de le compiler et

de l'envoyer au robot. Sur la gure 2, on peut voir une capture d'ecran du logiciel, avec un pro- gramme qui fait clignoter une LED sur le robot. 3 La zone centrale, sur fond blanc, est celle dans laquelle on edite le code source. La zone bleue en haut contient les boutons permettant de sauvegarder, enregistrer, compiler et envoyer le programme. La zone noire en bas ache les

messages d'information et d'erreur.Figure3 { Lorsque l'on appuie sur le bouton "Televerser" (en blanc sur la

capture), le programme est compile, et s'il n'y a pas d'erreur, envoye au robot. Pour pouvoir envoyer le programme au robot, il faudra brancher le c^able USB, et verier que le port serie est bien selectionne dans le logiciel, en cliquant sur "outils", puis "port serie", et verier si la premiere case est bien cochee,

comme illustre sur la gure 3.Figure4 { Lorsque l'on appuie sur le bouton "Televerser" (en blanc sur la

capture), le programme est compile, et s'il n'y a pas d'erreur, envoye au robot. Dans ce contexte, si le programme est complet, on peut alors cliquer sur le bouton Televerser (en blanc sur la gure 4) pour compiler et executer le programme. Si la zone inferieure ache des erreurs, il faut alors les corriger et recommencer l'envoi. Dans le cas contraire, le bas de la fen^etre achera "Televersement eectue", comme illustre sur la gure 5. 4 Figure5 { Le programme n'ache aucune erreur, et indique que le programme a ete execute avec succes.

3 Les bases du langage : rappels generiques

3.1 Declaration de variables

On declare les variables comme en C/C++. On utilisera ainsi les types int, pour les entiers, oat pour les reels, char pour les caracteres. Nous aurons en plus un type booleen, qui prendra les valeurs true et false, et un type String pour les chaines de caracteres. La facon d'utiliser ces types de donnees est resumee brievement dans la table 1. D'autres types speciaux existent, que nous verrons lorsque nous en aurons besoin. type description valeurs exempleint entierZint i=0; oat reelR oat pi=3.1415; char caractere un caractere char c='a'; boolean booleen true ou false boolean nished=true; String chaine de caracteres texte String msg="ok!";

Table1 { Les dierents types de variables.

3.1.1 Les tableaux

Les tableaux sont declares et se comportent comme en C classique. On declarera un tableau d'entier par exemple : int tableau[10]; Les tableaux ont des indices commencant a 0, donc pour un tableau de N cases, on va de 0 a N-1. On peut egalement declarer et initialiser notre tableau comme suit :

Listing 1 { Declaration de tableaux

int t ableau[5]= { 2,4 ,8 ,3 ,6 }; int t ableau[]= { 2,4 ,8 ,3 ,6 }; 5

3.2 Declaration de fonctions

On pourra declarer des fonctions comme en C comme suit : type nomFonction(arguments)f...g

Listing 2 { Declaration de fonction

type nomFonction(type argument , ...) Dans ce contexte, type sera le type de retour de la fonction (int, oat, etc). Si l'on ne veut pas retourner de valeur, on mettravoidnomFonction(...), Argu- ments est la liste des parametres de la fonction, comme en C, chaque parametre ayant un type et un nom, ceux ci etant separes par des virgules. Si il n'y a aucun parametre, on laissera cette partie vide. On peut, comme en C classique, appeler une fonction depuis une autre. En bref, on fait comme pour les TP de C!

3.3 structures conditionnelles

On peut egalement utiliser les structures conditionnelles classiques, a savoir if, else if, else, mais egalement switch/case. references : if/else : http://arduino.cc/en/Reference/if switc h/case: http://arduino.cc/en/Reference/SwitchCase

3.3.1 Rappel sur les operateurs de comparaison

Ce qu'on mettra entre les parentheses du if sera identique a ce qu'on utilise jusqu'ici en C. Voyons un tres bref rappel : x == y (x est egal ay) x !=y (x di erentde y ) x y (x superieur a y) x <= y (x inferieur ou egal a y) x >= y (x superieur ou egal a y)

4 Fonctions speciques pour le robot

En dehors des points classiques exposes dans la section precedente, nous disposons de quelques elements speciques pour programmer le robot. Voyons tout d'abord la structure de notre programme. Celui ci se compose de deux fonctions : setup() est ex ecuteeUNE foi s,au d emarraged urob ot; 6 |lo op()est une b oucleinnie, ex ecuteecon tinuellementapr esl'ex ecution de setup().

4.1 les fonctions setup() et loop()

La fonction setup permettra par exemple d'initialiser des variables, ou de faire divers traitements avant de commencer l'algorithme principal du robot. Si vous n'avez rien de particulier a faire, laissez la fonction vide. La fonction loop quand a elle, est executee juste apres la fonction setup, et sera executee a l'inni. Ainsi, lorsqu'on arrive en bas des instructions de la fonction loop, on recommence au debut de loop. Comme avec une boucle, si vous declarez une variable dans la fonction loop, elle sera recreee et reinitialisee a chaque fois. S'il faut conserver une valeur d'une iteration a l'autre, il faudra penser a declarer la variable avant la fonction loop, un peu comme une variable globale declaree avant le main en C.

4.2 les broches du robot

Le robot dispose d'un certain nombre de broches. Certaines sontanalogiques, ce qui signie en pratique qu'on lira une valeur entiere, dans ce contexte, entre

0 et 1023. Cela servira par exemple a lire la valeur d'un capteur branche sur une

broche analogique. Pour notre robot, par exemple, la broche A2 est connectee au capteur de distance. Ces broches seront toujours utilisees en lecture, et jamais en ecriture. Pour cela, il faudra mettre dans la fonction setup() l'appel suivant : pinmode(A2, INPUT); D'autres broches seront des broches numeriques, c'est a dire qu'elles peuvent prendre uniquement des valeurs binaires, soit 0, soit 1. Par exemple, pour la LED connectee sur la broche 13, on pourra ecrire la valeur 0, qui eteindra la LED, ou la valeur 1, qui l'allumera. Sur notre robot, nous utiliserons ces broches en ecriture uniquement. Pour cela, il faudra mettre dans la fonction setup() l'appel suivant : pinmode(13, OUTPUT);

4.3 Attendre avant d'executer d'autres instructions

La fonction loop() est une boucle innie. Elle se repete donc jusqu'a ce qu'on redemarre le robot, en eectuant successivement toutes les instructions entre les accolades. Lorsque l'on veut attendre un certain temps entre deux instructions, il faut utiliser la commandedelay(duree). Ainsi, par exemple si l'on souhaite faire clignoter la LED du robot, l'algorithme sera le suivant : 1. allumer la LED ; 2. attendre un certain temps ; 3. eteindrela LED ; 4. attendre un certain temps. 7

En pratique cela donnera quelquechose du genre :

Listing 3 { Clignotement de LED

loop(){ digitalWrite(ledPin ,HIGH); allumage d e l a L ED delay(250); attente d e 2 50 ms digitalWrite(ledPin ,LOW); extinction d e l a L ED delay(250); attente d e 2 50 ms Ici, la LED s'allumera pendant 250 millisecondes, puis s'eteindra pendant la m^eme duree, avant de recommencer.

4.3.1 Faire une action jusqu'a nouvel ordre

Si on appelle la fonction "avancer();", le robot avancera jusqu'a ce qu'il recoive un nouvel ordre. Ainsi, pour l'arr^eter, on pourra utiliser "stop();", qui l'arr^etera immediatement. Pour tourner a gauche, il faudra utiliser la fonction "gauche();", et pour tourner a droite, la fonction "droite()"; Par exemple si l'on souhaite avancer pendant une seconde, tourner a gauche un peu, puis recommencer pour tourner en rond, on pourra faire dans loop :

Listing 4 { Exemple de contr^ole du robot

loop(){ avancer(); on a vance delay(250); attente d e 2 50 ms gauche(); extinction d e l a L ED delay(200); attente d e 2 00 ms Avec ce programme, le robot avancera pendant une seconde (1000 millise- condes), puis tournera pendant 0.2s (200 millisecondes), et repetera l'operation a l'inni.

4.4 Acher des valeurs

Pour acher des valeurs en provenance du robot, il faudra utiliser lemoniteur serie. Pour cela, il faut ecrire dans la fonction setup() l'instruction suivante : Serial.begin(9600);. Cette instruction permet d'initialiser le moniteur serie, et le parametre entre parentheses est la vitesse de communication (9600 bits par seconde). Une fois ceci fait, nous pourrons faire des achages, un peu comme avec un printf. Nous utiliserons deux fonctions :

Serial.prin t(parametres...)

Serial.prin tln(parametres...)

Les deux fonctions permettent d'acher ce que l'on passe en parametres entre les parentheses. La seule dierence est que la seconde fonction fait automati- quement un retour a la ligne apres l'achage. On pourra acher du texte brut, 8 par exemple : Serial.println("Lancement de l'algorithme : recherche des humains"); De m^eme, on pourra acher des variables comme suit :

Listing 5 { Exemple d'achage compose

loop() int v itesse=120;

Serial.print("vitesse : ");

Serial.println(vitesse);

Cela achera dans le moniteur serie :vitesse : 120, avec un retour a la ligne. Pour pouvoir visualiser le moniteur serie, il faudra cliquer suroutilspuis moniteur serie, en vous assurant que le c^able USB est bien branche.

4.5 Allumer et eteindre la LED

On utilisera la fonction "digitalWrite(ledPin,HIGH);" pour allumer la LED. Elle restera allumee jusqu'a ce que le robot soit eteint, ou que l'on eteigne la LED. Pour ce faire, on utilisera la fonction "digitalWrite(ledPin,LOW);", qui eteindra la LED jusqu'a ce qu'on la rallume. 9

5 Exercice a realiser

5.1 Recuperation du logiciel

Telechargez le logiciel contenant les librairies a l'adresse suivante :https: Decompressez l'archive dans votre repertoire personnelle, puis rendez vous dans le dossier ainsi cree avec un terminal. Lancez le logiciel Arduino via la commande ./arduino. Une fois cela fait, ouvrez le squelette du programme a realiser en cliquant surchier,exemples, puisrobot. Vous aurez alors sous les yeux le code source a completer du robot. Cet exemple est en lecture seule, donc pour le modier, enregistrez le sous un autre nom (chier puis enregistrer sous) dans votre session. Notez bien l'endroit ou vous enregistrez pour pouvoir recupererquotesdbs_dbs23.pdfusesText_29
[PDF] arduino projects book (170 pages) pdf

[PDF] arduino guide francais

[PDF] arduino language reference

[PDF] reference arduino francais pdf

[PDF] arduino pour les nuls pdf download

[PDF] arduino pour les nuls pdf gratuit

[PDF] programmation arduino pour les nuls pdf

[PDF] patron d'un rectangle avec languette

[PDF] patron d'un parallélépipède rectangle

[PDF] cylindre face arête sommet

[PDF] nombre d'arête d'un cone

[PDF] face arête sommet exercices

[PDF] qu'est ce qu'une arête en géométrie

[PDF] solide 8 faces 12 sommets 18 aretes

[PDF] parallélépipède non rectangle