Professional Documents
Culture Documents
Initiation lArduino
Youtube : BoilingBrains
Twitter : @Boiling_Brains_
Facebook : Boiling Brains
monsterprod01@gmail.com
1
Initiation lArduino 2016-2017 BoilingBrains
Sommaire
I Hardware 4
I Quest ce que lArduino ? . . . . . . . . . . . . . . . . . . . . . . . . 4
II De quoi est compose cette bestiole ? . . . . . . . . . . . . . . . . . 4
III Matriel ncessaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
II Software 9
I Logiciel Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
II Communication avec la carte . . . . . . . . . . . . . . . . . . . . . 11
III Programmation 15
I Structure gnrale dun programme . . . . . . . . . . . . . . . . . . 15
II Fonctions propres Arduino . . . . . . . . . . . . . . . . . . . . . 16
III Fonctions mathmatiques et trigonomtriques . . . . . . . . . . . 19
IV Nombres alatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
V Elments de syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . 20
VI Oprateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
VII Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
VIII Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
IX Instructions de contrle . . . . . . . . . . . . . . . . . . . . . . . . 24
X Bibliothques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2
Initiation lArduino 2016-2017 BoilingBrains
Introduction
Ce document est une reprise des vidos initiation lArduino ralises sur
la chane Youtube BoilingBrains. Il sagit du format texte des vidos si vous
prfrez ( mme si cest un peu bizarre dire).
Nous tenons signaler que les personnes ayant vu les trois vidos en
questions, napprendrons pratiquement rien de nouveau ici, hormis quelques
complments.
Hardware
Software
Programmation
Aprs ces 3 sections, vous serez capable de faire tout ce que vous voudrez avec
lArduino (ou pas). Je vous rappelle que le but de ce document est de vous
aider vous lancer et non de faire de vous des experts dans le domaine. Aprs,
comme avec tout, il faudra bien videmment de la pratique avant de pouvoir
faire de grandes choses mais cest en forgeant quon devient forgeron ( nest-ce
pas ?).
Bref, commenons !
3
Initiation lArduino 2016-2017 BoilingBrains
I. Hardware
Nous avons commenc la srie Arduino en prsentant des composants tel
que la LED, le bouton poussoir, la photorsistance,... dans le but dintroduire de
futurs projets qui arriveront sur la chane. Mais avant daller plus loin, il serait
intressant de revenir sur les bases mme de lArduino.
LArduino Nano qui comme son nom lindique est beaucoup plus petite
que ses homologues.
La carte Arduino peut tre alimente de deux faons : soit par le port USB reli
lordinateur, soit avec un transformateur secteur de tension adquate via la
prise jack ( on peut galement utiliser des piles).
4
Initiation lArduino 2016-2017 BoilingBrains
2. Microcontrleur
Les ports dentres et de sorties sont des connexions qui relient le micro-
contrleur au monde extrieur. Cest linterface entre le composant lectronique
et le monde rel. On peut raccorder divers composant cette interface : LED,
photorsistance, bouton-poussoir, . . . Si on retourne lArduino, on remarque
quun certain nombre dentres/sorties sont relies aux pattes du microcontr-
leur. Cest notre fameuse interface avec le monde rel. Lorsquon branche des
fils dans ces entres/sorties, cest comme si on les connectait directement aux
pattes du microcontrleur.
5
Initiation lArduino 2016-2017 BoilingBrains
3. Broches ou Pins
6
Initiation lArduino 2016-2017 BoilingBrains
4. Bouton Reset
Le bouton Reset prsent sur la carte, permet de tout rinitialiser et donc gale-
ment effacer le programme en mmoire.
5. LED dalimentation
La LED dalimentation est une LED tmoin qui clignote lorsque la carte Arduino
est alimente.
7
Initiation lArduino 2016-2017 BoilingBrains
La figure ci-dessus, montre la manire dont les diffrents contacts sont lec-
triquement relis entre eux.
Un circuit assembl sur une telle plaque ne sera bien videmment pas aussi
solide quun circuit imprim mais ce nest pas trs important vu quon utilisera
a uniquement pour exprimenter des montages provisoires.
Maintenant que vous avez votre carte Arduino ainsi que votre breadboard,
il vous faudra des composants et quelques cbles pour raliser vos montages.
Il faut savoir que niveau composants, vous avez largement le choix. En ef-
fet, il existe vraiment beaucoup de composants compatibles avec lArduino :
leds,moteur, capteur de temprature, ecran lcd, module wifi, . . . . il y a vraiment
de TOUT !
Vous vous demandez ce quil est possible de faire avec un Arduino, jaimerais
dire TOUT, tellement les applications sont nombreuses. Vous pouvez vraiment
raliser un peu ce que vous voulez avec un Arduino (sans blague).La seule vraie
limite cest votre imagination.
8
Initiation lArduino 2016-2017 BoilingBrains
II. Software
I Logiciel Arduino
La carte Arduino se programme laide dun environnement de dveloppe-
ment spcialement cr pour Arduino. Ce logiciel est plus facile prendre en
main et plus intuitif que les logiciels classiques de programmation. En plus, il
ne faut mme pas linstaller. Il suffit de dcompresser larchive et de lancer le
logiciel. Vous pouvez le tlcharger gratuitement sur :
http://arduino.cc/en/Main/Software
9
Initiation lArduino 2016-2017 BoilingBrains
Nous avons :
1. Vrifier : Vrifie et compile ( compiler = transformer un programme
crit en language de programmation en language machine binaire) le
programme quon a crit. Si jamais il ya des erreurs dans notre code, elles
seront affiches dans la fentre noire en bas.
6. Moniteur srie : Ouvre ce quon appelle le moniteur srie, qui est une
fentre qui permet de voir des donnes changes entre la carte Arduino
et le PC en cours dexcution dun programme. a permet de voir la
valeur des capteurs utiliss dans le montage. (son utilisation nest pas
obligatoire).
10
Initiation lArduino 2016-2017 BoilingBrains
11
Initiation lArduino 2016-2017 BoilingBrains
12
Initiation lArduino 2016-2017 BoilingBrains
13
Initiation lArduino 2016-2017 BoilingBrains
Et on tlverse :
Figure 10 LED 13
Nous pouvons donc enfin passer la partie la plus importante lors dune
session "Arduino". Vous aurez devin, je parle de la programmtion !
14
Initiation lArduino 2016-2017 BoilingBrains
III. Programmation
Il existe plusieurs languages de programmation. Dans le cas de lArduino,
nous allons programmer dans un language qui se rapproche du C et qui nas
pas vraiment de nom . . . Cest un language qui a t spcialement dvelopp
pour lArduino. . . .disons que le C classique est un peu trop cryptique. L on
aura quelque chose de beaucoup plus simple.
15
Initiation lArduino 2016-2017 BoilingBrains
Sans quune valeur ne lui soit affecte, la variable est initialise 0. Aprs avoir
dclarer nos variables, on passe dans le second bloc c--d. le setup, qui est ce
quon appelle une fonction.
Le dernier bloc est galement une fonction nomme loop qui est une boucle
infinie. . . cest elle qui contiendra les tches que doit effectuer notre programme
c--d. la logique au moyen de laquelle seront interrogs les capteurs ( exemple :
donne moi la temprature toute les x secondes) et command les actionneurs
( exemple : allumer une led ou faire tourner un moteur). Les instructions se
trouvant dans cette boucle seront rptes jusqu la mise hors tension de la
carte Arduino.
16
Initiation lArduino 2016-2017 BoilingBrains
Avant de prsenter les 4 autres fonctions, il faut savoir que lArduino possde
deux type de ports :
[Il faut savoir que les dveloppeurs ont associ le niveau bas une constante appele
LOW qui correspond la valeur 0V et le niveau haut une constante appel HIGH qui
correspond 5V et donc dans value, on marquera LOW ou HIGH.]
Concernant les ports analogiques, cest un peu plus compliqu car le mi-
crocontrleur ne traite que des signaux numriques. Les signaux analogiques
devront passer par ce quon appelle un convertisseur A/D avant dtre pris en
charge par le microcontrleur. Le convertisseur recevra une tension entre 0 et
5V venant de notre capteur et la transformera en un entier compris entre 0 et
1024.
Pourquoi 1024 ?
Car la sortie du convertisseur, nous aurons un nombre binaire crit sous
10 bits qui est la rsolution de notre microcontrleur et 210 = 1024.
17
Initiation lArduino 2016-2017 BoilingBrains
[Pour plus de dtails concernant les PWM, nous vous conseillons la vido de U =
RI 1 qui explique trs bien la chose.]
Figure 12 PWM
1. https://www.youtube.com/watch?v=CSReyYwbGRY
18
Initiation lArduino 2016-2017 BoilingBrains
delay(ms)
La fonction delay permet de mettre notre programme en pause pendant la
dure (en millisecondes) passe en paramtre. Cest une fonction quon utilise
dans 99% des programmes crit. Elle permettra par exemple de faire clignoter
une LED, chose que nous avons faite dans notre toute premire vido de la
srie. 2
millis()
Cette fonction est galement trs intressante car elle permet de connatre
le nombre de millisecondes coules depuis le dmarrage du programme. La
variable utilise dans cette fonction est remise 0 aprs 232 ms = 4 294 967 296
ms = 4294967,3 min = 1193,04 h = 49,71 jours.
delayMicroseconds(s)
Cette dernire fonction fait exactement la mme chose que la fonction
"delay()" sauf que les temps utiliss ici sont des s, ce qui signifie que cette
fonction sera utilise dans des applications o des constantes trs trs petites
sont ncessaires.
2. https://www.youtube.com/watch?v=7nKrhRRQ05s&index=11&list=
PLGRT2HUmy88CR-2SKAKMlhGsVihmVpH7d
19
Initiation lArduino 2016-2017 BoilingBrains
sqrt(x)
pow(x,n)
log(x)
IV Nombres alatoires
Les nombres alatoires sont gnralement utiliss dans le domaine des jeux.
Il existe deux fonctions qui permettent de gnrer ces nombres (dits pseudo-
alatoire car gnrs par un algorithme) sur lArduino :
randomSeed(seed)
La fonction randomSeed initialise le gnrateur de nombres pseudo-alatoires
avec le paramtre seed. Si la valeur du paramtre est fixe, la squence pseudo-
alatoire sera toujours la mme chaque excution du programme.
long random(min,max)
La fonction random(min,max) renvoi un nombre pseudo-alatoire compris entre
le min et le max spcifi.
V Elments de syntaxe
Comme nimporte quel langage de programmation, les programmes crit
en C dArduino possdent des caractres relatifs leur syntaxe. Les principaux
caractres sont :
20
Initiation lArduino 2016-2017 BoilingBrains
le double slash // -> le double slash est utilis pour crire un commen-
taire sur une seule ligne ou pour dsactiver une ligne du code quon
vient dcrire. La ligne de code est prsente mais elle est ignore par le
compilateur qui compile notre programme comme si cette ligne de code
nexistait pas.
les slashs et les astrisques /**/ -> les slashs et les astrisques servent
aussi crire un commentaire mais cette fois sur plusieurs lignes. Comme
dans le cas prcdent, on peut utiliser cette technique pour dsactiver une
partie de notre code.
VI Oprateurs
Si vous avez besoin de raliser des oprations arithmtiques simples, vous
avez votre disposition : laddition (+), la soustraction (-), la multiplication (*),
la division (/) et le modulo (%) qui permet de calculer le reste dune division
entire.
21
Initiation lArduino 2016-2017 BoilingBrains
Il existe galement des oprateur logiques qui servent valuer deux ex-
pressions boolennes pour obtenir un rsultat VRAI ou FAUX.
On a le :
&& ET
|| OU
! NON
VII Constantes
Cest bien davoir des oprateurs mais il faut galement avoir des variables
et des constantes. Comme en math, une constante est un nom associ une
valeur fixe. Elles sont souvent utilises dans le langage Arduino qui possde
quelques constantes prdfinies que nous avons dj vues prcdemment.
22
Initiation lArduino 2016-2017 BoilingBrains
true/false
HIGH/LOW
INPUT/OUTPUT
#define PI 3,1415
VIII Tableaux
Un tableau est structur de donnes qui permet de stocker plusieurs va-
riables de mme type. Il peut se dclarer de deux manires diffrentes.Tout
dpend si on cre une structure vide ou si on remplit directement les cases de
notre tableau avec des valeurs.
Dans le premier cas, nous utiliserons linstruction suivante :
23
Initiation lArduino 2016-2017 BoilingBrains
IX Instructions de contrle
if
Le if qui permet dexcuter un bloc dinstruction en fonction de la condition
qui se trouve dans la parenthse. Si la condition est rempli, les instructions
entre crochets sont excutes sinon elle ne le sont pas.
Exemple :
if (a>10)
{
// instruction ou bloc dinstructions quelconque
}
if/else
if/else permet dexcuter un bloc dinstruction si une condition est vrifi et
un autre bloc si ce nest pas le cas.
Exemple :
if (ValeurCapteur < 500)
{
// bloc dinstruction 1
}
else
{
// bloc dinstruction 2
}
24
Initiation lArduino 2016-2017 BoilingBrains
for
La boucle for permet dexcuter un bloc dinstructions un nombre fixe de
fois. On repasse dans la boucle tant que la condition est vraie.
Voici la structure de la boucle :
Exemple :
switch
switch ( valeur)
{
case 1 : instruction ; // xecute pour valeur == 1
break ;
case 2 : instruction ; // xcute pour valeur == 2
break ;
default : instruction ; // xcute dans tous les autres cas
}
25
Initiation lArduino 2016-2017 BoilingBrains
while
Le "while" est une boucle qui sexcute tant quune certaine condition nest
pas satisfaite. Elle ressemble la boucle FOR mais cest un peu diffrent car
dans le cas du FOR, on sait exactement combien de fois on va rentrer dans la
boucle (c-a-d quon connat le nombre ditrations) alors quici on ne le sait pas
du tout. . . .. a peut tre 2 fois, 5 fois comme 42 fois. . . .on nen sait rien.
while (condition)
{
// instructions
}
do-while
Le "do-while" est une boucle similaire la boucle "while". La seule diff-
rence est quici la condition est vrifie en fin de boucle, ce qui signifie que la
boucle est excute au moins 1x contrairement au "while".
do
{
// instructions
}
while (condition)
26
Initiation lArduino 2016-2017 BoilingBrains
X Bibliothques
Pour finir, lArduino possde ce quon appelle des bibliothques qui sont
des paquets de fonctions directement regroupe afin dtre utilises pour une
application donne. Il existe un grand nombre de bibliothques. Nous pouvons
par exemple citer : "LiquidCristal" qui permet de grer laffichage dun cran
LCD ou encore "Servo" qui permet de commander des servomoteurs.
27
Initiation lArduino 2016-2017 BoilingBrains
Rfrences
[Personnalisez vos montages Arduino, 2013] .G. Spanner
[Le grand livre dArduino] .E. Bartmann
28