1、26|电子制作 2023 年 1 月智能应用0 引言随着互联网技术和电商的蓬勃发展,消费的方式开始发生转变,网络购物开始成为人们购物的主要手段1。年轻人逐渐成为新型消费主力,尤其大学生的消费方式也发生了改变。据数据显示,每年校园快递量都在增长,校园快递量的增长随之而来的是面临着校园最后一公里配送难题。当前,校园快递采取集中投放和管理的方式,快递“最后一公里”的配送模式还是传统的送货上门或定点取货23。结合防疫需求,很多高校实行封闭管理,学生网购需求增加,不断增长的快递需求与校园的防疫秩序之间矛盾凸显。在当前疫情不断反复的情况下,按照传统的快递投放方式,需要投入大量的人力,物力对快递物品进行消毒
2、、静置。另外,校园快递驿站数量少和快递量大的问题,造成学生取件不便,尤其到了下课取件高峰期,排长队取快递屡见不鲜47。以上诸多问题,对传统的配送方式产生了巨大的考验,在物联网和电子技术发展背景下,智能化配送也逐步走进现实。基于此,面向校园的智能车配送系统研究显得尤为重要。1 系统方案系统工作时,小车首先在取货点对物品进行扫描二维码获得物品信息及需要派送到的位置,然后小车执行派送任务,在配送过程中通过摄像头对路况进行判断,并将货物送到指定地点,在配送过程中,小车的运行位置、车速和货物信息等既在显示屏上,又通过无线模块发送给云平台,用户端可通过微信小程序浏览云端的信息,掌握货物的配送情况5。当然用
3、户也可以通过微信小程序在校园内购物,用户在微信小程序上指定所需商品,微信小程序给用户分配取货号码,由人工把商品放至智能车内,智能车通过摄像头循迹将货物送达指定地点后,用户通过智能车上的矩阵键盘模块输入密码,打开车厢,拿走商品。系统框图如图1所示,在该系统中,主要由STM32控制模块、OneNet 云平台、微信小程序三大部分组成。其中 STM32控制模块包括 ML302-GNSS 4G 通信模块、LCD 显示模块、矩阵键盘模块、Open MV 4 H7 Plus 摄像头。2 系统硬件设计系统硬件采用 STM32F103RCT6 作为主控芯片的核心板,并根据所需功能包括如下模块:OpenMV4 H
4、7 Plus 摄像头模块、ML302-GNSS 4G CAT.1通信模块、LCD显示模块、矩阵按键、TB6612 直流电机驱动模块实现信号的输入输出等功能。系统设计原理图如图 2 所示,具体功能结合硬件个模块设计详细讲解。硬件部分的设计框图如图 3 所示。2.1 单片机模块设计STM32F103RCT6 单片机是一种嵌入式-微控制器的集成电路,是由 ST 公司开发的 STM32F1 系列的其中一种,芯体尺寸是 32 位,速度是 72MHz,程序存储容量是256KB,程序存储器类型是 FLASH,RAM 容量是 48K。本设计中采用 AT 指令对 ML302-GNSS 4G CAT.1 移动通信
5、模块进行控制连网,主要用到主控制芯片中USART2串口通信,其他功能模块主要用到了控制器的 I/O 口。基于 STM32 的智能车配送系统设计嵇前铭,陈胜笛,周伊琳,侯鸿涛,刘舒祺(江苏理工学院 电气信息工程学院,江苏常州,213001)基金项目:江苏省大学生实践创新项目(11310212205)。摘要:随着电商的蓬勃发展与消费升级,年轻人逐渐成为新型消费主力,尤其当下在校大学生消费习惯也发生了巨大的改变。先进规范的智能车配送系统,可以在校园内打造安全、有序、便捷的智慧校园。本文研究了基于STM32的智能车配送系统的硬件终端设计和远程端微信小程序设计。该系统硬件设计结合单片机控制技术、卫星定位
6、技术、移动通信技术、OpenMV摄像头技术、传感器检测技术,设计一套将小车定位信息、授时服务、配送物品信息、数据上云集于一体的智能车配送系统。微信小程序设计包括学生用户和管理员用户,学生用户可以实现对商品的选购、包裹的代取、配送时间的选择以及配送状态的查看等功能,管理员用户可以实现对商品的管理以及订单的查询等功能。经过调试,系统能正常稳定的工作,性能良好。关键词:STM32;智能车;配送;终端;应用端图 1 系统设计框图DOI:10.16589/11-3571/tn.2023.01.030wwwele169com|27智能应用BOOT060NRST7PD0-OSC_IN5PD16PA0-WKU
7、P14PA115PA216PA317PA420PA521PA622PA723PA841PA942PA1043PA1144PA1245PA1346PA1449PA1550PB026PB127PB228PB355PB456PB557PB658PB759PB861PB962PB1029PB1130PB1233PB1334PB1435PB1536PC08PC19PC210PC311PC424PC525PC637PC738PC839PC940PC1051PC1152PC1253PC13-TAMPER-RTC2PC14-OSC32_IN3PC15-OSC32_OUT4PD254U1ASTM32F103RC
8、T6LCD D0A0-1A0-2ML302_TXML302_TXLCD D1LCD D2LCD D3LCD D4LCD D5LCD D6LCD D7LCD D8LCD D9LCD D10LCD D11LCD D12LCD D13LCD D14LCD D15LCD_RDLCD_WRLCD_RSLCD_CSLCD_BLAIN1AIN2BIN2BIN1KEY H 0Open MV TXOpen MV RXKEY H 3KEY L 0KEY L 1KEY L 2KEY L 3BUZZKEY H 1KEY H 2 图 2 芯片与各模块的引脚图图 3 硬件结构框图 2.2 通信模块和定位模块ML302-G
9、NSS 4G CAT.1 通 信 模 块 支 持 TD-LTE/FDD-LTE 通信制式,采用 LCC+LGA 封装方式。该模块供电电压为 3.3V 4.2V,内置 GPS 定位模块,可以实现信息的传输和小车位置信息的获取。通信时必须保证电压稳定,不然容易造成设备与云平台出现断连的的情况,导致设备停止工作。在本系统设计中将 ML302 的 VCC、GND、RXD、TXD分别与 STM32F103RCT6 单片机的 VCC、GND、PA2、PA3相连,既用于连接云平台以及实现终端控制器与云平台间的通信,又可以实时获取小车的位置信息。2.3 摄像头模块OpenMV 摄像头是一款小巧,低功耗,低成本
10、的电路板,可以很轻松的完成机器视觉应用,通过高级语言 Python 脚本控制 OpenMV。本系统设计中主要用到该模块的 UART 与STM32F103RCT6 单片机通信,具体将 OpenMV 的 VCC、GND、PB10(TXD)和 PB11(RXD)分 别 与 STM32F103RCT6单片机的VCC、GND、PA9和PA10相连完成循迹和标识功能。2.4 LCD 显示模块本设计采用的是 2.8 寸显示分辨率为 320240 的 LCD触摸屏。它的液晶显示屏的每一个像素上都设置有一个薄膜晶体管,可以有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。本
11、系统设计中 LCD 与 STM32F103RCT6 单片机的具体引脚连接如图 2 所示。2.5 直流电机驱动模块TB6612FNG 是东芝半导体公司生产的一款直流电机驱动器件,它具有大电流 MOSFET-H 桥结构,双通道电路输出,可同时驱动 2 个电机。具有 4 种电机控制模式:正转/反转/制动/停止;PWM 支持频率高达 100kHz。本系统设计中,将 TB6612 的 AIN1、AIN2、BIN1、BIN2 分别与STM32F103RCT6 单片机的 PA1、PA4、PC0、PC7 相连。2.6 矩阵键盘模块本系统设计采用 TELESKY 44 直插式矩阵键盘与STM32F103RCT6
12、 连接,用行列扫描法原理识别按键按下。用户在取外卖或者快递时在该键盘上输入取货密码取货。本系统设计中,将 STM32F103RCT6 单片机的 PA8、PC2、PC3、PA11、PA12、PA13、PA14 和 PA15 设置成浮空输入模式用于外接矩阵键盘。2.7 报警模块蜂鸣器驱动方式为 GPIO 切换高低电平。平时不工作,三极管由于 I/O 端口输出高电平从而截止。当取货密码输入正确时发出提示音;当配送小车停止工作或发生故障时发出警报。本系统设计中采用 STM32F103RCT6 单片机上自带的蜂鸣器模块(BUZZ PC1)。2.8 LED 模块LED 是一个发光二极管器件。通过控制 I/
13、O 端口的高低电平状态从而控制 LED 的亮灭。LED 正极与 I/O 端口之间连接了限流电阻,防止通过 LED 的电流过大导致损坏。LED1 和 LED2 用 于 显 示 OpenMV4 H7 Plus 摄 像 头与 STM32F103RCT6 之间的正常运行。本系统设计中采用STM32F103RCT6 单片机上自带的 LED 模块。3 系统软件设计系统软件部分主要由 4G 移动通信模块、摄像头模块、LCD 显示模块、直流电机驱动模块、矩阵键盘模块、蜂鸣器模块、LED 模块和外围设备控制模块程序组成,程序开28|电子制作 2023 年 1 月智能应用始后要依次对各个模块进行初始化,然后小车进
14、入待命状态,等待微信小程序端下发运行的命令。待收到配送命令和目的地信息时开始工作,系统工作程序流程图如图 4 所示,STM32 程序执行流程如 5 图所示。图 4 系统工作流程图图 5 STM32 程序执行流程图 3.1 单片机控制部分软件设计小车收到客户需求并且 OpenMV 识别即将送往的目的地信息后,变量 start 被置 1,小车开始工作。OpenMV将采集到的实时路况信息通过 UART 发送给 STM32 的USART1,小车由此选择路线并巡线前往目的地。此外STM32 通过 PI 控制小车运动。在小车运动过程中,通过定时器定时每隔 1s 向云平台发送小车实时位置。当 OpenMV识
15、别到目的地标识后,小车停止运动,变量 start 被置 0,并向云平台发送“订单已送达”的通知。待客户正确输入密码取货后,start 被置 2,TB6612 控制舵机运转,使小车掉头原路返回,其中 OpenMV 中的部分代码如下:out_data=int(code.payload()d1=str(int(out_data/100)d2=str(int(out_data%100)/10)d3=str(int(out_data%10)print(you send:,out_data)uart.write()#发送帧头 uart.write(.)uart.write(d1)uart.write(d2
16、)uart.write(d3)3.2 微信小程序部分软件设计微信小程序采用 MINA 小程序框架,页面结构由 WXML(Wei Xin Markup Language)构建,页面样式由WXSS(Wei Xin Style Sheets)编写。软件逻辑采用 App Service 实现,逻辑编程语言采用 JavaScript。微信小程序有 2 个导航栏,分别为首页、关于。“首页”部分由4个模块组成,分别为发布需求、配送路线、订单查询、小车位置,如图 6 所示。“关于”部分则是显示了智慧校园的一些信息,如电话、微信、邮件、地址,如图 7 所示。图 6 小程序首页界面 图 7 小程序关于界面4 系统测试及结果分析通过微信开发者工具的调试器验证测试,系统能够成功接收 One Net 云平台的数据,图 8 展示了微信小程序后端调用 wx.requset()获取配送单号的信息,图 9 展示了微wwwele169com|29智能应用信小程序后端调用 wx.requset()获取小车位置的信息。图10、图 11 是与之对应的微信小程序用户端界面。图 8 配送单号输出框图 9 小车位置输出框 图 10