Besoin d'aide pour Bluetooth shield v2.2

Bonjour à tous,

Je suis tout à fais nouveau dans ce domaine donc excusez-moi si je fais des erreurs.
Je vous explique mon problème :

Je dois récupérer des valeurs d’accélération et d’angles et les transmettre à un ordinateur via Bluetooth.
J’utilise donc un shield (https://www.sparkfun.com/products/10121) permettant de récupérer ces valeurs, composé d’un accéléromètre (ADXL345) et d’un gyroscope (ITG3200). Les valeurs sont transmises par communication i2c avec un Arduino UNO.

Lorsque je fais les tests par câble USB tout marche à merveille et je peux lire les valeurs dans le moniteur série de l’IDE arduino.

Seulement voilà j’aimerais les envoyer via Bluetooth, et pour ça j’utilise ce shield Loading.... Mais j’ai eu beau chercher sur internet des tutos ou des exemples je n’ai pas trouver grand chose ! Il n’existe pas de librairie non plus contrairement à l’accéléromètre , donc j’aimerai savoir comment peut-on faire pour envoyer ces valeurs avec ce shield.

Voici mon code :

#include <Wire.h>
#include <CommunicationUtils.h>
#include <DebugUtils.h>
#include <FIMU_ADXL345.h>
#include <FIMU_ITG3200.h>
#include <FreeSixIMU.h>

float acc [3];
float gyr [2];

FreeSixIMU accgyr = FreeSixIMU();

void setup(){
  Serial.begin(9600);
  Wire.begin();
  
  delay(5);
  accgyr.init();
  delay(5);
  
}

void loop (){
  accgyr.getValues(acc);
  accgyr.getEuler(gyr);
  
  Serial.print("#S|CSV|[");
  Serial.print("   ");
  
  Serial.print(gyr[0]);
  Serial.print(";");
  Serial.print(gyr[1]);
  Serial.print(";");
  Serial.print(gyr[2]);
  Serial.print(" ; ");
  Serial.print(acc[0]);
  Serial.print(";");
  Serial.print(acc[1]);
  Serial.print(";");
  Serial.print(acc[2]);
  
  Serial.println("]#");
  
  delay(50);
  
  
  
}

Merci pour vos réponses !

Bonjour,

Ces modules bluetooth sont très simple à utiliser.
Ils agissent comme un pont série entre deux points bluetooth de manière transparente.

Le plus compliqué dans ta shield c’est de mettre les jumper correctement :wink:
Si tu met les jumper Rx=D1 Tx=D0 il te suffit d’utiliser Serial pour envoyer tes données.
Si tu met les jumpers sur d’autres broches il te faut SoftwareSerial.

Ne pas oublier de mettre le switch en mode “data” quand tu veut envoyer des données.

Ensuite dans ton code la vitesse du port série n’est semble-t-il pas bonne :

Default state:
Slave mode, pin code :1234, device name: H-C-2010-06-01 ,Baud 38400bits/s.

Essaye donc :

Serial.begin(38400);

Ok merci je vais modifier et essayer pour voir si ça marche :)

encore merci a + !

Re,
J’avais réussi à établir la connexion entre un pc et l’arduino avec le module bluetooth, je recevais alors les valeurs exactement comme par câble.
J’ai réessayé il y a quelques temps et depuis plus rien ne fonctionne correctement… Quand je fais par câble tout va bien , mais quand j’essaye de nouveau le bluetooth il me renvoi tout un charabia incompréhensible :

üµãµãµãµãµüµãµãµüµãµãµüµüµüµãµãµãµãµüµãµãµãµãµãµüµãµüµãµüµüµãµüµüµüµüµüµãµãµãµãµãµüµãµãµãµãµüµãµ
üµãµãµüµãµüµüµüµãµãµãµãµüµüµüµüµãµãµãµüµüµüµãµãµãµãµãµãµãµãµüµãµüµãµüµüµãµüµüµüµãµãµüµüµãµüµüµüµ

Voilà ce que je reçois sur le port série.
J’ai un peu modifier le code mais je ne vois vraiment pas d’où ça vient :

#include <Wire.h>
#include <CommunicationUtils.h>
#include <DebugUtils.h>
#include <FIMU_ADXL345.h>
#include <FIMU_ITG3200.h>
#include <FreeSixIMU.h>

float acc [3];
float gyr [2];

FreeSixIMU accgyr = FreeSixIMU();

void setup(){

  Serial.begin(38400);
  Wire.begin();
  
  delay(5);
  accgyr.init();
  delay(5);
  
}

void loop (){

  accgyr.getValues(acc);
  accgyr.getEuler(gyr);
  
  Serial.print("#S|CSV|[");

  Serial.print("   ");
  Serial.print(gyr[0]);
  Serial.print(";");
  Serial.print(gyr[1]);
  Serial.print(";");
  Serial.print(gyr[2]);
  Serial.print(" ; ");
  Serial.print(acc[0]);
  Serial.print(";");
  Serial.print(acc[1]);
  Serial.print(";");
  Serial.print(acc[2]);
  
  Serial.println("]#");
  
  delay(50);
  
  
  
}

Merci pour vos réponses !

C'est surement un problème côté ordi, vérifie le paramétrage de ton logiciel série ;) Sinon test avec un simple "hello world" en boucle.