APP下载

基于STM32的智能小车设计

2023-01-16刘庆华

无线互联科技 2022年21期
关键词:码盘循迹摄像头

杨 阳,刘庆华

(南京机电职业技术学院,江苏 南京 211306)

0 引言

日常生活中,智能化设备不断普及,不管是智能手机、智能家居还是智能汽车,产品一经面世就受到大家的热捧。不久之前,百度的智能汽车开始了自己的第一段里程,这也标志着智能汽车将进入人们日常生活。自动泊车、自动召唤、哨兵模式、自动巡航、自动驾驶等,都已经成为现代汽车制造中可实现的功能,这些功能也进一步使得人们在驾驶时感到轻松有趣,也让驾驶生活变得更加便利[1-2]。

图1 基于STM32的智能小车系统架构

本款智能小车很好地模仿了现代自动智能汽车的设计,同时以STM32单片机作为小车的核心控制芯片,将单片机技术融入小车的各个功能模块,能够推动单片机技术的蓬勃发展[3-4]。

1 智能车系统架构

本系统设计的智能车由循迹单元、避障单元、STM32控制单元、电机驱动单元和云台摄像头单元组成。循迹单元是智能车实现自动行驶的基本功能单元,采用光电传感器获取循迹数据。避障单元可以保障智能车自动行驶的安全,同时也可以对目标物进行举例测量。STM32控制单元是整个系统的核心,负责整个系统的数据处理及控制。电机驱动单元提供智能车的动力输出,同时带有测速码盘,实时获取速度信息供处理器控制。云台摄像头单元用于实时传输智能车画面,提供画面监控。各单元间通过CAN总线进行数据交互,通信速率最高可达到1Mb/s,系统架构如图1所示。

2 系统硬件设计

2.1 循迹功能单元设计

循迹功能单元电路由红外传感器和微处理器两部分组成。红外传感器采用TCRT5000型光电对管,TCRT5000是一种由红外辐射源和光电接收二极管组成的光电传感器,它具有反应速度快、功耗低等特点。采用该传感器能够较为简单地设计循迹电路,探测有效距离可达5~25 mm。利用红外光在参照物上的漫反射原理,光电接收管能够将接收到的不同灰度值以模拟量传递给微处理器处理,从而能够准确地识别黑、白循迹线,调整运行轨迹,使嵌入式智能车能够安全平稳的运行。循迹功能单元架构如图2所示。

图2 循迹功能单元架构

循迹功能电路单元由9组红外对管组成,采用前5后4交叉排列,大大提高了循迹精准度,循迹单元分别排列于智能车前后两端,电路设计如图3所示。前5路循迹灯实现对前进方向的道路预判,增强智能车循迹的稳定性,该功能单元处理器采用型号为STM32F103C8T6微控制器,硬件资源多达10个ADC通道,电路中ADC1-ADC9与微控制器ADC引脚相连,接收红外传感器的模拟信号,无需附加驱动电路。利用微控制器自身ADC功能可以方便地设定阈值,达到更准确地循迹效果。该处理器支持CAN接口,从而实现对循迹数据的实时采集、处理、传输[5]。

2.2 避障功能单元设计

避障功能采用超声波测距的方法实现,由发射探头、接收探头、蜂鸣器组成。该功能单元保障智能车在执行自动控制如循迹时,确保前方道路通畅、周围环境安全。超声波发送和接收电路设计原理图如图4所示,当智能车在规定运行轨迹上进行到某一位置处,利用STM32微控制器控制超声波发射电路发送超声波信号,并通过GPIO口获取超声波接收电路的信号,通过时间差计算出超声波传感器与前方障碍物的距离。该电路由555定时器、74HC08(与门)、74HC14(非门)、CD4069反相器和CY1超声波发射装置组成。通过调节电位器RW1可以调节555定时器的输出频率,而超声波实际的输出频率,需要根据超声波传感器的测量误差来进行调节。当555定时器输出频率为40 kHz,控制引脚INC为低电平时,超声波信号即可发送出去[6]。蜂鸣器可作为安全距离报警作用由程序控制。

图3 循迹红外对管电路

2.3 核心控制单元电路设计

核心控制单元的开发板采用ARM Cortex-M4内核的STM32F407IGT6为主控芯片,最高时钟频率可达168 MHz,开发板单元电路接口包括:功能电路单元接口、USART通信接口、CAN总线通信接口、USB方形接口、I/O扩展接口、DAC接口、SD卡槽、SWD程序下载接口等,其开发板单元组成如图5所示。

控制单元电路通过多个CAN总线通信接口实现和其他各电路单元进行通信,循迹功能电路通过CAN总线将循迹数据发送给开发板,开发板与电机驱动单元通信获取速度信息并控制小车前进、后退、左转和右转。功能任务板通过CAN总线接口实现图像传输和超声波测距算法。

2.4 电机驱动单元电路设计

电机驱动单元电路配备独立的微控制器STM32F103RCT6和两组DRV8848电机驱动模块,用于驱动四组带测速码盘的直流电机。独立的电机驱动单元可使核心控制器通过更短、更快的程序指令进行控制。直流减速电机能够提供更加准确的控制。电机驱动芯片DRV8848驱动电路如图6所示,DRV8848是TI公司的一款双路H桥电机驱动器芯片,支持单通道/双通道刷式直流电机,单个H桥最大可提供2A工作电流,并且能够支持4V~18V较宽的工作电压,满足智能车电机驱动的设计需求。

图4 超声波接收和发送电路

图5 开发板单元电路组成

图6 电机驱动芯片DRV8848电路

智能小车中4个电机由4组PWM进行控制,从而实现电机的正反转以及速度的调节,PWM信号由微控制器STM32F103RCT6提供,使用20栅格测速码盘能够更加准确地得到电机的转速,从而获得速度信息,准确控制小车的行走路线。

2.5 云台摄像头

云台摄像头采用100万像素(720P),该摄像头最大支持1 280×720分辨率,远程控制可以实现云台在水平355度,垂直120度范围内的角度调整,可以直接通过网线与A72处理终端连接,同时在无线WiFi覆盖范围内也支持与客户端无线连接,能够实现摄像头图像采集传输,提供实时监控信息。

3 软件系统设计

3.1 系统整体软件设计

该系统上电后,主程序首先进行初始化操作,再依次完成系统函数、功能模块函数的初始化,包括系统变量定义和系统变量赋初始值等,最后进行功能模块检测,实现与循迹模块、避障模块、电机驱动模块、摄像头模块之间的通信。

系统初始化并检测完毕后进入等待运行状态,通过智能车板载启动按键启动运行。程序判断启动按键是否按下,如果按键被按下则进入主循环,反之则继续判断按键状态。主程序会调用各传感器模块函数,执行相关动作。系统整体流程如图7所示。

3.2 循迹模块程序设计

循迹模块能获取当前智能车所在路线的位置状态,实现智能车路径的自动识别,并且采用CAN总线读取电机驱动板上的码盘数据并控制直流电机。循迹模块单元具有独立的微控制器,能够直接处理传感器的数据,并将当前状态以固定数据格式发送给核心控制单元,循迹模块程序设计流程如图8所示[5]。

3.3 避障程序设计

避障模块采用超声波测距的方法实现对目标物距离计算,由程序控制智能车行驶状态,确保车体安全行驶。超声波测距是借助超声脉冲发射与接收时间差进行计算的,假设超声波脉冲从发出到接收之间的时间为T,即超声波经历两段被测距离的时间,超声波在空气中的传播速度为M,可以得到超声波探头距离被测物体的距离S=(T×M)/2。避障模块程序设计流程如图9所示。

图7 系统整体流程

图8 循迹模块程序设计流程

图9 避障模块程序设计流程

3.4 电机驱动程序设计

智能小车通过循迹模块获取行驶路线,经过核心处理器处理后控制电机驱动模块,该模块通过测速码盘获取左右轮的速度信息,从而准确地控制左右电机,电机驱动模块架构如图10所示。

电机驱动模块采集测速码盘信息并驱动控制电机,测速码盘是一种集光、电一体的传感器,不同规格的测试码盘内部具有不同规格的光栅,可以精确地计算电机运动的状态。使用传统的M法进行测量[7],通过计算在固定的采样时间内测速码盘光电信号输出的脉冲次数,即可得到电机实际的每分钟转速信息。电机驱动信号的PWM由电机驱动模块上的微控制器提供,其占空比的调节根据实际测得速度信息进行控制,确保两侧实际速度与控制速度一致。电机驱动模块程序流程如图11所示。

3.5 云台摄像头程序设计

智能小车上电后,云台摄像头自动开机执行自检,自检过程中摄像头水平旋转一周,垂直旋转120度,以确保云台功能正常,自检过程约为1分钟,核心板主程序在自检后尝试与摄像头进行通信。

4 结语

经过对STM32智能小车的硬软件分析和测试,该智能车可实现自动循迹、避障测距、图像传输等一系列智能化的功能,本项目可作为移动机器人的载体,在相关技术成熟以后,可广泛应用于农业、工业、国防军事等领域,具有广阔的市场潜力和应用前景。

图10 电机驱动模块架构

图11 电机驱动模块程序流程

猜你喜欢

码盘循迹摄像头
浙江首试公路非现场执法新型摄像头
基于DFT算法的电力巡检无人机循迹检测系统设计
三角码盘定位机构相对于十字码盘的准确度分析和补偿计算
摄像头连接器可提供360°视角图像
基于单片机的智能循迹小车的设计
基于太赫兹技术的新一代摄像头及其在安防领域的应用探讨
智能差分循迹小车设计
基于MC9S12XS128处理器的智能循迹小车分析研究
轧机码盘改造的探讨与实践