Bluetooth Shield + Tinkerkit + Uno pour contrôler servos

Bonjour, dans le cadre d’un projet, nous devons contrôler 4 servos via une application android.
Nous avons un module Tinkerkit et une carte bluetooth SeeedStudio http://www.seeedstudio.com/wiki/Bluetooth_Shield
La carte bluetooth clignote bien en rouge et est donc repérable sur le smartphone.
Mais pourtant ça ne fonctionne pas, je voulais donc savoir si le code vous semblait bon ?
( L’application a été réalisé avec appinventor )

#include <TinkerKit.h>

#include <Servo.h>

Servo ServoA;
Servo ServoB;
Servo ServoC;
Servo ServoD;

int state;

void setup() {

ServoA.attach(O0);
ServoB.attach(O1);
ServoC.attach(O2);
ServoD.attach(O3);
Serial.begin(9600); // Même baudrate que la carte pour établir la connexion
}

void loop() {
//lire données
if(Serial.available() > 0){
state = Serial.read();
}
while (state == ‘1’) {
// Si l’utilisateur appuies sur A1
if (state == ‘2’) {
ServoA.writeMicroseconds(2000); //Rotation Bras arrière sens horraire
ServoB.writeMicroseconds(1500); // Les autres ne bougent pas
ServoC.writeMicroseconds(1500);
ServoD.writeMicroseconds(1500);
}

// Si l’utilisateur appuies sur A2
else if (state == ‘3’) {
ServoA.writeMicroseconds(1000); //Rotation Bras arrière sens anti-horraire
ServoB.writeMicroseconds(1500); // Les autres ne bougent pas
ServoC.writeMicroseconds(1500);
ServoD.writeMicroseconds(1500);

}
// Si l’utilisateur appuies sur B1
else if (state == ‘4’) {
ServoA.writeMicroseconds(1500); //Rotation Bras avant sens horraire
ServoB.writeMicroseconds(2000);
ServoC.writeMicroseconds(1500);
ServoD.writeMicroseconds(1500);
}

// Si l’utilisateur appuies sur B2
else if (state == ‘5’) {
ServoA.writeMicroseconds(1500); //Rotation Bras avant sens anti-horraire
ServoB.writeMicroseconds(1000);
ServoC.writeMicroseconds(1500);
ServoD.writeMicroseconds(1500);
}

// Si l’utilisateur appuies sur C1
else if (state == ‘6’) {
ServoA.writeMicroseconds(1500); //Rotation écran sens horraire
ServoB.writeMicroseconds(1500);
ServoC.writeMicroseconds(2000);
ServoD.writeMicroseconds(1500);
}

// Si l’utilisateur appuies sur C2
else if (state == ‘7’) {
ServoA.writeMicroseconds(1500); //Rotation écran sens anti-horraire
ServoB.writeMicroseconds(1500);
ServoC.writeMicroseconds(1000);
ServoD.writeMicroseconds(1500);
}
// Si l’utilisateur appuies sur D1
else if (state == ‘8’) {
ServoA.writeMicroseconds(1500); //Inclinaison sens horraire
ServoB.writeMicroseconds(1500);
ServoC.writeMicroseconds(1500);
ServoD.writeMicroseconds(2000);
}
// Si l’utilisateur appuies sur D2
else if (state == ‘9’) {
ServoA.writeMicroseconds(1500); //Rotation Bras avant sens horraire
ServoB.writeMicroseconds(1500);
ServoC.writeMicroseconds(1500);
ServoD.writeMicroseconds(1000);
}
}
}

Pypo:
Bonjour, dans le cadre d'un projet, nous devons contrôler 4 servos via une application android.
Nous avons un module Tinkerkit et une carte bluetooth SeeedStudio Bluetooth Shield‏‎ - Seeed Wiki
La carte bluetooth clignote bien en rouge et est donc repérable sur le smartphone.
Mais pourtant ça ne fonctionne pas, je voulais donc savoir si le code vous semblait bon ?
( L'application a été réalisé avec appinventor )

bonjour
ce n'est pas parce que le module BT est listée (visible) que le pairing est fait avec l'application androïd, en general lorsque le pairing est effectif la led devient fixe.
premiere etape déjà voir si le module discute avec une appli androïd fonctionelle .
perso j'utilise amarino, bonne boite à outils
http://www.amarino-toolkit.net/index.php/home.html

Salut, pour commencer, balise code et pas quote ( le petit # ) c'est plus lisible, et pour le reste, quand tu dit sa ne fonctionne pas, tu veux parler de la communication bluetooth? ou du reste? (pilotage des servos moteurs)

Skizo !

skizoh:
Salut, pour commencer, balise code et pas quote ( le petit # ) c'est plus lisible, et pour le reste, quand tu dit sa ne fonctionne pas, tu veux parler de la communication bluetooth? ou du reste? (pilotage des servos moteurs)

Skizo !

On ne peut pas contrôler les servos et pour ce qui est de la communication elle semble fonctionner. Dois-je changer le baudrate de la Bluetooth Shield ?

Pypo:

skizoh:
Salut, pour commencer, balise code et pas quote ( le petit # ) c'est plus lisible, et pour le reste, quand tu dit sa ne fonctionne pas, tu veux parler de la communication bluetooth? ou du reste? (pilotage des servos moteurs)

Skizo !

On ne peut pas contrôler les servos et pour ce qui est de la communication elle semble fonctionner. Dois-je changer le baudrate de la Bluetooth Shield ?

ce n'est pas un semblant qu'il faut , c'est une certitude :grin:
oublie pour l'instant ton programme et leve le doute avec amarino

Mauvaise nouvelle, j'ai voulu voir si la connection bluetooth marchait bien, j'ai donc tester avec mon ordinateur. Sauf que maintenant, la led Rouge ne clignote plus .. J'ai juste changer le flux de contrôle en Matériel. Pensez-vous que ça provienne de là ? J'ai tout essayé pour réparer le problème : le reset de la Arduino, vérifier les soudures et bumpers sur les cavaliers..

Pypo:
Mauvaise nouvelle, j'ai voulu voir si la connection bluetooth marchait bien, j'ai donc tester avec mon ordinateur. Sauf que maintenant, la led Rouge ne clignote plus .. J'ai juste changer le flux de contrôle en Matériel. Pensez-vous que ça provienne de là ? J'ai tout essayé pour réparer le problème : le reset de la Arduino, vérifier les soudures et bumpers sur les cavaliers..

bonsoir
Que veux tu que l'on te reponde ?
On ne connais rien de "tes manips" , tu semble tester sans aucune methode tout et n'importe quoi/comment "au petit bonheur la chance"

Non, j'ai suivi des instructions d'un guide expliquant comment changer le baudrate d'une carte Bluetooth.

test l’application qu’il ta donné (amarino) , si elle ne fonctionne pas tu seras fixé sur ce point, le bluetooth est pas au point coi !

skizoh:
test l'application qu'il ta donné (amarino) , si elle ne fonctionne pas tu seras fixé sur ce point, le bluetooth est pas au point coi !

Tant que nous n'avons pas la Led rouge sur la bluetooth shield, la carte ne peut pas être reconnue par le smartphone :confused:

Ok, et donc? le problème serais dans l'init du bluetooth? dans ce cas envoie ton code qu'on vérifie la partie bluetooth.

Alex.

J'ai réussi à récupérer la led rouge, en fait, j'ai dû changer le baudrate l'autre fois et il suffisait de changer les valeurs dans le Slave :wink:
Je me retrouve donc au même problème initial, impossible de voir si arduino reçoit bien les données du téléphone, je cherche donc un bon programme sur amarino pour tester ça !

Pypo:
J’ai réussi à récupérer la led rouge, en fait, j’ai dû changer le baudrate l’autre fois et il suffisait de changer les valeurs dans le Slave :wink:
Je me retrouve donc au même problème initial, impossible de voir si arduino reçoit bien les données du téléphone, je cherche donc un bon programme sur amarino pour tester ça !

bonjour
Amarino seul suffit pour verifier avec un report serial sur arduino (le meme que pour envoyer les commades AT, je le remets dessous)
tu connecte ton module BT avec amarino (la premiere fois faire Add BT device, selectionne ton module et connect)
utilise le mode monitoring d’amarino pour envoyer des infos vers l’arduino (voir flag: “data you want to send”)
si tu recupere des infos dans le serial monitor c’est que la liaison est BT est OK .
au moins tu aura validé cette etape.

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(2, 3); // RX | TX
// RX arduino ---> TXD BT
// TX arduino ---> RXD BT

void setup()
{
  Serial.begin(57600); // vitesse serial monitor
  Serial.println("! pas de fin de ligne pour modules HC06 ");
  Serial.println("Enter AT commands:");
  BTSerial.begin(9600);  // vitesse module bt
}

void loop()
{

  // Keep reading from HC-05 and send to Arduino Serial Monitor
  if (BTSerial.available())
    Serial.write(BTSerial.read());

  // Keep reading from Arduino Serial Monitor and send to HC-05
  if (Serial.available())
    BTSerial.write(Serial.read());
}