Saya berhasil mengikuti instruksi di situs web ini:
http://www.doctormonk.com/2012/04/raspberry-pi-and-arduino.html
dan saya bisa mendapatkan komunikasi antara pi dan mega arudino saya persis seperti yang ditentukan situs web.
Namun, alih-alih mengirim bilangan bulat yang mewakili berapa kali LED berkedip, saya ingin mengirim teks ASCII seperti:
"MOVE 5 METER FORWARD", "TURN LEFT", "MOVE 10 METER BACKWARD" ke arduino dari pi.
Saya menulis kode berikut:
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);
}
}
Saya mem-flash kode di atas dengan sukses ke Arduino Mega 2560 saya.
Saya beralih ke terminal python saya di Raspberry Pi dan di konsol saya mengetik:
import serial
ser = serial.Serial('/dev/ttyACM1',9600)
ser.write("MOVE")
Apa yang ditampilkan pada Monitor Seri Arduino saya adalah sebagai berikut:
Arduino Received: M
Arduino Received: O
Arduino Received: V
Arduino Received: E
Tapi yang saya inginkan adalah:
Arduino Received: MOVE
Bagaimana cara mengubah kode di atas untuk memasukkan semua karakter ke buffer inData?