Steun onze actie WeGoSTEM

Voor onze actie WeGoSTEM zoeken we nog vrijwilligers. Doe mee via WeGoSTEM.be/meedoen

Communication via Bluetooth

Dans ce tutoriel, vous allez apprendre à communiquer via la carte Dwenguino utilisant le module Dwengo bluetooth. Après ce tutoriel, vous serez en mesure de comprendre la communication sans fil dans tous vos projets.

Remerciements: Ce tutoriel est basé sur le tutoriel similaires par Dawn Robotics.


Requirements

  1. Dwenguino board.
  2. Cable USB fourni.
  3. Dwengo bluetooth module.
  4. Un PC avec communication Bluetooth.

Raccordement du module bluetooth

Il est très facile de communiquer sans fil avec le Dwenguino. Nous utilisons un module Dwengo bluetooth qui fournit une interface sérielle. Vous commencez par connecter le module Bluetooth sur la carte Dwenguino. Ce module Bluetooth comporte quatre broches: deux pour l'alimentation (gnd et 5 V) et deux broches qui sont nécessaires pour la communication sérielle (pour une émission (TXD) et une pour la réception de données (RXD)). Les broches sont illustrées dans l'image suivante:

bluetooth pins

Connectez ce module au connecteur UART du Dweguino (voir où il est placé), soyez attentive que la broche RXD du module correspond à la broche TXD sur le connecteur UART.

Ajouter de numéros via le port sériel bluetooth

Nous utilisons Dwenguino pour ajouter deux numéros envoyés de votre PC. D'abord, nous déclarons nos variables et objets. Ensuite, nous préparons notre carte avec la fonction setup.

  1. #include <LiquidCrystal.h>
  2. #include <Wire.h>
  3. #include <Dwenguino.h>
  4.  
  5. void setup()
  6. {
  7. initDwenguino();
  8. Serial1.begin(9600); // Serial1 oepn communication with the Bluetooth module
  9. // at 9600 baud rate.
  10.  
  11. // Write the messages to show to the user.
  12. dwenguinoLCD.setCursor(0,0);
  13. dwenguinoLCD.print("Input: ");
  14. dwenguinoLCD.setCursor(0,1);
  15. dwenguinoLCD.print("Sum: ");
  16. }

On initialise la communication avec la classe Serial1 (notez le "1" après "Serial", si vous omettez ce numéro, vous serez l'échange de données via le câble USB, pas le module Bluetooth). On initialise également l'écran LCD afin que nous puissions voir les résultats sur le Dwenguino. Nous avons mis quelques titres de sorte que la lecture des résultats est simple et claire. Dans la ligne du haut de l'écran LCD, nous allons imprimer les entrées et sur la deuxième ligne, nous allons imprimer leur somme.

La prochaine chose est d'écrire la fonction de boucle loop qui va fonctionner en continu.

  1. void loop()
  2. {
  3. // Listen for data on the serial connection
  4. if ( Serial1.available() > 0 )
  5. {
  6. // Read in 2 real numbers
  7. float a = Serial1.parseFloat();
  8. float b = Serial1.parseFloat();
  9. // Print them to the screen after "Input"
  10. dwenguinoLCD.setCursor(6,0);
  11. dwenguinoLCD.print(a);
  12. dwenguinoLCD.print("+");
  13. dwenguinoLCD.print(b);
  14.  
  15. // Add them together and return the result
  16. float sum = a + b;
  17. Serial1.println( sum );
  18. // Print the result to the LCD after "Sum"
  19. dwenguinoLCD.setCursor(5,1);
  20. dwenguinoLCD.print(sum);
  21. }
  22. }

La condition if vérifie si il existe des données dans le port sériel en utilisant la méthode available. Chaque fois qu'il y a des données dans le port, nous les lisons comme deux nombres réels consécutifs en utilisant la méthode parseFloat. Les résultats sont stockés dans les variables a et b. Immédiatement après la recetption, les valeurs sont imprimes sur l'écran LCD.

Les prochaines étapes calculent la somme de a et b, et envoye le résultat sur le port sériel et l'imprimer sur l'écran LCD. Pour envoyer la somme sériellement, nous utilisons la méthode println qui envoie les données en tant que texte ASCII lisible.

Et nous avons fini! Nous devons encore envoyer les données à la commission de notre PC. Pour cette dernière étape, nous utilisons le moniteur de série intégré à l'IDE Arduino.

Si vous souhaitez modifier le code vous pouvez trouver le sketch Arduino dans les exemples Dwenguino dans Arduino IDE.

Envoi de données à partir de votre ordinateur

Lier les appareils bluetooth

Linux

If your PC has bluetooth functionalities you will be able to run the following command in the terminal. Si votre PC possède des fonctionnalités Bluetooth, vous devez exécuter la commande suivante dans le terminal.

hciconfig

Il devrait être quelque chose comme ‘hci0′

Assurez-vous que le Dwenguino est allumé et que le module Bluetooth Dwengo est connecté correctement. Ensuite, exécutez la commande suivante pour trouver l'adresse du module Bluetooth.

hcitool scan

Après un court délai, ce qui devrait rendre les adresses des appareils Bluetooth à proximité. Le module Bluetooth Dwengo devrait être appelé quelque chose comme linvor.

Avant de périphériques Bluetooth peuve communiquer, ils doivent être liés. Cela peut être fait en exécutant la commande suivante:

sudo bluez-simple-agent hci<n> xx:xx:xx:xx:xx:xx

Où est le numéro de votre appareil (probablement hci0) et xx:xx:xx:xx:xx:xx est l'adresse du module Bluetooth Dwengo. Après une pause, ce programmedevrait vous demander le code PIN du module bluetooth Dwengo. Par défaut, la broche pour le module est 1234.

À ce stade, nous avons 2 appareils Bluetooth qui peuvent communiquer l'un avec l'autre, nous avons besoin de mettre en place une connexion et nous pouvons envoyer des données. Fait:

rfcomm connect 0  xx:xx:xx:xx:xx:xx

Cette commande va vous dire le dispositif associé à la canal de communication (par example /dev/rfcomm0).

Mac OS X

Allumez votre bluetooth et assurez-vous que vous trouvez et associez le nouveau dispositif à travers Open Bluetooth Preferences. Après cela, vous devriez être capable de trouver le module bluetooth.

Windows

Le moniteur de sériel

Une fois que vous avez associer les appareils, assurez-vous que le port correspondant est sélectionné dans l'Arduino IDE (Tools > Port). Par exemple, dans ma machine Linux mon bluetooth est le périphérique /dev/rfcomm0 dans Windows ce sera PortX avec X le numéro de votre Dwenguino.

arduino IDE Ports

Maintenant vous êtes prêt à démarrer le moniteur de sériel

arduino IDE serial monitor