一款简易金属探测器设计

2021-07-29 14:04延安大学西安创新学院王海军
电子世界 2021年13期
关键词:流程图蓝牙串口

延安大学西安创新学院 王海军

我们把专门用于探测金属的电子仪器称为金属探测器,最初,它经常会被用在战争中排查地雷,或者去排查墙体或者地底下是否存在电缆,还能让科考队用来进行地下探宝,探测埋在地底下一些有价值的金属物体。现如今,金属探测器更是被广泛应用于各大场所及领域,如监狱系统来检测罪犯是否私藏管制刀具、各种大小型车站用来检测乘客有没有带金属危险物品上车、还有一些超市以及自主购物、自主用餐的一些场所用来做防偷检查,也可用于考试时检测考生有没有带违禁物品进入考场。

1 系统总体方案及模块设计

系统整体方案:

使用Arduino Mega 2560作为该简易金属探测器主控芯片,由MOSFET和Arduino微控制器组成脉冲发生器。当线圈检测到有金属时,通过蓝牙模块hc-05将信息发送给应用程序“spirit PI”,通过应用程序的计算,如果线圈下有金属,手机会发出声音并且震动,用于提示发现金属。系统整体方案设计如图1所示。

图1 系统整体方案设计图

2 系统硬件电路设计

2.1 Arduino Mega 2560微控制器的概述

Arduino Mega 2560与市场上其他主板相比,它具有更多的存储空间和I/O引脚。板上集成了54个数字I/O引脚和16个模拟引脚,54个数字I/O中有15个可实现PWM功能。板上添加了一个16MHz频率的晶体振荡器。该最小系统采用USB端口将代码从计算机写入微控制器。

2.2 HC-05蓝牙模块介绍

HC-05是一款操作简单的串口协议模块,使用该模块的目的在于无线串行连接设置。该系统采用了CSR蓝核04-外部单片蓝牙系统。使用互补金属氧化物半导体技术,具有自适应跳频特性。它的占地面积只有12.7mmx27mm。此模块通常支持30多道AT命令(操控蓝牙模块的指令)。

HC-05蓝牙模块的两种工作模式分别为:一是自动联机和透通模式,另一是命令响应又称为AT模式。动联机和透通模式即把从接收数据引脚进来的数据,变为无线信号发送出去;以及收的数据,从发送数据引脚发送给控制器,其自身不能分析数据,同时不能被控制。下面我们详细介绍一下这两种工作模式。在自动联机工作模式下模块又可分为主、从和回环三种工作角色。1)当模块处于自动联机工作模式的时候,将会自动根据事先设定的方式连接的数据传输;2)当模块处于命令响应模式的时候,便可以执行AT命令,我们就可以向模块发送各种AT命令,为模块设置控制参数或者发布控制命令。

2.3 MOSFET IRF740介绍

来自Vishay的第三代功率MOSFETs为设计人员提供了快速开关、坚固的器件设计、低导通电阻和高性价比的最佳组合,集诸多优点于一身。这个系列的产品有更低的栅电荷,这款功率MOSFET是使用该公司基于条带布局的统一MESHOVERLAY工艺设计的。与来自各种来源的标准零件相比,该技术可以匹配并提高性能。一般会用于切换大功率设备、逆变电路、DC-DC转换器、电机控制速度、LED调光器或闪光灯、高速开关应用。

实物图和引脚图分别如图2、图3所示:

图2 MOSFET IRF740实物图

图3 MOSFET IRF740引脚图

2.4 TL072放大器的介绍

TL072是结型场效应晶体管它具有宽共模电压、低偏置电压、低输入失调电流、内部频率补偿、输出短路保护、低噪声、低功耗、高压摆率、无闩锁操作、低温度系数等特点。可以用于UPS、音频混合器、逆变器、示波器等电子产品。

2.5 系统硬件电路设计原理图

上述各个模块芯片还有必要的常用元器件构成了整个硬件电路,硬件电路原理图如图4所示。

图4 硬件电路原理图

3 系统软件部分设计

3.1 软件开发环境介绍

此次设计的软件开发环境是Arduino IDE,开源Arduino软件(IDE)使得编写代码和将其上传到开发板上变得容易。该环境使用Java编写,简单、清晰,对于一个初学者来说比较容易使用,高级用户也可以利用。并基于Processing和其他开源软件。它还可以和Arduino的其它型号的开发板一起使用。

3.2 系统重要函数

初始化函数:void setup()作为Arduino必不可少的入口函数,其主要功能为对串口的波特率、特殊的数值以及脚位的模式进行初始化设置;该程序在此函数中将串口波特率设置为115200,对脉冲宽度的占空比以及脉冲的频率进行了初始化操作并将其数值存储于Arduino自带的EEPROM(电可擦可编程只读存储器)芯片中,以防断电数据丢失;与此同时将连接线圈的数字脚位设置为OUTPUT模式。初始化函数流程图如图5所示。

图5 初始化函数流程图

设置占空比和频率函数:setDutyAndFreq(char value)为设置占空比和频率的函数,该函数将从串口获取的数值作为参数,并判断参数的值对占空比以及频率作出相应的改变后存储于EEPROM芯片中。设置占空比和频率函数如图6所示。

图6 设置占空比和频率函数流程图

读取电压函数:readVolt()为读取电压函数,当在单个线圈中建立电流后,关闭该电流会使该场崩溃,从而产生电磁场,当磁场消失时,会感应出一个电压回线圈,该函数则是用来读取该电压,通过读取连接线圈的模拟信号A7口的数值,并将该数值转化为电压,然后利用分压原理对该电压进行重复计算后取平均值。

loop循环函数:该函数调用了Arduino库中的micros()和millis()函数来获取Arduino运行程序时的微秒数和毫秒数,用来判断程序运行的时间是否超过以初始化频率计算出的单个周期,在判断该条件之前,Arduino先对串口进行判断是否有数据输入,如果有数据输入则读取该数值,并将该数值作为函数setDutyAndFreq()的参数,来对EEPROM中存储的占空比以及频率的数值进行改变;此判断结束后,判断程序运行时间是否超过单个周期,超过则重新计算周期,并对线圈进行快速的上电和断电操作从而获取相关数值,最终利用蓝牙传输数据。

3.3 总程序流程图

有以上对程序的分析画出如图7所示的流程图。

图7 总程序流程图

4 软件系统调试

Arduino单片机模块功能强大,使用起来方便简易,它的开发应用系统可用JAVA、C语言等来编写,而且Arduino IDE具有语言简洁、表达能力强、表达方式灵活、可以直接控制计算机硬件系统、生成代码质量高等很多有优点。

(1)首先根据系统要求,在Arduino IDE中用C语言编写程序。

(2)确认程序编写正确无误后,将其进行程序加载、运行。

结论:设计了一款简易金属探测器,主芯片采用Arduino最小系统板。其原理主要是依据脉冲感应原理,只用一个线圈就行,即该线圈既是发射线圈Tx也是接收线圈Rx。同一线圈发送信号,然后接收信号。该金属检测器在60Hz的极低频率下工作,在Arduino微控制器的帮助下,能够更轻松地处理信号,为了使其具有无线性,使用蓝牙模块hc-05,将线圈接收的数据发送到智能手机。由漆包铜线所制成的线圈发送巨大的短脉冲电流,每个脉冲产生一个短暂的磁场。当一块金属进入磁场线的范围内时,接受线圈RX就可以检测接收到信号的幅度和相位变化。幅度变化量和相位变化量表示金属的尺寸和距离,Arduino Mega微控制器探测到变化后将该数据通过蓝牙模块传至智能手机,利用spirit PI软件进行智能手机的数据处理,并通过控制手机扬声器来判断是否探测到金属。

猜你喜欢
流程图蓝牙串口
蓝牙音箱的直线之美
浅谈AB PLC串口跟RFID传感器的通讯应用
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
紧急:蓝牙指尖陀螺自燃!安全隐患频出
专利申请审批流程图
专利申请审批流程图
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信