智能车电磁组——环岛处理
智能车电磁组——环岛处理
- 一、电感排布
- 二、圆环思路
- 1.入环
- (1)预圆环
- (2)入环
- 2.环岛内
- 3.出环
- (1)预出环
- (2)出环
- 三、代码部分
- 1.入环
- 2.圆环内寻迹
- 3.出环
一、电感排布
二、圆环思路
1.入环
(1)预圆环
在电磁智能车中,圆环要想稳定入环,预圆环判断及处理是非常重要以及不可缺少的。
在预圆环的判断过程中,我使用的是M、L、M_2这三路电感,当进入靠近预圆环的位置时,M、L、M_2这三路电感都会增大,而且当到达预圆环的位置时,M电感与M_2电感会有一个差值,通过判断M、L、M-M_2大于阈值来判断预圆环的标志位。
(2)入环
当预圆环的标志位置1之后,接下来就到了入环,我是通过判断预圆环然后开始通过编码器去计路程,当路程达到一个定值之后就通过舵机固定打角,执行入环程序。
注:在编码器计路程的过程中,为了防止高速情况下因为电感值的变化过大导致舵机小幅度的摆动进而导致车身姿态不稳,可以在这过程中让差比和的误差手动置零,让舵机保持在中值状态。
2.环岛内
当执行入环程序之后,在圆环里不能一直保持固定打角,所以我在入环之后,开启陀螺仪的积分标志位,当陀螺仪的积分数值大于一个定值,则代表入环程序结束,执行环内寻迹。
这里环内寻迹我切换到第二排的三个电感寻迹,因为第一排的三个电感已经在赛道之外了,无法计算出正确的差比和值。
!!!!环内寻迹别忘了写丢线!!!!!!
3.出环
(1)预出环
预出环也是必不可少的一部分,因为如果正常寻迹接近到出环那里,与出环方向相反的那个电感的电感值会变得很大,经过差比和计算,舵机会打向和出环方向相反的方向。这也进而会导致车声冲出赛道。我的处理方案是陀螺仪的积分数值大于一个定值,就执行舵机固定打角。
(2)出环
预出环判定到后就执行出环程序,给舵机固定打角,当陀螺仪的积分值达到整整一圈之后,舵机回正,差比和手动置零。这时候如果让它正常寻迹的话,车子可能会因为还没远离圆环,导致左边或右边的电感值偏大,导致舵机往左大或者往右打,进而影响车身姿态。所以在出环执行完后,让车子自行一段距离,直到远离圆环,最后把圆环标志位、陀螺仪积分执行标志位和陀螺仪积分数值置零。等待下一次圆环。
!!!!!圆环的整个过程中,陀螺仪积分都在执行,直到圆环整个过程结束!!!!!
三、代码部分
1.入环
预圆环判断
if(M>650&&M-M_2>100&&L>500&&Statu == 1){L_RING_FLAG1=1;Statu=2; //圆环状态BeeOn; //蜂鸣器ring_running_flag = 1; //圆环内标志Record_Dis = 1;//开启计算距离}
入环
if((L_RING_FLAG1 || L_RING_DELAY_FLAG1)){L_RING_FLAG1=0;L_RING_DELAY_FLAG1=1;if(Distance>75){//入环,路程大于一个值L_RING_DELAY_FLAG1=0;L_RING_FLAG2=1;Record_Angle=1; //开启陀螺仪积分Statu = 3;}}
结束入环
如果陀螺仪积分值大于一个阈值,则代表车身已在环内,代表入环结束,反之,则代表车身还没有在圆环内,继续执行入环。
if(L_RING_FLAG2 || L_RING_DELAY_FLAG2){L_RING_FLAG2=0;L_RING_DELAY_FLAG2=1;if(Angle>150){//陀螺仪积分到一定数值,代表车身已经在圆环内L_RING_DELAY_FLAG2=0;L_RING_FLAG3=1;Statu = 4;Record_Dis = 0;//距离清零,方便下次计数Distance = 0;//BeeOff;}else{pwm_duty(PWMB_CH1_P74,1490); //舵机固定打角}}
2.圆环内寻迹
圆环内寻迹,则使用第二排的三个电感进行差比和运算。
if(ring_running_flag==1){cha_2 = my_sqrt(a_L_2)-my_sqrt(a_R_2);he_2 = my_sqrt(a_L_2)+my_sqrt(a_M_2)+my_sqrt(a_R_2);bi_2 = cha_2/he_2;poserror = (int16)(bi_2*100);}
3.出环
预出环判定
if(L_RING_FLAG3 || L_RING_DELAY_FLAG3){L_RING_FLAG3=0;L_RING_DELAY_FLAG3=1;if(Angle>735){//判定出还口,angle到达850代表跑了接近一圈L_RING_DELAY_FLAG3=0;L_RING_FLAG4=1;Statu = 5;}else{cal_poserror(L,M,R,L_2,M_2,R_2);}}
执行出环,舵机固定打角
if(L_RING_FLAG4 || L_RING_DELAY_FLAG4){L_RING_FLAG4=0;L_RING_DELAY_FLAG4=1;if(Angle>1050){//快要结束圆环L_RING_DELAY_FLAG4=0;L_RING_FLAG5=1;Statu = 6;}else{pwm_duty(PWMB_CH1_P74,1500); //舵机固定打角}}
出环后,差比和置零,车子直行,如果中间电感小于一个值,代表远离圆环,这时候圆环过程全部结束,正常寻迹和圆环标志位清零。
if(L_RING_FLAG5 || L_RING_DELAY_FLAG5){L_RING_FLAG5=0;L_RING_DELAY_FLAG5=1;if(M>580&&M<880){//L_RING_DELAY_FLAG5=0;Angle=0;Record_Angle=0;Statu=1;h=0;BeeOff;ring_running_flag=0;}else{cal_poserror(L,M,R,L_2,M_2,R_2);}}
智能车电磁组——环岛处理相关推荐
- 智能车电磁组——岔路
智能车电磁组--岔路 一.电感排布 二.岔路判定 三.入岔路 三.岔路内寻迹 四.出岔路 一.电感排布 电感排布方案可参考:学做智能车–电磁探究篇 二.岔路判定 岔路的处理很大程度上影响着电磁车的整体 ...
- 智能车电磁组——基本控制篇
智能车电磁组--基本控制篇 前言 滤波 什么是滤波 常见的软件滤波 1. 限幅滤波(又称程序判断滤波法) 2. 算术平均滤波法 PID控制 什么是PID控制 舵机控制 电机控制 目标速度的设置 前言 ...
- 第六届CUIT校级智能车电磁组竞赛
第六届CUIT校级智能车竞赛 作为一名大一新生,小白报名参加了电磁循迹的四轮组竞赛.小白在写这篇博客的时候呢,马上就要进行比赛了,前前后后花了差不多一月的时间准备这次比赛,在这里对整个调试的过程进 ...
- ai电磁组属于什么组_飞思卡尔智能车电磁组分区算法介绍
写在之前的话: 1.目前我是一名在校学生,这也是我第一次写博客,不周之处,请多谅解: 2.此算法并非原创,借鉴自山东德州学院第八届白杨队(PS:个人看法,对于一些人把别人的开源东西改头换面一下就说是自 ...
- 模拟小信号调理电路(智能车电磁组)
一.智能车竞赛电磁组: 官方规定:漆包线上产生"20KHz 100mA"的交变电磁方波信号. 二.传感器检测调理电路(分立元件):谐波选频电路.交流放大电路.整流滤波电路. 距离漆 ...
- 17届智能车-电磁组比赛心得一
目录 前言 一.电磁车的电感排布方案 二.如何调整电感的ADC数值+滤波方法 三.电磁四轮车的一些基础控制算法 1.差比和算法+方向环 2.电机的速度环控制算法 小结 前言 2022年由于疫情的缘故, ...
- 智能车浅谈 电磁组——环岛处理
前言 本文为第十七届全国大学生智能车电磁四轮部分经验分享,转载于智能车电磁组--环岛处理,文中如有不妥之处欢迎批评指正. 智能车电磁组--环岛处理 智能车电磁组--环岛处理 一.电感排布 二.圆环思路 ...
- 飞思卡尔智能车—电磁循迹(节能组)
飞思卡尔智能车-电磁循迹(节能组) 详细参赛要求请以智能车官方为准,此文章仅分享本人参赛经验,开源硬件电路设计,供大家学习! 电磁循迹部分设计思路: 电感采集电磁信号,放大,整流,滤波,AD采集 电磁 ...
- 智能车摄像头组 障碍处理方法
智能车摄像头组中最重要的就是图像处理了,这里面的图像处理包括很多方面,比如十字如何处理,弯道如何处理,起跑线,障碍等等问题,接下来我要讲的就是障碍处理方法. 首先我们先描述一下障碍的形状,在智能车竞赛 ...
最新文章
- centos 6.5网卡固定IP重启出错
- linux fedora自带终端字体间距过大问题解决
- 余额宝升级,限额限时解除,以后再也不用定闹钟抢破头了!
- print函数python_带有结束参数的Python print()函数
- Spring-Jpa : @MappedSuperclass的作用
- 1.thinkphp6配置文件详解
- 太原科技大学计算机宿舍,太原科技大学宿舍怎么样
- 随机微分方程学习笔记04 Ito公式
- 仿美洽客服系统-gin框架内核独立自主源码开发在线客服系统
- 导航上显示某个地点已关闭什么意思_大众MIB(275)教程之导航使用
- 查询 JetsonNano I2C 的工作频率(波特率)
- 百度云直链下载-IDM+网页解析(三)
- vue 嵌套表格组件_vue+element-ui实现嵌套表格导出
- http请求头中Referer的含义和作用
- SVC(可分层视频编解码)
- obsidian 不能粘贴为纯文本的问题
- Linux中软件管理的yum命令
- docker安装nextcloud+onlyoffice+https
- 服务器绑定自己的域名-腾讯云(超详细)
- JS魔法堂:初探传说中的setImmediate函数