APP下载

基于K60芯片智能车系统的设计

2021-10-05李明亮

智能计算机与应用 2021年5期
关键词:上位电机雷达

李明亮,孙 宁

(南京林业大学 汽车与交通工程学院,南京210037)

0 引 言

随着社会发展,汽车保有量不断增加,越发严重的交通负荷问题使得智能交通和智能汽车成为研究热点[1]。智能车可以说是智能汽车的微缩版,其中涉及的领域很多,包括计算机、人工智能、通讯等各个方面的技术[2]。智能车技术的发展使得车辆能够适应更加复杂工作环境,同时避开障碍物,选择合理的路径安全稳定的行驶,在提高交通安全与效率方面有着重大意义[3]。

本文的智能车系统是基于飞思卡尔K60处理器,结合激光雷达RPLIDAR-A1识别道路障碍、电机控制车速实现差速转向,最终可以在道路上自主行驶,并可以实现自动导航、智能避障、路径规划等功能。

1 系统设计

本文设计的智能车系统由上位机和下位机组成,上位机主要为PC端的遥感控制模块,用于给下位机智能车发送前进、后退及转向等控制指令,上位机结构较为简单,不做详细介绍;下位机是由供电模块、K60P144M150SF3控制模块、显示器模块、WIFI模块、雷达模块构成。主控制器通过WIFI模块接收上位机的控制指令来控制驱动模块的工作,雷达模块将收集的信息发送给主控制器并进行处理来规划移动路径并实现移动、躲避障碍物的功能,主控制器与显示器直接相连,用于控制显示器模块的显示。系统设计框图如图1所示。

图1 系统设计框图Fig.1 System design block diagram

2 硬件电路设计

2.1 供电模块设计

本系统采用电压为12 V的蓄电池供电,K60芯片、WiFi模块及显示模块正常工作电压为3.3 V的直流电压,因此需要将蓄电池12 V电压降低到3.3 V。此外,驱动模块、雷达模块需要5 V电压供电,雷达舵机使用9 V电压供电,蓄电池的12 V电压可直接为电机供电,供电配置如图2所示。在供电模块的设计上,先通过MC7809将12 V电压降低到9 V,再经过LM7805降压到5 V为外接模块供电,最后通过LM3940将5 V电压降低到3.3 V为单片机供电。

图2 供电配置图Fig.2 Power supply configuration diagram

2.2 K60控制模块

控制模块以K60P144M150SF3芯片为控制核心,K60单片机强大的功能使控制系统具有结构简单,运行速度快等特点[4]。K60采用2套电源系统,VDD是单片机数字电源,VDDA是模拟电源,VDD电源经过电感滤波之后再供给VDDA电源,起到抗干扰作用。MCU芯片使用多组电源引脚分别为内部电压调节器、I/O引脚驱动、A/D转换电路等模块供电,内部电压调节器为内核和振荡器等供电。K60有A口26个,B口、C口各20个,D口16个,E口18个,共100个I/O引脚,且多数引脚具有多个功能。K60的时钟电路也分为2个部分,一个是芯片的主晶振,用于产生芯片和外设所需要的工作时钟;另一个是实时时钟RTC的时钟电路,实时时钟提供一套计数器,在系统上电和关闭操作时对时间进行测量,RTC消耗的功率非常低[5]。复位电路默认状态下,复位引脚RESET通过一个4.7 K的电阻上拉到3.3 V电源,处于高电平状态,此时不会复位;当按下按键时,复位引脚与地接通,处于低电平,此时芯片复位。K60系列芯片使用的是ARM Cortex-M4内核,该内核内部集成了JTAG接口,通过JTAG接口可以实现程序下载和调试,K60丰富的内部资源利于智能车功能扩展及系统调试,故选择K60作为控制器。K60单片机最小系统原理图如图3所示。

图3 K60最小系统原理图Fig.3 K60 system schematic diagram

2.3 ESP8266WIFI模块

ESP8266是乐鑫公司开发的一款高性能UARTWIFI(串口-无线WIFI)模块,主频高达80 MHz,模块自带TCP/IP协议栈,且集成度高,兼容性好,功能强大[6]。WIFI模块负责数据的接收与转发,通过UART接口与单片机连接。ESP8266芯片中包含:

(1)2.4 GHz接收器:将RF信号降频,变成正交基带信号,用2个高分辨的高速ADC将正交基带信号转为数字信号。同时,无线电接收器集成了RF滤波器、自动增益控制(AGC)、DC偏移补偿电路和基带滤波器,以适应不同的信号频道;

(2)2.4 GHz发射器:将正交基带信号升频至2.4 GHz,使用大功率CMOS功率放大器驱动天线。使用数字校准进一步改善了功率放大器的线性,从而在802.11 b模式下达到+19.5 dBm的输出功率,在802.11 n模式下达到+16 dBm的输出功率[7]。

WiFi模块通过21、22通讯引脚与单片机相连,ESP8266高度片内集成,因此需极少的外部电路,WiFi模块及外围电路如图4所示。ESP8266芯片提供了一种有效且稳定的操控手段,因此本设计选用ESP8266模块作为WiFi模块实现对智能小车的无线遥控。

图4 WiFi模块及外围电路Fig.4 WiFi module and peripheral circuit

2.4 驱动模块

驱动模块由两个L298N芯片组成,每个L298N芯片可以直接控制两个电机,两个芯片控制智能车的四个车轮,智能车采用四轮差速的转向方式,转向更加灵活[8],驱动模块及外围电路如图5所示。L298N由主控芯片设定的I/O输入电平所控制,改变输入电平的高低就可以驱动电机进行正反转,操作简单、稳定性好,可以满足直流电机的大电流驱动条件[9],电机运动方式受使能端A/B所控制,L298N驱动A/B控制逻辑见表1。L298N芯片输入电压有两个,VSS为逻辑电压,提供逻辑电路的电源;VS用于供给电机,根据电机的额定电压选择12 V电压供电。

图5 驱动模块及外围电路Fig.5 Driver module and peripheral circuit

表1 L298N驱动A/B控制逻辑Tab.1 L298N drives A/B control logic

2.5 雷达模块

雷达模块使用的是激光雷达RPLIDAR-A1,通过测量障碍物到智能车的距离,根据左右距离信息确定智能车的转向,再控制智能车的转向运动实现自动避障功能。两个雷达分别安装在智能车的前端和后端,可以保障智能车在前进后退过程中都能有效避开障碍物。该雷达采用了激光三角测距技术,配合SLAMTEC研发的高速的视觉采集处理机构,可进行每秒高达8 000次以上的测距动作[10]。每次测距动作都包括发射经过调制的红外激光信号、视觉系统采集反射的激光信号、内部DSP处理器解算3个过程。解算完成后生成的目标物体与RPLIDAR-A1的距离和夹角值将实时从通讯接口中输出[11]。同时RPLIDAR A1的测距核心在电机带动下顺时针旋转,实现对周围环境全方位的扫描测距。从通讯接口输出的周围环境位置信息传输至单片机内进一步处理,用于控制智能车的驱动模块,达到智能转向、控制避障的功能[12],同时单片机可以通过控制输入电机MOTOCTL引脚的PWM信号来控制雷达转速。雷达模块如图6所示。

图6 雷达模块Fig.6 Radar module

2.6 屏幕显示模块

显示模块选用的是13.3英寸液晶显示屏,屏幕高宽比为16∶9,分辨率为1920×1080。显示屏用于显示时间、车速及各模块状态参数等。屏幕显示模块与单片机相连,单片机控制显示屏的显示,显示模块连接示意图如图7所示。

图7 显示模块连接示意图Fig.7 Display module connection diagram

3 软件设计

智能车系统软件部分主要包括上位机与智能车之间通过ESP8266通讯连接、K60芯片控制智能车避障运动两部分。智能车系统上电后,系统初始化,并与上位机连接,连接后上位机控制下位机驱动电机转动,开启雷达模块。控制模块接收到雷达模块发出避障指令后,控制驱动模块进行差速转向避障,未接收到避障指令则保持上位机指令运动。下位机程序流程图如图8所示。

图8 下位机程序流程图Fig.8 Console computer program flow chart

3.1 雷达避障程序设计

使用激光雷达RPLIDAR-A1测量障碍物到智能车之间的距离,根据距离和角度信息来确定智能车的转向,通过控制模块来控制驱动模块实现差速转向,实现避障功能。

(1)驱动程序设计。控制器上电后,电机驱动模块进行初始化,先设置IN1和IN2,确定电机转动方向,然后对使能端输入PWM脉冲实现调速,使能端ENA、ENB为高电平时有效。

(2)数据采集程序设计。完成硬件初始化后,使能芯片中断功能,此时若有中断源触发中断,则程序跳入中断程序。本系统中断为串口中断,上位机经由WiFi模块与控制器通信,可以修改系统参数控制驱动程序。

(3)数据处理程序设计。激光雷达扫描获取周围环境数据,经雷达内部的DSP处理器进行实时计算,通过计算得到的距离值以及当前的夹角信息将再从通讯接口中输出到控制器,控制器通过VFH算法实施避障决策。VFH算法是向量区间柱图法的简称,即使用柱状图描述智能车周围障碍物,该方法先构建出周围环境的局域栅格地图,再根据占用栅格地图的单元值计算障碍物概率直方图,最后根据直方图对每个通道计算代价,选择最低代价的通道进行方向导航。

3.2 ESP8266模块程序设计

ESP8266模块共有有3种工作模式,选用AP模式即可满足智能车与上位机之间的通讯。AP模式下,ESP8266模块作为热点,可以实现上位机与模块通信[13],模块与K60控制模块之间相连,从而实现上位机通过局域网对下位机的无线控制。ESP8266常用的AT指令见表2。

表2 ESP8266常用AT指令Tab.2 ESP8266 common AT instructions

智能车系统设计中所需设置AP模式指令控制:

AT+RST //重启生效

AT+CWMODE=2 //设置WiFi模式

AT+CWSAP=<ESP8266>,<12345678>,<1>,<3> //配置AP参数

AT+CIPMUX=1 //启动多连接

AT+CIPSERVER=1 //建立服务器

通过串口发送上述指令开启ESP8266的WiFi,开启后上位机即可连接上ESP8266模块,控制模块即可通过ESP8266与上位机进行通信。

4 结束语

本文是基于K60芯片搭配PRLIDAR-A1激光雷达,利用VFH算法实现智能车避障功能,同时通过ESP8266模块与上位机通信控制智能车移动,能够实现远程遥控和在较复杂环境下进行实时平滑避障。

猜你喜欢

上位电机雷达
新能源车用驱动电机系统的匹配应用
隐形飞机哪里躲
小番茄发电机
一场史无前例的乐队真人秀
班上的“小雷达”
基础油“上位”
X2412S多旋翼专用电机
电机Ⅱ个股表现
能分身的雷达
基于VC的PLC数据采集管理系统