[SOLVED] проблема была связана с чипом USB-TTL PL2303, который я использовал для интерфейса модуля XBee с Pi. Это создавало проблему. Драйверы не были должным образом поддержаны RPi2.Отправка строки из Raspberry Pi в Arduino через модули XBee
Я пытаюсь отправить строку (возможно, число) из скрипта python на моем малине Pi2 через подключенный к нему модуль XBee, в Arduino Uno. Переданные данные неправильно истолковываются на конце Arduino. Когда я использую терминал на X-CTU и отправляю строки через это, он отображается правильно на последовательном мониторе Arduino IDE.
Вот код Python Я использую
import time
import serial
ser = serial.Serial("/dev/ttyUSB0",9600)
ser.isOpen()
x= '4'
ser.write(bytes(x, "ascii")) #writing as bytes
time.sleep(2)
ser.close()
Вот код Arduino я использовал
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup()
{
// Open serial communications
Serial.begin(9600);
// set the data rate for the SoftwareSerial port
mySerial.begin(9600);
}
void loop() // run over and over
{
int x;
if (mySerial.available())
{
x = char(mySerial.read()) - '0';
//reading data value from Software Serial port
//converting ASCII to int
//and storing it as x
Serial.print(x);
}
Почему 'ser.write (байты (x," ascii "))', а не просто 'ser.write (x)'? –
Я использую Python 3.3, поэтому он не позволит использовать ser.write() со строковым аргументом. Он должен быть преобразован в байты, которые будут переданы в качестве аргумента. –