我想使用处理将 arduino 上串行接收的数据保存到文本文件中。 现在我的处理代码如下所示。
import processing.serial.*;
Serial myPort;
int val;
void setup()
{
myPort = new Serial (this, "COM3", 1200);
}
void draw()
{
if ( myPort.available() > 0)
{
val = myPort.read();
print((char)val);
}
}
arduino接收到aaaaaaaaa也是这样处理接收到的。 我该怎么做才能将其保存到文本文件中?有人可以修改我的代码吗?我对处理有点陌生。
另外,如果我收到的短信是:aaaaaaaaaa bbbbbbbbbb
那么如何将新段落另存为文本文件中的新段落?
感谢所有帮助。 谢谢!
跟进:
import processing.serial.*;
Serial mySerial;
//import java.text.*;
//import java.util.*;
PrintWriter output;
String[] list;
void setup() {
size(720,700);
background(255);
mySerial = new Serial( this, "COM3", 1200 );
output = createWriter("test5.txt");
}
void draw() {
if (mySerial.available() > 0 ) {
String value = mySerial.readString();
if ( value != null ) {
fill(50);
text(value,10,10,700,700);
output.println(value);
saveStrings("test5.txt", value);
}
}
}
//void keyPressed() {
//output.flush(); // Writes the remaining data to the file
//output.close(); // Finishes the file
//exit(); // Stops the program
//}
我尝试使用此代码将数据保存到文本文件中,但收到错误消息“PApplet 类型中的方法 saveString(String, String[]) 不适用于参数 (String, String)”
最佳答案
在继续阅读之前,请确保您已成功将数据从 Arduino 读取到字符串值
。您只需执行以下操作即可确认:
println(value);
上面的行会将String
打印到PDE的命令行。如果您什么也没看到,则意味着您的 Arduino 没有提供任何数据。在这种情况下,您需要修复其他问题。
此外,为了确保上述操作不会受到任何其他因素的影响,请注释掉出现问题或执行任何文件 I/O 的行。
如果您确认正在接收来自 Arduino 的输入,请继续阅读。
您错误地使用了saveStrings()
方法。根据此处的文档:http://www.processing.org/reference/saveStrings_.html您应该将字符串输入转换为数组,然后将其输入到方法中。
现在您有以下行:
String value = mySerial.readString();
之后添加以下内容:
String[] valueArray = split(value, ' ');
以上内容直接来自文档,并将输入String
在每个空格处分割并将其保存在数组中。之后,只需将数组传递到 saveStrings()
方法中,您就可以开始了,如下所示:
saveStrings("myTextFile.txt", valueArray);
根据文档,此“[w]将字符串数组写入文件,每个字符串一行”。
您收到的错误消息:
"The method saveString(String, String[]) in the type PApplet is not applicable for the argument (String, String) "
非常清楚地告诉您,您正在向 saveString()
方法提供两个 Strings
(saveString(String, String)
),而它所期望的是一个 String
和一个 String
数组 (saveString(String, String[])
)。
关于arduino - 使用arduino将数据保存到文本文件并进行处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22467949/