基于PIC32实现的智能球类回收车,软硬件协同
针对这一问题,我们思考,是否可以设计一种自动找球、捡球的小车,它可以在运动场地中自动寻找、识别、跟踪散落在地上的球体,如发现符合此项训练球类特征,小车将自动调整运动接近此球,然后控制机械臂将进入U型槽的球体“收入囊中”,这既避免了不必要的劳动,提高了训练、比赛的效率,同时可以让运动员更加专注地投入比赛,取得更好的成绩。
基于上述考虑,本队提出了如下设计方案---智能球类回收车。
本作品是以PIC32单片机为核心微控制器,以自动目标跟踪为主要工作方式的智能小车系统,它由视频采集分析模块、智能小车驱动模块以及机械臂控制模块等部分组成,此系统有自动目标寻找、识别、跟踪、捡拾等功能。
利用此系统,在乒乓球、网球等训练场地以及铅球等危险比赛现场,可以在完全脱离工作人员控制的情况下,自动找寻目标捡拾训练、比赛用球。这样就避免了工作人员或运动员不必要的工作,提高了训练效率,也避免了铅球、铁饼等比赛、训练中不安全事故发生的可能。在球类比赛百花齐放、全民运动热情高涨的今天,该系统的研发、生产、应用必将具有重大的社会、经济效益。
系统功能概述
本系统的工作过程如下:
①通过摄像头观察球场范围,寻找小球,当视野中出现一个或多个完整的小球时根据近大远小选择最大的一个调整小车位置使小球正好位于小车视野正中心。
②控制小车运动,在运动过程中不断校正小车方向,确定使其正对要捡起的小球,最后使小车到达小球位置。
③当小球进入车前设计的U型槽时触动传感器使小车进入捡球模式,控制一个位于小球上方类似装羽毛球的筒形状的筒放下将小球压入其中,完成捡球。
④继续扫描其他目标进行捡拾,按远近关系依次捡完球场上所有的小球。摄像头观察检测到没有剩余小球时找寻返回位置标志(比如红色小旗)返回,完成任务。
本系统主要包括视频采集分析模块、智能小车驱动模块以及机械臂控制模块等部分。
硬件模块:
软件流程:
我们的项目涉及到的软件模块主要由三个部分组成:
一、摄像头定位模块:摄像头结合I2C连接到单片机上。主要进行图像收集,计算定位判断,为下层小车控制提供运行控制字。
二、小车控制模块:根据上层提供的控制字,控制步进电机进行左转,右转,前进的运动。这里考虑到小车是在运行过程中,通过摄像头收集到的数据进行运动判断,因此小车运行的时间用定时中断严格控制。每次小车转弯精度为3度,前进距离为12cm。
三、机械臂控制模块:机械臂的控制模块采用中断控制,当小车的u型槽前部判断小球已进入槽后,进入机械臂中断,控制机械臂向下运动,套入小球后,再让机械臂回到原处。接下来回到主程序继续执行下部操作。
下面,通过流程图具体介绍软件的运行流程:
首先是主函数:主函数是一个while的无限循环:
接下来对上面的各个部分进行说明:
(1)
摄像头拍照模块采用查询方式,摄像头拍下照片,等待所有数据都传给单片机后,标志位flagd置1。这里摄像头与单片机是运用I2C进行连接。流程图如下:
(2)
对摄像头采集进来的图片进行轮廓分析,判断小球的位置。未看到小球时,小车原地旋转,然后再次进行拍摄。当看到多个小球时,根据远近关系照成的平面上大小的不同,将最大的一个锁定为目标。然后根据小球的位置,向小车的控制模块发送控制字,流程图:
(3)
根据上一步送下来的控制字control对小车的运动进行控制,小车的驱动模块接单片机的不同IO口,对IO给出不同的输出分别控制小车向左旋转,向右旋转以及前进。旋转以及前进的精度通过定时中断精确控制;流程图如下:
(4)
(5)
当检测到小球入槽后,就进入该中断。中断首先将IO清零,防止小车仍然在运动。然后控制机械臂的电机转动,实现升降。机械臂的筒口也是采用塑料片做成的
PIC32智能球 相关文章:
- 电源设计小贴士 1:为您的电源选择正确的工作频率(12-25)
- 用于电压或电流调节的新调节器架构(07-19)
- 超低静态电流电源管理IC延长便携应用工作时间(04-14)
- 电源设计小贴士 2:驾驭噪声电源(01-01)
- 负载点降压稳压器及其稳定性检查方法(07-19)
- 电源设计小贴士 3:阻尼输入滤波器(第一部分)(01-16)