Lycée Felix Le Dantec L'ARDUINO 1. QU'EST-CE QUE L'ARDUINO ? Le système Arduino

Lycée Felix Le Dantec L'ARDUINO 1. QU'EST-CE QUE L'ARDUINO ? Le système Arduino est une plate-forme open-source d'électronique programmée qui est basée sur une simple carte à microcontrôleur (de la famille AVR), et un logiciel, véritable environnement de développement intégré, pour écrire, compiler et transférer le programme vers la carte. Une carte électronique Un environnement graphique Une communauté qui échange http://www.arduino.cc/ Le logiciel de programmation des modules Arduino est une application Java, libre et multiplate-formes, servant d'éditeur de code et de compilateur, et qui peut transférer le firmware et le programme au travers de la liaison série (RS-232, Bluetooth ou USB selon le module). Le langage de programmation utilisé est le C++, langage standard, ce qui rend aisé le développement de programmes sur les plates-formes Arduino. De nombreuses bibliothèques de fonctions sont fournies pour la mise en œuvre des différentes fonctionnalités de la carte (CAN, PWM, liaison I2C, ...). 2. LA CARTE ÉLECTRONIQUE Il existe plusieurs versions de la carte Arduino, toutes « open source » : les schémas sont téléchargeables, on peut les copier, les modifier librement, fabriquer la carte. Les cartes Arduino sont relativement peu coûteuses, la moins chère des versions du module Arduino peut être assemblée à la main, et même les cartes Arduino pré-assemblées coûtent moins de 25 Euros (microcontrôleur inclus...) !!! Les cartes Arduino contiennent tout ce qui est nécessaire pour le fonctionnement du microcontrôleur; Pour pouvoir l'utiliser et se lancer, il suffit simplement de connecter la carte à un ordinateur à l'aide d'un câble USB. Les cartes Arduino sont basées sur les microcontrôleurs Atmel ATMEGA8, ATMEGA168, ATMEGA 328, etc... Nous utiliserons en TP la carte Arduino Uno dont les caractéristiques sont : Microcontrôleur ATmega328 (8 bits) Tension de fonctionnement 5 V Tension d'alimentation (recommandée) 7- 12 V Tension d'alimentation (limites) 6 - 20V Nombre d'E/S 14 (dont 6 pouvant générer des signaux PWM) Nb ports "Analogique/Numérique" 6 Courant max. par E/S 40 mA sous +5V (ATTENTION : 200mA cumulé pour l'ensemble des broches E/S) Courant pour broches 3.3 V 50 mA Intensité maxi disponible pour la sortie 5V Fonction de l'alimentation utilisée - 500 mA max si port USB utilisé seul Mémoire Flash 32 Ko (ATmega328) dont 0.5 Ko utilisé par le bootloader SRAM 2 Ko (ATmega328) EEPROM 1 Ko (ATmega328) Vitesse horloge 16 MHz TSTI2D SIN – cours {Arduino.odt - page 1/6} Activité 1 : nommer sur la carte Arduino Uno (version R3) les éléments suivants : 3. LE LOGICIEL DE PROGRAMMATION Le logiciel Arduino a pour fonctions principales : • de pouvoir écrire et compiler des programmes pour la carte Arduino • de se connecter avec la carte Arduino pour y transférer les programmes • de communiquer avec la carte Arduino Cet Environnement de Développement Intégré (IDE) dédié au langage Arduino et à la programmation des cartes Arduino comporte : TSTI2D SIN – cours {Arduino.odt - page 2/6} Une barre de menu Une barre de boutons Une fenêtre d'édition des programmes Une zone de message des actions en cours Une console d'affichage des messages de compilation Le code écrit avec le logiciel Arduino est appelé un programme, ou une séquence (sketch en anglais). Le logiciel Arduino intègre le concept d'un "sketchbook" (livre de programme) : un endroit réservé pour stocker vos programmes. Les programmes que vous mettez dans votre "sketchbook" pourront être ouvert directement depuis le menu File > Sketchbook ou à l'aide du bouton Open (Ouvrir) dans la barre d'outils. La première fois que vous démarrer le logiciel Arduino, un chemin automatique sera créé pour votre "sketchbook". Vous pouvez voir ou modifier cette localisation depuis le menu File > Preferences. La mise en œuvre d'un programme dans un Arduino est simple : 4. LE LANGAGE DE PROGRAMMATION Le langage Arduino est basé sur les langages C/C++. Avec Arduino, nous devons utiliser un code minimal lorsque l'on crée un programme. Ce code permet de diviser le programme que nous allons créer en deux grosses parties. void setup() //fonction d'initialisation de la carte { //contenu de l'initialisation } void loop() //fonction principale, elle se répète (s’exécute) à l'infini { //contenu de votre programme } La fonction setup() est appelée au démarrage du programme. Cette fonction est utilisée pour initialiser les variables, le sens des broches, les librairies utilisées. La fonction setup n'est exécutée qu'une seule fois, après chaque mise sous tension ou reset (réinitialisation) de la carte Arduino. Après avoir créé une fonction setup(), qui initialise et fixe les valeurs de démarrage du programme, la fonction loop () (boucle en anglais) fait exactement ce que son nom suggère et s'exécute en boucle sans fin, permettant à votre programme de s'exécuter et de répondre. Utiliser cette fonction pour contrôler activement la carte Arduino. 4.1 La syntaxe de base • Chaque instruction se termine par un « ; » ; • Les accolades « {« et « } » sont les "conteneurs" du code du programme. Elles sont propres aux fonctions, aux conditions et aux boucles. Les instructions du programme sont écrites à l'intérieur de ces accolades ; • Les commentaires sont des lignes de texte incluses dans le programme et qui ont pour but de vous informer vous-même ou les autres de la façon dont le programme fonctionne. Ces lignes ajoutées sont ignorées par le compilateur. Les commentaires sont précédés des caractères « // » ou bien encadrés par « /* » et « */ » ; • Il est formellement interdit de mettre des accents en programmation, sauf dans les commentaires. • Un nombre en binaire doit être précédé de la lettre « B » ; • Un nombre écrit en hexadécimal doit être précédé par les caractères « 0x ». 4.2 Les constantes Constante Description HIGH niveau haut logique LOW niveau bas logique INPUT entrée OUTPUT sortie TRUE vrai FALSE faux TSTI2D SIN – cours {Arduino.odt - page 3/6} écriture du code source compilation téléchargement éxecution automatique quelques secondes après le téléchargement 4.3 Les variables Une variable est un nom que vous donnez à un emplacement en mémoire RAM dans lequel vous stockerez des données. Une variable est définie par son nom et son type. Les variables acceptées par Arduino sont : Type Taille en mémoire Type de données signe Valeurs min/max boolean 1 octet (8 bits) Valeur binaire 0 ou 1 non signée 0 / 1 int 2 octets (16 bits) Valeur entière signée -32 768 / +32 767 long 4 octets (32 bits) Valeur entière signée -2 147 483 648 / +2 147 483 647 byte 1 octet (8 bits) Valeur entière non signée 0 / +255 unsigned int 2 octets (16 bits) Valeur entière non signée 0 / +65535 word 2 octets (16 bits) Valeur entière non signée 0 / +65535 unsigned long 4 octets (32 bits) Valeur entière non signée 0/ +4 294 967 295 float 4 octets (32 bits) Valeur à virgule signée -3.4028235E+38 / +3.4028235E+38 double 4 octets (32 bits) Valeur à virgule signée -3.4028235E+38 / +3.4028235E+38 char 1 octet (8 bits) Valeur entière - Code ASCII signée -128 / +127 Activité 2 : Quel est le type approprié pour les variables suivantes : la lecture d'un bouton poussoir, la variable seconde dans une montre, le montant de la prochaine cagnotte de l'Euro-millions. 4.4 Les opérations simples • Les opérateurs mathématiques sont : = égalité + addition - soustraction * multiplication / division % modulo • Les opérateurs de comparaison sont : == égal à != différend de < Inférieur à > supérieur à <= inférieur ou égal à >= supérieur ou égal à • Les opérateurs booléens && ET booléen || OU booléen ! NON booléen 4.5 Les instructions conditionnelles algorithme Programmation en langage Arduino Exemple si condition alors action fin si if ( … ) { … ; } if (x==2) { y=x; } si condition alors action 1 sinon action 2 fin si if ( … ) { … ; } else { … ; } if (x==2) { y=x; } else { y=x+1; } TSTI2D SIN – cours {Arduino.odt - page 4/6} algorithme Programmation en langage Arduino Exemple switch (var) { // début de la structure case 1 : ... // cas 1 break; // l'instruction break est en option case 2 : ... // cas 2 break; // l'instruction break est en option default: // cas par défaut (non -obligatoire) } switch (entree) { case 1 : a=10;break; case 2 : a=15;break; case 3 : a=20;break; default : a=0; } Activité 3 : traduire l'algorithme ci-dessous en langage Arduino. algorithme Programmation en langage Arduino début de la fonction principale déclarer variable a de type byte a = 2 si a>5 alors a = 20 sinon a = 10 fin si fin de la fonction principale Activité 4 : quel est le résultat des instructions suivantes avec x=4, y=0 et z=0 ? programme 1 programme 2 if (x == 4) { y = 1;} else { y = 2; z = 3;} { if (x == 4) { y = 1;} else { y = 2;}} z = 3; 4.6 Les boucles uploads/Geographie/ arduino.pdf

  • 119
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager