Vous êtes sur la page 1sur 35

Introduction Arduino

Initiation au fablab et
arduino
Contenu :
• Introduction
• Hardware :
– La carte
– Les capteurs
– Les Actionneurs et préactionneurs
• Software :
– Logiciel Arduino : Méthodes setup et loop
– Variables / Constantes
– Commandes
– Structures de contrôle
• Exercices
Introduction

➔ Arduino est une marque d’électronique


◆ Elle fabrique des composants (hardware)
mais aussi un logiciel (software)
➔ Une carte arduino est un micro-ordinateur
capable de recevoir des informations
(capteurs, boutons), d’en envoyer (écran) ou
de contrôler des composants (moteurs)
Sorties
Entrées La carte envoie des
La carte reçoit des informations
informations

Bouton Ecran
La carte reçoit l’information si le La carte envoie du texte à afficher
bouton est enfoncé ou non

Capteur de température
Moteur
La carte reçoit une valeur de
La carte envoie l’ordre au moteur
température du capteur
de s’allumer
➔ Mais la carte ne décide pas seul ce qu’elle doit
faire :
◆ Par exemple : recevoir une température ou
allumer un moteur
➔ La carte possède un cerveau (microcontrôleur)
➔ Mais ce cerveau est vide de base
➔ Il faut le remplir : c’est là qu’on programme la
carte
Capteur de température Moteur pour ventilateur

Exemple : La carte doit allumer le ventilateur si la température est supérieur à 35°C

1) Lui dire qu’elle peut utiliser un capteur de


Alors on doit écrire température et un moteur
dans le cerveau de la 2) Demander au capteur la température qu’il
carte (programmer) : mesure
3) Regarder si cette température est supérieure
à 35°C
4) Si elle l’est, allumer le moteur. Sinon ne rien
faire
Utilisations
• Arduino est majoritairement utilisé dans les
écoles et universités car elle permet de découvrir
l’électronique
• On peut réaliser des petits robots, des systèmes
mécaniques
Hardware
➔ En français “Objets durs”
➔ Matériel physique sur lequel on peut utiliser des
programmes ou logiciels
➔ Exemple : Votre téléphone

Hardware Software
Alimentation électrique et

La Carte connexion USB à l’ordinateur USB Différents composants


électroniques qui
composent le cerveau
de la carte.
Notamment le
microcontrôleur.

Modèle Arduino Uno


Pin permettant de
recevoir ou d’envoyer
Pin (emplacement pour insérer un des informations
câble) permettant l’alimentation binaires (1 ou 0)

Microcontrôleur
d’autres composants (capteurs) ou Exemples :
de la cart elle-même Un bouton ⇒ 1 si il est
enfoncé et 0 si il ne l’est
pas
Un motor ⇒ 1 pour
Pin permettant de recevoir des
l’allumer et 0 pour
informations analogiques. C’est à
l’éteindre
dire des nombres décimaux qui
sont en réalité une tension de 0 à
5V
Les capteurs Ils permettent de transformer une phénomène physique
(mouvement, température, lumière…) en un signal
compréhensible par la carte. Il y a 2 types principaux :

Les Capteurs TOR Les Capteurs analogiques


1
Des capteurs qui fournissent Des capteurs qui fournissent
un signal binaire ( avec 2 état 0 une valeur numérique
⇒ 0 ou 1)

Capteur Infrarouge
Détecte un obstacle ou pas Capteur de température Capteur de vitesse
Détecteur fin de course
Détecte si, par exemple, un portail
Fournit une valeur de Fournit une valeur de vitesse de
est fermé ou pas température rotation

Capteur de son
Capteur de tension
Capteur d'ultrason Fournit une valeur de l’intensité
Détecte un tension ou pas
La différence sera vue du son
Les
Un actionneur est un composant qui créer une action (tourner,
actionneurs et avancé, allumer..). Le préactionneur est un composant pour aider
préactionneurs l’Arduino à commander certains composants

Les actionneurs Les préactionneurs


Intermédiaire pour contrôler
l’actionneur. La carte envoie la
commande, l’actionneur la
puissance. Pas besoin pour tous
les actionneurs.

Vérins
Mouvement de
translation

Moteurs
Mouvement
de rotation
Autre : LED, Buzzer
Hardware : résumé

Voir Réfléchir Agir

Les capteurs Les cartes Les actionneurs


SoftWare
● Le software désigne la logique qui fait agir un composant (ou matériel) informatique.
● Pour écrire cette logique il faut un langage de programmation dont le rôle est de
définir les instructions de base et la manière de les agencer en respectant tant la
syntaxe que la sémantique.
● Pour exécuter les instructions écrites dans un langage de programmation il faut un
compilateur qui devra jouer le rôle d’interprète entre celles-ci et le composant
concerné en traduisant sous-forme de 0 et 1 ces instructions.
Logiciel Arduino
● C’est une plate-forme de développement
et de prototypage Open Source (source
libre). Il facilite l'écriture du code et son
téléversement sur la carte Arduino.
● Le logiciel peut être téléchargé
gratuitement au lien suivant:
https://www.arduino.cc/en/software
● Le rôle de la carte Arduino est de stocker
le programme et de le faire fonctionner
une fois téléversé.
Fenêtre de démarrage du logiciel Arduino
Logiciel Arduino : Méthodes “setup” et “loop”
● Une fois votre logiciel Arduino installé et lancé,
vous serez devant une fenêtre semblable à celle
de droite.
1. Remarquez la présence des instructions:

void loop(){
void setup(){ et
}
}
● Ce sont des instructions de base, obligatoires et
très importantes pour l’exécution de vos
instructions Arduino. Elles sont connues en tant
que fonction ou procédure.
● setup permet de définir les valeurs initiales et
nécessaires au déroulement de votre
programme, elle ne s’exécute qu’une seule fois. Editeur de texte du logiciel Arduino
Logiciel Arduino : Méthodes “setup” et “loop” (suite)
● loop permet de définir les instructions qui vont
commencer à tourner en boucle pour faire
fonctionner votre carte Arduino et tous les
composants y attachés.
● Comme son nom l’indique (loop=> répéter), elle
s’exécute en boucle, de façon répétitive.
● En situation normale, vous définissez, en plus de
setup et loop, vos propres fonctions ou
procédures, soit à l’intérieur de votre fichier
source soit à l’extérieur dans un autre fichier à
référencer éventuellement.
Editeur de texte du logiciel Arduino
Logiciel Arduino : Méthodes “setup” et “loop” (suite)

● Exercice pratique: Écrire un programme


qui permet d’allumer (pour une
seconde) et d’éteindre (pour une
seconde aussi) une LED.
● Comme indiqué dans la capture d’écran
à droite, vous trouverez une série
d’exemples de code pour différents
types d’applications.
● Notre exercice est résolu dans
l’exemple nommé Blink. Exemples des programmes écrits et exécutables sous
le logiciel Arduino
Logiciel Arduino : Méthodes “setup” et “loop” (suite)
● La capture d’écran ci-contre présente le code
source Arduino pouvant produire le résultat de
notre question de l’exercice précédent.
● Dans la partie setup on utilise l’instruction
pinMode pour définir le pin à considérer (celui sur
lequel est enfichée la LED) et on précise à travers
la constante OUTPUT que les commandes sortent
de la carte Arduino vers la LED.
● Dans la partie loop on utilise l’instruction
digitalWrite pour envoyer des signaux vers la LED.
La constante HIGH envoie 1 et LOW envoie 0 pour
signifier la présence/absence du courant.
● L’instruction delay permet de passer en argument
Exemples des programmes écrits et exécutables
la durée (en millisecondes) de décalage de sous le logiciel Arduino
l’exécution de l’instruction suivante.
Programmation Arduino : Variables et constantes
(suite)
● En programmation informatique, une variable est un espace
mémoire réservé en vue d’un stockage-récupération éventuel
● Arduino étant une version modifiée du langage C (et C++), les
notions de variables et constantes sont comprises de la même
manière
● Par exemple, l’instruction “ int nombre1;” indique une
“déclaration d’une variable” dont le nom est nombre1 et qui ne
va contenir que des nombres entiers. Considérez les variables comme les
● On peut stocker la valeur 50 dans notre nombre1 en faisant conteneurs (bouteille, verre, etc.) et
la valeur comme le contenu (eau,
l’instruction “ nombre1=50;” Cette opération s’appelle “Affectation jus, etc.)
de valeur à une variable” en programmation.
● Les valeurs d’une variable peuvent changer au cours de NB: A chaque type de
l’exécution du programme. Pour changer la valeur de notre contenu, son type de
conteneur!
nombre en 100 on fera simplement “nombre1=100;” et la
dernière valeur sera désormais utilisée au détriment de la A chaque type de valeur,
première. son type de variable!
Programmation Arduino : Variables et constantes (suite)
(suite)
Les Constantes
Quelques règles à retenir
● La différence entre les variables et les
❖ Le nom d’une variable doit être unique dans constantes réside sur le fait que les
notre programme, deux variables ne devront constantes ne changent pas leurs valeurs au
pas avoir un même nom cours de l’exécution de votre programme
❖ Le nom d’une variable doit commencer par une ● La déclaration d’une constante se fait
lettre alphabétique (ou la barre de huit ( _ )) obligatoirement ensemble avec l’affectation
❖ Le nom d’une variable ne doit pas contenir de de sa valeur et est précédée du mot-clé
caractères spéciaux (comme @,#,$,%,^,&,*,-,!, const. Ex: const float PI = 3.14 ;
etc). Ainsi la variable “nombrePremier” est
valide et “nombre Premier” ne l’est pas car ❏ Les variables et les constantes ont
contenant un espace toutes un type de données
❖ Le nom d’une variable ne doit pas être un mot ❏ Les types disponibles sont en autres:
réservé en langage C int pour les entiers naturels, long pour
les entiers longs, double et float pour
les nombres décimaux, etc.
Programmation Arduino : Les commandes (suite)
❖ Arduino a un bon nombre de commandes ou
instructions de base qui lui sont propres
❖ Un coup d’oeil sur le petit programme ci-contre
nous aide à découvrir certaines
❖ La deuxième ligne n’est qu’une déclaration d’un
pushButton qui représente le numéro de la broche
à considérer sur la carte.
❖ Serial.begin(9600) à la première ligne après setup()
permet de définir la vitesse de transfert des bits qui
est ici de 9600 bits par seconde.
❖ pinMode permet de préciser ici le type d’usage
qu’on veut faire de la broche 2 (valeur de notre
Pour plus de détails sur les différentes
variable pushButton), INPUT signifie qu’on lit en
commandes disponibles et bien plus
encore, rendez-vous au lien suivant: entrée, cad qu’on ramène les signaux du bouton
vers la carte.
https://arduino.developpez.com/tutoriels/cours-complet-arduino/?page=programmer-arduino
Programmation Arduino : Structures de contrôle(suite)
❖ En programmation, les structures de contrôles désignent toute instruction de bloc qui
permet de contrôler le déroulement de votre programme
❖ Elles sont réparties en deux:
➢ Les structures de décisions/choix
➢ Les structures répétitives / boucles

Si condition vraie, alors faire


l’action
Tant que condition vraie, faire l’action,
Ex: Si nombre1>5 alors jusqu’à ce que condition soit fausse.
nombre1 est
grand Ex: Tant qu’il n’est pas 12h on ne quitte pas
l’école (jusqu’à ce qu’il sera 12h)
Programmation Arduino : Structures de contrôle(suite)
❖ Pour exprimer une condition, Arduino utilise les instructions ‘if’, ‘if...else’, ‘if...else if...else’
❖ Première forme (Si)
❖ Troisième forme (Si...Sinon Si...Sinon)

❖ Deuxième forme (Si...Sinon)


Programmation Arduino : Structures de contrôle(suite)
❖ Pour exprimer une condition, Arduino utilise les instructions ‘if’, ‘if...else’, ‘if...else if...else’
❖ Exemple 1 (Si)
❖ Exemple 3 (Si...Sinon Si...Sinon)

❖ Exemple 2 (Si...Sinon)
Programmation Arduino : Structures de contrôle(suite)
❖ Pour faire des itérations, Arduino utilise les boucles ‘while’, ‘for’, ‘do...while’
❖ while (Tant que) ❖ for (Pour )
Programmation Arduino : Structures de contrôle(suite)
❖ Pour faire un choix parmi tant d’autres Arduino utilise ‘switch...case’
Exercice 1 : Faire clignoter une Led externe
Déclarer la variable “led”, la
Carte Arduino
déclarer qu’elle est sur le pin 2

Dire que la led est une


sortie (OUTPUT)

Allumer la led (mettre à


LED HIGH ⇒ 1)
Attendre 1000 millisecondes
Bread board Résistance
(= 1 seconde)
Eteindre la led (mettre à
LOW ⇒ 0)
Attendre 1000 millisecondes
(= 1 seconde)
Le câblage Le code
On a ajouté une résistance
avant la led pour la protéger.
Le fil rouge est relié au pin et
le fil noir à la borne GND
Reproduisez cet exercice !!
Exercice 2 : Récupérer une valeur d’un capteur
infrarouge

Déclarer la variable “capteur”, déclarer que le capteur est sur le pin 2


Déclarer la variable “variablecapteur”, c’est la valeur qu’on
va lire du capteur (à 0 au début)

Serial begin pour commencer


Déclarer le capteur comme une entrée (INPUT)

Appliquer dans la variable


“valeurcapteur” la valeur qui
est lu dans le capteur

Afficher (print) si l’objet est


non détecté (1) ou si il est
détecté (0)

Capteur infrarouge
Attendre 2000 millisecondes
(= 2 secondes) avant la
Le code prochaine mesure
Le câblage
On a ajouté une résistance
avant la led pour la protéger.
Le fil rouge est relié au pin et
Reproduisez cet exercice !!
le fil noir à la borne GND
Exercice 3 : Allumer un moteur (dans les 2 sens)
Aide pour la commande du driver :

Pour commander un moteur, un driver doit


avoir 3 liaisons avec la carte Arduino (si on
Moteur veut commander 2 moteurs il faut alors 6
liaisons).
Pour un moteur, ces 3 liaisons sont :

● EN_A : c’est sur cette liaison qu’on


va commander la puissance du
moteur (et donc sa vitesse de
rotation). On peut contrôler sa
vitesse de 0 à 255. Plus on mettre
un grand nombre, plus la
puissance et donc la vitesse seront
Driver élevée
● IN1 & IN2 : Ces 2 liaisons
permettent de contrôler le sens de
rotation ou l’arrêt du moteur. Ce
sont des liaisons binaires : c’est à
dire qu’on envoie des 0 ou 1.
○ Par exemple si :
■ IN1 = 1
■ IN2 = 0
Ces 2 fils ○ Le moteur tourne dans
correspondent un sens
aux fils des ○ Ou si
piles qu’il faut ■ IN1 = 0
relier au driver ■ IN2 = 1
○ Le moteur tourne dans
l’autre sens
○ Ou si
■ IN1 = 0
■ IN2 = 0
○ Le moteur s’arrête
Le câblage Si on installe un deuxième moteur. Ce sera le

Reproduisez cet exercice !! même principe mais avec EN_B, IN3 et IN4
Exercice 3 : Allumer un moteur (dans les 2 sens)

Cette partie sert à faire tourner le


moteur dans un sens à une
puissance de 255 (max)
Déclarer les variables utilisées avec le driver :
EN_A, IN1 et IN2
On attend 2000 ms (2 sec). Pendant ce temps le moteur tourne
On arrête le moteur en mettant
les 2 bornes à 0 (LOW)

On attend 2 secondes après avoir arrêté les 2 moteurs


On fait tourner le moteur dans
Déclarer que les variables sont l’autre sens (car on commande
des sorties (OUTPUT) et mettre l’inverse sur IN1 et IN2)
EN_A à LOW (0) pour que le
moteur ne démarre pas au
début On laisse les moteurs tourner 2 secondes
On arrête les 2 moteurs

On attend 2 secondes après avoir arrêté les 2 moteurs.

Ensuite, la boucle loop recommence


La suite du programme en haut à droite

Le code
Exercice 4 : Récupérer une valeur d’un capteur
ultrason

Capteur
Ultrason

étape 1

Broche echo

Le câblage
Reproduisez cet exercice !!
Exercice 4 : Récupérer une valeur d’un capteur
ultrason
Forcer trig à 0 et attendre 2 microsecondes pour
Déclarer les variables
avoir un signal propre
utilisées par le capteur
(trig et echo) et les
variables utilisées pour Lancer un signal (=1) de 10 microsecondes sur trig
la calcul pour lancer les ultrason et ensuite éteindre le
signal (=0) (étape 1 sur graphe)

Récupérer la durée (duration) pendant


laquelle echo est égale à HIGH (=1)
Calculer la distance avec la formule v=d/t sachant
qu’on a le temps avec “duration” et la vitesse avec la
vitesse du son. On divise par 2 car on a la durée de
l’aller retour hors on s'intéresse qu’à l’aller

Permet d’afficher la distance en


cm dans le moniteur série
Déclarer trig comme
sortie et lui donner 0
comme valeur. Attendre 200 milliseconds avant la
Déclarer echo comme
entrée
prochaine mesure et retourner la valeur
dans le distance dans le programme

La suite du programme en haut à droite


Le code
Exercice 5 : Utiliser un boucle if avec un moteur
et un capteur
Ces 2 fils
correspondent
aux fils des
piles qu’il faut
relier au driver

Le câblage
Reproduisez cet exercice !!
Exercice 5 : Utiliser un boucle if avec un moteur
et un capteur Dans ce void loop on utilise des fonctions comme
“mesurerdistance()” on vous explique ces
fonctions sur la diapositive suivante

Déclarer les variables On récupère la valeur calculée


utilisées par le capteur dans la fonction mesuredistance
ultrason et le moteur pour la mettre dans la variable
centimètres

Une condition if (si en français) permet de tester


une condition pour ensuite réaliser une action si la
condition est vérifiée. Ici on regarde si la distance en
centimètres est de moins de 5cm, si elle l’est on
arrête les moteurs pendant 5 secondes

Déclarer les entrées et Une condition else if (sinon si en français) permet


sorties du capteur et de tester une autre condition après une boucle if,
du moteur si la première n’a pas été vérifié. Ici on regarde si la
distance en centimètres est de plus de 5cm, si elle
l’est on allume les moteurs pendant 1 seconde.

Le code n’est pas fini, après il y a la


déclaration des fonctions

Le code
Exercice 5 : Utiliser if avec un moteur et un
capteur
Les fonctions
Les fonctions sont comme des “boîtes” où on stocke des commandes. Ensuite si on
écrit simplement le nom de la fonction alors on effectuera toutes les commandes
qui y sont présentes. Dans le code, on déclare les fonctions après le void loop.

exemple : La fonction exemple : La fonction mesuredistance()


arretermoteur()
Le principe est le
même que pour
l’autre fonction. La
différence est qu’on
utilise pas void avant le
nom de la fonction
mais long car la
Ce bloc est placé après le void loop. fonction permet de
On y met les commandes de la retourner un nombre
fonction ensuite on aura juste à (ici la distance en cm)
l’appeler dans le void loop pour
l’utiliser

Vous aimerez peut-être aussi