मैंने इस वेबसाइट के निर्देशों का सफलतापूर्वक पालन किया:
http://www.doctormonk.com/2012/04/raspberry-pi-and-arduino.html
और मैं वेबसाइट को निर्दिष्ट करते हुए पीआई और मेरे अरुडिनो मेगा के बीच संचार प्राप्त करने में सक्षम था।
हालाँकि, एलईडी ब्लिंक की संख्या का प्रतिनिधित्व करने वाले पूर्णांक को भेजने के बजाय, मैं ASCII पाठ भेजना चाहता हूं जैसे:
"5 मीटर फॉरवर्ड", "टर्न लेफ्ट", "पी से अरडूइनो के लिए 10 मीटर बैकवर्ड" पर जाएँ।
मैंने निम्नलिखित कोड लिखा है:
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 मेगा 2560 के लिए सफलतापूर्वक ऊपर कोड फ्लैश किया।
मैंने रास्पबेरी पाई पर अपने अजगर टर्मिनल पर स्विच किया और कंसोल में मैंने टाइप किया:
import serial
ser = serial.Serial('/dev/ttyACM1',9600)
ser.write("MOVE")
मेरे Arduino के सीरियल मॉनिटर पर जो प्रदर्शित होता है वह इस प्रकार है:
Arduino Received: M
Arduino Received: O
Arduino Received: V
Arduino Received: E
लेकिन मुझे क्या चाहिए:
Arduino Received: MOVE
InData बफर में सभी वर्ण प्राप्त करने के लिए मैं ऊपर का कोड कैसे बदलूं?