Le système Arduino
I. Rappels sur la carte Arduino du point de vue matériel
La carte Arduino Uno que nous allons utiliser est une sorte de petit ordinateur. Il possède un microcontrôleur (microprocesseur + mémoire+ interface de gestion des entrées/sorties).
La carte Arduino UNO :
Il possède donc des entrées / sorties logiques (appelée aussi "numériques" ou TOR (Tout ou Rien) et « digital » en anglais), des entrées analogiques (0 à 5V), des moyens de communication série et bien sûr un résonateur à quartz d'une fréquence de 16MHz.
Questions:
- Combien y-a-il d'entrées analogiques sur une carte Arduino Uno?
- Comment sont-elles nommées sur la carte?
- Combien y-a-il d'entrées numériques (TOR) sur une carte Arduino Uno?
- Comment sont-elles nommées sur la carte?
- Combien y-a-il de sorties analogiques sur une carte Arduino Uno?
- Comment sont-elles nommées sur la carte?
- Combien y-a-il de sorties numériques (TOR) sur une carte Arduino Uno?
- Comment sont-elles nommées sur la carte?
Remarque:
Pour connaître le rôle de chaque broche (pin en anglais) de la carte Arduino UNO il y a le schéma suivant:
Je sais, ce n'est pas facile à lire car les broches peuvent avoir plusieurs fonctions (pas en même temps bien sûr!). Par exemple, pour la broche 1, on apprend:
- qu'elle est sur le port D du micro-controleur PIC (PD1 -> jaune = Port Pin))
- qu'elle est de type digital (numérique, c'est à dire Tout Ou Rien)
- qu'elle peut aussi être utilisée pour une liaison série (bleu= Sérial Pin. Elle correspondra à TxD, Transmit Data)
- ...
Il existe de nombreuses autres cartes du type "arduino" (nano, micro, ....). Voici la carte MEGA:
Questions:
- Combien y-a-il d'entrées analogiques sur une carte Arduino Mega?
- Comment sont-elle nommées sur la carte?
- Combien y-a-il d'entrées numériques (TOR) sur une carte Arduino Mega?
- Comment sont-elle nommées sur la carte?
- Combien y-a-il de sorties analogiques sur une carte Arduino Mega?
- Comment sont-elle nommées sur la carte?
- Combien y-a-il de sorties numériques (TOR) sur une carte Arduino Mega?
- Comment sont-elle nommées sur la carte?
- Combien-a-t-il de possibilité en terme de liaison série?
II. Premiers programmes
Ressources disponibles :
Vous disposez de différentes ressources concernant Arduino: classeurs, documents numériques (language Arduino.pdf) et le site internet officiel http://arduino.cc/ sur l'onglet « reference" notamment (attention à ne pas faire de traduction automatique de la page car les logiciels de traduction ne fonctionnent pas bien avec des explications technologiques).
L'algorithmie :
L'algorithme est une suite d’instructions, qui une fois exécutée correctement, conduit à un résultat donné. Pour comprendre, expliquer, analyser un programme nous allons utiliser l'algorithmie sous forme graphique (organigramme) plus facilement compréhensible quand la problématique est simple.
Norme :
Symboles normalisés | Commentaires: |
Les tests ou branchements conditionnels : la pointe vers le haut est l'entrée du test, la pointe avec le rond est le résultat du test lorsqu'il est faux, la pointe vers le bas est le résultat du test lorsqu'il est vrai. |
|
Mise à disposition d'une information à traiter ou enregistrement d'une information traitée. | |
Appel de sous programme (appelé aussi « fonction » sous arduino) |
Quelques structures algorithmiques:
Séquence linéaire |
Séquence alternative
|
Séquence répétitive
|
Séquence répétitive
|
Début "Traitement1" "Traitement2" Fin |
Si "condition" alors "Traitement 1" sinon "Traitement 2" Fin si |
Tant que "condition" faire "traitement" Fin tant que |
Répéter "traitement" jusqu'à "condition" |
1. Rappel sur la structure d'un programme Arduino:
La structure de base d'un programme Arduino (sketch) :
variables (déclaration des variables) void loop() |
A savoir :
|
2. Les premiers programmes simples (révisions de 1ère)
2.1 Programme N°1 : clignotement d'une led
Après avoir lancé le logiciel Arduino :
Écrivez (ou copiez) le programme (sketch) suivant en respectant très exactement la mise en page :
/* début du programme |
Ce programme fait clignoter la LED du module Arduino toutes les 0.2 secondes (ON-OFF). L'expression ON-OFF représente la période. Ici la durée ON est égale à la durée OFF (0,1 s).
- l'instruction pinMode
|
|||
en résumé: pinMode ( n° de broche, [OUTPUT ou INPUT] ) ; déclare la broche « n° de broche » en entrée ou en sortie. Cela ne concerne que les entrées numériques (appelées aussi Tout Ou Rien. En anglais: digital) |
- l'instruction digitalWrite:
|
|||
en résumé: digitalWrite ( n° de broche, [HIGH ou LOW] ) met un niveau haut (1) ou bas (0) sur la broche désignée. Il s'agit bien d'une sortie logique appelée aussi TOR (Tout Ou Rien) ou digital (en anglais). |
- l'instruction delay ():
|
|||
en résumé: delay (100) : le microcontrôleur de la carte Arduino attend 100 millisecondes. |
On remarque:
|
Sauvegardez ce programme sous le nom : Clign_LED13_NomsDuBinome à l'aide de l'icône représenté en blanc ci-dessous (exemple sur les versions anglaise et française):
Allez dans le menu « croquis » et choisir «vérifier/compiler » (ou CTRL R)
Cette fonction permet de vérifier qu'il n'y a pas d'erreurs de programmation (erreurs de syntaxe)
S'il n'y a pas d’erreurs, chargez (Upload ou téléverser) le programme dans la carte Arduino à l'aide de l'icône représentée en blanc ci-dessous :
Le programme s'exécute dès que le chargement est effectué. Un problème de connexion ? Vérifier le bon choix du port de communication (menu « outil » puis « port série »).
Le driver USB qui était demandé lors de la connexion de la carte Arduino au PC est-il installé ?
Si oui, allez dans le menu Tools- Serial Port, choisissez autre COM3 et relancez le chargement.
La LED clignote ? Oui, c'est gagné. Autrement appelez le professeur et expliquez lui clairement le problème auquel vous êtes confronté.
2.2 Si vous deviez traduire en français la fonction « digitalWrite » comment l’appelleriez-vous ?
2.3 Si vous deviez traduire en français la fonction « delay » comment l'appelleriez-vous ?
2.4 Modifiez maintenant le programme pour que la LED reste allumée pendant 1s et éteinte pendant 2s.
- Pour constater le changement, n'oubliez pas de recharger le programme dans la carte Arduino après l'avoir modifié. Chronométrez !
- Faire valider par le professeur
Remarque : à chaque modification du programme recopiez celui-ci dans votre compte-rendu. |
2.5 Modifiez maintenant le programme pour que la LED reste allumée pendant 1s, éteinte pendant 2s puis se rallume 4 secondes, s'éteigne 2s, se rallume 2 secondes et s'éteigne 5 secondes.
- Pour constater le changement, n'oubliez pas de recharger le programme dans la carte Arduino après l'avoir modifié. Chronométrez !