Comunicando-por-puerto-serie

Commençons à programmer. Tu te demandes peut-être pourquoi nous commençons par la communication via le port série ? Ce n’est pas ce à quoi tu aurais pensé en premier… Pourtant, quand tu programmes une carte contrôleur, c’est le meilleur moyen pour débogger le code. Quand nous ne savons pas ce qui se passe ou pourquoi un programme ne fonctionne pas comme prévu, nous avons besoin d’obtenir des informations au cours de l’exécution. Avec une carte comme la ZUM BT 328, le plus simple est d’envoyer ces informations via le port série et de les analyser. Au travail !

Un programme vide

Tous les programmes Arduino ont la même structure de base :

La fonction setup sert à configurer tout ce dont nous aurons besoin par la suite. La fonction loop accueille le code qui s’exécutera ensuite en boucle sur la carte. Ne t’inquiète pas si tu ne comprends pas tout. L’objectif de cette leçon est que tu puisses communiquer avec ton ordinateur via le port série même si tu ne comprends pas très bien ce qui se passe.

Ouvre Codebender et un nouveau projet, le programme vide suivant s’affiche : codebender_blank

Allô la Terre – Commencer à communiquer via le port série

Tu dois configurer le port série avec la fonction setup. Utilise l’objet Serial figurant dans les bibliothèques Arduino.

Il te suffit de préciser à quelle vitesse tu veux communiquer avec ton ordinateur. Tu as le choix entre plusieurs valeurs, généralement : 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 ou 115200. La valeur la plus souvent utilisée est 9600. Ce chiffre indique les bits par seconde utilisés pour transférer les informations via le port série. Plus ce chiffre est élevé, plus la communication est rapide. Lançons-nous :

La communication est lancée à 9600 bits par seconde.

Nous allons envoyer la chaîne de caractères Allô la Terre via le port série. Comme nous souhaitons qu’elle soit envoyée une seule fois, nous utilisons la fonction setup :

Dans la vidéo ci-dessous, nous allons voir le processus complet de programmation. Je n’avais malheureusement qu’une carte ZUM Mega à disposition, c’est pourquoi j’ai sélectionné la carte Mega et non la carte ZUM BT. Mais ne t’inquiète pas cela fonctionne de la même manière pour les deux cartes (idem pour n’importe quelle carte Arduino).

Toutes les vidéos de cette leçon ont été enregistrées en HD 1080p, choisis donc la qualité de vidéo la plus élevée sur Youtube.

Tic Tac

Nous allons maintenant nous inspirer des horloges. Chaque seconde, l’horloge fait tic tac, nous allons donc programmer la fonction loop, qui s’exécute en continu :

Et maintenant une vidéo du processus complet :

Échoooooo

Nous allons finir en beauté avec quelque chose d’un peu plus compliqué. Jusque là nous avons écrit via le port série. Nous allons maintenant recevoir des données et écrire la même chose que ce que nous avons reçu.

Ce code est un peu plus mystérieux, nous n’allons pas nous attarder dessus car cette leçon a seulement pour objectif de débogger. Nous mettrons en ligne plus tard une autre leçon sur la communication via port série avancée.

La fonction available() de l’objet Serial renvoie le nombre de bytes disponibles dans le port série (à lire). C’est pourquoi, quand il y a des données disponibles (Serial.available()>0) nous les lisons (Serial.read()) et nous écrivons par le port série ce que nous lisons (Serial.write()). Puisque nous n’utilisons pas le saut de ligne automatique, les messages se suivent. Essaie donc de voir ce qui se passe si tu utilises println.

Voici la dernière vidéo du jour. Rendez-vous à la prochaine leçon pour en savoir plus sur la déclaration des variables et leur utilisation.

Dans la section À télécharger, tu trouveras tout ce dont tu as besoin pour modifier les vidéos, ajouter des sous-titres et même une voix-off. Nous ne pouvons malheureusement pas partager la bande-son de la vidéo car elle est sous droit d’auteur (nous avons bien entendu payé ces droits !).