国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)

這篇具有很好參考價值的文章主要介紹了基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

作者:車
郵箱:692604135@qq.com
學(xué)校:西安工程大學(xué)碩士研究生
方向:機(jī)器視覺、圖像分割、深度學(xué)習(xí)

1. 硬件設(shè)計(jì)–灰度循跡模塊電路設(shè)計(jì)

  • 灰度循跡傳感器是主要用于小車沿黑色賽道循跡的傳感器。
  • 灰度傳感器利用不同顏色的檢測面對光的反射程度不同,灰度感應(yīng)接收管對不同檢測面返回的光,其阻值也不同的原理進(jìn)行顏色深淺檢測。
  • 灰度傳感器LED狀態(tài)指示,傳感器的管子照到灰度值較高的,輸出電平由高變低,對應(yīng)LED亮。此種輸出方式為數(shù)字輸出,即1或0輸出。

2. 軟件設(shè)計(jì)–循跡程序設(shè)計(jì)

  • 循跡模塊的設(shè)計(jì)就是要完成小車沿黑線的循跡。在循跡的過程中,要用L298N直流電機(jī)驅(qū)動模塊驅(qū)動直流電機(jī)進(jìn)行前進(jìn)、后退停止操作;并且要通過兩個輪子的差速進(jìn)行左轉(zhuǎn)和右轉(zhuǎn)的轉(zhuǎn)向動作。
  • L298N驅(qū)動板可驅(qū)動2路直流電機(jī),使能端ENA、ENB為高電平時有效,控制方式及直流電機(jī)狀態(tài)表如下表所示。

基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)
在灰度巡檢模塊的設(shè)計(jì)中,需要通過根據(jù)R、M、L三個引腳反饋給主控板數(shù)字信號0或1,對小車做出相應(yīng)的操作。對應(yīng)的邏輯關(guān)系如下表所示。
基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)
執(zhí)行一次循跡程序的流程圖如下圖所示。

基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)
下圖(a)~(f)是模擬的灰度巡線傳感器在循跡過程中的幾種情況,模擬的灰度巡線模塊也代表了小車的方向。
基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)

循跡模塊配了三個GPIO_Input引腳,分別命名為L_Pin、M_Pin、R_Pin引腳,分別與主控板的PE11、PE12、PD10引腳相連。

循跡程序設(shè)計(jì)的部分代碼如下:

if(HAL_GPIO_ReadPin(GPIOE,R_Pin))//讀取R_Pin的值;
dir = dir | 1;//把R_Pin的值放在dir第八位;
else  dir = dir & 0xFE;//給R_Pin置零;
if(HAL_GPIO_ReadPin(GPIOE,M_Pin))//讀取M_Pin的值;
dir = dir | 2;//把M_Pin的值放在dir第七位;
else  dir = dir & 0xFD;//給M_Pin置零;
if(HAL_GPIO_ReadPin(GPIOD,L_Pin))//讀取L_Pin的值;
dir = dir | 4;//把L_Pin的值放在dir第六位;
else  dir = dir & 0xFB;//給L_Pin置零;
case 0: LEFT();   //左轉(zhuǎn);
case 1: RIGHT();  //右轉(zhuǎn);
case 2: GO();     //直行;
case 5: STOP();	  //停止。	

在循跡的過程中,需要用到很多控制函數(shù):直行GO函數(shù)、停止STOP函數(shù)、左轉(zhuǎn)LEFT函數(shù)、右轉(zhuǎn)RIGHT函數(shù)。舉例左轉(zhuǎn)函數(shù)如下。

左轉(zhuǎn)LEFT()函數(shù)部分代碼如下:

HAL_GPIO_WritePin(GPIOA, IN1_Pin|IN4_Pin, GPIO_PIN_RESET);
//給IN1_Pin、IN4_Pin引腳賦值0;
HAL_GPIO_WritePin(GPIOA, IN2_Pin|IN3_Pin, GPIO_PIN_SET);
//給IN2_Pin、IN3_Pin引腳賦值1;
HAL_Delay(5);//延遲5ms,使電機(jī)受到的損傷更小。	

3. 燒錄程序

3.1 編寫各部分代碼

在Keil ARM中寫程序的時候,由于一些初始化和配置在STM32CubeMX的原因,必須在BEGIN和END之間寫代碼,如圖所示。如果寫錯地方,代碼在點(diǎn)擊編譯Rebuild之后就會被吞噬。
基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)

3.2 配置所用到的主芯片(STM32F407VET6)

點(diǎn)擊Options for Target,在Device里選擇用到的主芯片,本設(shè)計(jì)里用到的主芯片是STM32F407VET6,所以在這里選擇STM32F407VETx,點(diǎn)擊OK。
基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)

3.3 配置仿真器ST-Link

  • 選擇完器件之后,繼續(xù)選擇Options for Target的Debug,選擇Use并且根據(jù)自己的仿真器選擇ST-Link Debugger
  • 點(diǎn)擊ST-Link Debugger右邊的setings,左邊一列自動選擇了ST-LINK/V2
  • 如果可以識別到仿真器,那么SW Devive會出現(xiàn)0x2BA01447 ARM CoreSight SW-DP(ARM Core),然后點(diǎn)擊確定,

仿真器配置成功。演示如圖所示。
基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)
基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)

3.4 添加Flash

選擇Options for Target的Utilities頁面的Settings,然后點(diǎn)擊Settings頁面里面的Add,選擇512k的STM32F4xx 512kB Flash。然后點(diǎn)擊確定,這時候會返回上一頁面,點(diǎn)擊這個界面的OK。演示如圖所示。

基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)
基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)

3.5 編譯代碼

  • 如果編譯后有問題,那么可以去Build Output窗口中看出現(xiàn)的錯誤,并根據(jù)出現(xiàn)錯誤的行提示和關(guān)鍵字提示去修改代碼,修改完成后繼續(xù)保存下載編譯代碼,直至沒有出現(xiàn)錯誤為止;
  • 如果編譯后沒有錯誤,Build Output會顯示0 Error(s),工程文件編譯成功。
    基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)

3.6下載程序

將ST-LINK仿真器一端插進(jìn)STM32的SWD接口,另一端與電腦相連,這時候紅燈亮起,下載時實(shí)物連接圖如圖所示。
基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)
點(diǎn)擊Keil ARM軟件中的LOAD,下載時,仿真器會紅黃燈交叉閃爍。如圖所示。
基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)
工程文件下載成功后,Build Output窗口會顯示Programming Done、Verify OK、Flash Load Finished,表示下載完成,工程文件下載成功如圖所示。
基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)
工程文件下載完成之后,就可以給STM32主控板和L298N直流電機(jī)驅(qū)動模塊上電。

4. 測試

4.1 直流電機(jī)驅(qū)動模塊測試

4.1.1 前進(jìn)、后退和停止

在直流電機(jī)驅(qū)動模塊的測試中,需要給IN1-IN4引腳賦值高、低電平,確保直流電機(jī)會正轉(zhuǎn)、反轉(zhuǎn)以及制動。首先給STM32主控板和L298N直流電機(jī)驅(qū)動模塊通電。

STM32供電實(shí)物展示
基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)
L298N直流電機(jī)驅(qū)動模塊通電后實(shí)物展示
基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)
在這里,直接給IN1~IN4引腳賦值高、低電平來驅(qū)動小車前進(jìn)、后退以及停止。

  • 代碼中給IN1~IN4引腳賦值RESET(0)、SET(1)、RESET(0)、SET(1);小車可以前進(jìn)。

  • 給IN1-IN4引腳賦值SET(1)、RESET(0)、SET(1)、RESET(0);小車可以后退。

4.1.2 左轉(zhuǎn)、右轉(zhuǎn)

STM32主控板輸出兩路PWM波形到L298N電機(jī)驅(qū)動模塊的ENA和ENB使能端口,通過調(diào)節(jié)兩路PWM波形占空比以此控制小車的車速。用示波器來顯示測得的占空比的大小和輸出頻率的大小。示波器與STM32的連接實(shí)物圖如圖所示。

基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)

  1. 當(dāng)兩個脈沖為Pulse=320,根據(jù)公式計(jì)算占空比為59.9%輸出的兩路PWM波的占空比=60.00%,頻率=10.00kHz。輸出的PWM波用示波器顯示如圖所示。
    基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)

  2. 當(dāng)脈沖1為Pulse=320,脈沖2為Pulse=479,兩路PWM波的占空比為59.9%和49.9%。輸出的兩路PWM波的占空比分別為60.00%和40.00%。這時,小車右轉(zhuǎn)。
    基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)

  3. 當(dāng)脈沖1為Pulse=479,脈沖2為Pulse=320,輸出的兩路PWM波的占空比分別為40.00%和60.00%。輸出的PWM波用示波器顯示如圖所示。這時,小車左轉(zhuǎn)。
    基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)

4.2 灰度循跡模塊測試

設(shè)計(jì)了一個橢圓形環(huán)道的循跡。循跡賽道如圖所示。

基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)
在灰度循跡模塊的測試中,需要先編寫這一模塊的代碼,然后根據(jù)前面的步驟下載、編譯代碼,給STM32上電、下載工程文件。這時候,給STM32和L298N直流電機(jī)驅(qū)動模塊上電,然后把小車放在賽道上,讓其進(jìn)行循跡。正常情況如圖所示,這時灰度傳感器的返回值為010,電機(jī)正轉(zhuǎn),小車直行。
基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)
小車在循跡過程中會一直進(jìn)行調(diào)整,圖5-23小車循跡過程中偏右,這時灰度傳感器的返回值為110,右電機(jī)正轉(zhuǎn),左電機(jī)反轉(zhuǎn),小車進(jìn)行左轉(zhuǎn);圖5-23小車偏左的,這時灰度傳感器的返回值為001,左電機(jī)正轉(zhuǎn),右電機(jī)反轉(zhuǎn),小車進(jìn)行右轉(zhuǎn)操作。
基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)

(經(jīng)過多次反復(fù)測試,小車在彎度比較大的賽道上難以進(jìn)行循跡。原因本次實(shí)驗(yàn)使用的小車是沒有轉(zhuǎn)向功能的小車,必須通過兩個輪子進(jìn)行差速轉(zhuǎn)彎。當(dāng)彎度太大時,小車還沒反應(yīng)過來,就已經(jīng)沖出賽道了,還有就是小車的車體比較重,轉(zhuǎn)彎原本就需要更大的動力。所以此實(shí)驗(yàn)中不能在彎度較大的賽道上循跡。)

5. 結(jié)論

測試結(jié)果表明,小車可以在彎度比較平緩的賽道上進(jìn)行循跡。文章來源地址http://www.zghlxwxcb.cn/news/detail-470379.html

到了這里,關(guān)于基于STM32的智能巡檢小車系統(tǒng)設(shè)計(jì)--循跡模塊設(shè)計(jì)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于STM32開發(fā)板的循跡小車設(shè)計(jì)

    基于STM32開發(fā)板的循跡小車設(shè)計(jì)

    智能尋跡基于自動引導(dǎo)機(jī)器人系統(tǒng),可以實(shí)現(xiàn)小車自動識別路線。智能尋跡小車運(yùn)用傳感器、單片機(jī)、電機(jī)驅(qū)動及自動控制等技術(shù)實(shí)現(xiàn),管理時自動尋跡導(dǎo)航。該技術(shù)已經(jīng)應(yīng)用于無人駕駛機(jī)動車、無人工廠、倉庫、服務(wù)機(jī)器人等多種領(lǐng)域。 本設(shè)計(jì)的完整的系統(tǒng)主要包括STM32單

    2024年04月13日
    瀏覽(23)
  • 基于STM32的智能循跡避障小車實(shí)驗(yàn)(超聲波部分)

    基于STM32的智能循跡避障小車實(shí)驗(yàn)(超聲波部分)

    接上一篇基于STM32的智能循跡避障小車實(shí)驗(yàn)(舵機(jī)旋轉(zhuǎn)部分) 最后這部分我們實(shí)現(xiàn)超聲波部分和最后代碼的整合 本部分實(shí)驗(yàn)采用的是 超聲波模塊 HC-SR04 ,它長這樣: ? 買這個的時候最好再買一個支架,可以直接架在舵機(jī)上,探查周圍的距離。 超聲波模塊有 4 個引腳 ,分別

    2024年02月07日
    瀏覽(25)
  • [STM32F103C8T6]基于stm32的循跡,跟隨,避障智能小車

    [STM32F103C8T6]基于stm32的循跡,跟隨,避障智能小車

    目錄 1.小車驅(qū)動主要是通過L9110S模塊來驅(qū)動電機(jī) motor.c 2.我們可以加入串口控制電機(jī)驅(qū)動(重寫串口接收回調(diào)函數(shù),和重定向printf) Uart.c main.c? 3.點(diǎn)動功能 uart.c main.c 為什么使用的是HAL_Delay()要設(shè)置滴答定時器的中斷優(yōu)先級呢? 4.小車PWM調(diào)速,? 6.跟隨功能 7.避障功能 超聲波測距

    2024年02月13日
    瀏覽(43)
  • 智能小車STM32——藍(lán)牙循跡

    智能小車STM32——藍(lán)牙循跡

    1、功能介紹 藍(lán)牙切換功能:智能小車內(nèi)置了藍(lán)牙模塊,可以通過手機(jī)或其他藍(lán)牙設(shè)備與之連接。用戶可以通過手機(jī)發(fā)送指令控制小車的運(yùn)動方向,實(shí)現(xiàn)遠(yuǎn)程控制。 循跡功能:智能小車配備了紅外線傳感器,可以實(shí)現(xiàn)循跡功能。通過檢測地面上的黑線或白線,小車能夠自動沿著

    2024年01月19日
    瀏覽(28)
  • STM32智能小車循跡教程

    STM32智能小車循跡教程

    本篇文章將帶大家學(xué)習(xí)STM32智能小車的循跡功能。 電路工作描述 以其中一路為例 TCRT5000傳感器的紅外發(fā)射二極管不斷發(fā)射紅外線,當(dāng)發(fā)射的紅外線沒有被反射回來或者反射回的強(qiáng)度不夠大時,紅外接收管一直處于關(guān)閉狀態(tài),此時比較器LM393的2腳的電壓低于3腳的電壓,輸出O

    2023年04月08日
    瀏覽(20)
  • STM32智能小車------TCRT5000循跡

    STM32智能小車------TCRT5000循跡

    ? 大家好哇!我是小光,嵌入式愛好者,一個想要成為系統(tǒng)架構(gòu)師的普通大學(xué)生。 ?進(jìn)入正題,最近在做小車,目前已經(jīng)加入紅外避障、超聲波測距、紅外遙控、紅外循跡四個傳感器,分別實(shí)現(xiàn)遙控切換模式、超聲波控制距離、避障、循跡功能。 ?本次文章說說 循跡功能 的

    2024年02月14日
    瀏覽(21)
  • 【 STM32實(shí)例 】 智能小車的紅外循跡

    【 STM32實(shí)例 】 智能小車的紅外循跡

    這篇文章我主要講的是讓基于stm32單片機(jī)下的智能小車實(shí)現(xiàn)紅外循跡功能,智能小車的項(xiàng)目非常多,比如說循跡避障、藍(lán)牙遙控、視覺控制等等,我將會一步一步帶大家走進(jìn)stm32單片機(jī)的項(xiàng)目當(dāng)中。 項(xiàng)目源碼置文章底部,可自提 在硬件部分,與前幾節(jié)我所介紹的51智能小車大

    2024年02月02日
    瀏覽(18)
  • STM32智能循跡避障小車(1)循跡調(diào)速功能的實(shí)現(xiàn)

    STM32智能循跡避障小車(1)循跡調(diào)速功能的實(shí)現(xiàn)

    1.stm32f103rct6最小系統(tǒng)板 2.兩個TB6612FNG電機(jī)驅(qū)動模塊 線路連接請參考實(shí)際程序連線,此圖為網(wǎng)上下載僅供參考。 3.三個TCRT5000循跡模塊 這種是單路TCRT5000循跡模塊,有四個接口,VCC電源接口、GND地接口,DO就是它的輸出信號,然后AO口(模擬信號輸出)。一般DO口接在stm32系統(tǒng)板

    2024年02月04日
    瀏覽(19)
  • 基于STM32芯片的四驅(qū)循跡小車

    基于STM32芯片的四驅(qū)循跡小車

    循跡小車包括三個基本模塊: 1.宏定義模塊 2.電機(jī)驅(qū)動模塊 3.紅外循跡模塊 4.PWM調(diào)速模塊 我將代碼部分分為4個模塊進(jìn)行模塊化編程:interface(各個引腳口的宏定義,方便記憶)、motor(電機(jī)驅(qū)動模塊)、timer(定時器模塊)、track(紅外循跡模塊) .h 各個引腳的宏定義以及實(shí)現(xiàn)小車前進(jìn)

    2023年04月27日
    瀏覽(17)
  • STM32藍(lán)牙小車、紅外循跡小車、超聲波避障小車項(xiàng)目設(shè)計(jì)

    STM32藍(lán)牙小車、紅外循跡小車、超聲波避障小車項(xiàng)目設(shè)計(jì)

    本文旨在分享我學(xué)習(xí)STM32的過程中,為了強(qiáng)化學(xué)習(xí)成果,試著制作一些實(shí)訓(xùn)項(xiàng)目。最開始做的就是STM32藍(lán)牙小車、STM32紅外循跡小車、STM32超聲波避障小車。 相信看完本文的你,一定可以親手制作一輛屬于自己的智能小車! 注:文末附源碼工程,需要的讀者可以至文末下載 如

    2024年01月20日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包