Vous êtes sur la page 1sur 15

Formation Arduino & Robotique

1. Objectifs de la formation
Les objectifs de cette formation sont :
 Découvrir l’architecture de la carte Ardouino Nano.
 Découvrir le logiciel de programmation Ardouino.
 Réaliser des applications avec la carte Ardouino Nano.
2. Présentation de la carte Arduino NANO
L’Arduino Nano est une carte de dimensions 45mm x 18mm. Très légère, elle ne pèse que 5g, ce qui lui
permet de s’adapter aux petits systèmes électroniques embarqués et aux petits robots. C’est la carte la
moins chère du marché.
Cependant, ce serait une erreur d’établir une corrélation entre son prix et sa performance. Certes, elle
coûte moins cher, mais elle rend un service de qualité et affiche des performances aussi remarquables
que celles d’une UNO. Elle est dotée de 14 pins digitaux à travers lesquels elle fournit 40 mA maximum.
En outre, elle intègre 2 pins analogiques de plus que la UNO. Cela fait donc 8 pins analogiques pour la
Nano. En ce qui concerne la capacité, elle est dotée d’une mémoire Flash de 32Kb et 2Kb de mémoire
dynamique.
La particularité de la carte est qu’elle est très minimaliste et se présente avec un empattement vraiment
réduit. On note l’absence du connecteur DC de 2.5 mm chez l’Arduino Nano.

La programmation de l’Arduino Nano se fait exactement comme les autres avec l’IDE Arduino 1.7.8 ou
avec des versions supérieures.
Composition de la carte ARDUINO UNO
 Alimentation:

- via port USB ou


- 5 Vcc régulée sur broche 27 ou
- 6 à 20 V non régulée sur broche 30

 Microprocesseur: ATMega328

 Mémoire flash: 32 kB

 Mémoire SRAM: 2 kB

 Mémoire EEPROM: 1 kB

 Interfaces:

- 14 broches d'E/S dont 6 PWM


- 8 entrées analogiques 10 bits
- bus série, I2C et SPI

 Intensité par E/S: 40 mA

 Cadencement: 16 MHz

 Gestion des interruptions

 Fiche USB: mini-USB B

 Boîtier DIL30

 Dimensions: 45 x 18 x 18 mm
Matériels utilisés
Une plaque de montage et des fils de connexion :

Des diodes LED avec des résistances de protection:

Différents capteurs :

Capteur de distance à ultrasons HC-SRO4

Capteur de lumière (photorésistance) avec sortie analogique (A0)

Capteur de son (micro) avec sortie analogique (A0)

Généralités sur les capteurs

Un capteur est un composant technique qui détecte un événement physique se rapportant au


fonctionnement du système (présence d'une pièce, température, etc.) et traduit cet événement en un
signal exploitable par la PC. Ce signal est généralement électrique sous forme d'un signal basse- tension.
La figure suivante illustre le rôle d’un capteur :

Grandeur physique DETECTER Signal électrique


(Etat de la PO) UN EVENEMENT (Exploitable par la PC)

L'information détectée par un capteur peut être d'une grande variété, ce qui implique une grande variété

de besoins en capteurs. On cite parmi les plus connus et fréquents, les capteurs de position, de
température, de présence, de vitesse, de température et de niveau.

Nature de l’information fournie par un capteur

Suivant son type, l’information qu’un capteur fournit à la PC peut être :


 Logique : L’information ne peut prendre que les valeurs 1 ou 0 ; on parle alors d’un capteur Tout
ou Rien (TOR). La figure suivante montre la caractéristique d’un capteur de position :
Signal logique
Présence de la pièce

1 (24V)
Absence de la pièce

0 (0V) Temps

 Analogique : L’information peut prendre toutes les valeurs possibles entre 2 certaines valeurs
limites; on parle alors d’un capteur analogique.
La figure suivante montre la caractéristique d’un capteur de température :

Tension (V)
La tension varie de façon
continue entre 0 et 5V

Température (°C)
100
Caractéristiques d’un capteur

Certains paramètres sont communs à tous les capteurs. Ils caractérisent les contraintes de mise en
œuvre et permettent le choix d’un capteur :

 L'étendue de la mesure : c'est la différence entre le plus petit signal détecté et le plus grand

perceptible sans risque de destruction pour le capteur.


 La fidélité : Un capteur est dit fidèle si le signal qu’il délivre en sortie ne varie pas dans le

temps pour une série de mesures concernant la même valeur de la grandeur physique
d’entrée.
 Le temps de réponse : c'est le temps de réaction d'un capteur entre la variation de la grandeur

physique qu'il mesure et l'instant où l'information est prise en compte par la partie
commande.

Capteurs logiques (Tout Ou Rien : TOR)

Les capteurs TOR fournissent une information logique, généralement sous forme d'un contact
électrique qui se ferme ou s'ouvre suivant l'état du capteur.

Généralités sur les actionneurs

Les actionneurs d’un système automatisé fournissent aux effecteurs l’énergie utile pour apporter
une valeur ajoutée à la matière d’œuvre. Ils sont les éléments « moteur » de chacune des chaînes
d’action des systèmes automatisés.

Le rôle d’un actionneur est de convertir une énergie d’entrée en une énergie de sortie utilisable pour
obtenir une action définie.

Exemples des actionneurs

MOTEUR A COURANT CONTINU

Un moteur à courant continu est un actionneur qui transforme une énergie électrique à tension
constante en énergie mécanique de rotation.

Les moteurs à courant continu sont appréciés pour leur grande facilité de variation de vitesse et
pour la simplicité de la source d’alimentation sur les systèmes embarqués (batteries,
accumulateurs).

L’ELECTRO-AIMANT :

Un électro-aimant est un actionneur qui transforme une énergie électrique en énergie mécanique de
translation.
LE MOTEUR PAS A PAS :

Un moteur pas à pas est un actionneur qui transforme une énergie électrique à tension discontinue
en énergie mécanique de rotation discontinue.

Le logiciel de programmation ARDUINO

ARDOUINO est un logiciel gratuit permettant la programmation via une interface graphique. Ce
logiciel est basé sur l’environnement Open Source Scratch, faisant de lui le logiciel parfait pour
l’apprentissage de la programmation sous le langage Arduino.

Pour utiliser l’interface de développement, télécharger le logiciel Arduino (version windows) à


l’adresse : http://arduino.cc/en/Main/Software.

Le langage de programmation est le langage Arduino. L'environnement de programmation Arduino


(IDE en anglais) est une application qui permet d'écrire, de modifier un programme et de le
convertir en une série d'instructions compréhensibles pour la carte. L'exécution d'un programme
Arduino s'effectue de manière séquentielle, c'est-à-dire que les instructions sont exécutées les unes
à la suite des autres.

Brancher la carte sur un port USB. Vérifier que le port COM est bien configuré. Outils > Port série
> COM X. Vérifier que le port COM X est bien reconnu par windows : Panneau de Configuration
> Système et sécurité > Gestionnaire de périphériques > Ports : Arduino Uno (COM X).

Voyons plus en détail la structure d'un programme écrit en Arduino.


LA STRUCTURE D'UN PROGRAMME
Un programme Arduino comporte trois parties :
1. La partie déclaration des variables (optionnelle)
2. La partie initialisation et configuration des entrées/sorties : la fonction setup ()
3. La partie principale qui s'exécute en boucle : la fonction loop ()
Dans chaque partie d'un programme sont utilisées différentes instructions issues de la syntaxe
du langage Arduino.
Le commentaire de description du programme appelé sketch débute par /* et se termine par */.
4. Applications
4.1. Clignotement des diodes LED
Rappels sur la LED :
- +

Pour allumer une LED, il faut :

 Lui fournir une tension (0 - 5 Volt)


 La protéger par une résistance de 220 Ohms en série (sinon elle grille)
 La brancher dans le bon sens

Pour faire les montages, on va utiliser une plaque de montage sans soudure (Breadboard) que
l'on va alimenter par une tension 0-5 Volt issue de la carte Arduino branchée à l'aide d'un câble
série sur une prise USB de votre ordinateur. (Remarque : sur la carte, le 0V est noté Gnd)

Faire le schéma normalisé du


montage en indiquant le sens du
courant :
NB : On représentera l’alimentation 0-
5V par le symbole du générateur.

On obtient le montage suivant :


Travail demandé
1. Ouvrir le logiciel de développement Arduino : créez un nouveau dossier que vous nommez
TP1 contenant tous les fichiers du projet.
2. Ouvrir le fichier Blink par : Fichier > Exemples > 01.Basics > Blink
3. Ouvrir un nouveau sketch dans lequel vous développer un programme qui permet de
clignoter une diode LED.
4. Compiler ce programme

Allumer quatre diodes électroluminescentes


Brancher maintenant 3 autres LED en utilisant la même logique de montage. A la fin, vous
avez 4 LED allumées.

Faire le schéma normalisé du montage en


indiquant le sens du courant :
NB : On représentera l’alimentation 0 -5V par le
symbole du générateur.

On obtient le montage suivant :


Travail demandé
1. Modifier le programme de telle façon que la sortie sur laquelle on connectera la LED soit
la sortie 11. Modifier les instructions pour que la période soit de 1 s et la durée d’allumage
de la LED 100 ms.
2. Lancer l’exécution du programme en cliquant sur le bouton en dessous Edition.
4.2. Commande d’un potentiomètre par la carte Arduino Nano
Dans cette partie on s’intéresse à la variation de l’intensité lumineuse d’une LED en utilisant
une résistance variable ou potentiomètre comme commande. Suivant la position du
potentiomètre la LED brillera plus ou moins.
Partie Matérielle
Les matériels nécessaires pour ce montage sont :
• 1 carte Arduino
• 1 LED
• 1 résistance de 330 Ω ou 220 Ω (Ohms)
• 1 potentiomètre
Le branchement est donné par la figure suivante :

Le branchement de la LED est similaire au branchement utilisé dans le TP2 mais cette fois-ci
la broche de la résistance est connectée à la broche 9.
Le branchement du potentiomètre est lui aussi relativement simple. Un potentiomètre est une
résistance variable qui se traduit mécaniquement par un fil résistif sur lequel se déplace un
curseur actionné par l'utilisateur. Le fil résistif a une valeur de résistance totale et le curseur
aura une résistance variable, fonction de sa position sur le fil.
Le composant présente trois broches :
 (GND)
 Vcc (5V)
 A0 (pin analogique)
Partie logicielle

Maintenant que le montage électrique est réalisé, il ne reste plus qu'à écrire le programme qui va
lire la valeur de la tension sur la broche du potentiomètre et ajuster la luminosité en conséquence de
la LED.

Commençons tout d'abord par voir comment contrôler la luminosité de la LED :


La LED est branché sur la broche 9 de l'Arduino. Les broches peuvent être contrôlées par
l'instruction digitalWrite() mais aussi par l'instruction analogWrite(). Cette nouvelle fonction prend
comme premier paramètre le numéro de la broche et en second paramètre une valeur entre 0 et 255.
C'est de cette valeur que dépendra la luminosité de la DEL.
Exemple : analogWrite(9,255) ; //allumer la LED avec une intensité maximale
La broche du milieu du potentiomètre est connectée sur l'entrée analogique A0 de la carte Arduino.
Une instruction Arduino spécifique à ce groupe de broches permet de lire la valeur de la tension
sur la broche. Cette instruction analogRead() prend en paramètre le numéro de la broche (A0) et
retourne la tension lue. La valeur ainsi lue est un entier compris entre 0 et 1023. Une tension de 0 V
équivaut à une valeur lue de 0 et une tension de 5 V à une valeur de 1023.

Pour changer la luminosité de la DEL en fonction de la tension sur la broche du potentiomètre il


suffit donc d'utiliser la valeur retournée par analogRead() et de la passer en paramètre à
analogWrite().

Vous remarquerez néanmoins que la valeur lue est comprise entre 0 et 1023 tandis que la valeur
passée en paramètre de analogWrite()doit être comprise entre 0 et 255. Il existe une instruction
permettant de faire une translation entre les deux intervalles de valeurs. C'est la fonction map().
4.3. Mesure de la distance avec le capteur de position à ultrason HC-SR04

Dans cette partie, on désire apprendre ensemble à communiquer avec un capteur de position à
ultrason HC-SR04. Nous verrons les caractéristiques de ce capteur, son fonctionnement et comment
l’utiliser.
Matériels utilisés :
 Une carte Arduino.
 Capteur de position à ultrason HC-SR04
 Une plaque d'essai et des fils pour câbler notre montage.
Installation et configuration de la carte Arduino
Nous utilisons une carte arduino uno. Elle emploi un microcontrôleur ATMEGA328P alimenté en
5 V. Il y a 14 entrées/sorties numériques dont 6 sont utilisables en PWM (Pulse Width Modulation
ou MLI pour modulateur de largeur d’impulsion). Il y a 6 entrées analogiques. Le microcontrôleur
possède un CAN avec 10 bits de résolution. Sur la carte, il y a un circuit qui permet de gérer
facilement l’USB qui peut alimenter la carte.
1.1.Capteur de position à ultrason HC-SR04
Le capteur HC-SR04 est un capteur à ultrason low cost. Ce capteur fonctionne avec une tension
d'alimentation de 5 volts, dispose d'un angle de mesure de 15° environ et permet de faire des mesures
de distance entre 2 centimètres et 4 mètres avec une précision de 3mm (en théorie, dans la pratique
ce n'est pas tout à fait exact).

Principe de fonctionnement du capteur de position à ultrason

Le principe de fonctionnement du capteur est entièrement basé sur la vitesse du son.

Voilà comment se déroule une prise de mesure :

1. On envoie une impulsion HIGH de 10µs sur la broche TRIGGER du capteur.

2. Le capteur envoie alors une série de 8 impulsions ultrasoniques à 40KHz.

3. Les ultrasons se propagent dans l'air jusqu'à toucher un obstacle et retourne dans l'autre sens
vers le capteur.

4. Le capteur détecte l'écho et clôture la prise de mesure.

Le signal sur la broche ECHO du capteur reste à HIGH durant les étapes 3 et 4, ce qui permet de
mesurer la durée de l'aller-retour des ultrasons et donc de déterminer la distance.
N.B. Il y a toujours un silence de durée fixe après l'émission des ultrasons pour éviter de recevoir
prématurément un écho en provenance directement du capteur.

Travail demandé
Le schéma du montage est le suivant :

1. Ouvrir le logiciel de développement Arduino : créez un nouveau dossier que vous


nommez TP3 contenant tous les fichiers du projet.
2. Vérifier le type de la carte utilisée Outils/Type de la carte.
3. Ecrire un programme pour lire les distances du capteur par rapport à un obstacle à l’aide du
capteur de position à ultrason HC-SR04.
Programme Arduino

// Définition des numéros de port


const int trigPin = 11; // Trigger (emission)
const int echoPin = 12; // Echo (réception)
// Variables utiles
long duree; // durée de l'echo
int distance; // distance
void setup() {
pinMode(trigPin, OUTPUT); // Configuration du port du Trigger comme une SORTIE
pinMode(echoPin, INPUT); // Configuration du port de l'Echo comme une ENTREE
Serial.begin(9600); // Démarrage de la communication série
}
void loop() {
// Émission d'un signal de durée 10 microsecondes
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Écoute de l'écho
duree = pulseIn(echoPin, HIGH);
// Calcul de la distance
distance = duree*0.034/2;
// Affichage de la distance dans le Moniteur Série
Serial.print("Distance : ");
Serial.print(distance);
Serial.println("cm");
}

Vous aimerez peut-être aussi