Exercice : Prise en main
Le kit
Le kit fourni comprend un certain nombre d'éléments :
une platine Arduino Uno,
un shield, c'est à dire un circuit qui vient d'enficher sur la platine Arduino et qui permet la mise à disposition de connecteurs,
des modules tels que LED, bouton poussoir, servo-moteur, etc.
Arduino Uno R3
Arduino est à la fois une marque italienne et un concept de kits à micro-contrôleurs. La version que nous utiliserons, un Arduino Uno R3, est basée sur un processeur 8 bits ATmega328 de la société Atmel. Elle comporte :
32ko de mémoire flash (c'est-à-dire non-volatile), 2ko de SRAM (volatile) et une EEPROM de 1ko
3 ports (
PortB
,PortC
etPortD
) de 8 bits chacun. Attention : certains bits sont monopolisés par le kit, par exemple pour la liaison USB3 timers (
Timer0
etTimer2
de 8 bits etTimer1
de 16 bits). Là aussi, certains timers sont utilisés par le kit.
Vous pouvez consulter la documentation en ligne de la platine Arduino Uno
Shield Grove
Le circuit de connexion, appelé Shield Grove, met à disposition :
des ports binaires, D2 à D8
des ports analogiques, A0 à A3
des ports I2C (protocole de communication pour microprocesseur)
Vous pouvez consulter la documentation en ligne de l'ensemble shield + module
L'outil de développement
Le développement logiciel et la communication avec le kit passent par un logiciel unique disponible sur le site Arduino. Si vous souhaitez l'installer sur votre machine, utilisez la version correspondant à votre système d'exploitation et disponible sur la page des téléchargements (préférez la version IDE[3])
Inspiré du logiciel Processing, l'environnement de développement d'Arduino impose un structure particulière pour les applications. En effet, bien que le compilateur reconnaisse les langages C et C++, la structure des programmes Arduino est différente d'une structure standard (voir le cours pour un rappel).
Un premier programme
Ce premier travail consiste à créer un projet et à le faire évoluer vers une forme respectant les règles de bonnes pratiques.
Question
Vous allez, dans un premier temps, créer un nouveau« croquis »
[4] dans lequel vous copierez le programme ci-dessous :
void setup() {
pinMode(5,OUTPUT);
}
void loop() {
digitalWrite(5,0);
delay(1000);
digitalWrite(5,1);
delay(1000);
}
Question
Le programme ci-dessus nécessite de connecter, sur le shield Grove, une diode électroluminescente (LED), sur un bit de port dont vous déterminerez le numéro. Testez ensuite le programme
Question
Branchez maintenant la LED sur le port 6 : que faut-il modifier dans le programme ? Effectuez la ou les modification(s) dans le programme puis testez-le
Question
En utilisant la directive de compilation appropriée, modifiez le programme pour qu'il soit plus simple à mettre à jour lorsqu'on modifie le numéro de port sur lequel est connectée la LED
Question
Placez maintenant la LED sur le port 4, modifiez le programme puis testez-le. Conclusion[5] ?
Paramétrage d'un programme

Le numéro de port de la LED est un paramètre du projet qui dépend de la configuration matérielle. Si on change de configuration matérielle (par exemple en plaçant la LED sur un autre port), il est actuellement nécessaire de modifier le programme en conséquence, ce qui n'est pas très pratique. Il conviendrait de considérer que, pour un projet donné, la configuration matérielle étant connue, les éléments correspondants de configuration logicielle (un numéro de port par exemple) devraient être écrits dans un fichier spécifique. Ça tombe bien car le langage C utilise des fichiers header d'extension .h
en partie pour cela.
Question
Ajoutez au projet un fichier constantes.h
dans lequel vous déplacerez la directive de compilation qui fixe le numéro de port de la LED. Modifiez le programme principal en conséquence en lui ajoutant la directive adéquate. N'oubliez pas de tester !
Indice
Vous devez donc avoir maintenant deux onglets dans votre projet : l'un qui contient le programme principal (c'est-à-dire constitué des fonctions void setup()
et void loop()
), l'autre étant le fichier constantes.h
que nous enrichirons au fur et à mesure.
Travail à rendre
Seule la dernière version du programme est à rendre. Vous exporterez le croquis (Outils
→ Archiver le croquis
) puis le déposerez sur la plate-forme pédagogique selon les instructions qui vous seront indiquées.


Tout programme non commenté ne sera pas corrigé.