Auteur : SD
Créé le : 21-10-2013
Premiers pas avec Arduino UNO
Sommaire
Présentation

Au niveau logiciel, l'environnement de programmation Arduino présente l'avantage d'être open source (donc gratuit) et multiplateforme (Windows, Linux et Mac OS X). Il est utilisé par une large communauté et donc de nombreux exemples sont disponibles.
Au niveau matériel, il existe différentes "cartes mères" (nous utiliserons l'Arduino UNO) sur lesquelles vont venir se connecter des cartes d'extensions appelées shields. La photo ci-contre montre une carte Arduino UNO avec 2 shield dessus. Il existe une très grande variété de shield (WiFi, Ethernet, Commandes de moteurs, GPS, GSM, écrans, ...)
La "carte mère" est composée de deux parties principales : le microcontrôleur et le module de communication USB qui permet de programmer le microcontrôleur depuis un PC (pas besoin de programmateur). Le port USB permet également d'alimenter la carte (à condition que la consommation ne dépasse pas ce que peut fournir un port USB). Un connecteur d'alimentation supplémentaire est prévu.
Installation de l'environnement sous Windows
L'installation de l'environnement, présentée ci-dessous, se fait en deux étapes :
- Installation du logiciel
- Installation des drivers USB
Installation du logiciel

Le logiciel se télécharge sur le
site officiel de l'Arduino.
Il est présenté en deux versions :
- La version avec un assistant d'installation (Windows Installer)
- La version "Portable" (Windows (ZIP file))
Ce tutoriel a été réalisé avec la version portable 1.0.5 de l'IDE (Integrated Development Environment)
Pour installer la version portable, il suffit de "dézipper" l'archive à un endroit quelconque (disque dur, clé USB,...)
Installation des drivers USB

Pour installer les drivers USB, connecter la carte Arduino UNO à votre ordinateur. Windows va tenter d'installer (mais sans succès) les drivers via Windows Update.
Il faut donc faire une installation manuelle des drivers :

Faire un clic droit sur "Ordinateur" et cliquer sur "Propriétés".

Dans la fenêtre des propriétés système, cliquer en haut à gauche sur "Gestionnaire de périphériques".

Dans le gestionnaire de périphériques, faire un clic droit sur "Périphérique inconnu" et cliquer sur "Mettre à jour le pilote...".

Dans la fenêtre qui s'ouvre, cliquer sur "Rechercher un pilote sur mon ordinateur"

Dans la fenêtre qui s'ouvre, cliquer sur "Parcourir..."

Sélectionner le dossier "Drivers" situé dans le dossier d'installation de l'EDI Arduino.

Valider l'installation du driver.

L'installation est terminée,
noter le numéro du port COM correspondant à votre carte Arduino (COM3 sur les captures d'écran)
Vous pouvez maintenant directement passer à
la configuration de l'EDI Installation de l'environnement sous Ubuntu

Si vous utilisez Ubuntu, voici comment installer l'environnement Arduino sur votre distribution préférée.

Mettre à jour votre système avec les commandes :
sudo apt-get update
sudo apt-get upgrade

Installer les paquets "arduino" et "arduino-core" :
sudo apt-get install arduino arduino-core

Pour lancer l'EDI, taper "arduino"
Le système doit ajouter votre nom d'utilisateur dans le groupe autorisé à utiliser les ports USB ou série. Cliquer sur "Add". Vous devez vous déconnecter et vous reconnecter pour que les modifications prennent effet.

Pour lancer l'EDI, taper "arduino &"
Le "&" à la fin de la commande permet d'ouvrir l'EDI dans un nouveau processus et donc de "rendre la main" dans le terminal, de plus si on ferme le ternimal, l'EDI ne sera pas fermé.
Configuration de l'EDI

Ouvrir l'EDI et vérifier la configuration du port COM pour la communication avec la carte Arduino.
EDI : Environnement de Développement Intégré (IDE en Anglais), c'est un logiciel permettant d'éditer un programme et qui intègre en plus des fonctions permettant de compiler ce programme, la coloration syntaxique, l'accès à la référence du langage, le téléversement du programme compilé dans l'Arduino,...

Si nécessaire, modifier le port COM en allant dans le menu "Outils" => "Port série".
Il faut mettre le même port COM que celui relevé lors de l'installation du driver (voir partie "Installation du driver USB")

Si vous utilisez une autre carte que l'Arduino UNO, modifier le type de carte en allant dans le menu "Outils" => "Type de carte".
Voila ! Vous êtes prêt pour faire votre premier programme !Premier programme

Pour commencer, nous allons ouvrir un des nombreux exemples fournis avec l'IDE.
Ouvrir le fichier exemple "blink" :
Menu "Fichier" => "Exemples" => "01.Basics" => "Blink"

Vérifier que la carte Arduino est bien connectée à l'ordinateur et cliquer sur l'icône en forme de flèche comme indiqué ci-contre afin de compiler et charger le programme dans la mémoire du microcontrôleur.
La DEL "L" sur la carte Arduino doit clignoter lentement 1s/1s
Dans les dernières lignes du programme, remplacer les 2 lignes "delay(1000);" par "delay(300);". recharger le programme dans la carte. La DEL doit clignoter plus rapidement.
"delay()" est une des
fonctions du langage. Toutes les fonctions sont décrites dans la
référence du langage. Elle est accessible dans le menu
Aide => Référence.
Rechercher dans la référence du langage le rôle des fonctions delay(), pinMode() et digitalWrite() utilisées dans ce programme de démonstration.
Les valeurs entre parenthèse séparées par des virgules après le nom de la fonction sont des
paramètres. Nous pouvons donc voir que la fonction delay() possède un seul paramètre alors que la fonction digitalWrite en possède deux.
Quelle est l'unité du paramètre de la fonction delay() ?
Dans le programme, il y a de nombreux
commentaires. Ils n'ont aucune influence sur l'exécution du programme. Ils servent à rendre le programme plus compréhensible. Ils apparaissent en gris sur la capture d'écran ci-dessous.
Ils débutent :
- soit par la séquence // et dans ce cas tout ce qui suit est un commentaire jusqu'à la fin de la ligne
- soit par la séquence /* et dans ce cas tout ce qui suit est du commentaire jusqu'à rencontrer */ dans ce cas le commentaire peut s'étendre sur plusieurs lignes.
Structure d'un programme Arduino

Si l'on met en parallèle le programme avec son algorigramme, on peut constater que le programme est composé de 3 parties distinctes. Un programme Arduino aura toujours cette structure.
- Déclaration et initialisation des variables : int led = 13; : Déclaration d'une variable dont le nom est led et dont le type est entier (integer) que nous initialisons avec la valeur 13.
- Setup() : exécuté une seule fois au démarrage, cette fonction permet d'initialiser les périphériques du microcontrôleur ou les shields connectés à la carte Arduino. Dans l'exemple "Blink" la patte N°13 du microcontrôleur est configurée en tant que sortie numérique grâce à la ligne "pinMode(led, OUTPUT);".
- Loop() : Boucle infinie qui va exécuter indéfiniment le programme principal.
- Il est possible de créer d'autres fonctions qui pourront être appelées depuis "setup()" ou "loop()" ou même depuis une autre fonction.
En cherchant dans la référence du langage, indiquer entre quelles valeurs peut varier une variable de type int.
Chercher et citer 2 autres types de variable en donnant un exemple de déclaration et d'initialisation.
Il est possible de faire un algorigramme plus détaillé de la fonction loop() comme le montre la figure ci-dessous.
Pourquoi la patte N°13 ?
Sur le plan de la carte Arduino UNO on peut voir sur la droite que le repère "13" correspond au repère "SCK". On retrouve ce repère "SCK" en haut du plan qui commande la DEL L par l'intermédiaire du montage suiveur réalisé par U5B.
Lien vers le plan complet de la carte Arduino UNO.
Modification du programme
1. Modifier la séquence pour que la DEL "envoie" le message SEN en alphabet Morse.
2. Enregistrer votre programme sous le nom "SEN_Morse_1".
3. Créer une fonction qui "envoie" le message SEN en alphabet Morse. Cette fonction sera appelée dans "loop()".
Que faut-il retenir ?
- Un programme Arduino est composé de 2 fonctions principales :
- setup() : Exécuté une seul fois au démarrage de l'Arduino
- loop() : Exécuté de manière répétitive et indéfiniment
- Les commentaires débutent :
- soit par la séquence // et dans ce cas tout ce qui suit est un commentaire jusqu'à la fin de la ligne
- soit par la séquence /* et dans ce cas tout ce qui suit est du commentaire jusqu'à rencontrer */ dans ce cas le commentaire peut s'étendre sur plusieurs lignes.
- la fonction "pinMode" permet de définir le rôle des pattes de l'arduino (Entrée ou Sortie). Ex : pinMode(13, OUTPUT);" configure la patte 13 en sortie.
- La fonction "digitalWrite" permet de définir l'état d'une sortie de l'Arduino. Ex : digitalWrite(13, HIGH);" met la sortie à l'état HAUT.
- On peut utiliser des variables qu'il faut déclarer au préalable. Par exemple int led = 13; déclare une variable dont le nom est led et dont le type est entier (elle ne pourra donc contenir que des nombre entiers).
- La fonction "delay" permet de faire faire une pause au programme.
Références
Site officiel : http://arduino.cc/fr/
Alphabet Morse : http://fr.wikipedia.org/wiki/Morse_%28alphabet%29Articles connexes
Arduino - Ports, CAN et Console
Arduino - Serveur Web
Arduino - Carte mémoire
Les structures algorithmiques de base
Vous avez apprécié cet article ? Partagez le !
Article connexe : Arduino - Ports, CAN et Console