Hackaday.io上的示波器项目-Python 供电的科学仪器工具
收藏
分享
脑图
Hackaday.io上的示波器项目-Python 供电的科学仪器工具
关于项目
项目描述:这个项目的启动目标是为我们中间的好奇者提供一个负担得起的,但广泛的测量和控制工具集合。简单地说,它使用具有相当强大的外设集的微控制器,并辅之以各种模拟和数字工具,如可编程增益放大器、波形发生器、LCR仪表、CC源等。所有功能都通过 Python 模块进行控制,该模块在通过 USB 连接到设备的 PC 上运行。数字通信端口允许添加附加板。一套灵活的工具被装进一个紧密集成的单元中,使学生能够探索跨科学的实验。硬件由强大的 Python 模块(如 Scipy)补充,其数据处理能力有助于从博客上获取的数据中提取
相关列表
项目图片
生产版本在这里:这个项目已经适应大规模生产,并包装与SBC运行必要的软件。
该软件有70多个不同的实验,和一个定制的实验设计师。
项目日志!
A) 测量二极管的正向阈值电压,并研究温度对带隙的影响。获得几个 IV 绘图,并沿第三轴绘制为 3D 线图。二极管在采集过程(注意拐点)中某处加热,这增加了热能,改变了频段间隙,导致阈值电压下降。
B) 描述有源带通滤波器,基于运算放大器的多反馈带通滤波器使用在一个传输功能是使用器件的波形发生器、示波器和曲线拟合例程进行实验确定的。*基于PIC1572的PWM波形发生器已被高分辨率DDS(AD9833)所取代。
C) 支持各种 SPI/I2C/UART 协议,允许以即插即用的方式安装各种传感器。测试了各种模块,如加速度计、陀螺仪、多普勒雷达、称重传感器等。
D) 具有唯一地址的廉价无线节点可用于实现用于数据收集的网状网络。无线节点配置为使用 3 个字节地址,这为多个传感点/参数留下了足够的空间。
第三个原型在http://Scipy.in国际科学巨蛇会议上展示。摘要可以在这里找到
系统设计
硬件:以下是当前实现的功能列表
四通道示波器
10 位分辨率。1Mohm 阻抗。1MSPS 采样。可选电平触发。
多达 10K 个样品
多达 14 种不同的可选输入,具有各种输入范围和放大
CH1-CH4 .+/- 16.5V 下至 +/-500mV 。(通过1x-32x可编程增益放大器读取) 。提供交流耦合。
CH5-CH9 (0-3.3V .高达 32 倍模拟增益) 。1e13 欧姆的高阻抗输入(取自数据表)。电路布局可能会改变此值)
IN1 - 连接到充电时间测量单元
5V usb 电源监控
+9V 电源输出监控
可编程恒定电流输出监控
中断驱动的采集。释放设备 CPU 以接受其他命令,并基于示波器允许时处理它们。除非作用域以最大捕获速度运行,否则可以执行其他测量和控制任务。LCR 电路响应实验是一个示例
12 位电压测量,上述所有通道均值 16 个样本。高达 400KSPS 的波形捕获。
四通道逻辑分析仪
可选输入 ID1、ID2、ID3、ID4 和 CH4(内部比较器)
32 位计数器用于 2 通道采集(在最大分辨率下,每个电平之间最多 67 秒的变化。16 位计数器用于 4 通道采集(在最大分辨率期间发生溢出之前,每个电平之间最多 1mS 延迟)。时钟可以缩小,使此延迟增加至 250mS
可为每个输入选择要记录的边缘。[ 落边、上升边、所有边缘等]
通过任何输入以及模拟输入 CH4 通过可配置的内部比较器进行边缘触发
完全由 DMA 驱动。这实质上意味着,一旦逻辑分析器启动,设备可以自由地接受其他命令。它在后台运行,与 CPU 无关。
2 x 28 位相位相关正弦/三角波形发生器,带双极输出
基于 AD9833 DDS 。允许输入/三角输出
8MHz 的默认输入时钟可从 0MHz-1MHz 获得约 0.03Hz 的分辨率。输入时钟可以进一步降低,以实现更高的分辨率(1MHz => 0.004Hz 分辨率 )。
12 位控制每个之间的相位差
每个波根两个频率寄存器。对于频率换档键(FSK)等应用,可以指示DDS在两者之间切换。
通过外部电位计进行振幅控制 (0-+/-3.3V)
4 x 数字输出,也可以配置为具有相位和占空比控制的 PWM 输出。也可用于控制多达四个伺服电机。
频率计数器高达 64MHz
3 x 12 位可编程电压源,范围为 0-3.3V、+/-3.3V、+/-5V。
1 x 12 位可编程常量电流源高达 3.3mA
电容计从几个笔克法拉德(使用CTMU[恒定电流充电),高达几个微法拉德通过恒定电压充电。
电感计使用具有 1nF 电容器的罐电路生成相应的频率,然后由频率计数器测量以计算电感。带可移动芯的电磁阀可用作高精度位置传感器(分辨率<10微米)。
串行外设接口 (SPI)
对频率(高达32Mhz)和模式进行全软件控制
8 位 / 16 位写入
2 专用芯片选择。使用数字输出还可以利用四个
测试了各种附加板和传感器,如 MCP6S21(PGA)、AD9833(波形发生器)、NRF24L01+(2MbPS 数字无线电,地址高达 5-BYTE、自动确认和 32 字节有效负载。无线附加组件计划) 等
集成电路(I2C)端口
可配置时钟频率
端口扫描
测试了各种传感器,如MPU6050(加速度+陀螺温度传感器)、HMC5883L(磁力计)、BMP80(高度计)、MCP4728(12位DAC)、SSD1306(128x64 OLED)。
在电路板上提供ESP-12WiFi。这需要重新编程 ESP8266,以及断开 MCP2200 USB 串行转换器的连接。附加 5V 电源必须从台面或 USB 充电器提供。
24 位 RGB 状态指示灯 LED,带菊花链输出,用于驱动额外的 WS2812 单元
500mA 聚合物保险丝,保护 USB 端口
高稳定性 电压参考。
+/- 9V 输出,用于为双极设备供电
TP4056 锂离子充电 IC
PCB 焊盘,用于通过 UART 输出或通过配置其四个 USB 端口之一,将设备与树莓派直接连接
固件包括硬编码功能,可与以下传感器/硬件接口,可与扩展插槽连接
HX711 24 位称重传感器 - 它有两个完全差分通道,具有 32 倍、64 倍、128 倍可编程增益放大器。
NRF24L01= 2,4GHz 无线电 - 能够以高达 2MbPS 的速度发送数据包,具有 5 个字节寻址,并自动更正和确认错误。这将有助于实现无线传感器网络
AM2302 湿度 + 温度传感器
TCD1304 - 线性光学阵列,1348 像素,可自定义集成时间
HCSR04 距离传感器
软件:
Python 库。程序员手册的草稿可以在一个http://pythonhosted.org/LabtoolSuite/interface.html
用于示波器、逻辑分析仪、外设控制、数据流等的基于 Qt 的 GUIS 是封装的一部分。
几个 GUI 正在开发,用于为初学者设置一组标准实验。
快速设置专用GUIS的框架。
Python 负责三阶校准、曲线拟合和其他复杂的数据分析
项目组件
4 X TL082
2 X TC1240A
2 X ICL7660
1 X LM324
1 X LM311
1 X WS2182
1 X 74HC245
1 X CD4050
1 X 12MHz 晶体
1 X 8MHz 晶体
8 X 107C 103MS
4 X 476C102K6
20 X 香蕉插座
2 X 8 针可堆叠标头
4 X 6 针可堆叠标头
1 X 100K 电位计
1 X 使用 KiCad 设计的 4 层 PCB
1 X 用于制作原玩具激光切割外壳的丙烯酸片
2 X PIC12F1572.不再使用
1 X 浸米卡电容器
1 X 各种 SMD 电阻器、电容器
1 X ADS1248
1 X MCP3550
1 X AD5680
1 X ADR02
1 X AD7718
1 X ESP8266
1 X PIC16F1618
1 X NRF24L01+
3 X MCP3553
1 X OPA2277
1 X AD633
1 X TPS72325
1 X TPS76325
1 X PIC24EP256GP204
4 X MCP6S21
1 X MCP6S28
1 X MCP1725
1 X REF196
1 X MCP2200
1 X MCP4728
2 X AD9833
在机械实验室使用的非接触式位置传感方法中,高速摄像机加图像处理相当普遍。但是,此方法是资源密集型的,并且作为演示呈现一个成本较低的方法。
TCD1304AP 是 DIP 封装中提供的 3648 元件光学阵列。
它基本上是3648光传感器直线对齐,每个都有一个存储电容器。
为了获得数据,用户首先发送一个脉冲,将每个传感器及其电容器连接一个固定的持续时间(相当于相机中的百叶窗)。
快门关闭后,每个传感器电容器上的电压表示其接收的光量。然后,主机必须提供一系列脉冲,在收到每个脉冲后,TCD1304 将电容器一一连接到其模拟输出引脚。主机必须同时读取输出模拟数据并数字化其ADC。
为什么?
本窗体具有多个组件,这些组件显著增加了成本,大多数用户可能不需要这些组件。其中许多可以以附加板的形式提供,从而产生对模块化设计需求。
当前状态下大多数附加组件槽是专用于特定数据总线的单独的 Berg 标头。因此,除了几个模拟 I/O 之外,还实现了一个统一、持久的扩展端口,该端口支持所有可用的插槽。一些可重新布线的引脚以及 DDS 使用的 16Mhz 时钟已路由到扩展插槽。
电磁阀的电感取决于其芯的特性。添加铁磁性材料会提高它,而二磁材料将相反。
设备上的电感计只需将外部插入的电感器与内部高稳定性电容器配对。由此产生的罐体电路以其振振频率驱动,该频率由频率计数器测量。振荡频率由电感 L 取决于电磁阀及其内核。C 是 1000pF。
该视频显示了分辨率为 0.2Hz 的频率计数器,该计数器连接到 L 仪表的输出日志记录变化,这些频率计数器在电磁阀的电感中。插入铁磁性材料会改变频率(在这种情况下,A键在将1cm推入核心后,可给出高达6000分。校准后,并考虑到噪声,分辨率小于10微米)
该方法在力学实验室中有着巨大的应用。然而,它并不匹配光学方法。电磁阀的振荡场应导致附着在记录的体内的铁磁件中轻微扰动。
扩展槽旨在容纳更复杂的仪器,锁定放大器是我希望的附加组件之一。相位相关正弦波已经是包的一部分,因此只需要乘数和低通滤波器。
作为第一步,我玩AD633模拟乘法器,并尝试振幅调制只使用船上可用的工具。
原理图位于 AD633 数据表的示例部分。红色轨迹是调制输出。10KHz 的载波用 150Hz 调制。
调制波的快速 Fourier 变换显示侧带。
精确的 Fourier 变换需要比形成输入波形的最长大得多的采样周期,因此我正在抛光不依赖于握手的实时流式处理协议,并将以尽可能大的速度发送 ADC 读数,而不会丢弃数据包。
最后一个日志涉及测试24位ADC,AD7718,我可能提到,它目前的主要目标是作为一个校准工具。
但是,为了使用它作为一个,它本身必须首先校准一些行业标准的高分辨率DMM。尽管AD7718的数据表声称精度相当高,但任何测量工具的精度都仅与参考值一样准确,在这种情况下,参考值就是REF196。REF196 是一个超稳定的电压参考,但可能有初始偏移。
另一个错误来源是 OPA2277 电平移位运算放大器。我可以使用 Keithley 2100 万用表,并使用它进行此校准。使用python-usbtmc,它可以很容易地接口。代码非常简单
import usbtmc
DMM = usbtmc.Instrument(0x05E6,0x2100) #V-id,P-id
print DMM.ask('*IDN?')
DMM.write('SENS:VOLT:NPLC 1\n')
DMM.write(':SENS:VOLT:DC:RES 1E-6\n')
现在我已经校准了PCB上的单极输入。
下面是一个简单的校准程序的屏幕截图,该程序扫描电压源并记录 Keithley2100 和 AD7718 读取的值。数据将用于生成拟合多项式。
在较低的电压下,两者均相当一致,但在向3.3V的途中,间隙大致呈线性增长至约1.5mV。此偏移量是预期从电压参考,校准将照顾它。重要的是,校准在宽温度范围内有效,这就是使用电压参考和低漂移运算放大器的全部要点。
更新:应用校准因子后,AD7718 中的读数对应于专业 DM,在 +/-100uV 裕量范围内。平均可降低至 <10uV,因为此大致设计的电路板的噪声底楼约为 100uV。继续进行光隔离。
使用定制 PCB 测试 AD7718 24 位 ADC。
AIN1-AIN4已直接分解成引脚头,可用作单极输入/差分对。
AIN5-AIN8 将用于测量双极信号。这些输入使用高精度运算放大器 OPA2277(偏移<10uV,漂移<0.1uV/C)衰减和缓冲,然后电平移动。
几周前哈卡迪分发的 Stickvise 被证明是令人难以置信的有用, 因为我使用表面安装零件很多
现在,它的功能已经合理测试在软件控制,噪声传播低于100uV,可以作出一个光隔离版本,应该提供更好的分辨率。我希望很快发布直方图和其他表征结果。
使用主板 12 位 DAC 的未缓冲电压测试单极输入。
使用使用电压发生器的 Peltier 板检查差分输入。
目前,此附加板的主要目标是用作主板上所有模拟输入的校准工具。AD7718 将首先根据 Keithley 的 6.5 位标准 DMM 进行校准,然后用作校准工具。
需要为原型设计一个外壳,因此我参观了几个激光切割设施,这些设施拥有几种不同的设计。
顶部面板从半透明红色丙烯酸中切出。边缘被加热弯曲了。
我也尝试了清除, 和黑色丙烯酸
......
第 1 步:安装工具链
所有软件都托管在 github 以及 Pypi,安装从 git
sudo apt-get install python-qt4 python-qt4-gl python-opengl python-setuptools ipython-qtconsole
git clone https://github.com/jithinbp/LabToolSuite.git
cd LabToolSuite
sudo python setup.py install
从 PyPI 安装,安装上一个块中列出的依赖项
sudo easy_install LabtoolSuite
第 2 步:运行一些应用
范围、逻辑分析器、各种控制小部件
oscilloscope
流式处理实用程序
Stream
步骤 3:编写自己的代码
带示例的程序员手册托管在PyPI
http://pythonhosted.org/LabtoolSuite/interface.html
评论
0 / 100
查看更多
Sen
2020-08-21
1056
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号