Initiation à Arduino et programmation
Initiation à Arduino et programmation
Avec Arduino !
Initiation Arduino 1
Arduino, Késako ?
Une carte
Une carte
Initiation Arduino 2
Arduino, Késako ?
01010101100110001100
10100110010001010011
00101010100101101011
01010101010101010101
01010101010101001110
11010110000010111111
00110010101111010101
01010011011001010011
01101111000111000111
00110011110011010011
Une carte Un programme
Un programme
Initiation Arduino 3
Arduino, Késako ?
01010101100110001100
10100110010001010011
00101010100101101011
01010101010101010101
01010101010101001110
11010110000010111111
00110010101111010101
01010011011001010011
01101111000111000111
00110011110011010011
Une carte Un programme Du matériel
Du matériel
Initiation Arduino 4
L’univers Arduino Exemples
Une serre
Une main robotique Robot dessinateur
intelligente
Initiation Arduino 5
L’univers Arduino Exemples
Un moniteur
Pendule d’échecs Fraiseuse
cardiaque
Initiation Arduino 6
Le matériel
Initiation Arduino 7
VCC ( A1) G ND D5 SCL SDA
BLE
HTU21D
Fa b -L a b .e u
A0
SCL
RXD
SDA
TXD
G ND
VCC
D5
FTDI
Re v B
ITALY
MADE IN
AREF
TX
RX
GND
13
IOREF
PWM
12
RESET
11
3 V3
10
9
8
POWER
6
A0 5
A1 4
A2 3
A3 2
ANALOG IN
A4 TX0 1
A5 RX0 0
Arduino
6
TM
A7 TX3 14
RX3 15
A8 TX2 16
COMMUNICATION
ON
A9 RX2 17
A10 TX1 18
L’univers Arduino
A11 RX1 19 BL K
MEGA
2560
A12 SDA 20
9 8 7 6 5 4 3 2 GND RST RXI TXO
A13 SCL 21
A14 DIGITAL
52
50
48
46
44
42
40
38
36
34
32
30
28
26
24
22
A15
5V
Arduino
M ini
Re s e t
MICRO
TM
Ard u i n o Pro
53
51
49
47
45
43
41
39
37
35
33
31
GND
A6 A7 A4 A5
L
5
4
6
3
7
2
ON L TX RX BUZZER LIGHT
RESET
tx
1
8
0
9
rx
a5
10 ACCEL
TX RX
Y
a4
11
SELF-T
Z
6g
X
a3
12
1.5
13
a2
a0
a1
TM P3 6
TEMP
-
Initiation Arduino
5V
9
8
7
6
5
4
3
2
1
0
22
13
12
11
10
GND
PWM
AREF
SCL1
SDA1
24
TX3 14
RX3 15
TX2 16
RX2 17
TX1 18
RX1 19
SDA 20
SCL 21
TX0
RX0
26
COMMUNICATION 28
30 31
32 33
RX SPI 34 35
TX
1 36 37
L
ON 38 39
40 41
TM 42 43
44 45
RX1
46 47
ISCP
Arduino
48 49
TX1 DUE 50 51
DIGITAL
52 53
POWER ANALOG IN
IOREF
RESET
3 V3
A0
A1
A2
A3
A4
A5
6
A7
A8
A9
A10
A11
DAC0
DAC1
CANRX
CANTX
GND
-
+
Batt
4-12V
YLW
GRN
EXT
AREF
GND
-
+
RTS
RX-I
TX-0
GND
GND
5/3.3V
BATT
RESET
PWM
5/3.3V
5V
PWM
3.3V
C1 0 6
8MHz
VCC
20MHz
16MHz
PWM
GND
Power
DIGITAL
Batt
C1 0 6
PWM
D ie c im
PWM
ila
A r d u in o
Arduino Pro
www.a rd u i n o .c c
PWM
ANALOG IN
Des Cartes
TX
1
Reset
RX
ISP
Du matériel La carte
USB LED Entrées / Sorties
… …
Alimentation Microcontrôleur
=
Un MINI ordinateur !
Entrées / Sorties
Initiation Arduino 9
Du matériel La carte
USB LED Entrées / Sorties
… …
MADE IN
5V
Microcontrôleur
ITALY 22
GND
9
8
7
6
5
4
3
2
1
0
AREF
SDA 20
13
12
11
10
RX3 15
RX2 17
RX1 19
SCL 21
=
TX3 14
TX2 16
TX1 18
24
PWM
RX0
TX0
26
L COMMUNICATION 28
30 31
Un MINI ordinateur !
Alimentation TX
RX
ON 32 33
34 35
36 37
38 39
40 41
42 43
TM
44 45
MEGA 46 47
DIGITAL
48 49
Arduino 2560
50 51
52 53
POWER ANALOG IN
RESET
IOREF
A10
A11
A12
A13
A14
A15
GND
3 V3
A0
A1
A2
A3
A4
A5
A7
A8
A9
6
Entrées / Sorties
Initiation Arduino 10
Du matériel La carte
Microcontrôleur
TM
TX RX
Arduino L
MICRO
=
Un MINI ordinateur !
…
Entrées / Sorties
Initiation Arduino 11
L’univers Arduino Des Shields
22
AREF
GND
SDA
9
8
7
6
5
4
3
2
1
0
RX3
RX2
RX1
SCL
13
12
11
10
TX1
TX2
TX1
PWM 24
De s i g n e d b y Pe te r Da v e n p o rt fo r SFE
TX
RX
13
12
11
10
GND
Are f
RX 5
26
TX 4
28
An a l o g In
CAN-BUS Shield
2 3
30 31
S3
AREFGND13 12 11 10 9 8 7 6 5 4 3 2 1 0 14151617 18192021 3 2
PWR_SEL DIGITAL 32 33
4 1
34 35
GND
5 0
S2
36 37
DIGITAL
S1
D8 D7 PWR GND
42 43 8
RESET
GND
44 45 9
+5 V
46 47 10
46474849 50515253 A0A1A2A3 A4A5A6A7 A8A9A10A11 A12A13A14A15 48 49 + 3 .3 V
11
GND
GND
RST
3 V3
VIN
10
11
12
13
14
15
URF01
5V
0
1
2
3
4
5
6
7
8
9
AREF
L R
Re s e t
3 .3 V
GND
GND
An a l o g In
Vi n
5V
ICSP
5
TX D5 RX D4
LCD D
EM-406
1 1 -PWM B
PWM A 3
GND
SDA
2
~6
~5
~1 0
AREF
SCL
TX>1
RX<0
(*=PWM )
BRAKEA 9
BRAKEB 8
1 3 -DIRB
1 2 -DIRA
RESET
Arduino
GND
ETHShield
SD 1 0
AREF
TX RX
Ard u i n o
M OTOR
SHIEL D REV3
TWI-IN TWI-OUT OUT6 OUT5 IN2 IN3
MEGA compatible
ICSP
B-
B
B+
A-
A
A+
RESET
VIN GND
RESET
POWER ANAL OG
IOREF
WP
RES
+5 V
3 V3
ANALOG IN
VIN
3V3
GND 0 1 2 3 4 5
5V Gnd 9V A0 1 2 3 4 A5
10
15
20
25
30
1
5
J
J
F G H I
F G H I
Capteur de distance Capteur de distance
A B C D E
A B C D E
infrarouge ultrasons
10
15
20
25
30
1
5
Soil Moisture Sensor
Planche à pain Des moteurs
VCC
GND
SIG
Enceintes
Afficheurs
Capteur d’humidité Résistance
Piezzo
Capteur de
température LED Des moteurs
Initiation Arduino 13
Un Programme
Initiation Arduino 14
Arduino, Késako ?
Un ordinateur
Logiciel Arduino
Un ordinateur
01010101100110001100
10100110010001010011
00101010100101101011
01010101010101010101
01010101010101001110
11010110000010111111
00110010101111010101
01010011011001010011
Logiciel Arduino 01101111000111000111
Un ordinateur 00110011110011010011
Un programme
Un Algorithme
Initiation Arduino 18
Un Programme
Recette
Recette en français en C++ Recette en « 0 » et « 1 »
void loop()
01010101100110001100
{ 10100110010001010011
addFlour(375);
addSoda(0,5);
00101010100101101011
addEggs(3); 01010101010101010101
addSugar(1000); 01010101010101001110
while(!Mixed) 11010110000010111111
Mix();
bakeCookies();
00110010101111010101
} 01010011011001010011
} 01101111000111000111
00110011110011010011
Initiation Arduino 19
Un Programme Exercice 1
Instructions disponibles :
North(); // Monter d’une case
South(); //Descendre d’une case
East(); //Aller à droite d’une case
West(); // Aller à gauche d’une case
Programme()
{
Initiation Arduino 20
Un Programme Exercice 1
Instructions disponibles :
North(); // Monter d’une case
South(); //Descendre d’une case
East(); //Aller à droite d’une case
West(); // Aller à gauche d’une case
Programme()
{
East();
North();
North();
East();
East();
East();
South();
South();
}
Initiation Arduino 21
Le logiciel Arduino
Initiation Arduino 22
Le logiciel Arduino [Link]
.. .. ..
void setup() {
// put your setup code here, to run once:
}
Initiation Arduino 23
Le logiciel Arduino [Link]
.. .. ..
void setup() {
// put your setup code here, to run once:
}
Initiation Arduino 24
Le logiciel Arduino
void setup() {
// put your setup code here, to run once:
Langage C++ }
Initiation Arduino 25
Le logiciel Arduino
Une fonction void setup()
{
// put your setup code here, to run once:
}
void loop()
{
// put your main code here, to run repeatedly:
}
}
Initiation Arduino 26
Le logiciel Arduino
Une fonction : void setup()
• Type {
• Nom // put your setup code here, to run once:
• Paramètres }
• Commence par { et finis par }
void loop()
{
// put your main code here, to run repeatedly:
}
}
Initiation Arduino 27
Le logiciel Arduino
Une fonction : void setup()
• Type : void {
• Nom : setup // put your setup code here, to run once:
• Paramètres : aucun }
• Commence par { et finis par }
void loop()
{
// put your main code here, to run repeatedly:
}
}
Initiation Arduino 28
Le logiciel Arduino
Une fonction : void setup()
• Type : void {
• Nom : setup // put your setup code here, to run once:
• Paramètres : aucun }
• Commence par { et finis par }
void loop()
{
Un commentaire : // put your main code here, to run repeatedly:
• Commence par //
}
ou
• Commence par /* et finis par */ }
Initiation Arduino 29
Le logiciel Arduino
Une fonction : void setup()
• Type : void {
• Nom : setup // Commentaire
• Paramètres : aucun Instruction1
• Commence par { et finis par } Instruction2
}
Initiation Arduino 30
Le logiciel Arduino
void setup() {
Initialisation
// put your setup code here, to run once:
}
void setup()
{ void loop() {
// put your main code here, to run repeatedly:
}
}
void setup()
{
Préchauffer le four
}
Initiation Arduino 31
Le logiciel Arduino
void setup() {
// put your setup code here, to run once:
void loop() {
Boucle // put your main code here, to run repeatedly:
}
void loop()
{ }
void loop()
{
Préparer les ingrédients
Mélanger les ingrédients en suivant la recette
Cuire les cookies
Manger les cookies
}
Initiation Arduino 32
Notre premier programme
Initiation Arduino 33
Hello World !
• Objectif : Faire clignoter une LED à la seconde
… … …
1s
Initiation Arduino 34
Les entrées et sorties numérique
Sortie numérique :
Permet d’imposer une tension sur la
broche :
• État bas / Faux / « 0 » 0V
• État haut / Vrai / « 1 » 5V
Initiation Arduino 35
Les entrées et sorties numérique
Bas
OFF
Broche « 7 » en sortie numérique à l’état «0»
Faux
0V
Initiation Arduino 36
Les entrées et sorties numérique
Haut
ON
Broche « 7 » en sortie numérique à l’état «1»
Vrai
5V
Initiation Arduino 37
Hello World !
• Objectif : Faire clignoter une LED à la seconde
LED Broche : 13
Initiation Arduino 38
Hello World !
• Objectif : Faire clignoter une LED à la seconde
Début
Broche 13 en sortie
Allumer la LED
Attendre 0,5 s
Éteindre la LED
Attendre 0,5 s
Allumer la LED
Initiation Arduino 39
Hello World !
• Objectif : Faire clignoter une LED à la seconde Début
Début
Broche 13 en sortie
Broche 13 en sortie
Allumer la LED
Allumer la LED
Attendre 0,5 s
Attendre 0,5 s
Éteindre la LED
Éteindre la LED
Attendre 0,5 s
Attendre 0,5 s
Allumer la LED
Initiation Arduino 40
Hello World !
• Objectif : Faire clignoter une LED à la seconde Début
Allumer la LED
Attendre 0,5 s
Boucle
Éteindre la LED
Attendre 0,5 s
Initiation Arduino 41
Hello World !
• Objectif : Faire clignoter une LED à la seconde
mode :
INPUT : Pour récupérer une information
OUTPUT : Pour envoyer une commande
Initiation Arduino 42
Hello World !
• Objectif : Faire clignoter une LED à la seconde
état :
HIGH : Allumé
LOW : Éteint
delay(temps);
temps : temps d’attente en millisecondes (1000ms = 1s)
Initiation Arduino 43
Hello world !
void setup()
Début
{
// put your setup code here, to run once:
pinMode(13, OUTPUT); Broche 13 en sortie
}
Allumer la LED
void loop()
{
Attendre 0,5 s
// put your main code here, to run repeatedly:
digitalWrite(13, HIGH);
delay(500); Éteindre la LED
digitalWrite(13, LOW);
delay(500); Attendre 0,5 s
}
Initiation Arduino 44
Des fils en pagaille
Représenter un montage électronique
Initiation Arduino 45
De l’éléctro-quoi ?
• Objectif : Brancher une LED Vue schématique
Calcul de la résistance R1
𝑉𝑉𝑓𝑓 = 1,2𝑉𝑉
�𝐼𝐼𝑁𝑁 = 20𝑚𝑚𝑚𝑚
𝑉𝑉𝑐𝑐𝑐𝑐 = 5𝑉𝑉
Initiation Arduino 46
La Planche à pain – Reliez c’est gagné
• Objectif : Brancher une LED
10
15
20
25
30
1
5
J
J
F G H I
F G H I
A B C D E
A B C D E
10
15
20
25
30
1
Initiation Arduino 47
La Planche à pain
• Objectif : Brancher une LED
• Vue
Initiation Arduino 48
Communiquer avec l’ordinateur
Initiation Arduino 49
Liaison Série
• Objectif : Faire clignoter une LED à la seconde Début
Démarrer la liaison
série
Initialisation
Blab bla bla ...
Envoyer du texte
Boucle
Ne rien faire
Initiation Arduino 50
Comment tu t’appelles ?
• Objectif : Afficher son nom et son âge dans le moniteur série
Initialisation
[Link]("Texte a écrire");
[Link](9600); [Link]("Texte a écrire");
Initiation Arduino 51
Point chaussettes ! Ou, les variables
Initiation Arduino 52
Point chaussettes ! Ou, les variables
• Chaque tiroir à un nom Nom du tiroir
• Chaque tiroir ne peut Chaussettes
contenir qu’un seul
type d’objet
T-Shirts
Pantalons
Caleçons
Initiation Arduino 53
Point chaussettes ! Ou, les variables
• Chaque tiroir à un nom Nombre d’objets Nom du tiroir
• Chaque tiroir ne peut Chaussettes
contenir qu’un seul
type d’objet
1
T-Shirts
Pantalons
Caleçons
Initiation Arduino 54
Point chaussettes ! Ou, les variables
Chaque tiroir à un nom Nombre d’objets Nom du tiroir
Chaque tiroir ne peut Chaussettes
contenir qu’un seul
type d’objet
3
T-Shirts
2
Pantalons
4
0 Caleçons
Initiation Arduino 55
Point chaussettes ! Ou, les variables
Chaque variable à un nom Valeur ou Contenu Nom de la variable
Chaque variable ne peut Chaussettes
contenir qu’un seul
type d’objet
3
T-Shirts
2
Pantalons
4
0 Caleçons
Initiation Arduino 56
Le logiciel Arduino
Création d’une variable : int NombreDeChaussette;
• Type : int
}
• Nom : NombreDeChaussette
• Valeur : 0
Initiation Arduino 57
Le logiciel Arduino
Types de variables :
Initiation Arduino 58
Point chaussettes ! Ou, les variables
Initiation Arduino 59
Point chaussettes ! Ou, les variables
Initiation Arduino 60
Que la lumière soit
mode:
- INPUT : Pour récupérer une information (ex : capteur
- OUTPUT : Sortie
Valeur = analogRead(pin);
pin : Numéro du dont on veux lire la valeur
Initiation Arduino 61
Que la lumière soit !
Initiation Arduino 62
A votre tour !
pinMode(pin, mode); Les variables
pin : Numéro du pin à initialiser Créer une variable: int NombreDeChaussettes;
mode:
INPUT : Pour récupérer une information (ex : capteur) Stocker dans une variable : NombreDeChaussettes = 2;
OUTPUT : Sortie
int NombreDePantalons = 3;
delay(temps); else
{
temps : temps d’attente en millisecondes (1000ms = 1s)
Allumer la LED
}
Initiation Arduino 63