github地址 link
项目设计实验 告
- 0 项目设计概述
- 一、编程软件的安装与使用
-
- 1.1下载安装软件
- 1.2安装 IAR 详细过程
-
-
-
- 1.下载后解压文件,打开目录,运行安装文件:
- 2.IAR的编程界面
- 3.安装仿真器
-
-
- 二、模块检测与调试
-
- 2.1检测的电源模块。
- 2.2检测核心板
- 2.3检测电机驱动
-
-
- 2.3.1程序验证
- 2.3.2电路连接
- 2.3.3 PCB与对应引脚
-
- 2.4检测舵机和舵机对正
-
-
- 2.4.1 舵机概述
- 2.4.2 舵机的电路连接
- 2.4.3 舵机调试
- 2.4.4 舵机对正
-
- 2.5检测摄像头
-
-
- 2.5.1 摄像头概述
- 2.5.2 摄像头的连接
- 2.5.3 摄像头例程
-
-
- 1.Ov7620采集初始化
- 2.PORTD中断服务程序
- 3.DMA中断服务程序
- 4.数据搬移
-
-
- 三、项目设计实现
-
- 3.1整体框架
- 3.2初始化
- 3.3 摄像头数据的采集
- 3.4摄像头数据的处理
-
-
- 3.4.1图像二值化
- 3.4.2寻找黑线与赛道中心
-
- 3.5 PID算法
- 3.6舵机控制
- 3.7电机控制
- 四、总结
0 项目设计概述
发资料百度云 址: 项目设计
发平台:win10
reescale Kinetis K60芯片
AR EWARM开发环境
一、编程软件的安装与使用
1.1下载安装软件
目前最新的IAR for ARM为v6.30,支持更多的Kinetics系列芯片,
因此我们安装最新版,避免因为版本太低而出现不兼容,甚至出
现异常错误的情况
1.2安装 IAR 详细过程
1.下载后解压文件,打开目录,运行安装文件:
相对于Keil For ARM、CodeWarrior 而言,IAR for ARM的编程界面是最简单的,编译效率高,在嵌入式系统的调试方面提供了可供调试的插件。
3.安装仿真器
又换会原来的安装导航界面:选择Install driver,选择了用jlink作为仿真调试器,因此这里选择jlink,运行安装,运行后,会自动安装驱动,不会有其他提示。另外,为了可以使用擦除芯片等功能,我们可以选择用segger 公司的 j-link。
与设置占空比的不同来进行正反转
2.3.2电路连接
如果认为这个猜想不正确,那么可以继续验证一下,我们可以看到主板的背面,
2.3.3 PCB与对应引脚
打开主板的原理图 [E:BaiduYunDownload项目设计蓝宙 飞思卡尔资料蓝宙电子智能车摄像头套件k60平台资料-更新至20130601 1蓝宙电子智能车MK60主板资料蓝宙电子智能车MK60主板资料] 里的主板原理图,看到PCB电路图中
2.4检测舵机和舵机对正
机械安装好后,先把舵机上面的黑色小圆盘从舵机上拔出来。改装舵接的连接线,舵连接线的改装方法参考主板原理图。把舵机连接线插入主板上,下载舵机测试程序,舵机测试程序会让舵机左右转动。如果舵机能够正常工作,下载舵机对中程序,让舵机对中,安装上黑色小圆,说完这些是不是不知道我在说什么,好我们回到电机调试的思路来。
2.4.1 舵机概述
首先看一下舵机的材料 [E:BaiduYunDownload项目设计前三节PPT2 姚向华] :
一组减速齿轮;
电源线:一般为4.8v或6v。一般为红色;
地线:一般为黑色
控制线:周期是20ms(也就是50HZ)的脉宽调制(PWM)信 (FUTABA为白色)
脉冲宽度从0.5ms-2.5ms,相对应舵盘的位置为0-180度,呈线性变化。从这里可以得到占空比从0.5/50-2.5/50,也就是2.5%到12.5%。
重点是,控制线提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,直到给它提供一个另外宽度的脉冲信 ,它才会改变输出角度到新的对应的位置上。不是说各个占空比他就一直转,而是一个占空比对应一个角度的。
2.4.2 舵机的电路连接
依旧看主板,可以看到主板的后面有舵机1与舵机2,我们任意选一个,以舵机1为例。
2.4.3 舵机调试
我们回到电机的调试程序中,看到FTM2与CH1正好对应着PTA9,
在80ms中断里,改变舵机的占空比因此使得舵机向左与向右,由于舵机的占空比为2.5%-12.5%,5和7是试出来的,一个向左偏,另一个向右偏。
2.5检测摄像头
连接电源线到主板上,查看核心板的power灯是否亮着。把摄像头排线接到主板上,用万用表测试一下供电电压是不是5V。如果供电正常,把排线插到摄像头上,看摄像头的指示灯是否亮。用视频卡查看,摄像头的图像。下载摄像头测试程序,看串口是否有采集的AD值输出。当然我并没有这样做,看着灯亮,就觉得就开始调试啦。毕竟上一届替我们做过了这些工作。顺着以前的思路,我们先看一下,摄像头的一些资料
2.5.1 摄像头概述
先看一下摄像头的基本资料 [E:BaiduYunDownload项目设计前三节PPT5 王莹]
在主板上找到相应的引脚
2.PORTD中断服务程序
4.数据搬移
1.在摄像头程序采集中,只用了10行数据。
2.找黑线,本历程的找黑线程序,是先二值划,再根据双线特征,进行黑线查找
3.。在用PID算法,算出转向 PWM。计算转向值程序,是需要根据道路的实际情况结合摄像头前瞻和舵机响应时间,计算出来的值。
4.计算转向值,根据视觉中心与赛道中心,给舵机一个适当的占空比,改变舵机角度。
5.速度算法,需要根据自己赛道是直道和转弯半径给出合适的目标车速。还需要对车速响应做出调整,这里主要是看需要不需要刹车和加速候的 PID 值。
起跑线的检测我们就不需要了。
3.2初始化
起初我们进行电机,舵机与摄像头的初始化,程序为:
DMA_PORTx2BUFF_Init()采用DMA通道4 ,PTE0-PTE7 数据采集,ADdata数据存储位置,PTD12触发通道,DMA_BYTE1数据存储长度1,DATACOUNT数据总个数400,DMA_rising_keepon 触发方式上升沿。其中DMA_CH4与DMA_BYTE1都是枚举变量。
3.4摄像头数据的处理
摄像头的处理包括了图像二值化与寻找黑线,我们的思路与下面的流程图相符合,不过我们每次都采集10行,因此第一个条件就”采集到的黑线行数>5”不用判断啦。
3.4.2寻找黑线与赛道中心
我从图像的中心相两边找,如果找到三个连续的点则为黑线。程序为
3.5 PID算法
在工业控制中,比例+积分+微分的控制规律是一种常用的方法,可适用于多种被控对象。PID调节器是一种线性调节器,它的实质是将设定值r(t)与输出值c(t)进行比较构成控制偏差
e(t)=r(t)-c(t)
将其按比例、积分、微分运算后,并通过线性组合构成控制量,如图所示,所以简称为P(比例)、I(积分)、D(微分)调节器。
3.7电机控制
此次项目设计,我们的电机占空比在25%左右,占空比不是很大,程序如图

但是在转弯的时候,由于舵机在极限位置,小车可能会卡着慢慢移动,这时候我们应该适当的增加速度,以保证在转弯的时候,小车正常行驶,不会出现停下来,缓慢转弯的情况。
四、总结
此次项目设计到这里也算告一段落,其中学到了很多,比如熟悉了一下基本环境的搭建,由于例程比较详细,这里显得轻松了许多。对于整车的调试,需要各模块进行,这样很轻松。在一个就是在海量的信息中找到我们有用的信息,这个很重要,信息爆炸的时代,如果对信息过滤的好,那必然会赢得时代,做一个弄潮儿,可我这种能力有待加强。因为首先是Thomas调试了程序,告诉了我有用的文档,我在开始开发的。在开发过程中,我也是表现出来极大的陌生感,因为对电路以及硬件调试的不熟,自己又好高骛远,不是很情愿动手动脑,导致最后开发速度慢,但在其中也学到了,边看开发文档边写程序,边读例程,找对应引脚,理清逻辑,边修改程序,实现自己想要的功能。未来的路还很长,希望自己静下心来,认认真真做每一件事,要想成功,兴趣与坚持,一直要动手,天生聪明,不如每天动手。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!