Etoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactives
 
Sommaire[Masquer]

 

1.  Préparation de la PCDuino.

  • Installer le module : Blueman (si installé, supprimer  gnome-bluetooth et gnome-user-share) (avec apt-get ou synaptique).
  • Brancher la clef Bluetooth.
  • L’icône Bluetooth apparait dans la barre de tache.

Si ce n’est pas le cas (ou pour les prochains lancements), vous pouvez la retrouver dans le menu de démarrage.

Voilà vous avez le Bluetooth sur la PCDuino qui peut vous servir à tout ce que le Bluetooth permet.

2.  Connexion à la carte Arduino.

Pour ajouter le Bluetooth à la carte Arduino il suffit de lui brancher un module Bluetooth. Ceux que j’ai vus ont tous 4 broches VCC, GND, RX et TX.

  • Pour l’instant, ne reliez que VCC et GND pour alimenter le module.
  • Sur la PCDuino, cliquez sur l’icône Bluetooth.
  • La fenêtre de recherche apparait.

  • Cliquer sur l’icône recherche.

  • Le module Bluetooth apparait quasi immédiatement.
  • Faire un clic droit puis « Pair ».

  • Saisir le mot de passe (le plus souvent 0000 ou 1234, mais c’est marqué sur la doc du module).

  • Le module est maintenant appairé.
  • Revenir dans l’interface Bluetooth en cliquant sur l’icône de la barre de tâches.
  • Refaire un clic droit sur le module et le définir en communication série en cliquant sur « SPP Dev ».
  • Une confirmation et le nom de la liaison série apparaissent en haut à droite de l’écran. Ce message restera dans la barre de tâche sous l’enveloppe.

3.  Configuration et programme Arduino.

Sur la carte Arduino la communication série sera une communication série. On devra donc relier RX et TX du module Bluetooth aux TX et RX de la carte Arduino (en croisé Rx à Tx et Tx à Rx). Ainsi on pourra utiliser les commandes série habituelles tout simplement.

Le RX et le TX de la carte Arduino servent aussi à programmer la carte Arduino. Donc il faudra débrancher ces 2 broches du module à chaque fois qu’on reprogrammer la carte. Si on veut éviter ça il faudra utiliser une communication série logicielle avec la librairie SoftwareSerial.

Pour mon test, j’ai utilisé la LED de la carte Arduino (patte 13) et un interrupteur avec une résistance de pullup connecté à la borne 7.

Voici le programme de test (en téléchargement en bas de la page).

  1. /** Test d’émission réception en série fonctionne notamment avec un module Bluetooth
  2.     Câblage :
  3.        - Une LED + résistance sur la broche 13 (marche avec la LED de test de la UNO),
  4.        - Un BP + résistance (ou pas, mais définir l’entrée en INPUT_PULLUP) sur la broche 7,
  5.        - éventuellement le Bluetooth branché sur RX/TX (attention branchement croisé).
  6.     À réception d’un 1 la LED s’allume, d’un 0 elle s’éteint.
  7.     Si on appuie sur le BP ça envoie le mot Appuie suivie du caractère LF.
  8. */
  9. int LED = 13;
  10. int BP = 7;
  11. boolean BPApp = false;
  12.  
  13. void setup()
  14. {
  15.   pinMode(LED, OUTPUT);
  16.   pinMode(BP, INPUT);
  17.   Serial.begin(9600); //Initialise la communication série (même vitesse que dans processing)
  18.   digitalWrite(LED, HIGH);// Allume la LED pour vérifier qu’elle fonctionne
  19.   delay(5000);            // Pendant 5 secondes
  20.   digitalWrite(LED, LOW);
  21. }
  22.  
  23. void loop()
  24. {
  25.   while (Serial.available() > 0) { // Attente d’un caractère
  26.     char c = Serial.read();
  27.     if (== '1') {
  28.       digitalWrite(LED, HIGH);
  29.     }
  30.     if (== '0') {
  31.       digitalWrite(LED, LOW);
  32.     }
  33.   }
  34.   if (digitalRead(BP) == LOW) { // Émission d’un mot
  35.     Serial.write(« Appuie\n »);
  36.   }
  37.   delay(10);//Anti rebond
  38. }

4.  Le programme Processing.

Côté PCDuino j’ai choisi de faire une interface Processing.

 

Le Slider a 2 positions et permet d’allumer ou d’éteindre la LED.

La textbox valeur reçue écrit ce que lui envoie la carte Arduino et donc Appuie quand on appuie sur le bouton.

J’ai rajouté un bouton qui permet de fermer le port. Si on ne le ferme pas, on ne peut plus se reconnecter. Ca se produit à chaque fois que le programme est arrêté brutalement. 

La meilleure solution que j’ai trouvée c’est de débrancher et rebrancher la clef de la PCDuino. Puis faire Setup New device... à partir de l’icône Bluetooth de la barre de tâche. Validez 2 fois et c’est reparti.

  1. // Need G4P library
  2. import g4p_controls.*;
  3. import processing.serial.*;
  4. Serial portSerie;
  5. int lf = 10;    // Linefeed (/n) en ASCII
  6.  
  7. public void setup() {
  8.   size(350, 150, JAVA2D);
  9.   createGUI();
  10.   // Listing des ports série utilisables
  11.   // Le premier a l’indice 0 dans le tableau
  12.   println(Serial.list());
  13.   // Ouverture du port série (attention à la vitesse)
  14.   // Lors de mes essais ça ne marchait qu’avec 9600
  15.   portSerie = new Serial(this, Serial.list()[0], 9600);
  16. }
  17.  
  18. public void draw() {
  19.   background(230);
  20. }
  21.  
  22. // Procédure appelée lors du changement du slider
  23. public void ChangeLED() {
  24.   portSerie.write(custom_slider1.getValueS());
  25.   textfieldVE.setText(custom_slider1.getValueS());
  26. }
  27.  
  28. // Procédure exécutée lors d’un évènement « réception série"  
  29. void serialEvent(Serial p) {
  30.   // J’inclus le caractère ligne feed (/n) à la fin de mon mot pour lire le mot entier
  31.   textfieldVR.setText(p.readStringUntil(lf));
  32. }
J’ai fait l’interface avec G4P cette librairie doit donc être installée.
 
L’écriture se passe dans la méthode ChangeLED (ligne 23) et la lecture dans la méthode serialEvent (Ligne 29). 
Le rajout du caractère LF (Ligne Feed) est uen petite ruse pour lite le mot en entier au lieu de ses lettres une à une. Une espace aurait parfaitement convenu.

5.  Téléchargement.

Impossible de trouver le layout

 

Vous n'avez pas le droit de commenter cet article.