Outils pour utilisateurs

Outils du site


tdcom0

TD Bus de communication : Initiation à l'Arduino

Objectifs

  • Prise en main de l'environnement Arduino
  • Prise en main du système d'exploitation Linux (Debian)
  • Syntaxe Arduino
  • Utilisation de la maquette Arduino
  • Utilisation haut niveau d'une communication série asynchrone

Carte Arduino pour le TD/TP

Arduino est une plateforme de développement open-source qui se compose d'une carte microcontrôleur et d'un environnement de développement associé. La carte Arduino UNO se compose de :

Le schéma de cette carte est visible sur: http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

Pour plus d'informations, vous reporter à http://arduino.cc/

Dans le TP, vous privilégierez la consultation de la documentation installée localement sur les machines, accessible depuis le menu Aide→Référence, car elle sera à jour vis à vis de la version des logiciels installés.

Il existe des cartes compatibles Arduino que vous pouvez acheter pour 4 euros par exemple sur: http://www.ebay.com/itm/NEW-UNO-R3-ATmega328P-CH340-Mini-USB-Board-Compatible-Arduino-/311155383820?pt=LH_DefaultDomain_0&hash=item48724e5e0c

Drivers pour Windows pour ces cartes: https://sparks.gogo.co.nz/ch340.html

Il existe aussi des kits tels que: https://www.dx.com/fr/p/funduino-uno-r3-lcd-1602-keypad-shield-v2-0-lcd1602-expansion-board-building-blocks-deep-blue-315276?tc=EUR&gclid=CJ_Hvd645b4CFaXHtAod-1MA4A#.VMRAaTVrpwH

Il est également possible d'utiliser un outils en ligne pour développer sur arduino sans rien installer sur votre machine: https://codebender.cc/

Prise en main de l'Arduino

Branchement de la carte Arduino

Les cartes Arduino distribuées en TP sont numérotées, ils vous appartient donc d'en prendre soin tout au long du module de communication.

La carte Arduino se branche au PC via un des ports USB disponibles en façade. Le connecteur côté Arduino est de type USB-A mâle et le connecteur côté PC est de type USB-B femelle. Avant de passer à la suite, connectez la carte au PC à l'aide du câble fourni.

Pour chaque TP, la carte sera dotée d'un shield d'extension pour faciliter l’accès au périphérique étudié.

La carte Arduino n'étant pas protégée, il est préférable de vérifier que la table de TP est libre de tout objet métallique afin d'éviter les court-circuits !

Prise de main de l'outil Arduino IDE

Le système d'exploitation utilisé lors des TP de bus de communication est Debian (basé Linux). Sous Linux le lancement des utilitaires peut se faire de deux manières:

  • Utilisation d'un raccourci sur le bureau
  • Lancement au travers de la ligne de commande

Pour lancer l'application Arduino au travers de la ligne de commande, suivez la suite d'instructions suivante :

  1. Taper ALT+F2 puis saisir xterm et touche entrée
  2. Dans le terminal, taper le nom de l'application (arduino) suffixé par & (en cas de demande de mise à jour, cliquer sur non)

  1. Attendre le chargement de l'application, une fois l'application chargée, vous devriez avoir la vue suivante

Configuration de l'IDE

Après avoir branché la carte, dans l'onglet “Outils”, accédez au menu “Port Série” et cliquez sur la valeur /dev/ttyACM0 ou /dev/ttyUSB0. Accédez aussi au menu “Type de Carte” et vérifiez que la valeur sélectionnée est “Arduino Uno”.

Votre premier sketch

Maintenant que l'editeur est lancé, nous pouvons entrer dans la fenêtre le programme suivant

blink.ino
int led = A2; //si le shield RS232 est présent 
//int led = 13; //si le shield RS232 n'est pas présent, pour utiliser la led de la carte UNO
// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     
}
 
// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}

Compilation du sketch

Copier coller le contenu dans votre fichier et cliquez sur le bouton “Vérifier” pour le compiler.

Les erreurs de compilation apparaissent en rouge (et en anglais) dans la fenêtre de compilation en bas de l'IDE.

Chargement sur la platine Arduino

Une fois que la compilation ne génère plus d'erreurs, chargez le fichier sur la carte Arduino (préalablement connectée sur le port USB) en cliquant sur le bouton “Téléverser”

A partir de ce point, si votre code est correct, la led numérotée 13 sur la carte arduino (ou RTS de la carte d'extension RS232) doit clignoter.

Précautions à prendre avec la plateforme et l'IDE

Sauvegarder vos fichiers dans le dossier /home/IUT/“login”/Arduino/

  • Sauvegarder vos programmes sous des noms différents pour chaque exercice
  • Lors de la sauvegarde, une fenêtre apparaît pour demander quels noms donner au programme. Si vous ne faites pas attention, cette fenêtre peut passer en arrière plan et l'IDE Arduino ne répondra plus à aucune sollicitation tant que vous n'aurez pas ré-ouvert cette fenêtre.
  • Pensez à sauvegarder votre code fréquement à l'aide la combinaisn ctrl+s
  • La carte Arduino étant “nue”, faîtes attention à ne pas provoquer de court-circuit en manipulant des objets métalliques
  • Le carte étant posé sur la table et le cable étant branché sous la table, faites attention à ne pas accidentellement tirer sur le câble.

Exercice 1 : Utilisation de la librairie Serial

Une description de la librairie Serial a été fournie en TD. Vous pouvez également accéder au descriptif de cette librairie en sélectionnant le menu “Aide” puis le menu “Référence”.

Si le shield RS232 est monté sur la carte Arduino, mettre les cavaliers en mode RX SOFT et TX SOFT pour que le shield n'intervienne pas sur l'UART HARD que vous allez utiliser. Vous accéderez à l'UART HARD uniquement à travers du convertisseur USB/Série.

Description de l'application

L'application à programmer doit implémenter le comportement suivant :

  1. Configurer l'UART pour une communication 8N1 à 9600Bauds (Serial.begin)
  2. Attendre que un caractère soit disponible sur le périphérique UART (Serial.available)
  3. Lire le caractère (Serial.read)
  4. Si le caractère est une minuscule, le convertir en majuscule (?)
  5. Envoyer le caractère sur la liaison série (Serial.write)

Pour des formats de trames autres que 8N1, vous trouverez les valeurs de paramètres adaptés à la méthode Serial.begin à l'adresse: http://arduino.cc/en/Serial/Begin

De manière générale, pour consulter une documentation arduino de la même version que celle installée sur votre machine, il est préférable d'y accéder via l'IDE Arduino: Aide→Référence.

A partir de la description de l'application, écrire le code correspondant dans un nouveau fichier (Fichier → Nouveau). Vous devez implémenter les fonction setup et loop (vous inspirer du programme précédent).

Utilisation de la console série

L'IDE arduino dispose d'une console série permettant de visualiser les caractères envoyés par l'Arduino sur son port périphérique matériel. Pour accéder à la console série, il suffit de cliquer sur la loupe en haut à droite de l'éditeur de code.

Une console série apparaîtra alors sous la forme suivante.

Il suffit alors de configurer le baudrate de la communication à l'aide la liste déroulante en bas à gauche.

Pour envoyer des caractères à l'application, il suffit de les rentrer dans la zone de texte en haut de de la fenêtre, puis de cliquer sur “Envoyer”.

Les caractères émis par l'UART HARD du Arduino doivent ensuite s'afficher dans la partie basse de la fenêtre.

tdcom0.txt · Dernière modification : 2022/01/13 11:01 de bvandepo