西交大项目设计实验 告(自动化系)

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进行处理,非常感谢!

上一篇 2018年10月10日
下一篇 2018年10月11日

相关推荐