Introduction à Arduino VOUS AVEZ DIT ARDUINO ? Arduino est une plate-forme de
Introduction à Arduino VOUS AVEZ DIT ARDUINO ? Arduino est une plate-forme de prototypage d'objets interactifs à usage créatif constituée d'une carte électronique et d'un environnement de programmation. Sans tout connaître ni tout comprendre de l'électronique, cet environnement matériel et logiciel permet à l'utilisateur de formuler ses projets par l'expérimentation directe avec l'aide de nombreuses ressources disponibles en ligne. VOUS AVEZ DIT ARDUINO ? Pont tendu entre le monde réel et le monde numérique, Arduino permet d'étendre les capacités de relations humain/machine ou environnement/machine. Arduino est un projet en source ouverte (open source) : la communauté importante d'utilisateurs et de concepteurs permet à chacun de trouver les réponses à ses questions. Arduino en résumé Une carte électronique Un environnement de programmation Une communauté qui échange http://arduino.cc/ Historique Les créateurs : des artistes au sens premier du terme Leur objectif : Processing pour le Hardware ! Qu'est ce que Processing ? −un langage de programmation et un environnement de développement créé par Benjamin Fry et Casey Reas, deux artistes américains. −particulièrement adapté à la création plastique et graphique interactive −Le logiciel fonctionne sur Macintosh, sous Windows et sous Linux, car il est basé sur la plate-forme Java — il permet d'ailleurs de programmer directement en langage Java. Pourquoi ? −Matériel robotique excessivement cher Arduino : une philosophie Le matériel est « open source » : −On peut le copier, le fabriquer et le modifier librement. Le logiciel est libre : −On peut l’utiliser et le modifier librement. Sur l’Internet, on trouve : −Une communauté d’utilisateurs. −Des guides d’utilisation. −Des exemples. −Des forums d’entraide. Avantages Pas cher ! Environnement de programmation clair et simple. Multiplate-forme : tourne sous Windows, Macintosh et Linux. Nombreuses bibliothèques disponibles avec diverses fonctions implémentées. Logiciel et matériel open source et extensible. Nombreux conseils, tutoriaux et exemples en ligne (forums, site perso, etc.) Existence de « shield » (boucliers en français) C'est quoi « pas cher » ? Prix d'une carte Arduino Uno = 25 euros Logiciel = 0 euros Support et assistance = 0 euros (forums) Domaine d'utilisation Physical computing : Au sens large, construire des systèmes physiques interactifs qui utilisent des logiciels et du matériel pouvant s’interfacer avec des capteurs et des actionneurs. Électronique industrielle et embarquée Art / Spectacle Domotique Robotique Modélisme DIY (Do-It-Yourself), Hacker, Prototypage, Education, Etc. La carte électronique Arduino FTDI USB Chip La schématique électronique Qu'est ce qu'un microcontrôleur ? µcontrôleur : circuit intégré qui rassemble les éléments essentiels d'un ordinateur : processeur, mémoires (mémoire morte et/ou programmable pour le programme, mémoire vive pour les données), unités périphériques et interfaces d'entrées- sorties Ils sont fréquemment utilisés dans les systèmes embarqués, comme les contrôleurs des moteurs automobiles, les télécommandes, les appareils de bureau, l'électroménager, les jouets, la téléphonie mobile, etc. Qu'est ce qu'un microcontrôleur ? Un microcontrôleur intègre sur un unique die (circuit intégré) : un processeur (CPU), avec une largeur du chemin de données allant de 4 bits pour les modèles les plus basiques à 32 ou 64 bits pour les modèles les plus évolués ; de la mémoire vive (RAM) pour stocker les données et variables ; de la mémoire pour stocker le programme : ROM (mémoire morte) et/ou EPROM, EEPROM, Flash ; souvent un oscillateur pour le cadencement. Il peut être réalisé avec un quartz, un circuit RC ou encore une PLL1 ; 1 : Phase-Locked Loop ou boucle à phase asservie, ou encore boucle à verrouillage de phase Qu'est ce qu'un microcontrôleur ? des périphériques, capables d'effectuer des tâches spécifiques. On peut mentionner entre autres : −les convertisseurs analogiques-numériques (CAN) (donnent un nombre binaire à partir d'une tension électrique), −les convertisseurs numériques-analogiques (CNA) (effectuent l'opération inverse), −les générateurs de signaux à modulation de largeur d'impulsion (MLI, ou en anglais, PWM pour Pulse Width Modulation), −les timers/compteurs (compteurs d'impulsions d'horloge interne ou d'événements externes), −les chiens de garde (watchdog), −les comparateurs (comparent deux tensions électriques), −les contrôleurs de bus de communication (UART, I²C, SSP, CAN, FlexRay, USB, Ethernet, etc.). CAN = ADC (Analog-to-Digital Converter) CNA = DAC (Digital-to-Analog Converter) liaison série = UART (Universal Asynchronous Receiver Transmitter) Analogique vers numérique Résolution : le nombre de niveaux de sortie que l'ADC peut reproduire Fréquence d’échantillonnage : le nombre de mesures par unité de temps Par exemple avec une résolution de 8 bits sur un signal variant entre 0V et 5V, le nombre de niveaux est de 28 et donc la résolution en volt est de (5-0)/ (28) soit environ 19,53125 mV En pratique, on considère que les bits de poids faibles ne sont pas assez précis. Si on omet 2 bits, on arrive à 78,125mV Numérisation Prenons un exemple pratique: −une fréquence d’échantillonnage de 10Kéch./s −une résolution de 10 bits (par échantillon) −une mémoire RAM de 2Ko 10Kéch./s, soit 100Kbits/s soit 12,5Ko/s Ce qui signifie qu'on ne peut récupérer que 2/12,5=160ms Les solutions ? −Réduire la fréquence d’échantillonnage si le phénomène à observer ne requière pas une telle précision temporelle −Réduire la résolution si une approximation plus grande est admise −Augmenter la mémoire : si c'est une mémoire rapide, pas de problème si c'est un support externe, plus lent, on va rater des événements (des mesures) le temps d'écrire. Heureusement, pour nous, la température à observer variera lentement. éch = échantillon ou sample en anglais Notre Arduino : le Uno Micro contrôleur : ATmega328 Tension d'alimentation interne = 5V tension d'alimentation (recommandée)= 7 à 12V, limites =6 à 20 V Entrées/sorties numériques : 14 dont 6 sorties PWM Entrées analogiques = 6 (avec une résolution de 10 bits => 1024 valeurs différentes) Courant max par broches E/S = 40 mA Courant max sur sortie 3,3V = 50mA Mémoire Flash 32 KB dont 0.5 KB utilisée par le bootloader* Mémoire SRAM 2 KB mémoire EEPROM 1 KB Fréquence horloge = 16 MHz Dimensions = 68.6mm x 53.3mm Arduino Uno SMD (ou CMS en français pour Composant Monté en Surface) La carte s'interface au PC par l'intermédiaire de sa prise USB. La carte s'alimente par le jack d'alimentation (utilisation autonome) mais peut être alimentée par l'USB (en phase de développement par exemple). *Bootloader : un petit programme chargé sur le microcontrôleur. Il permet de charger le code sans programmateur. Il est activé quelques secondes lorsque la carte est « resetée ». Ensuite, il démarre le sketch (programme) qui a été chargé sur le microcontrôleur. Des capteurs Encore des capteurs Toujours des capteurs ETC. Attention au fonction régissant un capteur analogique après la conversion Capteurs analogiques et numériques Parmi les capteurs que nous venons de voir, il existe : −des capteurs analogiques pour lesquels le signal devra être numérisé par le CAN du microcontrôleur. Il nous appartiendra de faire appliquer la loi régissant la mesure. −des capteurs numériques qui ont leur propre CAN embarqué. Il gère eux même la loi régissant la mesure. La communication avec ces capteurs se fait souvent selon un protocole particulier (I2C, 1-wire, etc.). Par exemple le DHT11 Quelques actionneurs Breadboard (Planche à pain ... pour le prototypage) Élément essentiel pour le prototypage et essai en tout genre Breadboard : exemple d'utilisation 1 photorésistance Différents shields Existence de « shields » (boucliers en français) : ce sont des cartes supplémentaires qui se connectent sur le module Arduino pour augmenter les possibilités comme par exemple : afficheur graphique couleur, interface ethernet, GPS, etc... Des shields Encore des shields ETC. Le shield Wireless SD http://arduino.cc/en/Main/ArduinoWirelessShield Communications sur le shield En général on fonctionne sur une communication série (RX/TX). On utilisera la bibliothèque Serial ou SoftwareSerial sur Arduino. C'est très simple ! Et ici c'est modulaire ! Différents autres modules Programmons notre Arduino Le langage Arduino est basé sur le C/C++. −Le langage de programmation d'Arduino est en effet une implémentation de Wiring (une plate- forme open source similaire de physical computing qui proposait elle-même une bibliothèque appelée Wiring qui simplifie les opérations d'entrée/sortie). Un programme Arduino est aussi appelé un sketch. Structure d'un programme Prise en compte des instructions de la partie déclarative Exécution de la partie configuration (fonction setup()), Exécution de la boucle sans fin (fonction loop()): le code compris dans la boucle sans fin est exécuté indéfiniment. Finalement similaire au code suivant sur PC : int main() { setup(); while(true) loop(); } Le code minimal 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 qui se répète (s’exécute) à l'infini { //contenu du programme } La syntaxe du langage Voir aussi la section reference http://www.arduino.cc/reference La syntaxe du langage L'environnement de développement Attention la uploads/Management/ 0-cours-arduino-pdf.pdf
Documents similaires










-
30
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Aoû 06, 2022
- Catégorie Management
- Langue French
- Taille du fichier 5.0406MB