4- Arduino
1
Introduction
Vous souhaitez crer votre premier robot moindre cot ? De
nombreux kits base dune carte Arduino sont disponibles sur le Net!
Introduction
ARDUINO: carte microcontrleur + outil de dveloppement +
communaut active.
Le logiciel et le matriel sont open-source.
Introduction
Une quipe de dveloppeurs compose de Massimo Banzi, David
Cuartielles, Tom Igoe, Gianluca Martino, David Mellis et Nicholas
Zambetti a imagin un projet rpondant au doux nom de Arduino et
mettant en uvre une petite carte lectronique programmable et un
logiciel multiplateforme, qui puisse tre accessible tout un chacun
dans le but de crer facilement des systmes lectroniques. tant donn
quil y a des dbutants parmi nous, commenons par voir un peu le
vocabulaire commun propre au domaine de llectronique et de
linformatique.
Une carte lectronique est un support plan, flexible ou rigide,
gnralement compos depoxy ou de fibre de verre. Elle possde des
pistes lectriques disposes sur une, deux ou plusieurs couches (en
surface et/ou en interne) qui permettent la mise en relation lectrique
des composants lectroniques. Chaque piste relie tel composant tel
autre, de faon crer un systme lectronique qui fonctionne et qui
ralise les oprations demandes.
4
Introduction
Arduino
Pas cher!
Environnement de programmation clair et simple.
multiplateforme: tournes sous Windows, Macintosh, Linux.
Nombreuses librairies disponibles avec diverses fonctions
implmentes.
Logiciel et matriel open source et extensible.
Nombreux conseils, tutoriaux et exemples en ligne (forums, site perso
).
Existence de shield : ce sont des cartes supplmentaires qui se
connectent sur le module arduino pour augmenter les possibilits
comme par exemple: afficheur graphique couleur, interface Ethernet,
GPS,
Par sa simplicit dutilisation, arduino est utilis dans beaucoup
dapplications comme llectronique industrielle et embarque, le
modlisme, la domotique mais aussi dans des domaines diffrents
comme lart contemporain ou le spectacle!
6
Arduino
Voici quelques exemples dutilisation possible :
Simuler le fonctionnement des portes logiques,
Permettre lutilisation de diffrents capteurs,
Mettre en uvre et faciliter la comprhension dun rseau
informatique,
Se servir dArduino pour crer des maquettes animes
montrant le fonctionnement des collisions entres les plaques de
la croute terrestre, par exemple,
Donner un exemple concret dutilisation des matrices avec un
clavier alphanumrique,
tre la base pour des tudiants ayant un PEF faire,
Arduino pro
Arduino UNO R3
Arduino DUE
Arduino UNO
Arduino LEONARDO
Arduino Mini
ATmega328
Tension de fonctionnement
5V
7-12V
6-20V
40 mA
50 mA
1 KB (ATmega168) ou 2 KB (ATmega328)
Vitesse dhorloge
16 MHz
ATmega2560
Tension de fonctionnement
5V
7-12V
6-20V
16
40 mA
50 mA
8 KB
4 KB
Vitesse dhorloge
16 MHz
10
AT91SAM3X8E
Tension de fonctionnement
3.3 V
7-12V
6-20V
12
130 mA
800 mA
512 KB (application)
96 KB
Vitesse dhorloge
84 Mhz
11
Entre DC 7-12 v
2,1 mm
Alimentation
Entres Analogiques A0 A5
SPI :Interface Srie pour priphrique D10 : /SS D11 : MOSI D12 : MISO et D13 : SCLK.
I2C : A4 (SDA), A5 (SCL)
12
13
Entre DC 7-12 v
2,1 mm
Alimentation
SPI :Interface Srie pour priphrique D10 : /SS D11 : MOSI D12 : MISO et D13 : SCLK.
I2C : A20 (SDA), A21 (SCL)
ISP : In-System Programmer (reprogrammation de lArduino)
14
15
Exemples de shield
7-Segment Shield.mp4
GSM Shield.mp4
16
17
Ardublock
Il existe diffrents outils qui
puissent tre utilis avec
Arduino.
Ardublock est un outil qui se
greffe au logiciel Arduino et qui
permet de programmer avec des
blocs. Chaque
bloc est une instruction. On peut
aisment faire des programmes
avec cet outil et mmes des
plutt complexes. Cela permet
par exemple de se concentrer sur
ce que lon doit faire avec
Arduino et non se concentrer sur
Arduino pour ensuite ce que lon
doit comprendre avec.
18
19
20
21
Programmation Arduino
Deux fonctions sont importantes :
setup() est appele une seule fois lorsque le programme commence.
Donc, dans cette fonction que lon va crire le code qui na besoin
dtre excut une seule fois. qui permet dinitialiser le programme. On
appelle cette fonction : "fonction dinitialisation".
Une fois que lon a initialis le programme il faut ensuite crer son
"cur", autrement dit le programme en lui mme.
Dans la fonction loop() o lon va crire le contenu du programme. Il
faut savoir que cette fonction est appele en permanence, cest--dire
quelle est excute une fois, puis lorsque son excution est termine,
on la r-excute encore et encore. On parle de boucle infinie.
Setup (){
.
}
loop () {
}
22
Programmation Arduino
Coloration syntaxique:
En orange, apparaissent les mots-cls reconnus
le langage Arduino comme des fonctions existantes.
par
par
reconnus
Programmation Arduino
Type
Quel nombre il
stocke ?
Valeurs maximales
Nombre sur X bits
du nombre stock
Nombre d'octets
int
entier
16 bits
2 octets
long
entier
32 bits
4 octets
char
entier
-128 +127
8 bits
1 octets
float
dcimale
32 bits
4 octets
double
dcimale
32 bits
4 octets
Arduino - Reference.htm
24
Programmation Arduino
Exemple de programme:
1
25
Programmation Arduino
Le programme est envoy dans la carte lorsque vous cliquez sur
le bouton . Le logiciel Arduino va alors vrifier si le programme
ne contient pas derreur et ensuite le compiler (le traduire) pour
lenvoyer dans la carte :
26
Programmation Arduino
Le programme rentre donc dans la carte en passant en premier par le connecteur USB
de celle-ci. Il va alors subir une petite transformation qui permet dadapter le signal
lectrique correspondant au programme vers un signal plus appropri pour le
microcontrleur. On passe ainsi dun signal cod pour la norme USB un signal cod
pour une simple voie srie. Puis ce nouveau signal est alors intercept par le
microcontrleur.
27
Programmation Arduino
Voici un petit synoptique qui vous montre un peu lintrieur du microcontrleur:
28
Programmation Arduino
Dans un programme, les lignes sont souvent trs nombreuses. Il devient alors
impratif de sparer le programme en petits bouts afin damliorer la
lisibilit de celui-ci, en plus damliorer le fonctionnement et de faciliter le
dbogage.
On appelle fonction un sous-programme qui permet deffectuer
un ensemble d'instructions par simple appel de la fonction dans le corps du
programme principal.
Les fonctions permettent dexcuter dans plusieurs parties du programme
une srie dinstructions, cela permet une simplicit du code et donc une taille
de programme minimale. Dautre part, une fonction peut faire appel ellemme, on parle alors de fonction rcursive (il ne faut pas oublier de mettre
une condition de sortie au risque sinon de ne pas pouvoir arrter le
programme...).
type nom-fonction (type-1 arg-1,...,type-n arg-n) {
[dclarations de variables locales ]
liste dinstructions
}
29
Les libraires
Pour faciliter llaboration dune application, il existe des
librairies pour chaque interface. Ce sont des micros
programmes.
La librairie pour lire ou crire sur une carte SD.
//Include all the libraries necessary for FAT32
#include <byteordering.h>
#include <fat.h>
#include <FAT16.h>
#include <fat_config.h>
#include <partition.h>
#include <partition_config.h>
#include <sd-reader_config.h>
#include <sd_raw.h>
#include <sd_raw_config.h>
30
Interruption
Une interruption est en fait un dclenchement qui arrte lexcution
du programme pour faire une tche demande.
Par exemple, imaginons que le programme compte jusqu linfinie.
Moi, programmeur, je veux que le programme arrte de compter
lorsque jappuie sur un bouton. Or, il savre que la fonction qui
compte est une boucle for(), dont on ne peut sortir sans avoir atteint
linfinie (autrement dit jamais, en thorie).
Nous allons donc nous tourner vers les interruptions qui, ds que le
bouton sera appuy, interromprons le programme pour lui dire :
Arrte de compter, cest lutilisateur qui le demande !
Une interruption est un vnement qui provoque larrt du
programme en cours et provoque le branchement du microcontrleur
un sou programme particulier dit de traitement de linterruption .
31
Interruption
Dans le cas dune carte Arduino UNO, on trouve deux broches
pour grer des interruptions externes, la 2 et la 3. Pour
dclencher une interruption, plusieurs cas de figure sont
possibles :
LOW : Passage ltat bas de la broche,
FALLING : Dtection dun front descendant,
RISING : Dtection dun front montant,
CHANGE : Changement dtat de la broche.
Autrement dit, sil y a un changement dun type numr audessus, alors le programme sera interrompu pour effectuer une
action.
32
Interruption
Interruption
AttachInterrupt.htm
34
Fin
35
36
37
38