Ce cours a pour objectifs : - Initier à la programmation et la réalisation de m

Ce cours a pour objectifs : - Initier à la programmation et la réalisation de montages avec une carte Arduino. - Créer des systèmes électroniques plus ou moins complexes. La carte Arduino est une plate-forme de prototypage basée sur un microcontrôleur ATMEL. C'est un circuit de commande capable de piloter des capteurs et des actionneurs afin de simuler ou créer des systèmes automatisés. Elle dispose d'un logiciel de programmation qui permet de programmer la carte en fonction du comportement désiré. Il existe une grande variété de cartes arduino :Uno, Duemilanove, Diecimila. Leonardo, mega, …. - Prix: peu coûteux, par exemple la carte Arduino uno a un prix qui tourne aux environs de 50 dinars TTC - Compatibilité Linux, Windows et Mac - Logiciel et matériel sous licence libre - Le logiciel : gratuit et open source, développé en Java. - Le matériel : cartes électroniques dont les schémas sont en libre circulation sur internet. Une grande communauté d’amateurs et de passionnés contribuent à développer des applications et à les partager. CARTE ARDUINO UNO BROCHAGE EXTERNE 1 : Port d’alimentation externe Pour fonctionner, la carte a besoin d'une alimentation qui est comprise entre 6 et 20 V. On conseille en général de l'alimenter plutôt entre 7 V et 1 2V pour garder une marge en basse tension et éviter que le circuit ne chauffe trop (car le régulateur de tension disperse toute surtension en chaleur). Cette tension doit être continue et peut par exemple être fournie par une pile 9V. Un régulateur se charge ensuite de réduire la tension à 5V pour le bon fonctionnement de la carte. 2 : Port USB Permet de communiquer avec la carte et de l’alimenter en 5V. 3: Les entrées/sorties numériques 4 entrées/sorties numériques dont 6 peuvent assurer une sortie PWM peuvent actionner de nombreux composants (LED, transistor, etc.) mais elles ne peuvent pas fournir beaucoup de courant (40 mA pour une carte Arduino UNO). Pour piloter des circuits de plus forte puissance, il faut passer par des transistors ou des relais. 4: Les entrées analogiques lui permettent de mesurer une tension variable (entre 0 et 5 V) qui peut provenir de capteurs 6 ou d'interfaces diverses (potentiomètres, etc). 5: Connecteur In-Circuit Serial Programming ICSP pour le téléchargement du programme. Avec une pile 9v et un connecteur c'est une solution très pratique et sûre pour éviter tout problème avec le port USB de son Ordinateur Avec un adaptateur secteur 9 à 12V Connecteru 2.1mm avec le + au centre courant continu (DC) 6: Microcontrôleur ATMega328 est un microcontrôleur ATMEL de la famille AVR 8bits. Les spécifications du Microcontrôleur ATmega328: Microcontrôleur ATmega328 Tension de fonctionnement 5 V E/S numériques 23: 3 ports PortB, PortC, PortD Entrée analogiques 6 Entrées multiplexées : ADC0(PC0) à ADC5(PC5) Mémoire Flash 32 Ko SRAM 2 Ko EEPROM 1 Ko Vitesse de l'horloge 20MHz Timers Timer0 et Timer1, Timer2 PWM 6 broches Interruptions externes 24 Le microcontrôleur dispose d’autres fonctionnalités, entre autres: - Analog to Digital Converter (résolution 10bits) = 6 entrées multiplexées ADC0(PC0) à ADC5(PC5) - PWM = 6 broches OC0A(PD6), OC0B(PD5), 0C1A(PB1), OC1B(PB3), OC2A(PB3), OC2B(PD3) - Port série (USART): émission/réception série via les broches TXD(PD1)/RXD(PD0) - Gestion bus I2C (TWI Two Wire Interface) = le bus est exploité via les broches SDA(PC5)/SCL(PC4). - Comparateur Analogique: broches AIN0(PD6) et AIN1 (PD7) peut déclencher interruption - Watchdog Timer programmable Gestion d'interruptions (24 sources possibles): En résumé – Interruptions liées aux entrées INT0 (PD2) et INT1 (PD3) – Interruptions sur changement d'état des broches PCINT0à PCINT23 – Interruptions liées aux Timers 0, 1 et 2 (plusieurs causes configurables) – Interruption liée au comparateur analogique – Interruption de fin de conversion ADC – Interruptions du port série USART – Interruption du bus TWI(I2C) Pour plus d'info, visitez ce lien CARTE ARDUINO UNO BROCHAGE INTERNE Arduino fournit un environnement de développement avec un éditeur de source, les opérations de compilation et de chargement dans la mémoire du microcontrôleur étant ramenées à des clicks sur des boutons dans l'IHM (très simple). La communication entre le PC et la carte se fait via le port USB, moyennant installation d'un driver adapté (fourni parArduino) ENVIRONNEMENT DE DEVELOPPEMENT ARDUINO Téléchargez la dernière version du logiciel Arduino disponible ICI Apres la préparation du programme, il y’a des étapes à faire afin de terminer la programmation, qui sont les suivantes : - Obtenir une carte Arduino et un câble USB - Télécharger l'environnement Arduino - Raccorder la carte à l'ordinateur - Installation des pilotes du périphérique Série-USB - Lancer l'application Arduino  Etape 1 : lancer le logiciel.  Etape 2 : ouvrir et modifier le programme.  Etape 3 : vérifier le programme. Etape 4 : connecter la carte à l’ordinateur avec le cordon USB. Etape 5 : transférer le programme vers la carte. Etape 6 : vérifier le fonctionnement. Le langage Arduino est très proche du C et du C++.Pourtant il y a des différences surtout au niveau des de l’ecriture des fichiers - Pas de fonction main - Deux fonctions sont obligatoires (setup et loop) - Et bien d’autres points de différences Un programme Arduino est composé de 3 parties: - La partie déclaration des variables (optionnelle) - Fonction setup () : C’est une partie initialisation et configuration des entrées /sorties. Elle est appelée une seule fois lorsque le programme commence. - Fonction loop() : C’est la partie principale contenant le programme. Elle est répétée indéfiniment en boucle infinie Pour plus de détails, voir lien Structure Fonctions de base • void setup() • void loop() Structures de contrôle • if • if...else • for • switch case Syntaxe de base • ; (point virgule) • {} (accolades) • // (commentaire sur une ligne) • while • do... while • break • continue • return • goto • /* */ (commentaire sur plusieurs lignes) • #define • #include Opérateurs arithmétiques • = (égalité) • + (addition) • - (soustraction) • * (multiplication) • / (division) • % (modulo) Opérateurs de comparaison • == (égal à) • != (différent de) • < (inférieur à) • > (supérieur à) • <= (inférieur ou égal à) • >= (supérieur ou égal à) Opérateurs booléens • && (ET booléen) • || (OU booléen) • ! (NON booléen) Opérateurs composés • ++ (incrémentation) • -- (décrémentation) (à revoir) • += (addition composée) • -= (soustraction composée) • *= (multiplication composée) • /= (division composée) • &= (ET bit à bit composé) • |= (OU bit à bit composé) Opérateurs bit à bit • & (ET bit à bit) • | (OU bit à bit) • ^ (OU EXCLUSIF bit à bit) • ˜ (NON bit à bit) • << (décalage à gauche) • >> (décalage à droite) Pointeurs • * pointeur • & pointeur Fonctions Entrées/Sorties Numériques • pinMode(broche, mode) • digitalWrite(broch e, valeur) • int digitalRead(bro che) Entrées analogiques • int analogRead(br oche) • analogReference(t ype) Sorties "analogiques" (génération d'impulsion) • analogWrite(broch e, valeur) - PWM Entrées/Sorties Avancées • tone() Temps • unsigned long millis() • unsigned long micros() • delay(ms) • delayMicrosecond s(us) Math • min(x, y) • max(x, y) • abs(x) • constrain(x, a, b) • map(valeur, toLow, fromHigh, toLow, toHigh) • pow(base, exposant) • sq(x) • sqrt(x) Pour davantage de fonctions Trigonométrie • sin(rad) • cos(rad) • tan(rad) Bits et Octets • lowByte() • highByte() • bitRead() • bitWrite() • bitSet() • bitClear() • bit() Interruptions Externes • attachInterrupt(inte rrupti on, fonction, mode) • detachInterrupt(inte rrupt ion) Interruptions • interrupts() • noInterrupts() • noTone() • shiftOut(broche, BrocheHorloge, OrdreBit, valeur) • unsigned long pulseIn(broche, valeur) Communication • Serial mathématiques, voir aussi la librairie math.h : log, log10, asin, atan, acos, etc... Nombres randomisés (hasard) • randomSeed(seed ) • long random(max ) • long random(min, max) Variables et constantes Types des données Les variables peuvent être de type variés qui sont décrits ci-dessous. Synthèse des types de données Arduino • boolean • char • byte • int • unsigned int • long • unsigned long • float (nombres à virgules) • double (nombres à virgules) Conversion des types de données • char () • byte () • int() • long() • float() • word() Portée des variables et qualificateurs • Portée des variables • static • volatile • const Utilitaires • sizeof() (opérateur sizeof ) • Les chaînes de caractères • objet String NEW • Les tableaux de variables • le mot-clé void (fonctions) • word • PROGMEM Référence • Code ASCII uploads/Geographie/ cours-arduino.pdf

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