Bonjour,
J'ai fait un petit sketchup qui permet de recevoir trois valeurs d'angle afin de controler 3servo-moteurs.
La syntaxe de la trame est la suivante: 8090180153
Où 8 est le début de la trame, 090 l'angle du Pan, 180 l'angle du Tilt et 153 l'angle d'un autre servo-moteur.
Je voudrais faire une interface Processing pour controler les trois servos, histoire d'avoir un truc à peu près potable.
C'est là que ça coince: Lors de l'envoi des informations, rien ne se passe.
Voici les portions de code:
Arduino:
void loop()
{
if(
Serial.
read() == 56)
{
for(
int i = 0; i <= 9; i++)
{
recep
= char(Serial.read());
Serial.println(recep);
}
for(int i = 1; i <= 9; i++)
{
if(i == 1)
{
posPan = ((recep-'0')*100);
}
else if(i == 2)
{
posPan += ((recep-'0')*10);
}
else if(i == 3)
{
posPan += ((recep-'0'));
}
else if(i == 4)
{
posTilt = ((recep-'0')*100);
}
else if(i == 5)
{
posTilt += ((recep-'0')*10);
}
else if(i == 6)
{
posTilt += ((recep-'0'));
}
else if(i == 7)
{
posUtil = ((recep-'0')*100);
}
else if(i == 
{
posUtil += ((recep-'0')*10);
}
else if(i == 9)
{
posUtil += ((recep-'0'));
}
}
pan.write(posPan);
tilt.write(posTilt);
util.write(posUtil-3);
Serial.print("Pan: ");
Serial.println(posPan);
Serial.print("Tilt: ");
Serial.println(posTilt);
Serial.print("Util: ");
Serial.println(posUtil);
}
}
Processing:
int sendTrame(int posX, int posY, int posU)
{
data[0] = 8;
data[1] = ( posX / 100 );
data[2] = ( ( posX - ( data[1] * 100 ) ) / 10 );
data[3] = ( posX - ( data[1] * 100 ) - ( data[2] * 10 ) );
data[4] = ( posY / 100 );
data[5] = ( ( posY - ( data[4] * 100 ) ) / 10 );
data[6] = ( posY - ( data[4] * 100 ) - ( data[5] * 10 ) );
data[7] = ( posU / 100 );
data[8] = ( ( posU - ( data[7] * 100 ) ) / 10 );
data[9] = ( posU - ( data[7] * 100 ) - ( data[8] * 10 ) );
for(int i = 0; i < 10; i++)
{
port.write(char(data)+'0');
}
println(data);
return 1;
}
Comment faire pour que la trame envoyée par Processing soit reconnue par l'arduino?
Merci d'avance, WillyKaze.