gpt4 book ai didi

Python 和 matplotlib 以及 Arduino

转载 作者:太空宇宙 更新时间:2023-11-03 17:38:09 24 4
gpt4 key购买 nike

我对 arduino 和一般编码很陌生。我正在尝试获取实时绘图来绘制来 self 的arduino 的模拟值。查看在线的几个示例,我得到了一些代码,这些代码将尝试拉出图形,但声明 'str' 不支持缓冲区接口(interface)。 另外,当我打开 arduino 程序在 COM3 端口上运行时, Python 代码表示无法打开 COM3 端口。这是我的 Arduino 代码

float Concentration=0;

int val = 0;

void setup() {

// put your setup code here, to run once:

Serial.begin(9600);

}

void loop() {

// put your main code here, to run repeatedly:

val = analogRead(3);

Concentration = log ((val)/486.771)/-3.478;

Serial.println(Concentration);

Serial.print("\n");

delay(100);

这是我的 Python 代码

import serial

import numpy as np

from matplotlib import pyplot as plt

ser = serial.Serial('COM3', 9600)

plt.ion() # set plot to animated


ydata = [0] * 50

ax1=plt.axes()

# make plot

line, = plt.plot(ydata)

plt.ylim([100,400])

# start data collection

while True:

data = ser.readline().rstrip() # read data from serial
# port and strip line endings
if len(data.split(".")) == 2:

ymin = float(min(ydata))-10

ymax = float(max(ydata))+10

plt.ylim([ymin,ymax])

ydata.append(data)

del ydata[0]

line.set_xdata(np.arange(len(ydata)))

line.set_ydata(ydata) # update the data

plt.draw() # update the plot

plt.pause(3)

最佳答案

Arduino代码没问题(如果您在发布的代码中添加了缺少的 }

我在这里编写了一个小JavaScript来测试一些arduino代码:http://zcuba.dk/arduinoSimpleSim/

它不会模拟 arduino,而是将草图转换为 JavaScript,并在浏览器中运行。

它并不完整,也不能做太多事情,但足以进行简单的测试。(它还不能做的事情之一是转换为数学函数)因此,复制粘贴,添加“}”并将“log(”替换为“Math.log(”),您将看到代码运行完美。

它按照预期将值写入串行端口:5V -> -0.21354 +/- 噪声0V -> 1.6 +/- 噪声

所以问题是Python问题。

我测试了你的代码,但没有串行连接,它在 python 2.7.10 上运行良好如果我这样做:

#import serial
from random import randint

'''
data = ser.readline().rstrip() # read data from serial
# port and strip line endings
'''
data = "1." + str(randint(0,200))

所以问题(据我所知)仅存在于串行连接中。

请参阅本教程: http://petrimaki.com/2013/04/28/reading-arduino-serial-ports-in-windows-7/

正如你所看到的,你的代码应该可以工作,所以我的猜测是你的arduino不在COM3上,或者COM3被Arduino IDE使用

除非您使用的是 python 3。如果您使用 Python3x,则字符串与 Python 2.x 的类型不同看到这个:PySerial and readline() return binary string - convert to regular alphanumeric string?

关于Python 和 matplotlib 以及 Arduino,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30932494/

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