我正在使用AD8232心电图传感器,我需要PR间隔,OT间隔,R峰值等。我可以生成图形。但是从图中,我需要这些参数以编程方式提取。有人可以帮助我吗?
答案 0 :(得分:1)
Arduino软件实际上部分基于处理-这就是开源项目的魅力。打开草图后,第一步就是导入序列库。转到Sketch-> Import Library-> Serial
您现在应该看到类似于import processing.serial。*的行。在草图的顶部。魔法!在我们的import语句下面,我们需要声明一些全局变量。所有这些意味着这些变量可以在草图中的任何位置使用。将这两行添加到import语句下面:
Serial myPort; // Create object from Serial class
String val; // Data received from the serial port
为了侦听任何串行通信,我们必须获取一个Serial对象(我们将其称为myPort,但您可以随便使用它),它可以让我们在计算机的串行端口上侦听任何传入的数据。我们还需要一个变量来接收传入的实际数据。在这种情况下,由于我们要从Arduino发送一个字符串(字符序列“ Hello,World!”),因此我们希望在处理中接收一个字符串。就像Arduino具有setup()和loop()一样,Processing也具有setup()和draw()(而不是循环)。
对于Processing中的setup()方法,我们将找到Arduino连接到的串行端口,并设置Serial对象以侦听该端口。
void setup()
{
String portName = Serial.list()[0]; //change the 0 to a 1 or 2 etc. to match your port
myPort = new Serial(this, portName, 9600);
}
还记得我们如何在Arduino中设置Serial.begin(9600)吗?好吧,如果我们不想谈论我所说的那种愚蠢的家伙,最好也将9600作为最后一个参数放在Processing的Serial对象中。这样,Arduino和处理以相同的速率进行通信。快乐的时光!
在draw()循环中,我们将监听串行端口,然后得到一些东西,将其粘贴在val变量中,然后将其打印到控制台(Processing草图底部的黑色区域) )。
void draw()
{
if ( myPort.available() > 0)
{ // If data is available,
val = myPort.readStringUntil('\n'); // read it and store it in val
}
println(val); //print it out in the console
}
Ta-Da!如果单击“运行”按钮(并且Arduino已插入上一页中的代码,则将弹出一个小窗口,几秒钟后,您将看到“ Hello,World!”)。出现在处理控制台中。一遍又一遍,很棒!现在,我们已经解决了如何将数据从Arduino发送到Processing。我们的下一步是弄清楚如何采取相反的方式-从Processing向Arduino发送数据。