基于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背光源。

实时时钟模块采用DS1302芯片,通过IIC2接口接入单片机,为系统提供时间参考,实现定时提醒功能。存储器采用SST25VF016B 2M FLASH,用于存放信件存储信息和用户账号信息等。电机配置模块主要由步进电机驱动器、继电器和三极管组成,用于片选不同的电机驱动器,并对其控制端口进行配置,以实现对电机的控制。

网络接口用于接入网络,将信箱内的信息实上传到网络上,供用户查看是否有信、修改密码等,也方便管理员管理和修改信息。

3.2 μC/OS-II

μC/OS-II的任务主要包括两部分,时钟管理与任务调度。操作系统会以定时中断服务程序的型式调用时钟节拍函数,实现对系统时钟的管理。当新的时钟节拍到来时,系统判断各任务的优先级,并按照优先级高低将任务排入就绪队列中。若当前最高优先级任务满足执行条件,则直接运行,直到需要某种临界资源时,任务会主动请求挂起,这时系统会调度就绪队列中下一优先级的任务,使其获得执行权。

3.3 账号管理

所有使用者都有账号和密码,作为操作权限的唯一凭据。账号数量可以根据用户数目自由添加或删减,分配灵活。账号的类型有三种,即用户账号、管理员账号和投递账号,它们具有不同的操作权限。当输入密码错误时,系统不会响应任何要求,因此可以有效杜绝信件丢失和垃圾广告进入信箱占用空间等现象。

3.4 提醒功能

当系统收到来信时,系统会自动向网络更新信息,主显示屏会滚动显示收到来信的用户账号。邮递员将信件放入信箱时,系统会读取当前日期,并计算出一个提醒日期,作为该信件的信息存储在存储器中。同时,系统会定期检查当前日期是否超过所存信件的提醒日期,若超过,会发送信息至网络和显示屏,要求用户及时取走信件,若用户仍长期没有取信,系统会通知管理员与用户联系。

四、 总结

该方案是针对目前信箱结构上的一系列问题,提出的一种智能化、自动化解决方案,旨在提高资源利用率、保障信件安全和实时等。但由于缺乏实际使用中的统计数据,因此仍可能存在一些问题,需要进一步研究。

STM32单片机中文官网
意法半导体/ST/STM

继续阅读
意法半导体推出48引脚封装 扩大市面上唯一支持LoRa®的STM32WL系统芯片的选择范围

中国,2020年8月28日——意法半导体为其获奖产品STM32WLE5 *无线系统芯片(SoC)的产品组合新增一款QFN48封装,将该产品的诸多集成功能、能效性和多调制的灵活性赋能到多种工业无线应用上。

意法半导体发布STM32状态监测功能包,通过Cartesiam工具简化机器学习过程

中国,2020年7月29日——意法半导体发布一款免费的STM32软件功能包,让用户可以用微控制器探索套件快速创建、训练、部署工业状态监测智能边缘设备。

意法半导体为STM32Cube®生态系统增添新功能,提高软件开发效率

中国,2020年7月28日——意法半导体STM32Cube®软件开发生态系统发布软件更新,让用户更轻松地筛选软件示例,搜集和使用开发工具,自定义、使用和分享STM32Cube扩展软件包。

意法半导体通过两项并购,进一步增强STM32微控制器的无线连接功能

中国, 2020年7月20 日 – 横跨多重电子应用领域的全球领先的半导体供应商意法半导体,于日前宣布签署两项并购协议,收购超宽带技术专业设计公司BeSpoon的全部股本和Riot Micro公司的蜂窝物联网连接资产。在两项交易走完正常监管审批手续成交后,意法半导体将进一步提升其在无线连接技术方面的服务,特别是完善STM32微控制器和安全微控制器的产品规划。

让汽车ECU开发事半功倍,ST AutoDevKit工具包长啥样?

STM32 是工业和消费市场上非常成功的微控制器解决方案,SPC5 系列汽车微控制器也许大家还不大熟悉,不过在 AutoDevKit 生态匹配搭建的强大加持下,站在使用者的角度来看待问题,解决对方行业痛点,未来的 SPC5 也许可以成为汽车电子界的 STM32 也是很有可能的。