1、 粤嵌:基于 STM32F103VE 的智能信箱系统的设计与实现引言为了解决传统信箱容易发生的锁孔堵塞、钥匙丢失、信件丢失、浪费空间、垃圾广告等问题,保护信件的安全、有效,我们设计了一个智能信箱系统。它采用封闭式管理和细化空间、动态分配的存储理念,增加了安全性,提高了用户数量。它还具有身份验证、来信提示、网络查询等功能,可以广泛应用于小区、学校、医院、企业等。一、 整体构架智能信箱的系统构架主要有两部分,即控制系统与机械设备。控制系统用于保存和管理用户与信件的信息,下达“存”或“取”的命令给机械设备,它包括主控芯片模块、存储器、触摸屏、网络接口、实时时钟、电磁继电器、步进电机驱动器等;机械设备
2、则负责执行控制系统下达的命令,完成信件的存取过程,它包括带步进电机的线性十字滑轨以及用于存放信件的存储阵列等。二、 存/取信件的具体实现存/取信件是系统的主要职能。用户执行存信或取信操作时,系统会进入存储器中查询相关的用户信息和存储信息,根据一系列算法,算出十字滑轨上滑台的运动轨迹,用电机驱动滑台按照轨迹执行存/取信任务,完成任务后,系统自动更新存储器中的信息,保持与存储阵列内的情况一致。2.1 线性十字滑轨线性十字滑轨是信箱系统当中实施机械动作的部分,为了保证系统的精确性,我们采用了滚珠丝杠十字滑轨。它由两副正交安装的滚珠丝杠副和滑台组成,水平滚珠丝杠副安装在竖直滚珠丝杠副上,形成一个平面直
3、角坐标系,信件就被存储在这个坐标系里。每副滚珠丝杠副都由一个步进电机来驱动,通过控制输出脉冲个数来控制角位移量,再通过滚珠丝杠副将角位移转换为线性位移,达到准确定位的目的。2.2 脉冲数控制算法在脉冲输出上,我们采用了 PWM(Pulse Width Modulation)脉冲输出。当系统进入存/取信件任务时,系统读出目标单元格在存储阵列中的横纵坐标值,计算出两幅滑轨的运行距离,从而确定每个步骤必须输出的脉冲数量。脉冲数的计算公式:其中 P 为脉冲数,C 为当前步骤操作的坐标值,D 为单位坐标值的实际距离,S 为滚珠丝杠的导程, 为步进电机的步进角,一般为1.9,n 为步进电机驱动器的细分数。
4、在编程实现上,我们使用了两个定时器,其中 TIM2作为脉冲计数器,TIM3作为 PWM 发生器,工作原理阐述如下:将 TIM3设置成 PWM 输出模式,不断地输出 PWM 脉冲序列;将 TIM2设置成外部触发模式,用作脉冲计数器;将 TIM3的 PWM 输出连接到 TIM2的脉冲输入上,使能 TIM3,就可开始记数;将 TIM2的溢出值设定为步进电机所需的脉冲数 P,一旦计得所需脉冲数,立即进入中断,关闭 TIM3的使能,停止脉冲输出,这个过程远快于 PWM 的输出频率,可以实现精确控制输出脉冲数。2.3 空间管理方法传统信箱采用的是一人一格的平均分配方式,但每人信件数量往往不同,且当今网络高
5、速发展,信件数量大幅减少,传统信箱的分配方式无疑造成了空间上的浪费。我们采用细化空间、动态分配的管理方式,将每一格尺寸缩小,以每日每户平均来信数量为准,如有超过,则另行开辟空闲单元继续存放,同时,自动记录所存信件的用户信息;因此信箱整体规模缩小的同时,支持更多用户的使用,便于信件的集中管理,解决传统信箱分散、难管理的问题。2.4 存储阵列设计系统用存储阵列来存储信件,当中按行列分布了多个存储单元,每个单元由两部分空间组成,一部分存放信件,称为存储板,另一部分作为行运送轨道的一部分,排列在存储板的正上方。图 1 是系统的模型示意图,根据它可以进一步说明如何实现信件的存储。存储板和滑台的形状是相互
6、耦合的,它们即能够托载信件又能相互通过来实现信件的抬起和放下。这里以存储信件为例,说明其具体过程,过程分为5步:信件被放置在存/取信口的滑台上,竖直滑轨带动水平滑轨和滑台通过运送通道向下移动到目标行;水平滑轨带动滑台通过行运输轨道来到目标存储板上方;确保到位后,竖直滑轨再次下移,滑台穿过存储板,将信件放置到了存储板上;滑轨带动滑台回到存/取信口。这样,经过两组滑轨的轮流操作,就完成了一次存信操作,并开始等待下一次操作。同理可知,取出信件的过程正好为该过程的逆操作,这里不再赘述。三、 控制系统3.1 硬件构成本系统的主控芯片为 STM32F103VE 单片机,内置 IIC、SPI 总线接口和51
7、2K 闪存等,属于 ARM v7-M 里的Cortex-M3系列。硬件部分还包括触摸屏模块、实时时钟模块、存储器模块、电机配置模块、电源模块、网络接口等。触摸屏采用7寸 TFT 电阻式触摸屏,通过 SPI1接口与单片机连接,由恒流源芯片 PT4101为触摸屏提供 LCD 背光源。实时时钟模块采用 DS1302芯片,通过 IIC2接口接入单片机,为系统提供时间参考,实现定时提醒功能。存储器采用 SST25VF016B 2M FLASH,用于存放信件存储信息和用户账号信息等。电机配置模块主要由步进电机驱动器、继电器和三极管组成,用于片选不同的电机驱动器,并对其控制端口进行配置,以实现对电机的控制。
8、网络接口用于接入网络,将信箱内的信息实上传到网络上,供用户查看是否有信、修改密码等,也方便管理员管理和修改信息。3.2 C/OS-IIC/OS-II 的任务主要包括两部分,时钟管理与任务调度。操作系统会以定时中断服务程序的型式调用时钟节拍函数,实现对系统时钟的管理。当新的时钟节拍到来时,系统判断各任务的优先级,并按照优先级高低将任务排入就绪队列中。若当前最高优先级任务满足执行条件,则直接运行,直到需要某种临界资源时,任务会主动请求挂起,这时系统会调度就绪队列中下一优先级的任务,使其获得执行权。3.3 账号管理所有使用者都有账号和密码,作为操作权限的唯一凭据。账号数量可以根据用户数目自由添加或删
9、减,分配灵活。账号的类型有三种,即用户账号、管理员账号和投递账号,它们具有不同的操作权限。当输入密码错误时,系统不会响应任何要求,因此可以有效杜绝信件丢失和垃圾广告进入信箱占用空间等现象。3.4 提醒功能当系统收到来信时,系统会自动向网络更新信息,主显示屏会滚动显示收到来信的用户账号。邮递员将信件放入信箱时,系统会读取当前日期,并计算出一个提醒日期,作为该信件的信息存储在存储器中。同时,系统会定期检查当前日期是否超过所存信件的提醒日期,若超过,会发送信息至网络和显示屏,要求用户及时取走信件,若用户仍长期没有取信,系统会通知管理员与用户联系。四、 总结该方案是针对目前信箱结构上的一系列问题,提出的一种智能化、自动化解决方案,旨在提高资源利用率、保障信件安全和实时等。但由于缺乏实际使用中的统计数据,因此仍可能存在一些问题,需要进一步研究。