이 웹 사이트의 지침을 성공적으로 따랐습니다.
http://www.doctormonk.com/2012/04/raspberry-pi-and-arduino.html
웹 사이트에서 지정한대로 pi와 내 arudino mega 사이의 커뮤니케이션을 얻을 수있었습니다.
그러나 LED가 깜박이는 횟수를 나타내는 정수를 보내는 대신 ASCII 텍스트를 다음과 같이 보내려고합니다.
파이에서 arduino로 "MOVE 5 METERS FORWARD", "TURN LEFT", "MOVE 10 METERS BACKWARD".
다음 코드를 작성했습니다.
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에 위의 코드를 성공적으로 플래시했습니다.
Raspberry Pi와 콘솔에서 파이썬 터미널로 전환했습니다.
import serial
ser = serial.Serial('/dev/ttyACM1',9600)
ser.write("MOVE")
Arduino의 Serial Monitor에 표시되는 내용은 다음과 같습니다.
Arduino Received: M
Arduino Received: O
Arduino Received: V
Arduino Received: E
그러나 내가 원하는 것은 :
Arduino Received: MOVE
모든 문자를 inData 버퍼로 가져 오기 위해 위의 코드를 어떻게 변경합니까?