先放上这一系列的链接:
正文开始:
我们车模使用的是B车型,它为后驱单电机,前转向SD-5舵机。这个车型的优点很粗暴,就是后驱电机动力很强大,满速的时候能让车飞起来然后把轮胎瞬间甩掉;它的缺点也很明显,由于它是单电机,后轮为被动的机械差速,因此其转向能力相比双电机的C车型差的不是一点半点。十三届之前,老款C车型的电机动力不行,轮子半径也小,速度因此较慢,B车自然是更好的选择,信标对抗组的好成绩很多都是B车拿下的。到我们十三届,组委会推出了新款C车型,轮子半径加大了,动力增强了,配合上C车一直以来的优秀转向性能,简直是“天选之子”。然而…年少天真的我们队三个人当时并没意识到C车改款的提升有多大,依旧选择了昔日王者B车型。最后事实也给新款C车证明了它的强大,十三届信标对抗组的排行榜几乎被新C车占领了,B车模则没有了昔日的辉煌。
我们使用的主控为恩智浦的K60芯片。
主要的传感器有:硬件二值化的OV7725摄像头;E18-D80NK光电管用来检测一定距离内的障碍物;E6A2-CW3C500编码器用来测后驱轮子转速。
这一次就先分享一下首先是各个模块的初始化(使能):
gpio_init(PTE6,GPI,0) ; //红外 中
gpio_init(PTE7,GPI,0) ; //红外 左
gpio_init(PTE8,GPI,0) ; //红外 右
ftm_quad_init(FTM1); //FTM1 正交解码初始化
FTM_PWM_init(FTM2,CH1,300,570); //舵机PWM初始化
FTM_PWM_init(FTM0,CH0,20000,0); //反 //电机PWM初始化
FTM_PWM_init(FTM0,CH1,20000,0); //正
OV7725_INC(); //设置行场中断
IICWriteGpio_inintOV(); //设置SCCB引脚
while(ov7725_probe()==0); //初始化寄存器
ov7725_set_image_size(IMAGE_SIZE); //设置图像大小
gpio_init(PTB20,GPI_UP,0) ; //按键1
gpio_init(PTB21,GPI_UP,0) ; //按键2
gpio_init(PTC8,GPI_UP,0) ; //拨码开关1
gpio_init(PTC9,GPI_UP,0) ; //拨码开关2
gpio_init(PTC10,GPI_UP,0) ; //拨码开关3
gpio_init(PTC11,GPI_UP,0) ; //拨码开关4
OLED_Init(); //OELD显示初始化
uart_init(UART4 , 115200); //串口初始化 串口:UART4 波特率:115200
gpio_init(PTE9,GPI,0) ; //红外探头 左前
gpio_init(PTE10,GPI,0) ; //红外探头 右前
gpio_init(PTE11,GPI,0) ; //红外探头 右后
gpio_init(PTE12,GPI,0) ; //红外探头 左后
/************************主函数***************************/
void main(void)
{
DisableInterrupts; //禁止总中断
uart_init(UART4 , 115200);//串口初始化 串口:UART4 波特率:115200
gpio_init(PTE6,GPI,0) ; //红外 中
gpio_init(PTE7,GPI,0) ; //红外 左
gpio_init(PTE8,GPI,0) ; //红外 右
gpio_init(PTE9,GPI,0) ; //红外探头 左前
gpio_init(PTE10,GPI,0) ; //红外探头 右前
gpio_init(PTE11,GPI,0) ; //红外探头 右后
gpio_init(PTE12,GPI,0) ; //红外探头 左后
gpio_init(PTB20,GPI_UP,0) ; //按键1
gpio_init(PTB21,GPI_UP,0) ; //按键2
gpio_init(PTC8,GPI_UP,0) ; //拨码开关1
gpio_init(PTC9,GPI_UP,0) ; //拨码开关2
gpio_init(PTC10,GPI_UP,0) ; //拨码开关3
gpio_init(PTC11,GPI_UP,0) ; //拨码开关4
ftm_quad_init(FTM1); //FTM1 正交解码初始化
FTM_PWM_init(FTM2,CH1,300,570); //舵机PWM初始化
FTM_PWM_init(FTM0,CH0,20000,0); //反 //电机PWM初始化
FTM_PWM_init(FTM0,CH1,20000,0); //正
OLED_Init(); //OELD显示初始化
OV7725_INC(); //设置行场中断
IICWriteGpio_inintOV(); //设置SCCB引脚
while(ov7725_probe()==0); //初始化寄存器
ov7725_set_image_size(IMAGE_SIZE); //设置图像大小
OLED_Fill(0x00);//黑屏
EnableInterrupts; //开启总中断
while(1)
{
}
}
这次就先到这里,往后我还会不定期的继续更新信标对抗组这个系列相关内容,包括我们使用的寻灯策略、避灯策略、分段控制等等。
---------------------
作者:ZZM丶
来源:CSDN
原文:https://blog.csdn.net/qq_41833526/article/details/109388571