gpt4 book ai didi

python - Beaglebone Black 上的模拟采样仅读取噪声

转载 作者:太空宇宙 更新时间:2023-11-03 14:27:00 32 4
gpt4 key购买 nike

我想用 python 编写一个脚本,用 beaglebone black 进行数据采集。但是,我只会在读取值时收到噪音。

我设置了一个电路来输入信号(我运行的是大约 0.1-10 Hz 的 12v 方波脉冲),稳压器将电压限制为 5v,分压器将其降至安全电压(~1v) 用于 BBB 上的模拟引脚。

电路:

enter image description here

然后我想使用 python 脚本将值记录到一个数组中,并在程序完成后绘制它们。

在 ipython shell 中:

In [1]: import Adafruit_BBIO.ADC as adc
In [2]: import time
In [3]: AIN0 = "P9_39"
In [4]: T = 0.1 # or some other value
In [5]: adc.setup()
In [6]: a = []
In [7]: while True:
a.append(adc.read(AIN0)*1800) # pin value times 1.8 ref voltage
time.sleep(T)

运行一段时间后,我使脚本崩溃并将a 写入一个文件以scp 到我的桌面。但是当我绘制它时,它只是噪音。我已经在 AIN0 和地面之间连接了 o-scope,波形是我所期望的。我还像这样设置了一个电位器:

enter image description here

而且我能够通过 python 读取正确的值。所以,我认为这一定是关于进行连续采样的事情,这会产生问题。

最佳答案

如果您不将电源地线连接到您的 Beaglebone 地线,它将无法工作,而且您确实应该只会看到噪声,因为 AIN0 将对 Beaglebone 的地线进行采样。您必须连接它们才能AIN0看到感兴趣的信号。

fixed schematic

请参阅“缺失连接”线。如果你没有,你就没有来自电源的电流的返回路径(蓝色箭头),所以电位计上不会有任何电压(记住欧姆定律:电压 = 电阻 x 电流。如果电流为零,则采样电压也必须为零)。

至于脚本部分,你可以直接将采样数据写入文件:

with open('sampled_data.csv', 'w') as f:
while True:
f.write(','.join(str(adc.read(AIN0)*1800)))
time.sleep(T)

当您中断脚本时,您将获得 sample_data.csv 文件,所有值均以逗号分隔 (,),该文件可轻松导入电子表格或您用来绘制它的其他软件。

关于python - Beaglebone Black 上的模拟采样仅读取噪声,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19039710/

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