基于STM32的交互式公交辅助装置

2022-07-23 06:35安徽中医药大学钱伟琴胡世平刘志伟姚梦茜薛冬晴
电子世界 2022年1期
关键词:原理图公交站点

安徽中医药大学 钱伟琴 胡世平 刘志伟 姚梦茜 薛冬晴

本项目是对传统公交下车铃和公交司机手动开门的不方便及安全问题进行改善,随着我国城市建设进程的不断加快,交通运输事业也在快速得到发展,同时居民出行水平和对时间效率以及安全性的要求也在提高,城市公交作为市民出行的重要工具,其服务质量也就密切关系到交通运输事业的发展。乘客下车是城市主要的交通活动之一,乘客下车的速度与频次影响着公交车的停站时间以及服务水平,因此下车提醒系统是提升司机与乘客联系的重要途径,传统下车提醒按钮位置单一、形同虚设,在特殊情况如上下班人流高峰期时乘客难以触碰到下车提醒按钮,大大降低了乘客与司机之间的联系,导致延误下车和“门夹人”等安全隐患时有发生。而本项目的交互式公交辅助装置设计可以实现到站提醒、实时人流量监控、光电门检测等基本功能,极大程度上方便了乘客与公交司机的使用,提升司机与乘客之间的交互能力,减少了行车过程中的“门夹人”等安全隐患,同时也可以避免“逢站必停”造成的资源浪费。

1 系统总设计

在整个装置的控制上,使用使用ARM架构的STM32f103c6t6芯片,合理利用了微控制器的功能,并且满足低功耗的要求,在供电方面STM32微控制器电路上只需要5V电源就可以驱动,芯片只需要3.3V,使用起来非常方便。在程序的编写上,使用的是我们所熟悉的C语言。在本项目中使用到的功能有光电开关、RFID读卡器模块、wifi传输、串口显示屏、按键等。

本项目的主要目的是解决乘客在公交车旅途中碰到的各种问题。例如:不良于行的乘客未赶到下客门车门就已经关闭的问题、车内嘈杂导致司机无法确定是否尚有乘客未下车的问题、偏远地区“到站就停”的问题、公交车在乘客下车过程中处于怠速状态燃耗问题等,而本项目的公交辅助装置可以结合各种模块,完成在不同场景下解决乘客在出行过程中的各种情况。

2 主要硬件设计

2.1 硬件总体布局

该设计以公交下车提醒装置为研究对象,使用ARM架构的STM32f103c6t6芯片,其中包含电源模块、光电开关、RFID读卡器模块、wifi传输、串口显示屏等模块构成了一个完整的交互式公交下车辅助装置,具体硬件系统设计图如图1所示。

图1 硬件系统设计图

本系统为了实现司机与乘客之间的交互功能,设计方面分为主机和从机。乘客选择下车站点后进行刷卡,主机采集乘客上下车的站点信息并进行统计,并将信息传递给从机司机端,从机显示屏上会清晰地显示车上人数,当前站点应下车人数和未下车人数,因此司机可以便捷地获取每个站点的上下乘客的人数情况。乘客下车时,利用光电开关的工作原理,当有乘客下车经过下客门,引起光敏电阻两端电压的改变,电压信号通过传感器传到计数器上计数,以此来检测下客处是否有乘客下车,并将乘客下车情况传递给司机端。其中光电门的电路原理图如图2所示。

图2 光电门电路原理图

倘若尚有乘客未来得及在相应站点下车,司机端将会有LED灯长亮进行示警,实现在不影响司机驾驶安全的前提下,提醒司机乘客下车的需求,同时避免由于停车时间过短、老年孕妇等乘客行动不便、人流高峰人多拥挤等导致乘客过站未下车的误会产生,维护乘客和司机的生命财产安全,以及缓解公交车上呼喊停车带来的尴尬,维持公交车运行的公共秩序,实现乘客及时安全下车同时提高公共资源利用率。另一方面,在偏远地区,司机可以根据下车人数在相应站点选择不停车,尽量避免怠速状态带来的负面影响,减少公交车重新启动的油耗,一定程度上也降低了环境污染。

此外,根据本装置还专门设计了公交辅助APP,利用WIFI数据传输模块,使用UDP协议(UserDatagramProtocol),即用户数据报协议,来实现处于同一局域网内的电路板和手机可以进行信息的传递的功能,即由下位机的刷卡端和司机端的电路板采集的信息可以传递到上位机的手机APP上。其中,UDP协议和我们所熟知的TCP协议一样都属于传输层协议,而UDP协议的主要作用是将网络数据流量压缩成数据报的形式,可以实现对同一时刻内多项应用同时发送和接收数据,之所以选择UDP协议,也因为UDP协议具有TCP协议所望尘莫及的速度优势,UDP协议将安全和排序等功能都移至上层应用来完成,可以减少实际执行过程中的的大量系统开销,能够极大程度上降低执行时间,对于本项目非常实用。

主机WIFI模块的电路原理图如图3所示,子机WIFI模块的电路原理图如图4所示。

图3 主机WIFI模块电路原理图

图4 子机WIFI模块电路原理图

2.2 控制系统电路稳定性及其合理性

本装置的设计由于用到了多个模块,本项目在电路设计上会根据不同的I/O口所拥有的硬件资源将不同的模块与合适的I/O口连接到一起,以达到最大化利用硬件资源的情况。由于不同模块其工作电压有所不同,在供电方面STM32微控制器电路上只需要5V电源就可以驱动,而芯片需要3.3V,降压模块集成在最小系统板上可以实现控制电路的稳定性。

其中电源电路原理图如图5所示。

图5 程序设计流程图

图5 电源电路原理图

3 主要软件设计

本装置设计中使用的是我们都比较熟悉的编程语言——C语言,使用的是便捷灵活、方便上手的编译器——Keil 5,Keil 5是一款极易掌握,有足够的灵活性并且非常友好和强大的C语言软件开发系统,它提供丰富的库函数和功能强大的集成开发调试工具和清晰直观的操作界面,可以完成编辑、编译、连接、调试、仿真等整个开发流程,并且使用起来十分的轻松便捷,并具备编译器、编译器、安装包和调试跟踪,同时支持在线仿真功能,能够观察到每一个寄存器的值,因此可以更加直观地发现程序设计过程中出现的错误并能够及时加以纠正,有利于程序调试过程中的不断改进。此外,Keil 5完美支持Cortex-M、Cortex-R4、ARM7和ARM9等系列器件,因此在本项目中,Keil 5编译器非常适用。在本项目中,可以使用现有的电子元件例如按键、LED、LCD屏幕、光栅传感器、RFID读卡器等其他输出装置。

程序编写时将主机和从机封装在不同的工程文件中,分开烧录,编程思路会更加清晰,编写过程中倘若遇到问题也便于更加快捷地找到问题所在,并及时改正,对调试和修改程序都非常有帮助。

其中使用的RFID读卡器的相关程序编写在主机中,实现检测乘客刷卡的功能,RFID解读器读取信息并解码后,送至单片机进行有关数据处理,并将检测到的信息传递到从机,并在LCD显示屏上显示车上人数、应下车人数、未下车人数等信息,从而达到司机可以接收到相应站点乘客上下车情况的效果。

此外,在LCD的相关程序的编写中,使用到了画线算法,实现站点距离之间的计算,得到公交车运行的实时位置,在初始化配置后,向SPI总线传输数据,实现写命令,完成数据传输过程。

程序设计的思路如下:本装置通电运行之后,按下开门按键,则判断当前到达的站点,然后乘客可以选择相应的下车站点,若与当前所在站点冲突,LCD显示屏则会显示:“已在当前站点”,并且使当前选择站点次数无效,即不计入计数器中;若乘客选择站点与当前所在站点无冲突,则乘客可以进行刷卡操作,同时计数器进行记录并统计各个站点上车人数,车门关闭后进入车辆运行状态,到达站点后,与本装置在同一局域网内并且公交辅助APP处于登录状态的手机会发生震动以提示乘客站点到达,下客门光电门传感器检测下车人数并与统计应下车人数进行对比,乘客若全部下车则正常关门,若当前站点人数仍未归0,则LED提示灯长亮进行提示,车门不关。

本项目的设计逻辑如图5程序设计流程图所示。

4 实验结果

本装置设计实现了在模拟场景中公交下车辅助系统的功能,但是目前应用与推广方面还很欠缺,也只限于在乘客遵守“前门上车,后门下车”的前提下,若乘客从下客门上车,则会影响光电门技术的准确性,容错率方面还有待进一步提高。但在交互方面,功能已经全部完成,乘客可以选择相应的站点、获得站点的信息、到站提醒,主机通过对采集信息的处理和统计,传递至子机,司机可以便捷地了解车上人数及上下客情况,根据应下车人数做出开关门判断,在尚有乘客未下车的情况下会有警示灯一直处于提醒状态,直至应下车乘客全部下车,车门即可关闭,实现乘客与司机之间信息的交互式传递。

总结:本装置在硬件结构设计方面较为合理,相较于传统的下车提醒按钮,更加智能化、使用便捷、容错率更高,对传统的位置单一并且缺乏灵活性的下车提醒按钮进行改良,实现司机与乘客之间信息的交互功能。使用处理速度快、功能强大、功耗较低的Cortex-M3内核ARM架构的STM32微控制器,可以实现到站提醒、实时人流量监控、光电门检测等基本功能,极大程度上方便了乘客与公交司机的使用,提升司机与乘客之间的交互能力,避免由于停车时间过短、老年孕妇等乘客行动不便、人流高峰人多拥挤等导致乘客过站未下车的误会产生,减少不必要的矛盾发生,维护了乘客和司机的生命财产安全,也能够缓解公交车上大声呼喊停车而带来的尴尬,维持公交车运行的公共秩序。同时也减少了行车过程中的“门夹人”等安全隐患,提高了行车过程的安全性,此外还可以避免“逢站必停”所造成的资源浪费,提高了公共资源的利用率,有效解决了许多行车过程中的烦恼。

猜你喜欢
原理图公交站点
一元公交开进太行深处
浅谈STM32核心板原理图设计
电路原理图自动布图系统的设计与实现
基于Protel DXP 2004层次原理图的设计
基于Web站点的SQL注入分析与防范
等公交
积极开展远程教育示范站点评比活动
怕被人认出
维修电工线路板的接线技巧分析
“五星级”站点推动远程教育提质升级