Python で pyserial を介して Arduino にデータを送信したいと考えています。私が Arduino に実行させたいのは、シリアル ポートから可変長の文字列データを読み取り、Python が読み取れるように書き戻すことだけです。私はそれを行うことができなかったので、以下のコードには Python の文字送信のみが含まれています。Python コードは次のとおりです。
import serial
import sys
import pywapi
import time
def main():
ser = serial.Serial(3, 9600, timeout=1)
print "Conn established"
print "Sending: %s" % "z".__repr__()
print ser.write('z'.encode("ascii"))
time.sleep(2)
print "Received: %s" % ser.read(10).__repr__()
ser.close()
Arduinoコードは次のとおりです。
void setup(){
analogReference(DEFAULT);
Serial.begin(9600);
}
void loop(){
if(Serial.available() > 0)
Serial.println("x");
while(Serial.available() > 0){
Serial.print(Serial.read(), BYTE);
}
}
出力:
Conn established
Sending: 'z'
1
Received: ''
Arduino端末からデータが送信されているときに機能するため、Arduinoのコードが機能することはわかっています。ただし、Python から何かを送信しようとすると失敗します。私は一日中これに苦労してきました。どんな助けでも大歓迎です。