基于STM32F103VE的智能信箱系统的设计与实现
引言
为了解决传统信箱容易发生的锁孔堵塞、钥匙丢失、信件丢失、浪费空间、垃圾广告等问题,保护信件的安全、有效,我们设计了一个智能信箱系统。它采用封闭式管理和细化空间、动态分配的存储理念,增加了安全性,提高了用户数量。它还具有身份验证、来信提示、网络查询等功能,可以广泛应用于小区、学校、医院、企业等。
一、 整体构架
智能信箱的系统构架主要有两部分,即控制系统与机械设备。控制系统用于保存和管理用户与信件的信息,下达"存"或"取"的命令给机械设备,它包括主控芯片模块、存储器、触摸屏、网络接口、实时时钟、电磁继电器、步进电机驱动器等;机械设备则负责执行控制系统下达的命令,完成信件的存取过程,它包括带步进电机的线性十字滑轨以及用于存放信件的存储阵列等。
二、 存/取信件的具体实现
存/取信件是系统的主要职能。用户执行存信或取信操作时,系统会进入存储器中查询相关的用户信息和存储信息,根据一系列算法,算出十字滑轨上滑台的运动轨迹,用电机驱动滑台按照轨迹执行存/取信任务,完成任务后,系统自动更新存储器中的信息,保持与存储阵列内的情况一致。
2.1 线性十字滑轨
线性十字滑轨是信箱系统当中实施机械动作的部分,为了保证系统的精确性,我们采用了滚珠丝杠十字滑轨。它由两副正交安装的滚珠丝杠副和滑台组成,水平滚珠丝杠副安装在竖直滚珠丝杠副上,形成一个平面直角坐标系,信件就被存储在这个坐标系里。每副滚珠丝杠副都由一个步进电机来驱动,通过控制输出脉冲个数来控制角位移量,再通过滚珠丝杠副将角位移转换为线性位移,达到准确定位的目的。
2.2 脉冲数控制算法
在脉冲输出上,我们采用了PWM(Pulse Width Modulation)脉冲输出。当系统进入存/取信件任务时,系统读出目标单元格在存储阵列中的横纵坐标值,计算出两幅滑轨的运行距离,从而确定每个步骤必须输出的脉冲数量。脉冲数的计算公式:
其中P为脉冲数,C为当前步骤操作的坐标值,D为单位坐标值的实际距离,S为滚珠丝杠的导程,α为步进电机的步进角,一般为1.9°,n为步进电机驱动器的细分数。
在编程实现上,我们使用了两个定时器,其中TIM2作为脉冲计数器,TIM3作为PWM发生器,工作原理阐述如下:①将TIM3设置成PWM输出模式,不断地输出PWM脉冲序列;②将TIM2设置成外部触发模式,用作脉冲计数器;③将TIM3的PWM输出连接到TIM2的脉冲输入上,使能TIM3,就可开始记数;④将TIM2的溢出值设定为步进电机所需的脉冲数P,一旦计得所需脉冲数,立即进入中断,关闭TIM3的使能,停止脉冲输出,这个过程远快于PWM的输出频率,可以实现精确控制输出脉冲数。
2.3 空间管理方法
传统信箱采用的是一人一格的平均分配方式,但每人信件数量往往不同,且当今网络高速发展,信件数量大幅减少,传统信箱的分配方式无疑造成了空间上的浪费。我们采用细化空间、动态分配的管理方式,将每一格尺寸缩小,以每日每户平均来信数量为准,如有超过,则另行开辟空闲单元继续存放,同时,自动记录所存信件的用户信息;因此信箱整体规模缩小的同时,支持更多用户的使用,便于信件的集中管理,解决传统信箱分散、难管理的问题。
2.4 存储阵列设计
系统用存储阵列来存储信件,当中按行列分布了多个存储单元,每个单元由两部分空间组成,一部分存放信件,称为存储板,另一部分作为行运送轨道的一部分,排列在存储板的正上方。图1是系统的模型示意图,根据它可以进一步说明如何实现信件的存储。
存储板和滑台的形状是相互耦合的,它们即能够托载信件又能相互通过来实现信件的抬起和放下。这里以存储信件为例,说明其具体过程,过程分为5步:①信件被放置在存/取信口的滑台上,竖直滑轨带动水平滑轨和滑台通过运送通道向下移动到目标行;②水平滑轨带动滑台通过行运输轨道来到目标存储板上方;③确保到位后,竖直滑轨再次下移,滑台穿过存储板,将信件放置到了存储板上;④滑轨带动滑台回到存/取信口。这样,经过两组滑轨的轮流操作,就完成了一次存信操作,并开始等待下一次操作。同理可知,取出信件的过程正好为该过程的逆操作,这里不再赘述。
三、 控制系统
3.1 硬件构成
本系统的主控芯片为STM32F103VE单片机,内置IIC、SPI总线接口和512K闪存等,属于ARM v7-M里的Cortex-M3系列。硬件部分还包括触摸屏模块、实时时钟模块、存储器模块、电机配置模块、电源模块、网络接口等。触摸屏采用7寸TFT电阻式触摸屏,通过SPI1接口与单片机连接,由恒流源芯片PT4101为触摸屏提供LCD背光源。
实时时
- 嵌入式系统的定义与发展历史(11-15)
- 嵌入式系统亲密接触(11-22)
- 嵌入式系统设计中的USB OTG方案(02-01)
- 嵌入式线控驾驶系统开发过程中设计和测试考虑(02-02)
- 一个典型的嵌入式系统设计和实现 (02-02)
- DDR SDRAM在嵌入式系统中的应用(02-07)