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
Banzi, David
Cuartielles, Tom Igoe, Gianluca
Martino, David
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
Finnaly, we have just to say THANKS Arduino :D