J'ai suivi avec succès les instructions sur ce site:
http://www.doctormonk.com/2012/04/raspberry-pi-and-arduino.html
et j'ai pu obtenir une communication entre le pi et mon méga arudino exactement comme le spécifie le site Web.
Cependant, au lieu d'envoyer un entier représentant le nombre de fois que la LED clignote, je veux envoyer du texte ASCII comme:
"DÉPLACEZ 5 MÈTRES EN AVANT", "TOURNEZ À GAUCHE", "DÉPLACEZ 10 MÈTRES EN ARRIÈRE" vers l'arduino depuis la pi.
J'ai écrit le code suivant:
char inData[64];
char inChar=-1;
void setup(){
Serial.begin(9600);
Serial.begin("Waiting for Raspberry Pi to send a signal...\n");
}
void loop(){
byte numBytesAvailable= Serial.available();
// if there is something to read
if (numBytesAvailable > 0){
// store everything into "inData"
int i;
for (i=0;i<numBytesAvailable;i++){
inChar= Serial.read();
inData[i] = inChar;
}
inData[i] = '\0';
Serial.print("Arduino Received: ");
Serial.println(inData);
}
}
J'ai flashé avec succès le code ci-dessus sur mon Arduino Mega 2560.
Je suis passé à mon terminal python sur le Raspberry Pi et dans la console j'ai tapé:
import serial
ser = serial.Serial('/dev/ttyACM1',9600)
ser.write("MOVE")
Ce qui s'affiche sur le moniteur série de mon Arduino est le suivant:
Arduino Received: M
Arduino Received: O
Arduino Received: V
Arduino Received: E
Mais ce que je veux c'est:
Arduino Received: MOVE
Comment puis-je changer le code ci-dessus pour obtenir tous les caractères dans le tampon inData?