Bu web sitesindeki talimatları başarıyla izledim:
http://www.doctormonk.com/2012/04/raspberry-pi-and-arduino.html
ve tam olarak web sitesinin belirttiği gibi pi ve arudino mega arasında iletişim alabildim.
Ancak, LED'in yanıp sönme sayısını temsil eden bir tam sayı göndermek yerine, ASCII metnini aşağıdaki gibi göndermek istiyorum:
"5 METRE İLERİ HAREKET", "DÖNÜŞ SOL", "10 METRE GERİ HAREKET" i pi'den arduino'ya taşıyın.
Aşağıdaki kodu yazdım:
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);
}
}
Arduino Mega 2560'ımın kodunu başarıyla geçtim.
Raspberry Pi'deki python terminalime geçtim ve yazdığım konsolda:
import serial
ser = serial.Serial('/dev/ttyACM1',9600)
ser.write("MOVE")
Arduino'nun Seri Monitöründe görüntülenen şu şekildedir:
Arduino Received: M
Arduino Received: O
Arduino Received: V
Arduino Received: E
Ama istediğim şu:
Arduino Received: MOVE
Tüm karakterleri inData arabelleğine almak için yukarıdaki kodu nasıl değiştirebilirim?