概述
这仅能使车以极慢的速度完成全元素任务
前提条件:能够
舵机打角
电机任意转速转动
读取电感前瞻获取到的值
屏幕显示
数据存储与读取
按键菜单
会更好:
陀螺仪数值读取
激光测距
干簧管/霍尔检测
编码器数据读取
速度闭环
在初始化里放各器件及函数的初始化
在中断里
Cnt++;
KeyScanInt();
Beep_IntCnt();
Car_Protect();
//--------------------------电磁处理和元素判断-------------------------------//
TOFGetData();//获取激光测距的值
Inductor_deal();//获取前瞻电感值及滤波归一化等
Ele_judge();//元素识别与识别后的处理
//----------------------------陀螺仪数值获取---------------------------------//
if(Cnt% 5== 0 ) {
ICM20602DataFilter();//陀螺仪获取数据
ICM_I_Int();//陀螺仪积分
}
if(!StartCar){
//-------------------------------方向控制------------------------------------//
if(Cnt% 5== 0) {
DirectionControl();//舵机打角
}
//-------------------------------速度控制------------------------------------//
ExSpeedControl();//顺序不能错
DiffSpeedControl();
SpeedControl();//电机控制
}
对于元素判断
在车速很低的情况下
可以用模板匹配:
在发车前,手动采集元素入口的电感值
(用eeprom配合按键菜单,存储各个电感的值,标记为该元素)
还可以加上激光测距等辅助条件
#define value 1234
if (sqr(LNow[0]-Lreserve[0])+sqr(LNow[1]-Lreserve[1])+sqr(LNow[2]-Lreserve[2])+sqr(LNow[3]-Lreserve[3])+sqr(LNow[4]-Lreserve[4])+sqr(LNow[5]-Lreserve[5])+sqr(LNow[6]-Lreserve[6])+sqr(LNow[7]-Lreserve[7])
<=value)
{
fork_flag=1;
fork_state=1;
}
元素处理
判到元素之后,设置舵机及电机的变化
最后
以上就是欢呼摩托为你收集整理的智能车入门——实现低速完赛<新手从零做车>的全部内容,希望文章能够帮你解决智能车入门——实现低速完赛<新手从零做车>所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复