智能车调试

首先:摄像头采集图像,采集是一张一张的,在每一张图片然后根据二维数组识别黑白边界,进而通过每一行得到黑白边界求出中值点,车随中值点构成的中值线驱动电机的行驶,电机有加速和刹车,还有倒转,刹车时duty=150,往上加到200是倒转快,往下减到100正转快,120是测试速度。

占空比:duty/312   一般情况下,占空比为50%的时候车就会刹车。

其中duty作为变量适合调试,调试合适的占空比.最后比赛的时候直接用调试出来的最合适的值作为参考值.

另外:duty的值是测试值,应该小于计算出来的值。 

PLL ->core=200M

总线频率:bus=core/2=100M Hz

1M=1000000

所以总线频率为100 000 000Hz

总线频率/分频/频率=模拟计数值

又因为:(5)2^5=32;所以分频为32;

100 000 000/32Hz/100Hz=31250  

而模拟技术值最大为65535    即0~65535

//设置分频器

//MCG=PLL    core=MCG

SIM_CLKDIV1= SIM_CLKDIV1_OUTDIV1(0)  //core=MCG

//等待始终状态位更新

while........

core_clk_

M=50*().........

bus_clk_M=core_clk_M/5;这里原来是除的5   现在我们调为2

在测试电机驱动的时候,需要用到150/312

在测试舵机的时候,需要用到 100 000 000/32/100=31250   其中那个100是舵机是频率!

分频!!!!!!!!!  嵌入式

波!

pd算法

总中断:将while里面的程序压到中断里面去(相当于打包到中断),然后中断(定时中断)在规定的时间内运行完,这样就会避免一些不必要的情况发生:

第一:程序放在定时中断,防止放在while里面出现无限循环。中断规定时间内运行完成,不会出现卡死。

中断:中断假如设置为1s钟,而程序运行需要0.5s,那么在后面的0.5s内并不需要运行程序,在这1s后进入下一个中断,

当程序运行完,如果中断没有完,不会进行下一个中断,而是等中断时间到了后,进入下一个中断,开始下一个程序,这样做的好处是,如果在一个中断的时候程序运行的时候出现错误的时候,到了中断时间后就会跳出这段程序,到下一个中断去。

智能车调试:

第一:下载程序 稳压源供7V电压,0.2A电流

第二:电机驱动测试  稳压源提供7V电压,1.5~2.0V电流,其实1.8比较合适

第三:舵机测试  电压7V~7.2V  因为电池用的是7.2V  舵机电流测试输入1A,或者1.5以下,1A为适中;

光电四轮B车模 单电机

光电四轮C车模 双电机

整体  三个方向的做法

mian.c 定时中断在PIT里面 中断服务函数。
采集  计算偏差量  转向控制 输出转向 电机赋值 (电磁组)
采集 ov7620里面采集  计算偏差量  图像处理 各个情况  用一个函数
判断各种情况  赋值
框架搭在中断里面
新建一个框架  工程程序框架
关中断  就会进入PIT文件里面 (直立)

发布了98 篇原创文章 · 获赞 43 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_42352666/article/details/83685773
今日推荐