jeudi 29 octobre 2015

FOR THOSE WHO DIDN'T KNOW ARDUINO YET !!


1. Historique


Le projet Arduino est crée par une équipe de professeurs et d'étudiants de l'école de Design d'Interaction d'Ivrea en Italie. Ils  rencontraient un problème important à cette époque  avant (2003, 2004). Les outils nécessaires pour  créer  des projets d'interactivité étaient complexes et onéreux. Ces coûts souvent trop élevés rendaient le développement par les étudiants de nombreux projets pénible et ceci ralentissait la mise en œuvre concrète de leur apprentissage.
Jusqu'alors, les outils de prototypage étaient principalement dédiés à l'ingénierie, la robotique et aux domaines techniques. Ils sont puissants mais leurs processus de développement sont longs et ils sont difficiles à apprendre et à utiliser pour les artistes, les designers d'interactions et, plus généralement, pour les débutants surtout.
L'équipe des développeurs du projet Arduino est composé de Massimo BanziDavid CuartiellesTom IgoeGianluca MartinoDavid Mellis et Nicholas Zambetti.


 Première prototype de carte arduino

2. Description matériel

Le projet Arduino est basé de microcontrôleur Atmel AVR ATmega 8, ATmega 168, ATmega 328 ou l’ATmega2560 pour les versions les plus récents cartes et des composants principaux pour assurer la félicitation de la programmation et la liaison avec des autres circuits.
Chaque module Arduino a besoin au moins un régulateur de tension de 5V et un oscillateur de 16 MHz. 
Pour faire la liaison avec le reste de composants électroniques  l'Arduino utilise la plupart des entrées/sorties du microcontrôleur. Comme  le modèle Diecimila par exemple il a 14 entrées/sorties numériques, ou 6entre eux peuvent produire des signaux PWM (largeur d'impulsion modulée), et 6 entrées analogiques. Les connexions sont établies à l’aide de connecteurs femelle HE14 situés au dessus de la carte.
La programmation de les cartes Arduino se fait à l’aide d'une connexion série RS 232, mais les connexions permettant cette programmation diffèrent selon les modèles. Les premiers Arduino comportaient un port série, puis l’utilisation de port USB est apparu sur le modèle Diecimila.

3.  Description logiciel

Le logiciel de programmation des cartes  Arduino est une application Java, libre et multi-plateforme, servant d'éditeur de code et de compilateur puis le transférer à l’aide de liaison série (RS-232, Bluetooth ou USB selon le module). Il est également possible de se passer de l'interface Arduino, et de compiler et uploader les programmes à l’aide l'interface en ligne de commande.
Le langage de programmation utilisé est le C++, compilé avec avr-g++ , et lié à la bibliothèque de développement Arduino, permettant l'utilisation de la carte et de ses entrées/sorties. La mise en place de ce langage rend facile le développement de programmes sur les plates-formes Arduino, à toute personne maîtrisant le C ou le C++.

4. Carte Arduino UNO

4.1. Vue d’ensemble

La carte Arduino Uno est une carte à microcontrôleur basée sur l'ATmega328.
Elle dispose :
·        14 broches numériques d'entrées/sorties (entre eux 6 peuvent être utilisées en sorties PWM (largeur d'impulsion modulée)),
·        6 entrées analogiques (qui peuvent également être utilisées en broches entrées/sorties numériques),
·         Un quartz 16Mhz,
·        Une connexion USB,
·        Un prise d'alimentation jack,
·        Un connecteur ICSP (programmation "in-circuit"),
·        Un bouton de réinitialisation (reset).


 Vue d’ensemble de carte Arduino Uno

Le projet Arduino UNO dispose tout ce qui est obligatoire pour le fonctionnement du microcontrôleur; Pour pouvoir l'utiliser, il faut simplement  la relier à un ordinateur à l'aide d'un câble USB (ou de l'alimenter avec un adaptateur secteur ou une pile, mais ceci n'est pas indispensable, l'alimentation étant fournie par le port USB).
La carte Arduino Uno est différente de toutes les cartes précédentes car elle n'utilise par le circuit intégré FTDI usb-vers-série. A la place, elle utilise un Atmega8U2 programmé en convertisseur USB-vers-série.

4.2. Caractéristiques

4.2.1. Alimentation

La carte Arduino uno peut être alimentée soit par alimentation externe ou à l’aide une connexion USB (qui peut la fournir 5V jusqu'à 500mA).
L'alimentation externe peut être soit un adaptateur secteur (capable de  fournir typiquement de 3V à 12V sous 500mA) ou des piles. L'adaptateur secteur peut être connecté par brancher une prise 2.1mm positif au centre dans la prise jack de la carte.
La carte peut fonctionner avec une alimentation externe de 6 à 20 volts. Mais, au cas où la carte est alimentée avec moins de 7V, la broche 5V pourrait fournir moins de 5V et sa peut causer l’instabilité de la carte et si on utilise plus de 12V sa provoque l’endommagement du  régulateur de tension de la carte. Alors la plage idéale conseillée pour alimenter la carte Arduino uno est entre 7V et 12V.
Les broches d'alimentation sont les suivantes :
·           VIN. La tension d'entrée positive lorsque la carte Arduino est utilisée avec une source de tension externe (à distinguer du 5V de la connexion USB ou autre source 5V régulée).
·           5V. La tension régulée utilisée pour faire fonctionner le microcontrôleur et les autres composants de la carte qui est parfaitement stable. La tension 5V régulé fourni par cette broche peut donc provenir soit de la tension d'alimentation VIN à l’aide de régulateur de la carte, ou bien de la connexion USB (qui fournit du 5V régulé) ou de tout autre source d'alimentation régulée.
·           3.3V. Une alimentation de 3.3V fournie par le circuit intégré FTDI c’est un circuit intégré qui fait l'adaptation du signal entre le port USB de notre ordinateur et le port série de l'ATmega) de la carte est disponible : ceci est important pour certains circuits externes nécessitant cette tension au lieu du 5V. L'intensité maximale disponible sur cette broche est de 50mA.
·           GND. Broche de masse (ou 0V).

4.2.2. Mémoire

L'ATmega 328 a 32Ko de mémoire FLASH pour sauvegarder le programme. L'ATmega 328 a également 2ko de mémoire SRAM (volatile) et 1Ko d'EEPROM (non volatile - mémoire qui peut être lue à l'aide de la librairie EEPROM).

4.2.3. Entrées et sorties numériques

Chacune des 14 broches numériques de la carte UNO (numérotées des 0 à 13) peut être utilisée comme une entrée/sortie numérique, en utilisant les instructions pinMode(), digitalWrite() et digitalRead() du langage Arduino. Ces broches fonctionnent en 5V. Chaque broche peut fournir ou recevoir un maximum de 40mA d'intensité et contient une résistance interne de "rappel au plus" (pull-up) (déconnectée par défaut) de 20-50 KOhms. Cette résistance interne s'active sur une broche en entrée avec l'instruction digitalWrite(broche, HIGH).
De plus, certaines broches ont des fonctions spécialisées :
·         Communication Série: Broches 0 (RX) et 1 (TX). Utilisées pour recevoir (RX) et transmettre (TX). Ces broches sont reliées aux broches correspondantes du circuit intégré ATmega8U2 programmé en convertisseur USB-vers-série de la carte, composant qui assure l'interface entre les niveaux TTL et le port USB de l'ordinateur.
·         Interruptions Externes: Broches 2 et 3. Ces broches peuvent être configurées pour déclencher une interruption sur une valeur très basse, sur un front montant ou descendant, ou sur un changement de valeur.
·         Impulsion PWM (largeur d'impulsion modulée): Broches 3, 5, 6, 9, 10, et 11. Fournissent une impulsion PWM 8 bits à l'aide de l'instruction analogWrite ().
·         LED: Broche 13. Il y a une LED incluse dans la carte liée à la broche 13. Lorsque la broche est au niveau HAUT, la LED est allumée, lorsque la broche est au niveau BAS, la LED est éteinte.

4.2.4. Broches analogiques

La carte uno dispose de 6 entrées analogiques (numérotées de 0 à 5), chacune pouvant fournir une mesure d'une résolution de 10 bits (c.à.d. sur 1024 niveaux soit de 0 à 1023) à l'aide de la très utile fonction analogRead() du langage Arduino. Par défaut, ces broches mesurent entre le 0V (valeur 0) et le 5V (valeur 1023), mais il est possible de modifier la référence supérieure de la plage de mesure en utilisant la broche AREF et l'instruction analogReference() du langage Arduino.

4.2.5. Autres broches

Il y a deux autres broches disponibles sur la carte :
·        AREF : Tension de référence pour les portes analogiques si c’est différent du 5V on l’utilisée avec l'instruction analogReference ().
·        Reset : Mettre cette broche au niveau BAS entraîne la réinitialisation ou le redémarrage de microcontrôleur. Souvent, cette broche est utilisée pour ajouter un bouton de réinitialisation sur le circuit qui bloque celui présent sur la carte.

4.2.6. Communication

La carte Arduino Uno contient  une série de facilités pour savoir communiquer avec un ordinateur, une autre carte Arduino, ou avec d'autres microcontrôleurs. L'ATmega 328 dispose d'une UART (Universel Asynchronous Receviez Transmitter) émetteur-récepteur asynchrone universel pour assurer la communication série de niveau TTL (5V) et qui est disponible sur les broches 0 (RX) et 1 (TX). Un circuit intégré ATmega8U2 sur la carte assure la connexion entre cette communication série vers le port USB de l'ordinateur et apparaît comme un port COM virtuel dans les logiciels de l'ordinateur. Le code utilisé pour programmer l'ATmega8U2  utilise le driver standard USB COM, et sa nécessite aucun autre driver externe.
Le logiciel Arduino inclut une fenêtre terminal série (ou moniteur série) sur l'ordinateur et qui permet d'envoyer des textes simples depuis et vers la carte Arduino. Les LEDs RX et TX sur la carte clignote lorsque les données sont transmises a l’aide le circuit intégré USB-vers-série et la connexion USB vers l'ordinateur (mais pas pour les communications série sur les broches 0 et 1).

4.2.7. Programmation

La carte Arduino Uno peut être programmée avec le logiciel Arduino. Il suffit de sélectionner Arduino Uno dans le menu Tools > Board (en fonction du microcontrôleur présent sur notre carte).
Le microcontrôleur ATmega328 présent sur la carte Arduino Uno est livré avec un bootloader (petit programme de démarrage) préprogrammé qui nous permet de transférer le nouveau programme dans le microcontrôleur sans avoir à utiliser un matériel de programmation externe. Ce bootloader communique avec le microcontrôleur en utilisant le protocole original STK500 (référence, fichiers C).
Nous pouvons bien sûr passer outre le bootloader et programmer le microcontrôleur avec le connecteur ICSP (In-Circuit Serial Programming - "Programmation Série Dans le circuit" en français).
La source du code pour le circuit intégré ATmega8U2 est disponible. L'ATmega8U2 est chargé avec un bootloader DFU qui peut être activé en connectant le cavalier au dos de la carte (près de la carte de l'Italie) et en réinitialisant le 8U2. On peut alors utiliser le logiciel FLIP de chez Atmel (Windows) ou le programmeur DFU (Mac OS X et Linux) pour charger le nouveau code. Ou bien on peut utiliser le connecteur ICSP avec un programmateur externe (pour réécrire le bootloader DFU).

4.2.8.  Réinitialisation (logicielle) automatique

Plutôt que de nécessiter un appui sur le bouton poussoir de réinitialisation avant un transfert de programme, la carte Arduino UNO a été conçue de telle façon qu'elle puisse être réinitialisée par un logiciel tournant sur l'ordinateur. Une des broches matérielles de contrôle du flux (DTR) du circuit intégré ATmega8U2 est connecté à la ligne de réinitialisation de l'ATmega 328 via un condensateur de 100 nanofarads. Lorsque cette broche est mise au niveau BAS, la broche de réinitialisation s'abaisse suffisamment longtemps pour réinitialiser le microcontrôleur. Le logiciel Arduino utilise cette possibilité pour nous permettre de transférer notre programme dans la carte par un simple clic sur le bouton de transfert de la barre de boutons de l'environnement Arduino.

4.2.9. Protection du port USB contre la surcharge en intensité

La carte Arduino uno intègre un polyfusible réinitialisable qui protège le port USB de l’ordinateur contre les surcharges en intensité.
Le port USB est généralement limité à 500mA en intensité. Bien que la plupart des ordinateurs aient leur propre protection interne, le fusible de la carte fournit une couche supplémentaire de protection. Si plus de 500mA sont appliqués au port USB, le fusible de la carte coupera automatiquement la connexion jusqu'à ce que le court circuit ou la surcharge soit stoppé pour assurer la protection de notre carte.

4.2.10.  Caractéristiques Mécaniques

Les longueurs et largeurs maximales de la Arduino uno sont respectivement 6.86 cm de longueur de  et 5.33 cm de largeur, avec le connecteur USB et le connecteur d'alimentation Jack s'étendant au-delà des dimensions de la carte. Quatre trous de vis permettent à la carte d'être fixée sur une surface ou dans un boîtier ou même sur un circuit imprimé. Il faut noter aussi que la distance entre les broches 7 et 8 est égale à 0.16 pouces, et non un multiple des 0.1 pouces séparant les autres broches.

5.  Choix de module Arduino


Choix entre Arduino et Microchip

Le gros avantage d'Arduino c’est qu’on a une plateforme toute prête, prête à l'emploi et robuste.
On démarrant  avec un PIC, il nous faudra développer la carte, avec le PIC, son quartz, ses condensateurs pour l'oscillation, aussi il ne faut pas oublier le condo de découplage, faire une partie alimentation stabilisé, tirer des pistes vers des connecteurs. [3]
C'est intéressant à faire, très instructif mais ca prend beaucoup de temps et il faut les moyens pour le faire (insoleuse, révélateur...).
Et en parlant de domaine informatique, sur les Arduino c’est trop facile à programmer (dans le sens envoyer le programme) car une simple liaison USB suffit. Par contre sur un PIC il nous faudra trouver un programmateur.
Un dernier avantage d'Arduino est la communauté énorme qui est derrière.

D’autre plan, il ne faut pas oublier que le PIC coute moins cher que la carte Arduino.


Finnaly, we have just to say THANKS Arduino :D 

Aucun commentaire:

Enregistrer un commentaire