Pages: [1] 2   Go Down
Author Topic: Bluetooth JY-MCU  (Read 1220 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous!

J'ai commandé il y a quelques jours pas mal de petits composants à utiliser avec mon Arduino Duemilanove, et notamment un module bluetooth JY-MCU. J'essaye depuis quelques jours de le faire marcher, et j'ai un soucis. Bon déjà j'ai pas de bluetooth ni sur mon pc, et mon galaxy ACE ne voit pas le module mais ça, c'est juste galére; le module arrive bien à se pairer avec la tablette d'un couchsurfer qui est chez moi ces jours ci.

Donc en gros, j'aimerais bien pouvoir recevoir et envoyer des données à mon arduino via le bluetooth. En utilisant différentes app de terminal bluetooth sur la tablette android qu'on m'a prété, j'arrive à recevoir des infos de l'arduino (ça s'affiche sur le téléphone); par contre, quand j'envoie des infos à partir du téléphone, rien ne se passe. L'arduino ne réagit pas.

J'ai déjà paramétré le JY-MCU avec un cable FTDI via mon pc et tout, du coup le taux de bauds est bon (Baud rate, je sais pas comment on dit en français), le pin aussi. Je pense que le branchement est correct, puisque j'arrive à transmettre des données de l'arduino vers le smartphone. Voila voila. Est ce que vous avez déjà eu le même soucis? J'ai lu un peu partout qu'avec ce module, il y avait pas mal de gens qui galéraient avec le reset. Mais je me dis que si la tablette arrive à recevoir des infos, à priori c'est que le module et l'arduino arrivent un peu à communiquer, non?

Ah oui, et j'ai utilisé trois app différentes sur la tablette, ça ne change rien.

Mon code ci dessous (j'ai repris la quasi totalité de ce code http://dukextrem.blogspot.pt/2013/02/test-du-module-bluetooth-jy-mcu.html)
/* simple test LED */
char val;         // variable pour recevoir les données du port série
int ledpin = 13;  // LED connected to pin 2 (on-board LED)

void setup()
{
  pinMode(ledpin = 13, OUTPUT);       // broche 13 en mode sortie
  Serial.begin(115200);               // communication série en 115200bps
}
 
void loop() {
  Serial.println("Welcome. 1 to light on, 0 to ligth off.");

  while(Serial.available() == 0)
       {;}
  val = Serial.read();                // lecture des données est stock dans 'val'
 Serial.println("I received something!");
  if( val == '0' )                    // si '0' est reçue
  {
    digitalWrite(ledpin, LOW);        // LED 13 est éteint
    Serial.println("13 off");         // envoi "13 off" sur le port sortie
  }

if( val == '1' )                      // si '1' est reçue
 {
    digitalWrite(ledpin = 13, HIGH);  // LED 13 est allumé on
    Serial.println("13 on");          // envoi "13 on" sur le port sorti
  }
  Serial.flush();
}


Merci d'avance pour vos avis éclairés!
Logged

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3593
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Aie déjà Serial.flush(); ça fait pas ce que ça dit ... Ensuite un petit delay() avant de lancer la lecture du buffer série c'est pas plus mal (le temps qu'il se remplisse).

Je te propose déjà ça :

Code:
char val;         // variable pour recevoir les données du port série
int ledpin = 13;  // LED connected to pin 2 (on-board LED)

void setup()
{
  pinMode(ledpin, OUTPUT);       // broche 13 en mode sortie
  Serial.begin(115200);               // communication série en 115200bps
}
 
void loop() {


  while(Serial.available() == 0);
delay(5);
while(Serial.available()) val=Serial.read(); // ça c'est un vrai flush ;)
digitalWrite(ledpin,HIGH);
delay(1000);
digitalWrite(ledpin,LOW);
}

Au moins tu sauras déjà si quelque chose arrive jusqu'à l'Atmega
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey, merci pour ta réponse!

Malheureusement, ça ne marche pas. J'avais essayé en callant quelques delay un peu partout dans mon code, et ça n'avait pas marché. Je viens d'essayer avec ton code, ça ne marche pas non plus.

J'ai remarque autre chose. Tout à l'heure, j'ai connecté l'Android avec Blue term, l'Android a reçu quelques caractéres, mais l'arduino n'a rien pu recevoir. Puis j'ai ouvert le terminal serial Arduino, je lui ai dit deux trois trucs, l'arduino a réagit (il a reçu ce que j'avais envoyé via le terminal serial). Et les lignes que j'avais tapé avec mon pc sont apparues sur l'Android.

Merci pour ta réponse en tout cas, d'autres pistes?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

De nouveau!

Quelqu'un sur le forum anglais m'a donné ce code
void setup()
{
    Serial.begin(115200);
    Serial.println("OK then, you first, say something.....");
    Serial.println("Go on, type something in the space above and hit Send, or just hit the Enter key");
}
 
void loop()
{
  while(Serial.available()==0)
  {}
  delay(500);
  Serial.println("I heard you say:      ");
  while(Serial.available()>0)
  {
    Serial.write(Serial.read());// note it is Serial.WRITE
  }
  Serial.println("");
}


Qui fonctionne partiellement quand je débranche l'arduino du PC et que je met un source d'alimentation externe. C'est un début!

Merci pour votre aide, à bientot
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

as-tu fais attention à la différence de niveau de tension entre arduino 5V et module BT 3.3v ?
il faut adapter en mettant un pont diviseur pour rabaisser la tension à 3.3V
y a pas mal de tuto là dessus j'ai suivi et ça a marché....
Logged

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3593
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

+1

Surtout que le coup de "ça marche en alim externe et pas au PC" semble appuyer cette théorie
Logged


Offline Offline
Faraday Member
**
Karma: 33
Posts: 4976
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour
si ça peut aider
une discussion ici
http://forum.arduino.cc//index.php?topic=187302.0

et perso avec un galaxy ace j'utilise pour les test amarino 2.0
blueterm il me semble que ça coinçait

http://www.amarino-toolkit.net/index.php/download.html

test simple (on/off de la led par 1 ou 0 envoyé par amarino)
Code:
void setup()
{
  pinMode(13, OUTPUT);   
  Serial.begin(9600); // modifier le taux de bauds si necessaire
  delay (500);
  }

void loop()
{
  while (Serial.available() == 0); // wait for character to arrive
  char c = Serial.read();
  if(c =='1') {
    digitalWrite(13, HIGH);   // set the LED on
  }
  if(c == '0'){
    digitalWrite(13, LOW);  // set the LED off
  }
  delay(500);
 
}
« Last Edit: October 25, 2013, 03:47:05 am by Artouste » Logged

0
Offline Offline
Sr. Member
****
Karma: 17
Posts: 382
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Voici un lien vers une App qui crée un joystick virtuel sur l'écran d'une tablette ou d'un smartphone Android
Coté Arduino, la meme carte JY-MCU est utilisée

http://forum.arduino.cc//index.php?topic=173246.0

Je suis dispo pour toutes infos complémentaires
« Last Edit: November 02, 2013, 05:58:23 am by kas » Logged

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4976
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Voici un lien vers une App qui crée un joystick virtuel sur l'écran d'une tablette Andoid
Coté Arduino, la meme carte JY-MCU est utilisée

http://forum.arduino.cc//index.php?topic=173246.0

Je suis dispo pour toutes infos complémentaires
bonjour
tu pouvais pas le dire avant ?  smiley-mr-green
super appli, je viens de tester sans probleme sur un galaxy ace et module BT HC-06

petite suggestion sur l'appli android , ce serait difficile de mettre une gestion du mode de fonctionnement (un pti bouton) du joystick entre retour auto au centre ou garder la position apres "relachage" ?

edit : RTFM  smiley-mr-green  j'ai trouvé , c'est prevu dans les options
« Last Edit: November 02, 2013, 05:36:47 am by Artouste » Logged

0
Offline Offline
Sr. Member
****
Karma: 17
Posts: 382
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
super appli, je viens de tester sans probleme sur un galaxy ace et module BT HC-06
Merci   smiley-red

Quote
ce serait difficile de mettre une gestion du mode de fonctionnement (un pti bouton) du joystick entre retour auto au centre ou garder la position apres "relachage" ?
Regarde Options/Joystick behavior (auto return to center),
ça doit pouvoir t'aider  smiley-wink
Logged

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4976
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
super appli, je viens de tester sans probleme sur un galaxy ace et module BT HC-06
Merci   smiley-red

Quote
ce serait difficile de mettre une gestion du mode de fonctionnement (un pti bouton) du joystick entre retour auto au centre ou garder la position apres "relachage" ?
Regarde Options/Joystick behavior (auto return to center),
ça doit pouvoir t'aider  smiley-wink
oui , merci j'avais trouvé  smiley-cool
Logged

0
Offline Offline
Sr. Member
****
Karma: 17
Posts: 382
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

OK
Si tu as des commentaires ou suggestions pour améliorer l'application, je suis preneur  smiley-razz
Logged

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4976
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

OK
Si tu as des commentaires ou suggestions pour améliorer l'application, je suis preneur  smiley-razz
Je vais jouer un peu avec et je n'hesiterais pas
déjà et sans avoir aucune idée des possibilités/difficultés, je verrais bien un bouton clickable au centre de la "boule" du joystick
Logged

0
Offline Offline
Sr. Member
****
Karma: 17
Posts: 382
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
déjà et sans avoir aucune idée des possibilités/difficultés, je verrais bien un bouton clickable au centre de la "boule" du joystick

J'ai essayé, ça ne donne rien d'intéressant, car le fait de presser le bouton central entraine souvent un déplacement indésirable du joystick.  smiley-sad-blue
J'ai donc ajouté des boutons, qui peuvent être configurés en ON/OFF ou en poussoir
Logged

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4976
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
déjà et sans avoir aucune idée des possibilités/difficultés, je verrais bien un bouton clickable au centre de la "boule" du joystick

J'ai essayé, ça ne donne rien d'intéressant, car le fait de presser le bouton central entraine souvent un déplacement indésirable du joystick.  smiley-sad-blue
J'ai donc ajouté des boutons, qui peuvent être configurés en ON/OFF ou en poussoir
c'est ce que je me suis dit apres avoir posté
c'est bien sympa comme appli
un truc qui pourrait etre sympa, mais je sais que la place est comptée
mettre 2 slider (un en X et un en Y) pouvant etre utilisé sur arduino comme trim ou autres usages.
Logged

Pages: [1] 2   Go Up
Jump to: