0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

20.3-使用两个通道进行电磁循迹 智能车竞赛 电磁杆原理图 电磁循迹小车 STM32电磁小车 电磁循迹算法

dfhjgfg 来源:dfhjgfg 作者:dfhjgfg 2024-08-20 10:56 次阅读

** **功能介绍放开头, 使用便捷无需愁。
这是全网最详细、性价比最高的STM32实战项目入门教程,通过合理的硬件设计和详细的视频笔记介绍,硬件使用STM32F103主控资料多方便学习,通过3万字笔记、12多个小时视频、20多章节代码手把手教会你如何开发和调试。让你更快掌握嵌入式系统开发。
**V3.3.0-STM32智能小车 **
**视频: **[https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click][添加链接描述]
V3:HAL库开发、功能:PID速度控制、PID循迹、PID跟随、遥控、避障、PID角度控制、视觉控制、电磁循迹、RTOS等功能。

20.3-使用两个通道进行电磁循迹

我们知道了V1和V4的电压值、这个电压值正比于 电感垂直放置在磁导线的距离,那么我们很容易就容易想到 使用二者差值表示小车偏转方向和大小。

比如一次测量: V4:0.63 V1 :0.50 那么用 V4-V1 = 0.63-0.50=0.13 大于零表示往V4方向偏,0.13表示偏转大小

但是这个计算方法有个坏处,我们举例,假设小车位置不变,但是因为赛道线长度,电磁信号不同等原因,所以信号会整体发生变化,我们假设电压都提升10%,那么就是

**V4: 0.63*1.1= 0.693 **

V1:0.50*1.1= 0.55

0.693 - 0.55 = 0.143

发现 0.143 和之前的0.13 还是有变化的。

那么尝试换个计算方法 使用差比和计算方法:(a-b)/(a+b) 计算:V4:0.63 V1 :0.50、然后(0.63-0.50)/(0.63+0.50) 结果是:0.13/1.13=

0.11504

(a-b)/(a+b) 计算:( 0.693-0.55)/(0.693+0.55):0.143/1.243 = 0.11504

这样发现值就是相同的。

在这里插入图片描述

归一化处理:

进行归一化处理的原因是:是根据电感值在对应赛道到的最大值max,把根据这个max,然后再根据采集值value,使用****value/max * 100 这个公式计算数据处理到对应0-100的值,这样的好处的是:在更换赛道后,测量新的赛道的最大值,改变max值即可,有 较强适应性 。**
**在这里插入图片描述

float g_fVoltageMax[4]={2.89,2.89,2.89,2.89};//用于归一化的最大ADC电压采集值 不同赛道要获得更好循迹效果 需要重新采集这个值
int   g_iVoltageGuiYi[4];//这个是四个通道归一化的结果,用0-100表示每个通道电压大小

使用归一化的公式进行计算
在这里插入图片描述

/**归一化处理**/  
for(int i=0;i< 4;i++)
{
if(g_fVoltage[i] > g_fVoltageMax[i]) g_fVoltage[i] = g_fVoltageMax[i];//进行限幅
g_iVoltageGuiYi[i] = g_fVoltage[i]/g_fVoltageMax[i]*100;//进行归一化计算转化到0-100
}

进行差比和计算:

使用差比和原因: 可以直观反映小车偏离方向和程度,通过正负反映小车偏移方向,通过绝对值大小反映偏移程度。

**定义两个变量 **

float g_fVoltageOuter;//电感杆外面两个电感差比和值 电感4和电感1 
float g_fVoltageInterior;//电磁杆中间两个电感差比和值 电感2和电感3

在这里插入图片描述
使用差比和计算公式进行

注意使用放置截断 使用(float) 进行转化

/*差比和值表示小车的偏差 差比和计算公式 (a-b)/(a+b)这个值表示小车的偏差  */
/* 下面是使用归一化的值进行差比值计算*/
/*增加(float)的原因是转化成浮点数,防止整数除法时候出现截断现象*/
g_fVoltageOuter = (float)((g_iVoltageGuiYi[3]-g_iVoltageGuiYi[0])/(float)(g_iVoltageGuiYi[3]+g_iVoltageGuiYi[0] +1));//外面两个电感差比和值 电感4和电感1 "-1"是因为要和数组索引对应
g_fVoltageInterior = (float)((g_iVoltageGuiYi[2]-g_iVoltageGuiYi[1])/(float)(g_iVoltageGuiYi[2]+g_iVoltageGuiYi[1] +1));//里面两个电感差比和值 电感2和电感3

利用差比和值进行循迹:

根据差比和值正负和绝对值大小进行调整运动方向

/*利用差比和值进行循迹*/
if(0.75 > g_fVoltageOuter > 0.5)
{
motorPidSetSpeed(1,0.8);//左边运动 这个值可能需要根据自己轨道特点调整
}
else if(0.75 <= g_fVoltageOuter)// 检测小车位置到更加右偏了
{
motorPidSetSpeed(1.2,0.2);//更向左边运动 这个值可能需要根据自己轨道特点调整
}
else if(-0.75 < g_fVoltageOuter < -0.5)
{
motorPidSetSpeed(0.8,1);//右边运动 这个值可能需要根据自己轨道特点调整
}
else if( -0.75 >= g_fVoltageOuter)// 检测小车位置到更加左偏了
{
motorPidSetSpeed(0.2,1.2);//更向右边运动 这个值可能需要根据自己轨道特点调整
}
else{
motorPidSetSpeed(1,1);//前运动
}

在这里插入图片描述

显示屏幕方便调试:

调整把上面的一些数据显示在OLED,其实这部应该先做,先把一些计算的结果显示在OLED上,这样方便调试

sprintf((char*)OledString, "O:%.2f  I:%.2f  ", g_fVoltageOuter,g_fVoltageInterior);//显示差比和值 O: 这个是外面两个差比和值计算结果 I:这个
OLED_ShowString(0,1,OledString,12);//这个是oled驱动里面的,是显示位置的一个函数,

sprintf((char*)OledString, "G1:%d  G2:%d   ", g_iVoltageGuiYi[0],g_iVoltageGuiYi[1]);//显示归一化后的数据 G1:电感1差比和值 G2 :电感2差比和值
OLED_ShowString(0,2,OledString,12);//这个是oled驱动里面的,是显示位置的一个函数,

sprintf((char *)OledString,"G3:%d  G4:%d   ",g_iVoltageGuiYi[2],g_iVoltageGuiYi[3]);//显示归一化后的数据 G3:电感3差比和值 G4:电感4差比和值
OLED_ShowString(0,3,OledString,12);//这个是oled驱动里面的,是显示位置的一个函数,

sprintf((char *)OledString,"v1:%.2f v2:%.2f ",g_fVoltage[0],g_fVoltage[1]);//显示 12 电压值  V1:电感1值 V2:电感2OLED_ShowString(0,4,OledString,12);//这个是oled驱动里面的,是显示位置的一个函数,

sprintf((char *)OledString,"v3:%.2f v4:%.2f ",g_fVoltage[2],g_fVoltage[3]);//显示34 电压值   V3;电感3值 V4:电感4OLED_ShowString(0,5,OledString,12);//这个是oled驱动里面的,是显示位置的一个函数,

在这里插入图片描述

一些实际照片效果

把小车放置到通有正弦交流信号的轨道上:

小车放置到远离信号发生器位置直道上
在这里插入图片描述
把小车放置到轨道中间,然后观察O: 的数值(就是g_fVoltageOuter 显示的变量) 应该在0.00的左右。

然后G1:数值(g_iVoltageGuiYi[0]数值显示位置)和G4:数值(g_iVoltageGuiYi[3]的数值)应该大致相同
在这里插入图片描述
让轨道位于小车的左下方然后观察三个数值大小

O:应该是大概0.70-0.99比较大的值

G1:应该是大概0-30左右

G4:应该是70-100左右

在这里插入图片描述
下面我们让轨道位于小车右边

O:的值在大概-0.80- -1左右

G1:的值大概70-100左右

G4的值大概0-30左右

在这里插入图片描述

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3587

    浏览量

    129432
  • 电磁
    +关注

    关注

    15

    文章

    1133

    浏览量

    51793
  • PID
    PID
    +关注

    关注

    35

    文章

    1472

    浏览量

    85475
  • 智能车
    +关注

    关注

    21

    文章

    403

    浏览量

    76951
  • 循迹
    +关注

    关注

    0

    文章

    14

    浏览量

    13061
收藏 人收藏

    评论

    相关推荐

    第13章-循迹功能 STM32智能小车循迹教程 PID循迹算法分析

    第13章-循迹功能 循迹小车讲解 原理分析 STM32智能小车
    的头像 发表于 08-21 16:27 1400次阅读
    第13章-<b class='flag-5'>循迹</b>功能 <b class='flag-5'>STM32</b><b class='flag-5'>智能</b><b class='flag-5'>小车</b><b class='flag-5'>循迹</b>教程 PID<b class='flag-5'>循迹</b><b class='flag-5'>算法</b>分析

    20.2-电磁在磁轨道的测试 零基础入门智能车竞赛 STM32电磁小车

    20.2-电磁在磁轨道的测试 零基础入门智能车竞赛 智能车竞赛
    的头像 发表于 08-20 10:52 628次阅读
    20.2-<b class='flag-5'>电磁</b><b class='flag-5'>杆</b>在磁轨道的测试 零基础入门<b class='flag-5'>智能车</b><b class='flag-5'>竞赛</b> <b class='flag-5'>STM32</b><b class='flag-5'>电磁</b><b class='flag-5'>小车</b>

    【TG401_EVB开发板申请】智能小车单线高速算法电磁循迹

    项目名称:智能小车单线高速算法电磁循迹试用计划:以此板为主板,配合ldc1000磁阻传感器,运用单磁轨
    发表于 12-28 09:53

    求xs128电磁循迹小车的程序!大佬们。谢谢了

    如题 ,求xs128电磁循迹小车的程序!大佬们。谢谢了
    发表于 01-09 22:24

    第六届CUIT校级智能车电磁竞赛 精选资料分享

    第六届CUIT校级智能车竞赛​ 作为一名大一新生,小白报名参加了电磁循迹的四轮组竞赛。小白在写这篇博客的时候呢,马上就要
    发表于 07-30 06:20

    电磁循迹智能车是由哪些模块组成的

    我的第一辆智能车电磁循迹智能车以下是所用的模块:舵机,电机,L298N驱动模块,PID算法,OLED,
    发表于 01-14 09:08

    智能车控制之电磁循迹介绍

    这一次,我们开始正式进入了,车辆的控制大致可以分成一下部分:循迹,需要电磁传感器,或者摄像头。这两个应该是智能车最有可能使用的传感器了,其他的就算是另辟蹊径了。然后我主要使用的是
    发表于 01-19 06:23

    智能车电磁循迹相关资料下载

    飞思卡尔智能车电磁循迹(组别通用),六路运放,适用于电磁组所有组别,电路运行稳定,且移植性较强。
    发表于 03-02 06:41

    节能组电磁循迹部分电路设计分享

    飞思卡尔智能车,节能组电磁循迹部分电路设计,仅分享比赛经验,开源硬件电路设计,供大家参考学习!
    发表于 03-02 06:43

    智能循迹小车程序

    智能循迹小车,基于stm32智能循迹小车HC-SR
    发表于 12-04 10:30 39次下载

    基于51单片机的智能循迹小车的设计

    基于51单片机的智能循迹小车的设计,智能车设计
    发表于 06-02 16:16 182次下载

    循迹小车的资料合集免费下载

    本文档的主要内容详细介绍的是循迹小车的资料合集免费下载包括了:视频教程,循迹小车程序,L9110驱动芯片资料,循迹
    发表于 03-31 08:00 0次下载
    <b class='flag-5'>循迹</b><b class='flag-5'>小车</b>的资料合集免费下载

    湖南科技大学信达杯(基于stc15的电磁循迹小车

    湖南科技大学信达杯(基于stc15的电磁循迹小车
    发表于 11-23 17:51 31次下载
    湖南科技大学信达杯(基于stc15的<b class='flag-5'>电磁</b><b class='flag-5'>循迹</b><b class='flag-5'>小车</b>)

    电磁智能车原理

    电磁智能车原理 我们可以看到很多的一些案例,比如电子竞赛中已经出现电磁智能车的设计案例,那么电磁
    的头像 发表于 12-13 17:04 4229次阅读

    20.0-电磁的组装和实物介绍“这个是就是你想要的“-智能车电磁电磁循迹小车

    电子设计大赛20.0-电磁的组装和实物介绍“这个是就是你想要的“-智能车电磁电磁循迹
    的头像 发表于 08-20 11:07 418次阅读
    20.0-<b class='flag-5'>电磁</b><b class='flag-5'>杆</b>的组装和实物介绍“这个是就是你想要的“-<b class='flag-5'>智能车</b><b class='flag-5'>电磁</b>组 <b class='flag-5'>电磁</b><b class='flag-5'>循迹</b><b class='flag-5'>小车</b>