RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

20.3-使用兩個通道進行電磁循跡 智能車競賽 電磁桿原理圖 電磁循跡小車 STM32電磁小車 電磁循跡算法

dfhjgfg ? 來源:dfhjgfg ? 作者:dfhjgfg ? 2024-08-20 10:56 ? 次閱讀

** **功能介紹放開頭, 使用便捷無需愁。
這是全網(wǎng)最詳細、性價比最高的STM32實戰(zhàn)項目入門教程,通過合理的硬件設計和詳細的視頻筆記介紹,硬件使用STM32F103主控資料多方便學習,通過3萬字筆記、12多個小時視頻、20多章節(jié)代碼手把手教會你如何開發(fā)和調(diào)試。讓你更快掌握嵌入式系統(tǒng)開發(fā)。
**V3.3.0-STM32智能小車 **
**視頻: **[https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click][添加鏈接描述]
V3:HAL庫開發(fā)、功能:PID速度控制、PID循跡、PID跟隨、遙控、避障、PID角度控制、視覺控制、電磁循跡、RTOS等功能。

20.3-使用兩個通道進行電磁循跡

我們知道了V1和V4的電壓值、這個電壓值正比于 電感垂直放置在磁導線的距離,那么我們很容易就容易想到 使用二者差值表示小車偏轉(zhuǎn)方向和大小。

比如一次測量: V4:0.63 V1 :0.50 那么用 V4-V1 = 0.63-0.50=0.13 大于零表示往V4方向偏,0.13表示偏轉(zhuǎn)大小

但是這個計算方法有個壞處,我們舉例,假設小車位置不變,但是因為賽道線長度,電磁信號不同等原因,所以信號會整體發(fā)生變化,我們假設電壓都提升10%,那么就是

**V4: 0.63*1.1= 0.693 **

V1:0.50*1.1= 0.55

0.693 - 0.55 = 0.143

發(fā)現(xiàn) 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

這樣發(fā)現(xiàn)值就是相同的。

在這里插入圖片描述

歸一化處理:

進行歸一化處理的原因是:是根據(jù)電感值在對應賽道到的最大值max,把根據(jù)這個max,然后再根據(jù)采集值value,使用****value/max * 100 這個公式計算數(shù)據(jù)處理到對應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;//進行歸一化計算轉(zhuǎn)化到0-100
}

進行差比和計算:

使用差比和原因: 可以直觀反映小車偏離方向和程度,通過正負反映小車偏移方向,通過絕對值大小反映偏移程度。

**定義兩個變量 **

float g_fVoltageOuter;//電感桿外面兩個電感差比和值 電感4和電感1 
float g_fVoltageInterior;//電磁桿中間兩個電感差比和值 電感2和電感3

在這里插入圖片描述
使用差比和計算公式進行

注意使用放置截斷 使用(float) 進行轉(zhuǎn)化

/*差比和值表示小車的偏差 差比和計算公式 (a-b)/(a+b)這個值表示小車的偏差  */
/* 下面是使用歸一化的值進行差比值計算*/
/*增加(float)的原因是轉(zhuǎn)化成浮點數(shù),防止整數(shù)除法時候出現(xiàn)截斷現(xiàn)象*/
g_fVoltageOuter = (float)((g_iVoltageGuiYi[3]-g_iVoltageGuiYi[0])/(float)(g_iVoltageGuiYi[3]+g_iVoltageGuiYi[0] +1));//外面兩個電感差比和值 電感4和電感1 "-1"是因為要和數(shù)組索引對應
g_fVoltageInterior = (float)((g_iVoltageGuiYi[2]-g_iVoltageGuiYi[1])/(float)(g_iVoltageGuiYi[2]+g_iVoltageGuiYi[1] +1));//里面兩個電感差比和值 電感2和電感3
?

利用差比和值進行循跡:

根據(jù)差比和值正負和絕對值大小進行調(diào)整運動方向

/*利用差比和值進行循跡*/
if(0.75 > g_fVoltageOuter > 0.5)
{
motorPidSetSpeed(1,0.8);//左邊運動 這個值可能需要根據(jù)自己軌道特點調(diào)整
}
else if(0.75 <= g_fVoltageOuter)// 檢測小車位置到更加右偏了
{
motorPidSetSpeed(1.2,0.2);//更向左邊運動 這個值可能需要根據(jù)自己軌道特點調(diào)整
}
else if(-0.75 < g_fVoltageOuter < -0.5)
{
motorPidSetSpeed(0.8,1);//右邊運動 這個值可能需要根據(jù)自己軌道特點調(diào)整
}
else if( -0.75 >= g_fVoltageOuter)// 檢測小車位置到更加左偏了
{
motorPidSetSpeed(0.2,1.2);//更向右邊運動 這個值可能需要根據(jù)自己軌道特點調(diào)整
}
else{
motorPidSetSpeed(1,1);//前運動
}

在這里插入圖片描述

顯示屏幕方便調(diào)試:

調(diào)整把上面的一些數(shù)據(jù)顯示在OLED,其實這部應該先做,先把一些計算的結果顯示在OLED上,這樣方便調(diào)試

sprintf((char*)OledString, "O:%.2f  I:%.2f  ", g_fVoltageOuter,g_fVoltageInterior);//顯示差比和值 O: 這個是外面兩個差比和值計算結果 I:這個
OLED_ShowString(0,1,OledString,12);//這個是oled驅(qū)動里面的,是顯示位置的一個函數(shù),

sprintf((char*)OledString, "G1:%d  G2:%d   ", g_iVoltageGuiYi[0],g_iVoltageGuiYi[1]);//顯示歸一化后的數(shù)據(jù) G1:電感1差比和值 G2 :電感2差比和值
OLED_ShowString(0,2,OledString,12);//這個是oled驅(qū)動里面的,是顯示位置的一個函數(shù),

sprintf((char *)OledString,"G3:%d  G4:%d   ",g_iVoltageGuiYi[2],g_iVoltageGuiYi[3]);//顯示歸一化后的數(shù)據(jù) G3:電感3差比和值 G4:電感4差比和值
OLED_ShowString(0,3,OledString,12);//這個是oled驅(qū)動里面的,是顯示位置的一個函數(shù),

sprintf((char *)OledString,"v1:%.2f v2:%.2f ",g_fVoltage[0],g_fVoltage[1]);//顯示 1、2 電壓值  V1:電感1值 V2:電感2OLED_ShowString(0,4,OledString,12);//這個是oled驅(qū)動里面的,是顯示位置的一個函數(shù),

sprintf((char *)OledString,"v3:%.2f v4:%.2f ",g_fVoltage[2],g_fVoltage[3]);//顯示3、4 電壓值   V3;電感3值 V4:電感4OLED_ShowString(0,5,OledString,12);//這個是oled驅(qū)動里面的,是顯示位置的一個函數(shù),

在這里插入圖片描述

一些實際照片效果

把小車放置到通有正弦交流信號的軌道上:

小車放置到遠離信號發(fā)生器位置直道上
在這里插入圖片描述
把小車放置到軌道中間,然后觀察O: 的數(shù)值(就是g_fVoltageOuter 顯示的變量) 應該在0.00的左右。

然后G1:數(shù)值(g_iVoltageGuiYi[0]數(shù)值顯示位置)和G4:數(shù)值(g_iVoltageGuiYi[3]的數(shù)值)應該大致相同
在這里插入圖片描述
讓軌道位于小車的左下方然后觀察三個數(shù)值大小

O:應該是大概0.70-0.99比較大的值

G1:應該是大概0-30左右

G4:應該是70-100左右

在這里插入圖片描述
下面我們讓軌道位于小車右邊

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

G1:的值大概70-100左右

G4的值大概0-30左右

在這里插入圖片描述

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式系統(tǒng)

    關注

    41

    文章

    3587

    瀏覽量

    129432
  • 電磁
    +關注

    關注

    15

    文章

    1133

    瀏覽量

    51793
  • PID
    PID
    +關注

    關注

    35

    文章

    1472

    瀏覽量

    85475
  • 智能車
    +關注

    關注

    21

    文章

    403

    瀏覽量

    76951
  • 循跡
    +關注

    關注

    0

    文章

    14

    瀏覽量

    13061
收藏 人收藏

    評論

    相關推薦

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

    第13章-循跡功能 循跡小車講解 原理分析 STM32智能小車
    的頭像 發(fā)表于 08-21 16:27 ?1399次閱讀
    第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-電磁在磁軌道的測試 零基礎入門智能車競賽 智能車競賽
    的頭像 發(fā)表于 08-20 10:52 ?627次閱讀
    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開發(fā)板申請】智能小車單線高速算法電磁循跡

    項目名稱:智能小車單線高速算法電磁循跡試用計劃:以此板為主板,配合ldc1000磁阻傳感器,運用單磁軌
    發(fā)表于 12-28 09:53

    求xs128電磁循跡小車的程序!大佬們。謝謝了

    如題 ,求xs128電磁循跡小車的程序!大佬們。謝謝了
    發(fā)表于 01-09 22:24

    第六屆CUIT校級智能車電磁競賽 精選資料分享

    第六屆CUIT校級智能車競賽? 作為一名大一新生,小白報名參加了電磁循跡的四輪組競賽。小白在寫這篇博客的時候呢,馬上就要
    發(fā)表于 07-30 06:20

    電磁循跡智能車是由哪些模塊組成的

    我的第一輛智能車電磁循跡智能車以下是所用的模塊:舵機,電機,L298N驅(qū)動模塊,PID算法,OLED,
    發(fā)表于 01-14 09:08

    智能車控制之電磁循跡介紹

    這一次,我們開始正式進入了,車輛的控制大致可以分成一下部分:循跡,需要電磁傳感器,或者攝像頭。這兩個應該是智能車最有可能使用的傳感器了,其他的就算是另辟蹊徑了。然后我主要使用的是
    發(fā)表于 01-19 06:23

    智能車電磁循跡相關資料下載

    飛思卡爾智能車電磁循跡(組別通用),六路運放,適用于電磁組所有組別,電路運行穩(wěn)定,且移植性較強。
    發(fā)表于 03-02 06:41

    節(jié)能組電磁循跡部分電路設計分享

    飛思卡爾智能車,節(jié)能組電磁循跡部分電路設計,僅分享比賽經(jīng)驗,開源硬件電路設計,供大家參考學習!
    發(fā)表于 03-02 06:43

    智能循跡小車程序

    智能循跡小車,基于stm32智能循跡小車HC-SR
    發(fā)表于 12-04 10:30 ?39次下載

    基于51單片機的智能循跡小車的設計

    基于51單片機的智能循跡小車的設計,智能車設計
    發(fā)表于 06-02 16:16 ?182次下載

    循跡小車的資料合集免費下載

    本文檔的主要內(nèi)容詳細介紹的是循跡小車的資料合集免費下載包括了:視頻教程,循跡小車程序,L9110驅(qū)動芯片資料,循跡
    發(fā)表于 03-31 08:00 ?0次下載
    <b class='flag-5'>循跡</b><b class='flag-5'>小車</b>的資料合集免費下載

    湖南科技大學信達杯(基于stc15的電磁循跡小車

    湖南科技大學信達杯(基于stc15的電磁循跡小車
    發(fā)表于 11-23 17:51 ?31次下載
    湖南科技大學信達杯(基于stc15的<b class='flag-5'>電磁</b><b class='flag-5'>循跡</b><b class='flag-5'>小車</b>)

    電磁智能車原理

    電磁智能車原理 我們可以看到很多的一些案例,比如電子競賽中已經(jīng)出現(xiàn)電磁智能車的設計案例,那么電磁
    的頭像 發(fā)表于 12-13 17:04 ?4229次閱讀

    20.0-電磁的組裝和實物介紹“這個是就是你想要的“-智能車電磁電磁循跡小車

    電子設計大賽20.0-電磁的組裝和實物介紹“這個是就是你想要的“-智能車電磁電磁循跡
    的頭像 發(fā)表于 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>
    RM新时代网站-首页