La plateforme Arduino



Documents pareils
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Conférence sur les microcontroleurs.

Les liaisons SPI et I2C

Prototypage électronique

Une carte pour vos projets

Activité initiation Arduino

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

Bien commencer avec un LaunchPad MSP430G et un Breadboard

1. PRESENTATION DU PROJET

Le multiplexage. Sommaire

Carte ARDUINO UNO Microcontrôleur ATMega328

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

TABLE DES MATIÈRES. Avant-propos... 1 Communications série Entrées simples analogiques et numériques... 61

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

PIC EVAL Dev Board PIC18F97J60

Introduction au langage C

MICROCONTROLEURS PIC PROGRAMMATION EN C. V. Chollet - cours-pic-13b - 09/12/2012 Page 1 sur 44

Fiche technique CPU 314SC/DPM (314-6CG13)

Leçon 1 : Les principaux composants d un ordinateur

Description du logiciel Modbus RTU

Carte Relais GSM (Manuel Utilisateur)

TABLE DES MATIÈRES 1. DÉMARRER ISIS 2 2. SAISIE D UN SCHÉMA 3 & ' " ( ) '*+ ", ##) # " -. /0 " 1 2 " 3. SIMULATION 7 " - 4.

Sélection du contrôleur

Cours 7 : Programmation d une chaîne d acquisition

PROGRAMMATION D'UN MICROCONTRÔLEUR

Séverine Marien Maxime Ringard. 2 ème année GEII. Régulateur de charge pour station de recharge photovoltaïque

Version beta. Station Météo 12/11/2012. Réalisation d un Station Météo avec Webserver composée de capteurs Grove et d un module Wifi Flyport.

fullprotect inside EOLE SPEie RS E-SPEie V-0.6A-RS 1.0 revision Protection environnement Datasheet édition française

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP

Algorithmique et Programmation, IMA

Manipulations du laboratoire

Modules d automatismes simples

as Architecture des Systèmes d Information

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Bonjour, Le document qui suit est le support de la formation ''Arduino applications distantes''.

Projet M1 Année scolaire 2013/2014

Atelier Arduino. Initiation à la mise en oeuvre matérielle et logicielle de l Arduino. novembre 2006

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

CIRCUIT DE CHARGE BOSCH

MultiMedia Board. Système de développement. Manuel utilisateur. pour PIC32MX4

Atelier Arduino. Initiation à la mise en oeuvre matérielle et logicielle de l Arduino. novembre 2006

ELP 304 : Électronique Numérique. Cours 1 Introduction

Ordinateurs, Structure et Applications

Traitement de données

NOTRE OFFRE GLOBALE STAGES INTER-ENTREPRISES

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Fiche technique CPU 315SN/PN (315-4PN33)

Millenium3 Atelier de programmation

Mini_guide_Isis_v6.doc le 10/02/2005 Page 1/15


1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Vers du matériel libre

Introduction à l algorithmique et à la programmation (Info 2)

Présentation et installation PCE-LOG V4 1-5

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

TER Licence 3 Electronique des Télécoms Transmission GSM

Enregistreur de Température pour PC DALLAS 1820

DimNet Gradateurs Numériques Evolués Compulite. CompuDim 2000

Triphasé 400 V kw. Variateur multifonction haute performance

Tout sur l USB L USB (Universal Serial Bus) a été élaboré en 1996 par Intel, Compaq,Digital,IBM,Microsoft,NEC et NorthTelec (USB 1.0).

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Débuter avec PsoC ou PsoC niveau 0

La programmation des PIC en C. Les fonctions, les interruptions.

UE C avancé cours 1: introduction et révisions

UE Programmation Impérative Licence 2ème Année

Module Relais de temporisation DC V, programmable

Etude de FP3 commande moteur et électroaimant. Déplacement carte et connexion

Robot WIFIBOT Lab V3. 4 roues motrices

SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION. Contenu du dossier :

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Eléments constitutifs et synthèse des convertisseurs statiques. Convertisseur statique CVS. K à séquences convenables. Source d'entrée S1

T500 DUAlTACH. JAQUET T500 DualTach Instrument de mesure et de surveillance équipé de 2 entrées fréquence TACHYMETRE 2 CANAUX

Cours Informatique 1. Monsieur SADOUNI Salheddine

JOG : une approche haut niveau des systèmes embarqués via Armadeus et Java

01/11/2011. Machine à café - Amélioration du système existant MLK - ECST

Ordinateurs, Structure et Applications

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Programmation en Java IUT GEII (MC-II1) 1

Informatique Générale

Quoi de neuf en contrôle/commande et systèmes embarqués (RIO, WSN...)?

Master4Light. Caractérisation Optique et Electrique des Sources Lumineuses. Equipement 2-en-1 : source de courant et spectrophotomètre

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Le langage C. Séance n 4

La technologie Java Card TM

Education Delivery Intelligent Tool

Bureau d étude Electronique Automobile

Notice d'utilisation Afficheur multifonctions et système d'évaluation FX 360. Mode/Enter

Architecture des ordinateurs

La norme Midi et JavaSound


Réalisation d un réseau de capteurs de température sans fil basé sur le protocole ZigBee

Chapitre 4 : Les mémoires

- MANIP 2 - APPLICATION À LA MESURE DE LA VITESSE DE LA LUMIÈRE

Programmer en JAVA. par Tama

Transcription:

La plateforme Arduino Une plateforme de prototypage OpenSource Xavier Serpaggi École Nationale Supérieure des Mines de Saint-Étienne 2015 Xavier Serpaggi (EMSE) La plateforme Arduino 2015 1 / 63

Rajouter des exemples pour toutes les fonctions Arduino (digital... analog...) Rajouter un exemple de code fonctionnel qui relève une valeur de capteur. Parler des bibliothèques externes parfois nécessaires. Xavier Serpaggi (EMSE) La plateforme Arduino 2015 2 / 63

Sommaire Matériel Micro-contrôleurs Arduino Programmation C, environnement de développement Programmation C rappels Environnement de développement (IDE) Arduino Détails divers PWM Interruptions Interface série Bus série Rappels d électronique Moteurs Compléments Xavier Serpaggi (EMSE) La plateforme Arduino 2015 3 / 63

Matériel Matériel Xavier Serpaggi (EMSE) La plateforme Arduino 2015 4 / 63

Matériel Micro-contrôleurs Micro-contrôleurs Xavier Serpaggi (EMSE) La plateforme Arduino 2015 5 / 63

Matériel Micro-contrôleurs Matériel micro-contrôleurs (µc) Un µc est principalement composé : d une unité de calcul de mémoire de modules d entrée/sortie Tout ça dans un petit chip avec une consommation électrique faible (quelques milli-watts) et un coût peu élevé. Les principaux fabricants de µc sont Texas Instrument, STMicroelectronics, Atmel. Nous utiliserons des µc Atmel, de la famille ATMega. Xavier Serpaggi (EMSE) La plateforme Arduino 2015 6 / 63

Matériel Micro-contrôleurs Matériel les micro-contrôleurs ATMega Il existe plusieurs µc ATMega, dont l ATMega328 et l ATMega2560. Ce sont tous des µc 8 bits Advanced RISC Architecture à 16 MHz avec de la mémoire (Flash, EEPROM et RAM) des lignes d E/S programmables une interface série un ADC 10 bits (Analog to Digital Converter) des timers/compteurs 8 et 16 bits un comparateur analogique... Xavier Serpaggi (EMSE) La plateforme Arduino 2015 7 / 63

Matériel Micro-contrôleurs Matériel ATMega328P block diagram Xavier Serpaggi (EMSE) La plateforme Arduino 2015 8 / 63

Matériel Micro-contrôleurs Matériel Architecture mémoire des µc ATMega328 Trois espaces mémoire : (32 k) Mémoire Flash (Flash Program Memory) bootloader dans une section séparée (adresses hautes) organisée en 256 pages de 64 mots de 2 octets (instructions sur 1 ou 2 mots) 10 000 cycles d écriture/effacement mini accès via le bus SPI (registres + 2 k) Mémoire SRAM (SRAM Data Memory) organisée en mots de 8 bits stockage des registres : 32 + 64 + 160 = 256 le reste est dédié à l exécution du programme (1 k) EEPROM pour stockage de long terme organisée en 256 pages de 4 mots de 1 octet 100 000 cycles d écriture/effacement mini accès via le bus SPI Xavier Serpaggi (EMSE) La plateforme Arduino 2015 9 / 63

Matériel Arduino Arduino Xavier Serpaggi (EMSE) La plateforme Arduino 2015 10 / 63

Matériel Arduino Matériel les cartes Arduino Plateforme de prototypage construite autour d un micro-contrôleur Atmel AVR. Destinée au prototypage rapide Existe plusieurs variantes Arduino Duemilanove Arduino Uno Arduino mega... Ces cartes réunissent un µc et tout ce qu il faut pour le faire fonctionner : prise d alimentation connecteurs sur les pattes d E/S bootloader (possibilité de graver le programme via USB et lancement de notre code au démarrage) connexion avec l ordinateur (USB,... ) Xavier Serpaggi (EMSE) La plateforme Arduino 2015 11 / 63

Matériel Arduino Matériel Arduino Duemilanove Xavier Serpaggi (EMSE) La plateforme Arduino 2015 12 / 63

Matériel Arduino Matériel Arduino Uno Rev. 3 Xavier Serpaggi (EMSE) La plateforme Arduino 2015 13 / 63

Matériel Arduino Matériel les shields Pour augmenter les fonctionnalités d une platine Arduino, on peut lui greffer des cartes filles (shield) : I Ethernet I Wi-Fi I XBee I Moteurs I LCD I MIDI I GPS I... Xavier Serpaggi (EMSE) La plateforme Arduino 2015 14 / 63

Matériel Matériel Arduino Les plus Arduino : Architectures matérielle et logicielle libres Platines prêtes à l emploi API de programmation du µc en C(++) Wiring IDE simple d utilisation Processing Ces modules sont devenus rapidement populaires dans la communauté des bricoleurs (DIY ) et de nombreuses idées naissent tous les jours. La popularité des modules Arduino ont fait émerger de nombreux clones et matériels semblables (chipkit, RaspberryPi, Beaglebone,... ) Xavier Serpaggi (EMSE) La plateforme Arduino 2015 15 / 63

Programmation C, environnement de développement Programmation C, environnement de développement Xavier Serpaggi (EMSE) La plateforme Arduino 2015 16 / 63

Programmation C, environnement de développement Programmation C rappels Programmation C rappels Xavier Serpaggi (EMSE) La plateforme Arduino 2015 17 / 63

Programmation C, environnement de développement Programmation C rappels Programmation C structure d un programme #include <stdio.h> void main() { int i,j ; } j = 0 ; for (i=0 ; i<10 ; i++) { j = 2*i+j ; } printf("%d\n", j) ; Chaque instruction est terminée par le caractère ; Une fonction a un nom, des paramètres typés et un type de retour La fonction main() est obligatoire Le comportement d une fonction est défini dans un bloc identifié par des accolades Les instructions peuvent être regroupées en bloc si elles doivent être exécutées ensembles Les variables sont déclarées et initialisées avant d être utilisées Xavier Serpaggi (EMSE) La plateforme Arduino 2015 18 / 63

Programmation C, environnement de développement Programmation C rappels Programmation C types de données Chaque variable est obligatoirement typée Il existe un nombre limité de types int, long, unsigned int, unsigned long float, double char void Possibilité de créer des tableaux : int t[10]; définit un tableau contenant 10 entiers, indicés de 0 à 9 Xavier Serpaggi (EMSE) La plateforme Arduino 2015 19 / 63

Programmation C, environnement de développement Programmation C rappels Programmation C préprocesseur Les directives du préprocesseur : permettent de définir des alias pour du texte sont traitées avant la compilation comme du «rechercher-remplacer» permettent de créer des macros avec des arguments Elles sont reconnaissables par le caractère # qui les précède. #define LED_ROUGE 1 #define POUS1 8 #define CAPTEUR_TEMP A2 #define POUS1_ON (digitalread(pous1)==high) #define max(a,b) ((a)>(b)?(a):(b)) Xavier Serpaggi (EMSE) La plateforme Arduino 2015 20 / 63

Programmation C, environnement de développement Programmation C rappels Programmation C tests Les tests sont à la base des prises de décision simples Il y a principalement un type de test : if ( condition ) {... } else if ( condition ) {... } else {... } condition est fausse si elle s évalue à 0, elle est vraie sinon Les blocs else if et else sont optionnels Les instructions à exécuter pour chaque cas sont regroupées en blocs ( {... } ) s il y en a plus d une. Il existe également la construction switch / case Xavier Serpaggi (EMSE) La plateforme Arduino 2015 21 / 63

Programmation C, environnement de développement Programmation C rappels Programmation C boucles Les boucles permettent de répéter un ensemble d instructions ({... }) 3 types de boucles : for ( initialisation ; condition d arrêt ; incrémentation ) {... } while ( condition d arrêt ) {... } do {... } while ( condition d arrêt ) ; condition d arrêt est fausse si elle s évalue à 0, elle est vraie sinon Seule la boucle for explicite l initialisation et l incrémentation Dans toutes les boucles, toutes les parties sont optionnelles, selon l objectif Xavier Serpaggi (EMSE) La plateforme Arduino 2015 22 / 63

Programmation C, environnement de développement Environnement de développement (IDE) Arduino Environnement de développement (IDE) Arduino Xavier Serpaggi (EMSE) La plateforme Arduino 2015 23 / 63

Programmation C, environnement de développement Environnement de développement (IDE) Arduino Environnement de développement Ces µc disposent d une architecture RISC avec des jeux d environ 130 instructions. Il existe une API en C++ et un IDE dédié (en Java multi-plateformes) Le code est compilé puis, s il est valide, flashé directement sur le µc. Toutes les références de l API sont installées en local (voir le menu Aide) pour votre version de l IDE Xavier Serpaggi (EMSE) La plateforme Arduino 2015 24 / 63

Programmation C, environnement de développement Environnement de développement (IDE) Arduino Environnement de développement Le code est organisé en sketches. Chaque sketch est représenté par un répertoire et au moins un fichier.ino. lance la compilation du sketch et affiche les erreurs s il y en a lance la compilation du sketch et, s il n y a pas d erreur, flashe le programme dans le µc création d un nouveau sketch ouverture d un sketch existant sauvegarde du sketch en cours (il n y a pas de sauvegarde automatique!) ouvre une fenêtre donnant accès à un moniteur série qui permet, entre autre, de visualiser les informations envoyées par la carte Xavier Serpaggi (EMSE) La plateforme Arduino 2015 25 / 63

Programmation C, environnement de développement Environnement de développement (IDE) Arduino Principes de programmation La fonction main() est déjà écrite Écriture des fonctions setup() et loop() obligatoire Programmation en C/C++ (classes, héritage,... ) int main(int argc, char *argv[]) { setup() ; for (;;) loop() ; } return 0 ; Xavier Serpaggi (EMSE) La plateforme Arduino 2015 26 / 63

Programmation C, environnement de développement Environnement de développement (IDE) Arduino Types de données spécifiques 1 octet : int8_t, uint8_t (char, byte) 2 octets : int16_t, uint16_t (int) 4 octets : int32_t, uint32_t (long) Il faut faire des tests pour s assurer du nombre d octets pour float, int, long Xavier Serpaggi (EMSE) La plateforme Arduino 2015 27 / 63

Programmation C, environnement de développement Environnement de développement (IDE) Arduino Techniques de programmation Favoriser les variables globales et éviter les passages de paramètres dans les fonctions Utilisation de constantes (const ou #define) pour libérer de la mémoire d exécution Taille de la mémoire limitée : il faut dimensionner correctement ses variables (char, int, long, unsigned ou pas) Xavier Serpaggi (EMSE) La plateforme Arduino 2015 28 / 63

Programmation C, environnement de développement Environnement de développement (IDE) Arduino Initialiser les entrées/sorties Les cartes Arduino sont faites pour nous donner des possibilités d interaction avec le monde réel. Pour que ce soit possible il faut initialiser les ports d entrée/sortie en utilisant la fonction pinmode(pinnb, mode ). mode peut avoir les valeurs INPUT, OUTPUT ou INPUT_PULLUP Se fait en général dans la fonction setup() 6 entrées analogiques qu il n est pas nécessaire d initialiser (ou entrées/sorties numériques qu il faudra initialiser) 14 Entrées/Sorties numériques qu il est nécessaire d initialiser Xavier Serpaggi (EMSE) La plateforme Arduino 2015 29 / 63

Programmation C, environnement de développement Environnement de développement (IDE) Arduino Lecture et écriture sur les entrées/sorties Utilisation des fonctions : digitalread(pinnb ) (retourne HIGH ou LOW) ; digitalwrite(pinnb, level ) avec level valant HIGH ou LOW ; analogread(pinnb ) (retourne un entier compris entre 0 et 1023) ; analogwrite(pinnb, value ) (PWM). Se fait généralement dans la fonction loop() ou dans toute fonction perso ; Possibilité également de faire dans la fonction setup() pour : mettre un dispositif connecté dans un état particulier ; (dés)activer la résistance interne de pull-up sur les lignes de sortie. Xavier Serpaggi (EMSE) La plateforme Arduino 2015 30 / 63

Détails divers Détails divers Xavier Serpaggi (EMSE) La plateforme Arduino 2015 31 / 63

Détails divers PWM PWM Xavier Serpaggi (EMSE) La plateforme Arduino 2015 32 / 63

Détails divers PWM Pulse Width Modulation La modulation de largeur d impulsions (MLI ; en anglais : Pulse Width Modulation, soit PWM), est une technique couramment utilisée pour synthétiser des signaux continus à l aide de circuits à fonctionnement tout ou rien, ou plus généralement à états discrets. Le principe général est qu en appliquant une succession d états discrets pendant des durées bien choisies, on peut obtenir en moyenne sur une certaine durée n importe quelle valeur intermédiaire. (Wikipedia) Xavier Serpaggi (EMSE) La plateforme Arduino 2015 33 / 63

Détails divers Interruptions Interruptions Xavier Serpaggi (EMSE) La plateforme Arduino 2015 34 / 63

Détails divers Interruptions Interruptions sur les ATMega328P Interruption : Signal permettant d interrompre temporairement le fonctionnement normal d un programme pour exécuter une routine spécifique. 26 interruptions disponibles : 5 interruptions externes 2 programmables via l API Arduino, INT0 et INT1 (pins 2 et 3) 3 sur changement d état des pins 18 interruptions internes RESET Timers ADC Watchdog Comparateur... Xavier Serpaggi (EMSE) La plateforme Arduino 2015 35 / 63

Détails divers Interruptions Interruptions fonctions utiles Les interruptions externes peuvent être associées à des fonctions définies par l utilisateur et permettant de réagir de manière adéquate. Activer/désactiver globalement les interruptions : interrupts() et nointerrupts() ; Associer une fonction à une interruption : attachinterrupt(interrupt, function, mode) ; Supprimer la gestion d une interruption : detachinterrupt(interrupt). Le déclenchement des interruptions se fait selon quatre modes principaux : 1. LOW : état bas du signal sur la broche 2. CHANGE : changement d état du signal sur la broche 3. FALLING : front descendant sur la broche 4. RISING : front montant sur la broche Xavier Serpaggi (EMSE) La plateforme Arduino 2015 36 / 63

Détails divers Interface série Interface série Xavier Serpaggi (EMSE) La plateforme Arduino 2015 37 / 63

Détails divers Interface série Interface série sur un ATMega328P Il existe une interface série (USART) sur les ATMega328P. Utilisée pour les communications inter-modules ou entre le module et l ordinateur (au travers de l USB) ; Pris en charge par la bibliothèque Serial ; La ligne série (broches 0 et 1) est exclusive, son utilisation empêche de se servir de ces broches pour autre chose. Il est donc possible de recevoir des données depuis un module Arduino, mais également de lui en envoyer pour, par exemple, modifier son comportement. Xavier Serpaggi (EMSE) La plateforme Arduino 2015 38 / 63

Détails divers Bus série Bus série Xavier Serpaggi (EMSE) La plateforme Arduino 2015 39 / 63

Détails divers Bus série Bus série SPI SPI : Serial Peripheral Interface Principe de fonctionnement en maître/esclaves : une ligne SS par périphérique ; Communications synchrones : une ligne SCK commune à tous les périphériques ; Deux lignes pour la communications entre maître et esclaves : lignes MOSI et MISO communes à tous les périphériques. Il y a une bibliothèque dédiée à ce mode de communication : SPI Library qui gère le transfert des données et l horloge série. Chaque constructeur de périphérique SPI défini ses propres modes de communication. Xavier Serpaggi (EMSE) La plateforme Arduino 2015 40 / 63

Détails divers Bus série Bus Série I 2 C I 2 C : Inter Integrated Circuits I 2 C, également connu sous le nom de bus TWI (Two Wire Interface) nécessite, comme son nom l indique presque, trois fils pour fonctionner : 1. signal de données : SDA ; 2. signal d horloge : SCL ; 3. une référence (masse). Chaque périphérique a une adresse (7 bits) sur le bus et c est un fonctionnement en maître/esclaves. La bibliothèque permettant de gérer ce bus est Wire Library. Elle simplifie grandement la gestion des différents états sur les lignes. Xavier Serpaggi (EMSE) La plateforme Arduino 2015 41 / 63

Rappels d électronique Rappels d électronique Xavier Serpaggi (EMSE) La plateforme Arduino 2015 42 / 63

Rappels d électronique Potentiel, Intensité Différence de potentiel, exprimée en volts (V) Se mesure en parallèle de l élément testé Intensité, exprimée en ampères (A) Se mesure en série avec l élément testé Dans nos montages nous manipuleront principalement du courant continu. Les tensions seront inférieure à 20 volts et les intensités seront de l ordre de quelques milli-ampères. Dans le cas de manipulation de courant "secteur" (220V) de grandes précautions devront être prises. En particulier, il faudra séparer les parties haute et basse tension (opto-coupleurs). L alimentation des circuits sera notée Vcc et la masse, tension de référence, GND ( ). Xavier Serpaggi (EMSE) La plateforme Arduino 2015 43 / 63

Rappels d électronique Résistance Composant électronique S oppose à la circulation du courant électrique Valeur exprimée en Ohm (symbole Ω) et codifiée par des bandes de couleur http://fr.wikipedia.org/wiki/résistance_(composant) Il existe des résistances variables dont la valeur change en fonction de données externes (température, luminosité, humidité, action physique,... ) Xavier Serpaggi (EMSE) La plateforme Arduino 2015 44 / 63

Rappels d électronique Loi d Ohm Goerg Ohm (1789-1854) Loi physique qui lie intensité et tension pour un dipôle électrique donné. Courant continu et régime établi : U = RI U exprimé en Volts, I en Ampères et R en Ohms. Xavier Serpaggi (EMSE) La plateforme Arduino 2015 45 / 63

Rappels d électronique Lois de Kirchhoff Gustav Kirchhoff (1824-1887) Loi des nœuds La somme des intensités des courants qui entrent par un nœud est égale à la somme des intensités qui en sortent. Loi des mailles (simplifiée) Dans une maille quelconque d un réseau, la somme algébrique des différences de potentiel le long de la maille est constamment nulle. V ab + V bc + V cd = V ad Xavier Serpaggi (EMSE) La plateforme Arduino 2015 46 / 63

Rappels d électronique Diviseur de tension Montage électronique simple U 2 = U R 2 R 1 +R 2 Permet de "décaler" la valeur moyenne d un signal Très utilisé pour lire la valeur de résistances variables (par exemple, en remplaçant R 1 par R v ) Xavier Serpaggi (EMSE) La plateforme Arduino 2015 47 / 63

Rappels d électronique Diode, LED Diode Composant électronique non linéaire Ne laisse passer le courant électrique que dans un sens Diode Électro Luminescente (LED) Nécessite une tension minimale, un courant pour s allumer Présence d une résistance de charge pour créer le courant Xavier Serpaggi (EMSE) La plateforme Arduino 2015 48 / 63

Moteurs Moteurs Xavier Serpaggi (EMSE) La plateforme Arduino 2015 49 / 63

Moteurs Matériel H-Bridge Dispositif électronique permettant de piloter une charge Permet de faire varier le sens du courant dans la charge Xavier Serpaggi (EMSE) La plateforme Arduino 2015 50 / 63

Moteurs Matériel Moteurs Dispositif électromécanique Rotor et Stator Consommation électrique importante Courants parasites destructeurs Moteur à courant continu (DC motor) Moteur pas à pas (stepper motor) Servo-moteur (déclinaison d un DC, avec de l électronique) Xavier Serpaggi (EMSE) La plateforme Arduino 2015 51 / 63

Moteurs Matériel Moteurs à courant continu Le plus simple des moteurs Issu de la machine à courant continue inventé par Zénobe Gramme en 1868 Un stator fixe et un rotor mobile Peut-être utilisé comme générateur ou comme moteur Moteur : la vitesse dépend de la tension appliquée aux bornes Le sens de la tension va déterminer le sens de rotation Générateur : la tension produite dépend de la vitesse imposée Xavier Serpaggi (EMSE) La plateforme Arduino 2015 52 / 63

Moteurs Matériel Moteurs à courant continu Utilisation avec un µc aisée Commande de la vitesse par PWM Utilisation possible d un H-Bridge Attention : consommation électrique élevée commande par transistor et alimentation autre que le port USB courant de retour destructeur nécessité d avoir un diode de protection Xavier Serpaggi (EMSE) La plateforme Arduino 2015 53 / 63

Moteurs Matériel Moteurs pas à pas Peut-être mis dans une position (angle) donnée Peut effectuer des rotations complètes Ne connaît pas sa position Selon la technologie, conserve ou pas sa position après coupure de l alimentation Est déterminé par son nombre de pas (pour faire un tour complet) et par son type de bobinage (uni ou bi polaire) Xavier Serpaggi (EMSE) La plateforme Arduino 2015 54 / 63

Moteurs Matériel Moteurs pas à pas Utilisation avec un µc au travers d un H-Bridge Le jeu consiste à "allumer" les bonnes bobines au bon moment Nous disposons de moteurs bi-polaires (cf. schéma ci-dessous) Xavier Serpaggi (EMSE) La plateforme Arduino 2015 55 / 63

Moteurs Matériel Servo-moteurs Utilisation entre le moteur pas à pas et le moteur DC (moteur pas à pas avec boucle de rétroaction) Peut aller à une position donnée à une vitesse donnée Ne peut pas toujours faire un tour complet Sait maintenir une position si l on applique un couple de perturbation Est adapté à des charges (mécaniques) plus élevées que le moteur pas à pas Xavier Serpaggi (EMSE) La plateforme Arduino 2015 56 / 63

Compléments Compléments Xavier Serpaggi (EMSE) La plateforme Arduino 2015 57 / 63

Compléments Autres logiciels D autres logiciels permettent d interagir avec une platine Arduino : Processing (http://processing.org/) Fritzing (http://fritzing.org/) Eagle (http://www.cadsoftusa.com/) Xavier Serpaggi (EMSE) La plateforme Arduino 2015 58 / 63

Compléments Processing IDE basé sur Java et orienté visualisation de données. Même interface que l IDE Arduino (ce dernier est copié sur Processing). Même logique de programmation : une fonction setup() pour initialiser et une fonction draw() pour la boucle d événements. Interface facile avec une platine Arduino via une liaison série pour visualiser sur l ordinateur ce qui est transmis. Exemples de réalisations : Oscilloscope : la platine Arduino reçoit les signaux électriques, les traite et transmet sur la ligne série pour interprétation et affichage par Processing. jeu pong : la platine Arduino gère les joueurs (chacun dispose d un potentiomètre qui va lui permettre de diriger sa raquette) et envoie les valeurs vers Processing qui fait tourner le moteur du jeu. Xavier Serpaggi (EMSE) La plateforme Arduino 2015 59 / 63

Compléments Fritzing Logiciel OpenSource de prototypage de circuits électroniques (Université de Potsdam). Orienté vers la plateforme Arduino. Permet d avoir les 3 vues : platine d essai, schéma électronique, PCB. Permet de documenter son projet. Bibliothèque de composants limitée, mais extensible. De nombreux projets disponibles au téléchargement. Xavier Serpaggi (EMSE) La plateforme Arduino 2015 60 / 63

Compléments Eagle Logiciel professionnel de dessin/validation de circuits électroniques et création de typons. Référence dans le domaine. Grande bibliothèque de composants qui est en plus, facile à étendre. La version gratuite permet de tout faire comme la grande ; elle limite uniquement la taille du PCB. Xavier Serpaggi (EMSE) La plateforme Arduino 2015 61 / 63

Compléments Bibliographie Site web Arduino http://www.arduino.cc/ avec toutes les fonctions documentées et des exemples Page Wikipedia (en) : http://en.wikipedia.org/wiki/arduino Making Things Talk Practical Methods for Connecting Physical Objects, Tom Igoe Practical Arduino Cool Projects for Open Source Hardware, Jonathan Oxer, Hugh Blemings Getting Started with Arduino, Massimo Banzi Arduino Cookbook, Michael Margolis Arduino notebook, Brian W. Evans http://muaworkshops.d3cod3.org/programmingbooklet.pdf Xavier Serpaggi (EMSE) La plateforme Arduino 2015 62 / 63

Compléments Petit glossaire USART : Universal Synchronous and Asynchronous Receiver Transmitter, module de sérialisation de données destinées à être transmises sur une ligne simple. SPI : Serial Peripheral Interface, bus de communication série I2C : Inter Integrated Circuit, bus de communication série CAN : Controller Area Network, bus souvent utilisé dans le domaine de l automobile pour dialoguer avec les différents capteurs présents dans un véhicule. EEPROM : Electrically-Erasable Programmable Read-Only Memory ADC : Analog to Digital Converter, module de conversion d un signal analogique vers des valeurs numériques. RISC : Reduced Instruction Set Computer Xavier Serpaggi (EMSE) La plateforme Arduino 2015 63 / 63

Compléments Merci Xavier Serpaggi (EMSE) La plateforme Arduino 2015 64 / 63