Bonjour ,
J'ai un probleme entre la liaisons serie de Python vers mon Arduino , quand j'envoie des charactere a mon arduino il ne se passe rien alors que quand j'utilise le moniteur serie sa marche parfaitement :
CODE Arduino :
#include <IRremote.h>
IRsend irsend;
const int LED=2; // Constante pour la broche 2
int octetReception=0; // variable de stockage des valeurs reçues sur le port Série (ASCII)
char caractereRecu=0; // variable pour stockage caractère recu
int compt=0; // variable comptage caractères reçus
String chaineReception=""; // déclare un objet String vide pour reception chaine
void setup() {
Serial.begin(9600); // initialise connexion série à 115200 bauds
} // fin de la fonction setup()
void loop(){ // debut de la fonction loop()
while (Serial.available()>0) { // tant qu'un octet en réception
octetReception=Serial.read(); // Lit le 1er octet reçu et le met dans la variable
compt=compt+1;
//Serial.println("Ascii Caractere "+ String(compt) +" = "+ String(octetReception)); // affiche code ASCII Octet reçu
if (octetReception==10) { // si Octet reçu est le saut de ligne
Serial.println("Saut de ligne recu");
Serial.println ("Chaine recue="+chaineReception); // affiche la chaine recue
//-- analyse de la chaine recue
if (chaineReception.startsWith("1")){
irsend.sendNEC(0x2FD58A7, 32); // toshiba TV power code
Serial.println("Recu vol+");
} // fin if
else if (chaineReception.startsWith("vol-")){
irsend.sendNEC(0x2FD7887, 32); // toshiba TV vol- code
Serial.println("Recu VOL-");
} // fin if
else if (chaineReception.startsWith("power")){
irsend.sendNEC(0x2FD48B7, 32); // toshiba TV power code
Serial.println("Recu POWER");
} // fin if
else if (chaineReception.startsWith("input")){
irsend.sendNEC(0x2FD28D7, 32); // toshiba TV input code
Serial.println("Recu input");
} // fin if
else if (chaineReception.startsWith("ok")){
irsend.sendNEC(0x2FD847B, 32); // toshiba TV ok code
Serial.println("Recu ok");
} // fin if
else if (chaineReception.startsWith("exit")){
irsend.sendNEC(0x2FDC23D, 32);
Serial.println("Recu exit");
} // fin if
else if (chaineReception.startsWith("haut")){
irsend.sendNEC(0x2FD9867, 32);
Serial.println("Recu haut");
} // fin if
else if (chaineReception.startsWith("bas")){
irsend.sendNEC(0x2FDB847, 32);
Serial.println("Recu bas");
} // fin if
else {
Serial.println("Chaine non reconnue");
}// fin else
//-- une fois l'analyse terminée
chaineReception=""; //RAZ le String de réception
compt=0; // RAZ compteur
delay(100); // pause
break; // sort de la boucle while
}
else { // si le caractère reçu n'est pas un saut de ligne
caractereRecu=char(octetReception); // convertit l'octet reçu en caractère
chaineReception=chaineReception+caractereRecu; // ajoute le caratère au String
}
}
} // fin tant que octet réception
CODE Python :
import serial
import sys
ser = serial.Serial("COM3", 9600)
mots = ""
def message(i):
mots = i
ser.write(mots)
print(mots)
if __name__ == '__main__':
print 'sys.argv: ', sys.argv
if len(sys.argv) > 1:
message(sys.argv[1])
else:
message('No argument')
Si quelqun voit l'erreur ? Car j'ai essayer plusieur chose mais etant donner mon faible niveau en Arduino et python .... Merci d'avance de votre aide !