Aujourd’hui nous allons apprendre à établir une communication port série/USB entre votre ordinateur et la carte contrôleur. Autrement dit, tu vas apprendre à transférer à ta carte des informations et des instructions à l’aide d’un câble USB.
Qui dit communication, dit émetteur et récepteur. Tu vas donc avoir besoin de deux choses :
- Un programme à l’intérieur de la carte contrôleur qui envoie/reçoit des données (nous allons le créer avec bitbloq).
- Un programme à l’intérieur de l’ordinateur qui envoie/reçoit des données (nous allons utiliser le Monitor Serial de l’environnement de développement intégré d’Arduino).
Ouvre bitbloq et télécharge l’environnement de développement intégré d’Arduino (EDI ou IDE en anglais). Connecte ta carte ZUM BT-328 ou ta carte FreaduinoUNO à ton ordinateur avec un câble USB et… c’est parti !
« Ici robonaute. Appelle Base Eco. Vous me recevez ? »
ÉCRIRE VIA LE PORT SÉRIE
Nous allons envoyer le mot « NOIR » à partir de la carte contrôleur quand un capteur infrarouge détectera cette couleur. Connecte le capteur à la broche numérique 3 :
Partie 1 : ÉMETTEUR – Programmation dans bitbloq
Pour programmer dans bitbloq l’envoi d’une donnée à partir de la carte, tu auras besoin du bloc Imprimer via le port série.
Créer un programme pour analyser chaque seconde (soit 1000 ms) la valeur du capteur et envoyer le mot NOIR si cette dernière est égale à 0 n’est donc pas compliqué. Charge ce programme sur ta carte :
Partie 2 : RÉCEPTEUR – Utiliser le Monitor Serial de Arduino IDE
Comme nous l’avons dit plus haut, nous allons utiliser le Monitor Serial de l’environnement de développement intégré d’Arduino. Ta carte connectée, ouvre le programme Arduino et ferme bitbloq.
Sélectionne maintenant ta carte contrôleur dans Outils>Carte. Si tu utilises la ZUM BT-328, sélectionne « Arduino BT w/ATmega328 » et si tu utilises une FreaduinoUNO, sélectionne « Arduino UNO ».
Sélectionne le port où est connectée ta carte dans Outils>Port série :
Tu peux maintenant ouvrir le Monitor Serial dans Outils>Monitor Serial ou en cliquant ici :
La fenêtre suivante s’ouvre. Vérifie qu’il y figure bien une vitesse de 9600 bauds.
Si le capteur infrarouge détecte du noir plusieurs fois, le mot “NOIR” apparaîtra plusieurs fois :
Si tu veux rendre les choses un peu plus claires, tu peux utiliser dans bitbloq le bloc Imprimer via le port série avec retour chariot :
Tu obtiendras ainsi le résultat suivant :
LIRE VIA LE PORT SÉRIE
Partie 1 : RÉCEPTEUR – Programmation dans bitbloq
Ici, c’est la carte contrôleur qui est le récepteur. Pour recevoir des données, nous utiliserons le bloc suivant afin de vérifier si des données sont arrivées par le port série :
Si c’est le cas, l’information reçue sera lue et conservée dans une variable :
Nous pouvons désormais analyser cette donnée et exécuter une instruction en fonction de sa valeur. Par exemple, si nous recevons un « A » majuscule, nous allumerons la LED intégrée à la carte (D13). Si la donnée reçue est différente, nous éteindrons la LED. Voici le programme correspondant :
– Mais… pourquoi avoir écrit le nombre 65 ?
Cher robonaute, aujourd’hui il n’existe pas dans bitbloq de bloc permettant de comparer des variables de texte de type char ; pour l’instant il ne peut s’agir que de texte de type String. Ne t’inquiète pas si tu trouves cela compliqué, il te suffit juste de savoir qu’ici nous utilisons des chiffres à la place des lettres.
La lettre « A » correspond au nombre 65 selon le code Ascii (consulte le tableau à la fin de ce post).
Partie 2 : ÉMETTEUR – Utilisation du Monitor Serial de Arduino IDE
- Notre carte est prête à recevoir des données. Ferme bitbloq et ouvre de nouveau le Monitor Serial de Arduino IDE (l’environnement de développement intégré d’Arduino). Sélectionne 9600 bauds de vitesse et l’option Pas de fin de ligne.
Tape un A majuscule et clique sur Envoyer. La LED intégrée s’est-elle allumée ? Envoie donc autre chose afin d’éteindre la LED D13.
Voici le tableau du code Ascii si tu veux aller plus loin :