树莓派智能循迹小车
袁露 钟佳音 张宇鑫
摘要:由于传统的循迹传感器模块利用不同颜色反光效果不同,将接收到模拟量信号通过电压比较转换为0和1的数值信号,但是循迹传感器对于光线适应性比较差。为了避免循迹模块的弊端,本文采用摄像头采集图像,通过树莓派通过opencv进行图像处理判断当前路线的方向,并且发送给小车的控制模块运用PID算法实现小车快速平稳的运行。
关键词:树莓派、opencv、图像处理、PID算法
中图分类号:G4 文献标识码:A 文章编号:(2021)-19-
1 研究背景
在我国科技强国战略下,企业生产技术不断提高,对自动化技术要求也不断加深的环境下,智能车辆以及在智能车辆基础上开发出来的产品已成为自动化物流运输、柔性生产组织等系统的关键设备。世界上许多国家都在积极进行智能车辆的研究和开发设计。智能寻迹机器人,是一个集环境感知、规划决策,自动行驶等功能于一体的综合系统,它集中地运用了计算机、传感、信息、通信、导航及白动控制等技术,是典型的高新技术综合体。目前,国内外的许多大学及研究机构都在积极投入人力、财力研制开发针对特殊条件下的安全监测系统。其中包括研究使用远程、无人的方法来进行实现,如智能机器人远程监控等。无线传输的发展使得测量变得相对简单,处理数据的速度变得很快。单片机技术作为自动控制技术的核心之一,被广泛应用于工业控制、智能仪器、机电产品、家用电器等领域。
循迹小车是一个集环境感知、规划决策、自动行驶 等功能于一身的光机电一体化系统,它集合了传感器、信息处理及自动控制等技术。如今,随着国内外各种智能小车大赛的火热举行,各高校对其展开了深入广泛的 研究,同时也是对单片机课程的继续学习和应用强化[1]。
2 树莓派小车实现
树莓派小车整个路系统分为检测、控制、驱动三个模块。首先利用图像进行检测,经过比较器处理之后,送给软件控制模块进行实时控制,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。系统的硬件电路包括主控模块、视觉传感器、电源模块、动力驱动模块和显示模块,系统设计方案框图如 图2-1所示。
主程序设计 系统流程如图 11 所示。初始化完成后,CCD 开始 采集赛道二维图像信息,并进行图像处理。通过霍尔编 码器获取小车当前的速度并反馈给单片机,由增量式 PID 调节器控制电机,从而实现对小车速度的控制。
实现循迹功能的树莓派智能循迹小车主程序流程如下面所示,系统上电后,执行PWM模块、opencv初始化处理,然后进入主循环。在主循环中,执行一次opencv读取图像,判断当前路线偏向。程序设计中,可根据小车循迹线(黑线)及行驶路线 要求,调整控制程序。
ret,frame = cap.read() #capture frame_by_frame
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) #获取灰度图像
ret,thresh1=cv2.threshold(gray,70,255,cv2.THRESH_BINARY)#对灰度图像进行二值化
Path_Dect_fre_count = 1
for j in range(0,640,5): #采样像素点,5为步进,一共128个点
if thresh1[240,j] == 0:
Path_Dect_px_sum = Path_Dect_px_sum + j #黑色像素点坐标值求和
Path_Dect_fre_count = Path_Dect_fre_count + 1 #黑色像素点个数求和
Path_Dect_px = (Path_Dect_px_sum )/(Path_Dect_fre_count) #黑色像素中心點为坐标和除以个数
Path_Dect_px_sum = 0
cv2.imshow(‘BINARY,thresh1) #树莓派桌面显示二值化图像,比较占资源默认注释掉调试时可以打开
if cv2.waitKey(1)&0XFF ==ord(‘q):#检测到按键q退出
Motor_Stop()
break
3 结束语
本文介绍了具有循迹功能的树莓派智能小车硬件电路及软件设计方案,硬件电路设计简单,程序下载及调试方便,电机运行速度及方向控制容易实现,能够实现循迹功能。
参考文献
[1] 彭登峰.具有避障及循迹功能的智能小车系统设计[J].数字技术与应用,2020,38(11):7-9.