Prise en main de la plate-forme

Afin de découvrir le développement sur la plate-forme Arduino, vous allez dans un premier temps réaliser un programme qui fera uniquement clignoter une LED.

Placez vous dans le répertoire exo1 et à l'aide de vim éditez le fichier main.c. La fonction principale d'un programme d'un micro-controleur s'articule autour d'une boucle infinie.

Pour allumer ou éteindre une LED, il faut configurer le registre d'entrée/sortie sur lequel est connecté la LED. Comme vous pouvez le voir en regardant le schematic (arduino nano http://arduino.cc/en/uploads/Main/ArduinoNano30Schematic.pdf ou arduino uno http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf) la LED rouge utilise l'entrée/sortie 0 du port B et la led jaune utilise l'entrée/sortie 1 du port B. Le registre de configuration se nomme DDRB. Chaque bit de ce registre représente une entrée/sortie du port B. Un 0 signifie une utilisation en tant qu'entrée et un 1 signifie une utilisation en tant que sortie.

Écrivez la fonction init_led afin de pouvoir utiliser les deux LEDS.

Pour activer une sortie, il faut positionner à 1 le bit correspondant du registre PORTB.

Écrivez la boucle principale afin d'allumer la LED rouge pendant 200 ms, l'éteindre puis allumer la LED jaune pendant 300 ms puis retour à l'allumage de la LED rouge. Afin de temporiser, il faut utiliser la fonction _delay_ms qui prend en paramètre le nombre de milliseconde à attendre.

Pour compiler, vous devez utiliser le Makefile fourni. La cible all permet de compiler et la cible upload permet de transférer le binaire dans la plate-forme Arduino. Pour utiliser la cible upload sur les machines de TP, il faut au préalable brancher la plate-forme Arduino via le câble USB et utiliser la commande super usb afin de modifier les droits sur le périphérique associé à l'arduino (/dev/ttyUSB0 pour un arduino nano ou /dev/ttyACM0 pour un arduino uno).

Vérifiez le bon fonctionnement de votre programme.

thomas 2013-11-21