gpt4 book ai didi

python - 使用python将字符串从arduino存储到文本文件

转载 作者:太空宇宙 更新时间:2023-11-04 01:21:29 31 4
gpt4 key购买 nike

我正在使用此代码将字符串从 arduino 发送到 PC

int i=0;
void setup(){
Serial.begin(9600); // Open serial connection at a baud rate of 9600
pinMode(13, OUTPUT); //set pin13 in o/p mode
}

void loop(){
while(1)
{
Serial.write("10.028371,76.328873");
Serial.write('\0');
delay(1000);
}
}

我需要一个 python 代码来接收这个字符串并将它存储在一个文本文件中。arduino 正在连续传输这个字符串,但我只需要在文本文件中一次。我写了下面的代码,但在文本文件中只得到了垃圾值

## import the serial library
import serial

## Boolean variable that will represent
## whether or not the arduino is connected
connected = False

## establish connection to the serial port that your arduino
## is connected to.

locations=['/dev/ttyUSB0','/dev/ttyUSB1','/dev/ttyUSB2','/dev/ttyUSB3']

for device in locations:
try:
print "Trying...",device
ser = serial.Serial(device, 9600)
break
except:
print "Failed to connect on",device

## loop until the arduino tells us it is ready
while not connected:
serin = ser.read()
connected = True

## open text file to store the current
##gps co-ordinates received from the rover
text_file = open("position4.txt", 'w')
## read serial data from arduino and
## write it to the text file 'position.txt'
while ser.read():
x=ser.read()
print(x)
if x=="\0":
text_file.seek(0)
text_file.truncate()
text_file.write(x)
text_file.flush()
## close the serial connection and text file
text_file.close()
ser.close()

最佳答案

通过对 arduino 和 python 代码进行一些更改来解决

arduin代码:

int i=0;
void setup(){
Serial.begin(9600); // Open serial connection at a baud rate of 9600
pinMode(13, OUTPUT); //set pin13 in o/p mode
}

void loop(){
while(1)
{
Serial.write('\n');
Serial.write("10.028371,76.328873");
delay(1000);
}
}

python代码:

## import the serial library
import serial

## Boolean variable that will represent
## whether or not the arduino is connected
connected = False

## establish connection to the serial port that your arduino
## is connected to.

locations=['/dev/ttyUSB0','/dev/ttyUSB1','/dev/ttyUSB2','/dev/ttyUSB3']

for device in locations:
try:
print "Trying...",device
ser = serial.Serial(device, 9600)
break
except:
print "Failed to connect on",device

## loop until the arduino tells us it is ready
while not connected:
serin = ser.read()
connected = True

## open text file to store the current
##gps co-ordinates received from the rover
text_file = open("position4.txt", 'w')
## read serial data from arduino and
## write it to the text file 'position.txt'
while 1:
if ser.inWaiting():
x=ser.read()
print(x)
text_file.write(x)
if x=="\n":
text_file.seek(0)
text_file.truncate()
text_file.flush()

## close the serial connection and text file
text_file.close()
ser.close()

关于python - 使用python将字符串从arduino存储到文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20892133/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com