×

使用树莓派的数据采集盒

消耗积分:0 | 格式:zip | 大小:0.03 MB | 2022-12-22

张红

分享资料个

描述

该项目是一个使用树莓派的数据采集盒,依赖于带 SPI 接口的 MCP3008 8 通道 10 位 ADC它的目的是帮助数据收集和绘制数据(使用免费工具 gnuplot)、一系列按钮(用于标记事件,例如开始、停止和重要事件),以及一个 16 字符 x2 LCD 显示屏,以便 Pi不必连接到要使用的显示器和键盘。

项目中的所有内容:图纸、原理图、BOM、示例数据和绘图,以及该项目的代码都在 github 存储库中,我建议您检查它是否有任何更新或问题:

https://github.com/kmkingsbury/raspberrypi-data-ac...

那么,谁准备好搞点科学了?

第 1 步:计划和材料

 
 
 
 
poYBAGOjsoSAdErgAACfslSdXsk369.jpg
 
1 / 2
 

SketchUp 用于规划/设计盒子。图纸在SketchUp Drawing中的 git 中,屏幕截图在图像中。

布线示意图是在 Fritzing 中完成的,可以在布线示意图中找到, 图像中也有屏幕截图。

物料清单(也在Github BOM中):

硬件

项目计数价格网址/来源红橡木爱好板(常见:1/4 英寸 x 6 英寸 x 2 英尺;实际:0.25 英寸 x 5.5 英寸 x 2 英尺)1 6.47 美元

主板支架 8 7.90 美元(50 个)

圆头标准 (SAE) 机用螺丝 #4 和 #6 尺寸 ~16 12 颗 1.24 美元

电子产品

商品数量 价格 Url/Source Raspberry Pi 2 或 3 1 37.99 美元或 45.97 美元

要么

MCP3008 1 3.75 美元

按钮(绿色、黑色、红色、蓝色)4 6.98 美元(一种颜色 10 个)

5 向导航按钮 1 $2.95

电位器 1 1.25 美元

LCD 16x2 字符显示器 1 15.95 美元

3 针极化连接器(公头和母头)4 0.50 美元

可选:16 针圆孔 DIP IC 芯片插座适配器 1 5.16 美元(10 个)

可选:PCB板 16 Pin 1 7.11 (for 20)

(我在 Radioshack 花了 2 美元买了我的)

什物

  • 连接线
  • 油漆和底漆(或木材染色剂)
  • 木胶
  • 小钉子
  • 电线收缩包装
  • 电工胶带
  • 用于 GPIO 引脚的旧 IDE 电缆 ( http://amzn.com/B002BBNEOU )
  • 主板支架(也在上面列出)
  • 螺丝 #4 & #6(也在上面列出)
 
 
 

第 2 步:构建盒子

 
 
 
 
pYYBAGOjsoiAXkRCAADXEbLZtGY348.jpg
 
1 / 7
 

这一步需要的材料:红橡木、小钉子、木胶

此步骤所需的工具:锯、钻、锤、锉刀、打磨机/砂纸、带铣刀的 Dremel

测量和切割:

  • 底部 - 5 1/2" x 6"
  • 侧面 (2) - 5 1/2" x 2 1/2"(角度约为 26.6°,对于面部,标记为 2" 深和 1" 向下)
  • 背面 - 5 1/2" x 2 1/2"
  • 顶部 - 5 1/2" x 3 1/4"
  • 正面 - 5 1/2" x 1 1/2"
  • 在底部的所有侧面和侧面、正面和背面的底部边缘切割 1/2" 盒形接头。我建议使用带铣刀的 dremel,红橡木在 1/4" 处非常薄,以至于普通铣机可能是太强大了,我有我的问题并且有更好的运气和 dremel 的控制。

Raspberry Pi 端口插槽:

  • 左侧 - 在 2 1/4" x 1" 的左侧为树莓派以太网和 USB 端口切一个正方形。如果您有路由器和锉刀,您可以钻孔并切出正方形,或者您可以采取简单的方法,从边缘直接切割到您需要的深度。
  • 背面 - 切割一个 2 1/2" x 1/2" 的正方形或为电源、HDMI 和音频端口钻单独的孔,只需确保孔足够大以容纳端口和连接器的宽度,例如我的电源线,而 microusb 非常粗,因此孔需要比 microusb 端口大。

注意事项

  • 红橡木的宽度为 5 1/2 英寸,因此所有部件的一个尺寸都已经处理好,而且它只有 1/4 英寸厚,因此很容易用带锯或手锯切割。
  • 您会在图片中注意到,我的设计最初在倾斜的面上有一个唇缘以与前部对齐,这是一个设计错误,导致前部的有机玻璃没有正确固定,因此在图纸中将其移除。
  • 在钉入钉子或螺钉之前一定要先钻导孔,否则木头很可能会裂开。
  • 我还用了一点木胶来帮助把它们粘在一起。钉住并粘住侧面和底部,但不要连接顶部(我们将在下一步中以不同的方式安装它,以便轻松连接和重新连接)。
  • 在创建我的零碎科学球童时,我最初将侧面和顶部全部连接在一起,底部可拆卸,结果证明这是一个糟糕的主意,因为如果你需要调整电线或在里面做任何工作,如果不移除就很难拿到它整个东西。所以在图纸/计划中,您会看到顶部和有机玻璃是可拆卸的,底部使用简单的盒接头连接到侧面。

第 3 步:支架和前板

 
 
 
 
pYYBAGOjsoqADHmoAAB1AXTNVk8736.jpg
 
1 / 7
 

此步骤所需的材料:有机玻璃、主板支架或支架、螺丝、木胶。

此步骤所需的工具:锯、钻床/钻床、带尖端的 Dremel

测量和切割:

  • 有机玻璃正面 - 2 15/64" x 6"

对于前面板和顶部,我们希望能够轻松地将它们取下并重新装上(因为我们在科学冒险过程中更换组件、升级或扩展我们的盒子)。为了轻松做到这一点,我重新设计了旧电脑上的一些主板支架。

根据您使用的主板支架或支座的尺寸,在顶部和倾斜的前边缘钻孔。我不得不使用两种不同的孔尺寸,首先是支架底部螺钉的较窄孔,然后是顶部支架部分的稍大孔,一点木胶将其固定到位。使用钻床可以很容易地获得正确的深度

在有机玻璃上钻孔,用于连接 3 针连接器、电位计和 5 向导航按钮的模拟组件(我有 4 个,但芯片最多支持 8 个)。您想要为 LCD 测量并切出一个矩形。

第 4 步:接线

 
 
 
 
pYYBAGOjso2AGbqTAAE2bIjS-58802.jpg
 
1 / 6
 

此步骤所需的材料:IDE 电缆、电线、组件(LCD、按钮、MCP3008 等)

此步骤所需的工具:烙铁、收缩包装、助焊剂、胶枪。

为了将 LCD、MCP3008 A/D 芯片和所有不同的按钮连接到 Raspberry Pi,我重复使用了一条旧的 IDE 电缆,如果你把它拉开恰到好处,就可以完美地连接到 GPIO 引脚。这是我第三次或第四次这样做并取得了成功;但也有一些陷阱和问题需要避免。

连接到 Notch,仅此而已

图中是从接头/连接器上取下的单个 IDE 引脚之一的特写,红色箭头表示关键缺口。这个小凸起是将引脚“锁定”到连接器中的原因,所以你不想让焊料超过这一点,否则引脚不会卡入/锁定到接头中,最终可能会导致连接不良或引脚喜欢从连接器上掉下来。

使用助焊剂和收缩包装

这与前面的陈述一致,为了有效焊接并获得良好的接头,您需要使用助焊剂,否则引脚的“焊接”可能非常脆弱。此外,助焊剂有助于防止焊料通过该关键凸点。最后,使用收缩管保护接头,避免与相邻的销接触。应用管道时,还要确保它不会向下延伸太远,并妨碍销钉正确固定在接头/连接器中。

除非加固,否则避免弯曲

销钉不是超级耐用,因此您要避免弯曲和弯曲销钉或接头,否则可能会发生断裂,您将无法获得良好(或任何)连接。一种方法是在引脚上放置一些胶水(来自热胶枪)以将它们固定到连接器中,涂抹足够的胶水以覆盖整个引脚,这几乎不可能对连接器进行更改,但它'将使它足够坚固,以便在连接的电线而不是引脚和焊点上发生任何弯曲。

我使用了 Radioshack 的 PCB 板和用于 MCP3008 芯片的 16 针 IC 安装,这使得布线更加容易。

第 5 步:传感器

 
 
 
 
poYBAGOjso-ABCG6AACg4_BlvaY561.jpg
 
1 / 6绞线夹具
 

此步骤所需的材料:模拟传感器、电线、3 针连接器此步骤所需的工具:烙铁、收缩包装、助焊剂、钻头。

我们在这里将科学知识抛在墙上,看看有什么能坚持下去,这样您就可以使用任何您喜欢的模拟传感器,理想情况下它们是 3 针并使用 5V。

这些照片显示了我使用的一些常见传感器:

这些类型的模拟传感器需要三根电线:红色用于 5V,黑色用于接地,以及用于数据线的其他东西,例如绿色。我喜欢使电线保持整齐和扭曲,因此使用我在大学学到的技巧,我用鳄鱼夹做了一个小夹具,用手持钻头固定和扭曲电线(见照片)。

将一端连接到传感器,另一端连接到 3 针连接器,以便轻松连接/断开连接。

还要确保连接您的传感器以提供足够的松弛度,以便从盒子到您的科学发生的地方!

第 6 步:软件、绘图和数学,天啊!

 
 
 
 
pYYBAGOjspOAOuwpAAExY_FUtNo383.jpg
 
1 / 6
 

该盒子由 Python 代码驱动,可作为 git repo https://github.com/kmkingsbury/raspberrypi-data-ac...

collectdata.py python 是主要的主力,有多种选择。

config.ini 定义了各种组件使用的 GPIO 引脚,如果您按照 Fritzing 示意图中的接线进行操作,那么 config.ini 中设置的值是正确的。

wifi.py 是我在 PI 启动时启动的一个简单脚本,它只打印出 wifi IP 地址,这样我就可以通过 SSH 连接到 Pi,图像中就是一个例子。

对于每次运行,默认情况下会创建一个数据文件和一个元数据文件,这将转到 /media/usb0 并将写入连接到 Pi 的 USB 记忆棒(前提是您设置了 usbmount)。数据文件包含日期时间和传感器读数。元数据文件包含使用的参数(多少通道、采样频率等)以及有关数据的统计信息(最大值、最小值、平均值、收集的样本数)。最后,元数据文件还记录了来自顶部按钮的事件。顶部按钮以及 5 向导航按钮执行特定功能,但您可以修改它们以获得您想要的任何其他功能:

顶部的 4 用于标记数据运行期间的关键事件,我用它们来标记不同事件的开始、标记状态转换(流体现在正在沸腾),甚至是像碰撞传感器这样的错误,让它从它正在测量的表面上脱落,等等。

前面的 5 向导航按钮用于操作 LCD 上显示的数据。默认情况下,显示屏显示来自每个传感器的值,然后我使用:

  • 向上推动以切换显示以显示传感器的最大值
  • 向下显示传感器的最小值
  • 显示传感器平均值的权利
  • 左侧显示当前值与平均值的偏差。
  • 中心推返回到常规默认显示。

图像显示了这方面的一些例子。

绘图是使用 GNUPlot 工具制作的。

github 存储库包含一个 sample-data-sets 文件夹,其中包含两个示例集以供参考并帮助您开始使用自己的示例集。

  • 当水被加热至沸腾然后冷却时,1000 毫升烧瓶的温度读数。
  • 未连接时 4 个传感器的读数。发生这种情况时,引脚处于“浮动”状态,输出不可预测。它处于未定义状态,即既不是 0 也不是 1。在电子学中,这被称为第三状态、开路或浮线。

两个样本的图都在图像中。

第 7 步:最后的想法

我对我的 Scrappy Science Caddy 结果非常满意,到目前为止它已经有了一些实际用途,但就像任何项目一样,完成后我就在想办法改进它,比如

  • 添加一个电池组,使其不与电源线相连。
  • 数字传感器
  • 将特定传感器从 5V 输入更改为 3.3V 输入的开关。

我喜欢在处理项目时发布有关项目的信息,或者学习新技术并发布更多构建过程的照片,如果您喜欢这类内容,请查看我的 Facebook 页面https://www.facebook.com/spacemanlabs/

谢谢阅读!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !