龙源期刊网 http://www.qikan.com.cn
基于STM32单片机的自动引导小车控制系统设计
作者:何腾鹏 黄峰 谭方韬 徐建 来源:《科技视界》2014年第12期
【摘 要】提出一种自动引导小车控制系统的设计方案。以STM32单片机为核心处理器,采用视觉导引方式,使用摄像头来获取路面信息,通过边缘检测方法提取轨道黑线,求出小车与黑线间的位置偏差,通过速度传感器实时获取小车速度,结合PID控制算法完成对小车电机和舵机的反馈控制。通过硬件系统测试,结果表明系统能在测试环境下实现自主稳定运行,达到了对小车自动控制的功能要求。
【关键词】自动引导车;STM32单片机;传感器;PID
Design of Automatic Guided Vehicle Control System Based on STM32 Microcontroller HE Teng-peng HUANG Feng TAN Fang-tao XU Jian
(School of Information and Engineering,Hubei University for Nationalities,Enshi Hubei 445000,China)
【Abstract】Propose an automatic guided vehicle control system design. In STM32 microcontroller core processor, using visual guide way, using cameras to get road information extracted by the black line track edge detection method, find the position deviation between the car and the black line, real-time access to the car speed by a speed sensor, combined PID control algorithm to complete the car motor and servo feedback control. Hardware system test results show that the system can achieve independent and stable operation in a test environment to achieve the automatic control of the car functional requirements.
【Key words】Automatic guided vehicles;STM32 microcomputer;Sensors;PID 0 引言
自动引导小车(AGV)是一种无人驾驶的智能搬运机器人,按照监控系统下达的指令,根据预先设计的程序并融合车载传感器信息,从而实现小车沿预定的行使路线自动行驶并完成一系列作业功能[1]。随着现代科学与技术的高速发展,自动引导小车(AGV)已经广泛应用于汽车制造、机械加工、烟草业自动仓库等许多领域[2]。作为一种无人操作的自动化运输设备,AGV具有适应性好、柔性程度高、可靠性强等特点,现已成为现代物流系统的关键装备[3]。
龙源期刊网 http://www.qikan.com.cn
传统的自动引导小车大多采用8位或是16位处理器对信号进行处理,其缺点是处理器对中断响的应速度不够快[4],为了提高中断响应的速度,本系统采用STM32单片机,它是32位的超低功耗处理器,体积小、成本低,外部中断多,寻址方式灵活简单,执行效率高,指令执行速度快,并且具有极高的运算能力和极强的中断响应能力,解决了应对突发状况的响应速度。
1 自动引导小车控制系统的总体设计
系统主要以后轮驱动前轮转向的四轮模型小车作为载体,配备信息监测模块、执行模块、电源模块、无线通讯模块以及单片机控制模块进行自动引导小车控制系统的设计,也可以通过CC2420无线通讯模块对自动引导小车进行远程控制。本系统的总体设计如图1所示。 图1 系统设计框图 Fig.1 System design diagram 2 自动引导小车控制系统硬件设计 2.1 信息监测模块设计
本设计中信息监测模块主要完成道路信息监测和速度监测这两大任务,它相当于自动引导小车控制系统的眼睛,对自动引导小车的导引起着决定性作用。 2.1.1 道路信息监测模块
本设计选用跑道为黑白两色。其背景色为白色,跑道中央有一条黑线作为小车行进的依据。道路信息监测模块以基于视觉导引的方式,采用CMOS摄像头将拍摄到的路面信息以PAL电视机制式的视频信号格式通过LM1881视频同步信号分离芯片[5],提取出路面视频信息的行同步脉冲、消隐脉冲和场同步脉冲,并将它们转换成数字电平直接输给STM32单片机的I/O口作控制信号,导引小车行驶。其电路如图2所示。 图2 LM1881视频信号同步分离电路
Fig.2 LM1881 video sync separator circuit diagram 2.1.2 速度监测模块
实时监控自动引导小车的速度,以闭环系统的形式对小车的速度进行反馈调节,对小车的平稳运行,具有重要的意义。本设计速度监测模块采用红外对管,在齿轮的一面粘上黑白相间的码盘,红外对管平行于齿轮面并固定在离齿轮较近的位置,齿轮转动时,带动码盘旋转,红
龙源期刊网 http://www.qikan.com.cn
外发射管在照到黑和白后返回给接受管的不同电压,因此可以实现脉冲测速。其电路如图3所示。
图3 速度检测电路 Fig.3 Speed detection circuit 2.2 执行模块设计
执行模块主要由舵机和直流电机及其驱动组成。系统选用LM298驱动芯片结合增量式PID算法产生PWM波驱动后轮两个RS-380SH直流电动机工作,舵机选用S3010舵机采用PD算法实现小车前轮转向控制。
LM298是ST公司生产的一种高电压、大电流电机驱动芯片,其工作电压高达46V,输出电流大,瞬间峰值电流可达3A,持续工作电流为2A,内含两个H桥的高电压大电流全桥式驱动器。因此,电机驱动采用LM298驱动芯片来完成,其电路设计如图4所示。 图4 电机驱动电路 Fig.4 Motor drive circuit 2.3 电源模块设计
电源模块是整个系统运行的基本保障。本系统选用15V(0.7A)铅蓄电池结合LM317、7805、7812等稳压芯片组成电源模块给整个系统供电。 2.4 无线通讯模块设计
无线通信模块采用 Chipcon公司的CC2420数字射频芯片,它对信号具有同时接收和发送的功能。其工作在2.4GHz的通用频段上,并且在短距离通信具有较高的可靠性,外围电路设计简单,CC2420无线通信模块直接采用3V电池供电,其外围电路设计如图5所示[6]。 3 系统的软件设计
系统采用 C语言进行软件设计,编程和调试环境为 Keil 4,系统主流程图如图 6 所示。 图6 系统主流程图
Fig.6 Main flow chart of the system 4 系统测试结果与分析