Serial_bitbloq__USB_mini

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 :

  1. Un programme à l’intérieur de la carte contrôleur qui envoie/reçoit des données (nous allons le créer avec bitbloq).
  2. 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).

Serial_bitbloq__USB

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


Serial_bitbloq__USB__1

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 :

zum_IR3

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.

bit_serie_5

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 :

bit_serie_3

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 ».

ardu_seleccion_placa

Sélectionne le port où est connectée ta carte dans Outils>Port série :

ardu_seleccion_puerto

Tu peux maintenant ouvrir le Monitor Serial dans Outils>Monitor Serial ou en cliquant ici :

ardu_seleccion_MonitorSerial

La fenêtre suivante s’ouvre. Vérifie qu’il y figure bien une vitesse de 9600 bauds.

ardu_serie_sol_1

Si le capteur infrarouge détecte du noir plusieurs fois, le mot “NOIR” apparaîtra plusieurs fois :

ardu_serie_sol_2

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 :

bit_serie_4

Tu obtiendras ainsi le résultat suivant :

ardu_serie_sol_3

LIRE VIA LE PORT SÉRIE


Serial_bitbloq__USB__2

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 :

bit_serie_1

Si c’est le cas, l’information reçue sera lue et conservée dans une variable :

bit_serie_6

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 :

bit_serie_8

– 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

  1. 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.

ardu_serie_sol_4

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 :

Ascii_A