2016-11-08 477 views
1

我有一些位置数据不断进来,我正在将它打印到串行。如何将数据写入Arduino上的文本文件

说我有字符串“5”,并希望将其打印到文本文件“myTextFile”,我需要做什么来实现这一目标?要清楚,文本文件将保存在我的电脑上,而不是保存在Arduino上的SD卡上。

另外,在我开始保存之前,他们是在程序中创建文本文件的一种方式吗?

+0

所以,你必须连接到Arduino一些SD卡,你想创建并写入文件到呢? – KIIV

+0

我想将文件写入到arduino连接的计算机上。现在要更清楚地说明问题,谢谢。 –

+0

您可以使用Putty连接Arduino并将其配置为写入输出。否则,您的计算机端软件是必需的。 – KIIV

回答

1

u必须使用串行LIB此

Serial.begin(9600); 

写您的传感器值,以在处理侧使用你的循环方法

使用

Serial.println(value); 

串行接口PrintWriter将从串口读取的数据写入文件

import processing.serial.*; 
Serial mySerial; 
PrintWriter output; 
void setup() { 
    mySerial = new Serial(this, Serial.list()[0], 9600); 
    output = createWriter("data.txt"); 
} 
void draw() { 
    if (mySerial.available() > 0) { 
     String value = mySerial.readString(); 
     if (value != null) { 
       output.println(value); 
     } 
    } 
} 

void keyPressed() { 
    output.flush(); // Writes the remaining data to the file 
    output.close(); // Finishes the file 
    exit(); // Stops the program 
} 
+0

这是我之后的答案,但它很不清楚。任何人都可以澄清如何设置和解释这些功能发生了什么? – Steve

0

您可以创建一个python脚本来读取串口并将结果写入到一个文本文件:

############## 
## Script listens to serial port and writes contents into a file 
############## 
## requires pySerial to be installed 
import serial 

serial_port '/dev/ttyACM0'; 
baud_rate = 9600; #In arduino, Serial.begin(baud_rate) 
write_to_file_path = "output.txt"; 

output_file = open(write_to_file_path, "w+"); 
ser = serial.Serial(serial_port, baud_rate) 
while True: 
    line = ser.readline(); 
    line = line.decode("utf-8") #ser.readline returns a binary, convert to string 
    print(line); 
    output_file.write(line);