基于Arduino和压电传感器的种子自动计数系统设计

2019-01-21 06:49胡宸晗
电子制作 2019年1期
关键词:微控制器压电计数

胡宸晗

(南京市第二十九中学,江苏南京,210036)

0 引言

我国自古以来就是农业大国,农业一直作为经济民生领域的重要支柱产业。播种是农业生产的关键环节之一,精量播种方式不仅播种效率高,节约人力物力,而且能够节约种子、化肥、农药等农用物资,大大提高了农作物的生产效率,而且节约了大量成本,增加了农民的经济效益[1],种子数量的实时监测是实现精量播种的关键环节之一。在培育、选种、产量预测等过程中千粒质量是一个重要的指标,也需要对种子进行实时自动计数。传统采用人工数种的方式,繁琐枯燥、劳动强度大、效率低,并且非常容易出错。因此进行精确的种子自动计数已成为农业生产中一个亟待解决的问题。

压电传感器是利用压电元件受力后产生的压电效应制成的传感器,具有体积小、重量轻、结构简单,灵敏度高、响应速度快等优点[2],可用于种子撞击等振动信号的测量。本文设计了一种基于Arduino和压电传感器的种子自动计数系统,利用压电传感器检测种子撞击悬臂梁产生的振动,转化为电压信号,采用Arduino微控制器进行自动计数和显示。本系统具有结构简单、测量精度高等优点,能够满足种子自动计数的实际需求。

1 系统总体结构

种子自动计数系统主要由导种管、悬臂梁、压电传感器、Arduino微控制器、LCD显示器等部分组成,总体结构如图1所示。当种子沿着导种管从一定高度落下时,撞击在倾斜放置的悬臂梁上,产生一定振幅的振动信号传递到贴在悬臂梁下方的压电传感器上,使得压电传感器产生正压电效应输出变化的电压信号,经信号处理电路输入Arduino微控制器中进行计数。

为了使得种子落下撞击悬臂梁后能够顺利弹开,避免二次撞击产生的干扰,将悬臂梁与水平面呈现45°倾角进行固定,种子由导种管引向悬臂梁下端。

用粘接剂将压电陶瓷片粘贴在正对种子撞击的悬臂梁背面区域,悬臂梁另一端固定[3]。当种子逐个从上方落下撞击悬臂梁及压电传感器,用Arduino微控制器记录电压信号变化的次数即可得到种子的数量,并在LCD液晶显示器上进行显示。系统工作过程如图2所示。

图1 系统总体结构

2 信号检测系统设计

2.1 压电传感器

压电传感器的工作原理是基于压电材料的压电效应,石英晶体的压电效应早在1680年即已发现。某些电介质在沿一定方向上受到外力的作用而变形时,其内部会产生极化现象,同时在它的两个相对表面上出现正负相反的电荷。当外力去掉后,它又会恢复到不带电的状态,这种现象称为正压电效应[4]。当作用力的方向改变时,电荷的极性也随之改变。相反,当在电介质的极化方向上施加电场,这些电介质也会发生变形,电场去掉后,电介质的变形随之消失,这种现象称为逆压电效应[2]。具有压电效应的电介质物质称为压电材料,其中石英晶体是良好的纯天然压电晶体,此外还有压电陶瓷、高分子压电材料等,也同样具有良好的压电转换功能。

综合考虑检测精度、成本等因素选用压电陶瓷作为种子冲击检测传感器。压电陶瓷和接线电路板如图3所示。

2.2 Arduino微控制器

图2 系统工作过程框图

Arduino是一个开源的软硬件开发平台,功能强大、体积小巧。主要包括用来做电路连接的Arduino电路板和Arduino IDE集成开发环境。Arduino可以通过传感器来采集数据,通过控制电机、LED灯和其他装置来实现控制功能。用户在IDE中编写程序,编译成二进制文件烧录进Arduino微控制器后,便可在程序的控制下实现相应功能。Arduino是硬件软件都开源的,相比于C51、STM32等硬件平台使用更加简单,完全脱离了寄存器的配置,几乎所有功能都已经有了上层库调用,透明掉了大部分与硬件相关的操作,对于不熟悉微控制器硬件结构和寄储器配置的用户而说,使用起来非常方便。

图3 压电陶瓷和接线电路板

选用Arduino Uno开发板作为种子自动计数系统的控制器,其核心是一款高性能、低功耗的AVR 8位微控制器ATmega328p,ATmega328p采用RISC结构,拥有131条指令,绝大多数为单时钟执行,包括32个8位通用工作寄存器,32KB Flash,1KB EEPROM,2KB的片内SRAM[5]。具有14个数字I/O接口(其中6路可用于PWM输出),6路模拟输入接口,1个16MHz的晶振,1个电源插座,1个USB接口,还有很多扩展用的电路插座[6],能够满足种子自动计数和实时显示的要求。

2.3 液晶显示模块

LCD1602是一款用来显示字母、数字和符号的点阵型液晶显示器,能同时显示两行,每行16个字符,具有控制简单、成本低等优点。由于ATmega328p的输入/输出引脚数量比较有限,采用带IIC接口的LCD1602液晶显示模块。IIC即Inter-Integrated Circuit(集成电路总线),由飞利浦半导体公司在八十年代初设计出来的一种总线结构。IIC串行总线有2根双向信号线,一根是数据线SDA,另一根是时钟线SCL。IIC总线通过上拉电阻接电源,当总线没有数据传输时,两根线为高电平。IIC总线上传送的数据信号是广义的,包括地址和实际的数据信号。在IIC模式下仅需SDA、SCL、VCC、GND 4根线即可与Arduino微控制器通信,接线简单,节省I/O口资源。

2.4 软件设计

种子自动计数系统的软件是在Arduino官方的集成开发环境下运用C语言进行开发的。IDE开发环境自带串口通信工具,为调试程序带来了方便。

系统上电或复位后程序开始执行,首先对各部分进行初始化,包括串口、LCD显示模块、重置各变量初始值等。将压电传感器采集到的电压值进行AD转换,并与程序中设定的阈值进行比较,进行种子计数判断,如果采集到的电压值大于阈值,将保存种子数量的变量加1,并送到LCD液晶显示模块进行显示,同时进行串口输出可以在电脑中的Arduino开发环境中进行实时监测。如果压电传感器采集到的电压值小于阈值,判断为一次干扰信号,种子计数变量不增加。程序流程图如图4所示。

图4 程序流程图

3 系统性能试验

图5 种子自动计数试验装置

根据系统的工作原理设计并制作了种子自动计数试验装置如图5所示。试验装置主要包括铁架台、导种管、Arduino Uno开发板、LCD1602液晶显示器、电源、电脑等。铁架台用于固定导种管和倾斜固定的悬臂梁,在悬臂梁背面粘贴压电陶瓷振动传感器,用于检测种子撞击的振动信号;采用塑料漏斗和PVC管作为导种管道,引导种子准确撞击压电传感器敏感区域。当前计数值在LCD1602液晶显示器上进行显示,如图6所示。

图6 LCD1602显示当前计数值

为了验证种子自动计数系统的性能,将100粒红豆采用单粒排种方式,在距压电传感器300mm高度处进行释放,沿导种管下落,撞击压电传感器敏感区域,100s内放完。重复5次,记录检测到种子数量,计算检测误差。试验结果如表1所示。由表1计算得到种子自动计数平均误差为1.8%,该系统能够满足种子自动计数的要求。

表1 种子自动计数试验结果

4 结束语

本文设计的种子自动计数系统充分利用了Arduino微控制器功能强大、体积小巧、开发难度低和压电陶瓷灵敏度高、响应速度快等优点,通过压电传感器检测种子下落的振动信号,在Arduino微控制器中实现自动计数。在自制的试验装置上进行了种子自动计数试验,试验结果表明,单粒红豆排种计数的相对误差小于3%,系统运行稳定,测量精度高,可以广泛应用于种子自动计数等领域。

猜你喜欢
微控制器压电计数
摩擦参数对压电执行器振动特性的影响
逆压电条件下压电悬臂梁可靠性计算
具有良好温度稳定性的1-3型PZT/epoxy压电复合材料
压电周期板中耦合禁带影响规律分析
递归计数的六种方式
古代的计数方法
TASKING针对英飞凌第三代AURIX微控制器推出多核开发环境
古代的人们是如何计数的?
用于高品质电动汽车的分布式并行计算
电磁导向智能车设计探讨