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

Python Beaglebone Black上的模拟采样仅读取噪声,python,beagleboneblack,Python,Beagleboneblack,我想用python编写一个脚本,用beaglebone black进行数据采集。然而,我只是在读取值时才得到噪声 我有一个输入信号的电路(我运行的是一个.1-10赫兹的12伏方脉冲),电压调节器将电压限制在5伏,分压器将电压降到BBB上模拟引脚的安全电压(~1v) 线路: 然后使用python脚本,我想将这些值记录到一个数组中,并在程序完成后绘制它们 在ipython shell中: In [1]: import Adafruit_BBIO.ADC as adc In [2]: import

我想用python编写一个脚本,用beaglebone black进行数据采集。然而,我只是在读取值时才得到噪声

我有一个输入信号的电路(我运行的是一个.1-10赫兹的12伏方脉冲),电压调节器将电压限制在5伏,分压器将电压降到BBB上模拟引脚的安全电压(~1v)

线路:

然后使用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型示波器,波形是我所期望的。我还设置了一个电位计,如下所示:


我能够通过python读取正确的值。因此,我认为这一定是因为连续采样造成了问题。

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

请参阅“缺少连接”导线。如果没有,则电源电流没有返回路径(蓝色箭头),因此浮力计上不会有任何电压(记住欧姆定律:
电压=电阻x电流
。如果电流为零,则采样电压也必须为零)

对于脚本部分,您可以使用以下命令直接将采样数据写入文件:

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

中断脚本时,您将获得
示例数据.csv
文件,所有值用逗号(
)分隔,可轻松导入电子表格或用于打印的其他软件。

确定。。但确切的问题是什么?我如何读取方脉冲而不只是获得噪声?除非你没有显示连接,否则你使用的电路没有意义。
AIN0
ADC\u GND
节点将处于相同的电位。谢谢!那很有趣。我不需要那种“连接缺失”来使用电池和更换电位计获得准确的电压读数。电路的动作就像通过beaglebone接地一样。但是,要使用函数生成器获取读数,您是对的。我确实需要那个连接。(我在o型示波器上看到波形的原因是示波器将电路接地..duh)。我不太清楚为什么会有区别。手册确实说接地引脚是“参考接地”,但没有详细说明。如果你能澄清的话,还有额外的要点……如果你用同样的9伏电池为Beaglebone本身供电,那么电流返回路径已经存在,只是没有画出来。信号发生器并非如此,因为您可能为Beaglebone使用了电池或其他电源,并且发生器有自己的电源。如果你不把两个接地连接在一起,你就会失去发电机的返回路径。你所说的绝对有道理。但是没有,我没有用电池给beaglebone供电。它有自己的电源(USB连接到我的电脑)。。您当时正在从计算机为电路板供电,但正在观察示波器的探头接地/接地连接到电路的哪个点?很好!物理又正常了:)