当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]通过这种设置,60 种不同的刺激物以蒸汽的形式从 32 种精油(来自一款芳香扩散器)和 27 种煮制的草药/香料(来自一个热水器)中释放出来。热水器、芳香扩散器和空气净化器均通过 LabVIEW 进行自动控制。整个系统的正常运行对精确的时间控制至关重要。

通过这种设置,60 种不同的刺激物以蒸汽的形式从 32 种精油(来自一款芳香扩散器)和 27 种煮制的草药/香料(来自一个热水器)中释放出来。热水器、芳香扩散器和空气净化器均通过 LabVIEW 进行自动控制。整个系统的正常运行对精确的时间控制至关重要。

这篇主要文章发表在一本著名的期刊《ACS Omega》上。尽管文中对研究结果进行了详细的阐述,但由于篇幅限制,大量的技术细节无法得到充分讨论。

所以,在这篇帖子中,作为第一作者,我将详细讲述我三年来的经历,以及我所创建的所有资源(软件/硬件),以便任何人都可以使用这些资源并自行开展研究!让我们开始吧!

构建传感电路

它是如何运作的?

主要的传感电路设计相当简单。一台 Arduino Uno(1)通过 I2C 和 UART 接口接收来自 K30FR(二氧化碳)和 SFA30(甲醛)传感器的数据。然后它会对这些数据进行处理,并通过 UART 将数据发送至 Arduino Mega。它并未通过 USB 与电脑相连。

Arduino Mega 从 MQ7(一氧化碳)和 MICS5524(总挥发性有机化合物)传感器接收到这些模拟数据信号,并与 PMS5003(颗粒物)传感器进行串行通信。此外,它还会等待 Arduino Uno(1)发送其数据。

最后,它会将所有传感器数据整合成一个字符串,并通过 USB 接口将其发送至运行 LabVIEW 的计算机上。

另外还使用了一个 Arduino Uno(2)来向 N20 电机和 2 个继电器发出信号,以分别控制水加热器的盖子、为加热器供电以及为香薰扩散器供电。(请参考以下步骤)

传感器电路连接:

Arduino Uno(1) ---> Arduino Mega

Arduino Uno(1) ---> SFA30

Arduino Uno(1) ---> K30FR

Arduino Mega --> MQ7

Arduino Mega ----> MICS5524

Arduino Mega ----> PMS5503

注意:我本应该使用性能更优的微控制器,比如 Teensy 板,而非 Arduino,因为 Arduino 只有 10 位的 ADC,所以模拟输入的精度较低。不过,我们更注重的是质的改变而非量的提升,所以这样就足够了。

制造机械开盖器

我希望能让整个装置完全实现自主运行,这包括在实验进行过程中对原料的添加。因此,我使用一台 N20 100 转/分钟的电机构建了一个滑轮系统。一根细的尼龙绳缠绕在其轴上。这根绳子和电机都非常坚固,能够轻松地拉动热水器主体。

框架结构是用一块 5 毫米厚的聚氯乙烯板通过使用防切割工具切割而成的。

此外,我还制作了一个基于晶体管(BC548)的电机控制器,通过 LabVIEW 直接控制电机。LabVIEW 通过一个 Arduino Uno 向这个晶体管发送信号。一个反向二极管(1N4007)用于保护晶体管免受电机产生的反向电压的影响。

每次拉动时,电机会持续工作约 4 秒钟,这段时间足以将盖子完全打开。

设置 OCR 系统

这是该项目的关键部分之一。我们拥有一款市面上可购买到的仪器,它能够显示 PM2.5、甲醛、总挥发性有机化合物、二氧化碳、温度和湿度等的成分。

但该系统没有数据采集的方法。这些仪表价格昂贵,而且资金不允许再购买一台仪表。因此,我们决定采用计算机视觉技术,并使用 MATLAB 来收集数据。

起初,我用手机对计数器进行实时拍摄,并将视频传输至 MATLAB 系统。经过调整优化后,我能够以每秒 1 次的频率采集数据样本,并将其保存在一个数组中。请观看第一段视频。您可以在我的其他“指南教程”帖子中找到更多详细信息。

但使用手机并不方便,我们很快发现普通的网络摄像头无法聚焦近距离的物体;于是我们使用了两个镜头,并通过仔细校准使图像聚焦在摄像头镜头上。

远程控制加热器和扩散器

为了实现完全的自主控制,我需要在一段特定的数据采集时间段结束后(在不受干扰的条件下),开启热水器或香薰机。确切地说,这个时间段是 22.5 分钟。在实验进行的过程中,我不能直接走进房间然后打开热水器。

因此,通过使用两个继电器和一个 Arduino,我能够直接通过 LabVIEW 启动加热器。当然,我得对扩散器和加热器的开关进行一番调整。继电器会在接收到来自 LabVIEW 的信号后闭合这些设备的电源开关。继电器还负责关闭这些设备。

伺服电机设置以实现远程开启空气净化器

我们还进行了一项使用空气净化器的实验。由于不允许我破坏空气净化器的电路,所以我采用了最简单的方法来远程启动空气净化器。

通过将 MG90S 伺服电机与 315MHz 远程接收器相结合,我能够从另一个房间直接控制开启/关闭空气净化器。使用 LORA 模块而非 315MHz,因为这样效果更好,并且可以添加更独特的地址。

该系统目前是基于一块面包板搭建的,并由一个移动电源为其供电,用于该特定实验。当 Arduino Pro Micro 接收到来自远程收发器的高电平数字信号时,它会将伺服电机旋转到特定角度,从而按下设备的开/关按钮,使其开启。

这次实验的结果令人惊叹。

仪表盘

主控制面板是使用 LabVIEW 2021 软件制作而成的。该项目的核心是 LabVIEW 软件。据美国国家仪器公司(NI)介绍:“LabVIEW 是一种系统工程软件,适用于需要进行测试、测量和控制的应用场景,能够快速访问硬件和数据洞察。”它会展示实时数据,并创建一个 Excel 文件来存储这些数据。

其特点包括:

•为 Arduino、摄像头和 MATLAB 选择可用的 COM 端口

•样本数量、时间延迟以及超时情况。

•Excel 输出文件目录选择(带文件名)。

•现实生活中空气质量指数参数的可视化展示。

•用于远程观察的实时网络摄像头直播画面。

•用于手动控制加热器和滑轮的按钮。

开始实验的步骤:

•在虚拟端口上运行 MATLAB 图像识别代码。

•在运行 LabVIEW 脚本程序之前,请从下拉菜单中选择相应的 COM 端口和相机端口。

•输入本次实验需要记录的样本数量。

•设置导出文件的存放目录,并在文件名后加上“.xls”后缀。

•最后,使用运行箭头按钮来运行这个 VI(可视化界面)。

系统会自动从这里开始接管操作。

LabVIEW 后端

后端系统已经开发了两年之久!最初只是进行基本的数据采集,而现在它能够从头到尾自动完成整个实验,几乎没有出现错误。它看起来可能有些复杂,但实际上它被分成了几个几乎独立运行的部分。

每个部分的运作方式:

•循环:它主要负责与 Arduino Mega 和 MATLAB 进行串行通信的初始化。它会接收一段数据字符串,利用“空格”作为分隔符将数字分隔开来,并将它们分别整理成单独的数字。这些数字会被输入到电子表格中,并通过多个“波形图”进行查看。

•数据保存与计数器:此部分会在指定目录中创建一个电子表格,其中包含从“循环”和“日期及时间循环”部分收集的数据。此部分还会记录所有过程的时间,包括样本放置初始化、剩余实验时间以及停止实验的时间。

•示例操作流程:该部分使用 LabVIEW 的 LINX 软件包来控制 Arduino Uno(2)。这包括开启/关闭热水器和香薰器,以及向 N20 电机发送信号以拉开盖子。还可以使用“顺序超控”按钮来中断此过程。

•网络摄像头循环:此循环会启动与 USB 摄像头的通信,并通过“网络摄像头实时”模块显示实时画面。

•日期和时间循环:此部分会从我的电脑中选取当前的日期和时间,并将其显示在前端界面。该数据还会通过一个全局变量传递至“数据保存与计数”部分。

•指示器:前端设有若干指示灯模块(发光二极管),若所有连接均成功则这些指示灯会亮起。

•预热计时器和自动采集启动器:顾名思义,此装置使用了一个预先制作好的子 VI 来将样本编号转换为小时、分钟和秒。该子 VI 还会在第 675 个样本后发出“DAQ 开始”的信号,从而启动 N20 电机和热水器。

MATLAB 代码与 LabVIEW 的集成

我发现了一种更简便的方式来实现这两款复杂软件之间的数据交换——那就是串行通信。其基本原理是:

•一款虚拟串口模拟器软件可通过 COM21 和 COM20 端口创建“虚拟串口对”。

•Matlab 会连接到虚拟端口(COM21),并以 9600 波特率将数据发送至该端口。

•LaVIEW 连接到另一个虚拟端口(COM20),并等待接收数据。

由于这两个端口“实际上是相连的”,这就为数据从 MATLAB 传输到 LabVIEW 建立了一个通道。

这就是在两个顽固的软件之间进行数据传输的简单方法。

连接一切并为其供电

此时,设备已准备就绪可以运行了。为了在我的房间和实验室之间建立有线连接,我不得不实实在在地在墙上钻了个洞。该设备仅通过一根 USB-A 扩展线与电脑相连。

在进行实验前准备补救措施

由于实验是完全自主进行的,所以我必须事先准备好草药和香薰油。这是至关重要的一步,因为新的实验要求容器不能残留之前的化学物质。

在每次实验开始前,将这些药剂放入冷水中,并用盖子密封好。之后,使用电动机将盖子机械地取下,接着打开热水器/香薰器,让药剂在房间里扩散开来。

实验期间的少量片段

数据的导出与分析

最后,是时候分析数据并得出结论了。

LabVIEW 在实验开始时会创建一个空白的 Excel 文件,并在整个实验过程中将数据写入该 Excel 文件中。

我们使用 OriginPro 软件根据数据生成了图表。我的合著者帮我仔细整理了这些图表,包括所有的单位换算、趋势、对比等内容,并最终制作出了如上图所示的完整图表。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

你是否曾无意间购买了 360 度伺服电机,或者恰好自己就有多两个?那么这个项目就是为你准备的!它使用了一个 ESP32 微控制器、两个 360 度 sg90 伺服电机、两个 18650 电池、MP1504en 芯片、一个...

关键字: 伺服电机 ESP32 微控制器 3D 打印

在工业自动化、机器人、数控机床等领域,运动控制系统是核心部件之一,而步进电机和伺服电机是最常用的两种执行器。虽然两者都用于实现精确的位置控制和速度控制,但它们的控制原理、性能参数、应用场景和优缺点存在显著差异。选择合适的...

关键字: 步进电机 伺服电机

这个使用Arduino的自动收费站系统项目演示了如何使用Arduino Uno, RFID技术,IR传感器和伺服电机构建一个全自动收费站系统来处理车辆检测,支付处理和闸门控制-所有这些都无需人工干预。这是一个动手,初学者...

关键字: Arduino RFID 传感器 伺服电机

狗被广泛认为是人类最好的朋友,这是有充分理由的——它们忠诚,和它们一起玩很有趣,而且会认真地听命令。但任何养过狗或照顾过狗的人都知道,照顾狗是一项繁重的工作。他们总是需要食物和水。即使在极热或极冷的天气里,它们也需要持续...

关键字: 机器狗 游戏控制器 伺服电机 蜂鸣器

在工业自动化与精密控制领域,伺服电机作为核心驱动元件,其性能直接决定了系统的响应速度、定位精度和运行稳定性。其中,惯量作为伺服电机的重要参数,对电机的动态特性和应用场景选择具有决定性影响。

关键字: 伺服电机 电机

伺服电机广泛应用于机器人、自动化和DIY项目,因为它们可以精确控制角度位置。Arduino Nano结构紧凑,用途广泛,非常适合在空间有限的项目中控制伺服系统。在本教程中,我们将学习如何使用Arduino Nano连接和...

关键字: Arduino Nano 伺服电机 机器人

Arduino通过计算从超声波距离传感器接收到的数据来打开/关闭水泵。如果数据距离传感器有一定距离(以代码为单位-英寸),那么Arduino就会打开水泵。打开后,它检查数据是否距离传感器有一定距离(以代码为单位-英寸),...

关键字: Arduino Uno 传感器 水泵

在这个项目中,我将向您展示如何通过蓝牙在智能手机应用程序的帮助下控制伺服电机。

关键字: HC-05模块 Arduino Uno 伺服电机

伺服电机是通过信号线发送一系列脉冲来控制的。控制信号的频率应为50Hz或每20ms出现一次脉冲。脉冲的宽度决定了伺服器的角度位置,这些类型的伺服器通常可以旋转180度

关键字: 伺服电机 Arduino HC-05蓝牙模块

PSOC™6 Wi-Fi BT原型工具包是一款开发板,具有PSOC™6(可编程片上系统)微控制器,这是一种功能强大且灵活的芯片,可用于广泛的应用。以下是我们用这种芯片完成的一些项目:鳄鱼肱二头肌训练器、慕尼黑啤酒节智能啤...

关键字: PSOC™6 MicroPython 伺服电机
关闭