Page 1 sur 1

Reset ARDUINO MEGA sur reception UART USB d'un PI3

Posté : jeu. 24 nov. 2016 22:19
par alematt
Bonjour à tous,

Voila, nous sommes nombreux à faire cette manip, faire communiquer un ARDUINO avec un RASPBERRY en USB.

Pour ma part, grâce a ce site (merci !) et d'autres, ma communication se passe bien, SAUF QUE, à chaque envoie d'une trame à l'ARDUINO, l'ARDUINO se reset.

Étrangement, la réponse de l'ARDUINO a la requête du RASPBERRY est correcte.



Coté RPI
SerialArduino = serial.Serial('/dev/ttyACM0')


while TRUE:
#Envoi de la consigne
# Format de l'envoi consigne CSG18.5_ON$
try:
StrSend = "CSG" + str(ParCONS) + StrPWCNT + "$"
SerialArduino.write(StrSend)
except Error as e:
time.sleep(2)

#Reception des datas
lines=SerialArduino.readline()
time.sleep(1)
SerialArduino.close()

.....
Côté ARDUINO
while (Serial.available()>0) { // tant qu'un octet en reception

OctetReception=Serial.read(); // Lit le 1er octet recu et le met dans la variable
NbOctet=NbOctet+1;
if (OctetReception=='$') { // si Octet recu est l'octet de queue
Incoming=1;
delay(100); // pause
break; // sort de la boucle while
}
else {
CaractRecept=char(OctetReception); // convertit l'octet recu en caractere
if ((CaractRecept != char(10)) && (CaractRecept != char(13))){ // Eviter les retour chariot et saut de ligne
ChaineRecept=ChaineRecept+CaractRecept; // ajoute le caratere au String
}
}
}
.....
Il semblerait donc, et d'après nos confrères du forum Arduino, que l'ouverture de port côté RPI RESET L'ARDUINO. de fait, est il possible d'ouvrir le port au démarrage du RPI, de le laisser ouvert et de l'utiliser dans mon fichier Python qui est exécuté toutes les minutes (crontab)

Si quelqu'un avait ne serait-ce qu'une piste?

Merci à tous