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

基于MSP432P401R爬坡小車【2020年電賽C題】

這篇具有很好參考價(jià)值的文章主要介紹了基于MSP432P401R爬坡小車【2020年電賽C題】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


一、任務(wù)清單

1. 硬件部分

  • 主控板: MSP432P401R
  • 數(shù)據(jù)顯示: OLED
  • 電機(jī): 霍爾編碼器電機(jī)
  • 電池: 7.3V航模電池
  • 巡線: OpenMV H7 Plus
  • 警報(bào): 蜂鳴器
  • 電機(jī)驅(qū)動(dòng): TB6612
  • 儀器: 3D打印機(jī)
  • 視覺云臺(tái): 3D建模打印
  • 轉(zhuǎn)向: 數(shù)字舵機(jī)
  • 其他: 銅柱、螺絲螺母、開關(guān)、面包板等。
    基于MSP432P401R爬坡小車【2020年電賽C題】,MSP430/432,c語言,開發(fā)語言,單片機(jī),嵌入式硬件

2. 軟件部分

  • 編譯器: Keil、OpenMV IDE
  • 建模軟件: SketchUp Pro 2022
  • 切片軟件: Cura
  • 編程方式: 庫函數(shù)
  • 編程語言: C、Python

二、OpenMV巡線

這里巡線不用紅外探頭的原因是考慮到市面上大多紅外對(duì)該虛線采集的信號(hào)并不是很準(zhǔn)確,存在偶然因素,故選擇攝像頭巡線。

這里我通過尋找有效區(qū)域內(nèi)的最大色塊,將其x軸坐標(biāo)返回給單片機(jī),在單片機(jī)端進(jìn)行數(shù)據(jù)處理,例如攝像頭下的分辨率為(w:320,h:240),設(shè)感應(yīng)區(qū)域ROI為(0,90,320,60) ,
采集到的有效色塊X坐標(biāo)為162,下圖可見,被圈出的大白框矩形為感應(yīng)區(qū)域ROI,中間被圈出的為最大有效色塊(圖中色塊閾值選擇為黑色),下方紅色圈出的為該色塊的X軸坐標(biāo)。
基于MSP432P401R爬坡小車【2020年電賽C題】,MSP430/432,c語言,開發(fā)語言,單片機(jī),嵌入式硬件
獲取目標(biāo)色塊:

img = sensor.snapshot()  //截取攝像頭的一個(gè)圖像
blob=img.find_blobs([thresholds[0]], roi=ROI1, x_stride=10, y_stride=5,pixels_threshold=10, area_threshold=10, merge=True)  

篩選出最大色塊:

def find_max(blobs):
    max_size=0
    for blob in blobs:
        if blob[2]*blob[3] > max_size:
            max_blob=blob
            max_size = blob[2]*blob[3]
    return max_blob

輸出最大色塊X坐標(biāo):

x=max_ID.cx()

將有效色塊坐標(biāo)發(fā)送至單片機(jī)端后該怎樣對(duì)數(shù)據(jù)進(jìn)行處理呢?

  • 方法一:
    例如采集到的坐標(biāo)為140,可知中心坐標(biāo)為160,已速度閉環(huán)為例,可先將坐標(biāo)差值Err=140-160=-20,可擬定為負(fù)值為偏左,正值為偏右,假如你的閉環(huán)在每10ms單相雙邊沿產(chǎn)生15個(gè)脈沖信號(hào),可設(shè)定一個(gè)線性系數(shù)k,有Err/k=P,Err2=Err_Last-Err=I,則Target_L=15+PI,Target_R=15-PI,Target_L和Target_R則為計(jì)算后的目標(biāo)脈沖,具體公式推導(dǎo)這里不做介紹,僅供參考!

  • 方法二:
    這種方法也是更為簡單,更為方便的。
    對(duì)色塊的X坐標(biāo)進(jìn)行區(qū)域劃分,例如中線為160,則:
    ①中心區(qū)域可劃分為(150,170)
    ②偏左區(qū)域可劃分為(120,150)、(90,120)、(60,90)、(30,60)、(0,30)
    ③偏右區(qū)域可劃分為(170,200)、(200,230)、(230,260)、(260,290)、(290,320)
    即可根據(jù)不同位置發(fā)送不同指令。單片機(jī)段根據(jù)不同指令執(zhí)行不同程度的回正操作。

示例如下:


def Send_X(err):
    if(err>=150 and err<=170):
        uart.write("F")

    elif(err>=120 and err<150):
        uart.write("0")
    elif(err>=90 and err<120):
        uart.write("1")
    elif(err>=60 and err<90):
        uart.write("2")
    elif(err>=30 and err<60):
        uart.write("3")
    elif(err>=0 and err<30):
        uart.write("4")

    elif(err>170 and err<200):
        uart.write("5")
    elif(err>=200 and err<230):
        uart.write("6")
    elif(err>=230 and err<260):
        uart.write("7")
    elif(err>=260 and err<290):
        uart.write("8")
    elif(err>=290 and err<320):
        uart.write("9")

其中Err表示踩到的X坐標(biāo),根據(jù)不同坐標(biāo)區(qū)域發(fā)送不同指令,在單片機(jī)端接收操作如下:

	if( openmv_rx=='F' )
	{

	}	

	//偏向左邊
	else if( openmv_rx=='0' )
	{
		
	}
	else if( openmv_rx=='1' )
	{
	
	}
	else if( openmv_rx=='2' )
	{
			
	}
	......
	
	//偏向右邊
	else if( openmv_rx=='5' )
	{
	
	}
	else if( openmv_rx=='6' )
	{
		
	}
	......

三、舵機(jī)轉(zhuǎn)向

舵機(jī)轉(zhuǎn)向問題,在學(xué)習(xí)較為常用的為180°舵機(jī),這里我以180°數(shù)字舵機(jī)進(jìn)行簡單介紹

常用的舵機(jī)大多都分為3根線,其中倆根為VCC和GND,也就是電源線,剩下一根為信號(hào)線,也就是控制舵機(jī)的線

  • 舵機(jī)控制
    關(guān)于舵機(jī)的控制說的通俗易懂點(diǎn)就是控制信號(hào)線的脈寬,通過控制不同脈沖舵機(jī)轉(zhuǎn)動(dòng)不同角度,如下所示:
                20ms為例
        0.5ms ------------ 0度;
        1.0ms ------------ 45度;
        1.5ms ------------ 90度;
        2.0ms ------------ 135度;
        2.5ms ------------ 180度;

設(shè)一個(gè)PWM周期為20ms,則控制有效電平為0.5ms,也就是一百分之一的時(shí)候,舵機(jī)保持0°,依次類推。

  • 實(shí)時(shí)轉(zhuǎn)向
    可根據(jù)上面巡線返回的信號(hào)進(jìn)行轉(zhuǎn)向,如當(dāng)接收到信號(hào)F時(shí),表示在中心區(qū)域,則舵機(jī)保持直線行駛狀態(tài),也就是90°,若接收到1-4信號(hào),則舵機(jī)向左偏向,120°、150°、180°等,如接收到5-9信號(hào),則舵機(jī)向右偏向,60°、30°、0°等。

  • 舵機(jī)初始化
    這里以定時(shí)器A0的通道三為例,如下代碼:

	    /*初始化引腳*/
	MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P2, GPIO_PIN6, GPIO_PRIMARY_MODULE_FUNCTION);
	
    Timer_A_PWMConfig TimA0_PWMConfig;
    /*定時(shí)器PWM初始化*/
    TimA0_PWMConfig.clockSource = TIMER_A_CLOCKSOURCE_SMCLK;             //時(shí)鐘源
    TimA0_PWMConfig.clockSourceDivider = psc;                            //時(shí)鐘分頻 范圍1-64
    TimA0_PWMConfig.timerPeriod = ccr0;                                  //自動(dòng)重裝載值(ARR)
    TimA0_PWMConfig.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_3; //通道三
    TimA0_PWMConfig.compareOutputMode = TIMER_A_OUTPUTMODE_TOGGLE_SET;   //輸出模式                              

    MAP_Timer_A_generatePWM(TIMER_A0_BASE, &TimA0_PWMConfig); /* 初始化比較寄存器以產(chǎn)生 PWM1 */	
  • 角度控制
void SG90_angle(int a)
{
    int pwm=500+2000/180*a;
    MAP_Timer_A_setCompareValue(TIMER_A0_BASE, TIMER_A_CAPTURECOMPARE_REGISTER_3, pwm);
} 

四、停止線識(shí)別

  • 方法一
    通過判斷有效色塊的面積或者寬度,因?yàn)樵谘簿€中都是1cm1cm的虛線組成,而停止線為5cm1cm,所以可通過色塊的面積或者寬度等其他因素進(jìn)行識(shí)別,返回停止信號(hào)。
w=max_ID.w()
if w>=80:
    uart.write("S")
  • 方法二
    因?yàn)檎麄€(gè)賽圖小車走的路程是固定的,則也可用通過小車走的路程進(jìn)行停止。
if(sum>=1)
{
	Stop();
	PID_SetPoint(&L_pid,0);
	PID_SetPoint(&R_pid,0);			
}

五、技術(shù)交流

疑難解答或技術(shù)交流聯(lián)系下方wx即可??????文章來源地址http://www.zghlxwxcb.cn/news/detail-612541.html

到了這里,關(guān)于基于MSP432P401R爬坡小車【2020年電賽C題】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • MSP432P401R LaunchPad教程(二)keil環(huán)境配置

    MSP432P401R LaunchPad教程(二)keil環(huán)境配置

    專欄目錄 MSP432P401R LaunchPad教程 基于keil的開發(fā)環(huán)境 MSP432P401R LaunchPad教程(一)時(shí)鐘配置 MSP432P401R LaunchPad教程(二)keil環(huán)境配置 MSP432P401R LaunchPad教程(三)滴答定時(shí)器 在keil中下載msp432的支持包 也可以去官方下載 我這里是在ide里下載的 也挺快 到 TI 官網(wǎng)下載芯片的相關(guān)驅(qū)動(dòng)

    2024年02月08日
    瀏覽(26)
  • 基于PID算法下STM32控制的坡道行駛電動(dòng)小車(2020年電賽)

    基于PID算法下STM32控制的坡道行駛電動(dòng)小車(2020年電賽)

    本題源于2020年TI杯大學(xué)生電子設(shè)計(jì)競賽C題-----坡道行駛電動(dòng)小車 由于手上沒有MSP430/MSP432 板子,所以本篇采用stm32實(shí)現(xiàn) 任務(wù) 利用 TI 的 MSP430/MSP432 平臺(tái),設(shè)計(jì)制作一個(gè)四輪電動(dòng)小車。要求小車能沿著指定路線在坡道上自動(dòng)循跡騎線行駛。小車必須獨(dú)立運(yùn)行,車外不能使用任何

    2024年02月16日
    瀏覽(52)
  • MSP432E401Y學(xué)習(xí)筆記1

    MSP432E401Y學(xué)習(xí)筆記1

    因?yàn)槿ツ觌娰悘?qiáng)制使用TI芯片,所以最近在閑魚上淘了一塊MSP432E401Y準(zhǔn)備學(xué)習(xí)。吃了沒文化的虧,這款MSP432的資料實(shí)在太少了,網(wǎng)上僅有的一些資料也是P系列的,實(shí)在是很頭疼。所以在次記錄一下自己的學(xué)習(xí)過程,為想學(xué)這款板子的伙伴避一些坑。 芯片:MSP432E401Y 開發(fā)環(huán)境:

    2024年02月15日
    瀏覽(18)
  • 配置msp432e401y的ADC采樣達(dá)到2M

    配置msp432e401y的ADC采樣達(dá)到2M

    配置msp432e401y的ADC采樣達(dá)到2M 電賽期間收到了TI公司提供的msp432e401y開發(fā)板。手冊上標(biāo)明ADC采樣率可以達(dá)到2M,但在TIDriver里好像最大開到500k的采樣率。在網(wǎng)上找了半天,沒有找到相關(guān)代碼的帖子,索性自己研究手冊,配置出2M采樣率。 在msp432e4的sdk文件中里找到.examplesnortos

    2024年02月16日
    瀏覽(25)
  • 關(guān)于MSP432E401Y入門指南(1 環(huán)境搭建&點(diǎn)亮一個(gè)led燈)

    關(guān)于MSP432E401Y入門指南(1 環(huán)境搭建&點(diǎn)亮一個(gè)led燈)

    可以使用keil5和ccs開發(fā),這里ccs使用不慣,因此采用keil5開發(fā) 一個(gè)工程模板test,已經(jīng)將啟動(dòng)文件、頭文件和源文件添加進(jìn)入 工程示例:鏈接:https://pan.baidu.com/s/1707PoqR2LP44s1vLjzPH4w 提取碼:fghj 文檔資料:鏈接:https://pan.baidu.com/s/1-GMRFdwazVyhh0X0NFi09A 提取碼:utsx Pack:鏈接:htt

    2024年02月14日
    瀏覽(49)
  • 基于STM32-F401的平衡小車

    基于STM32-F401的平衡小車

    目錄 一、控制系統(tǒng)設(shè)計(jì) 1.1機(jī)械結(jié)構(gòu)設(shè)計(jì) 1.2傳感系統(tǒng)設(shè)計(jì) 1.3執(zhí)行器設(shè)計(jì) 1.4控制算法設(shè)計(jì) 二、控制系統(tǒng)的制作與調(diào)試 2.1機(jī)械結(jié)構(gòu)的制作與調(diào)試 2.2電路系統(tǒng)的制作與調(diào)試 2.3控制程序的編寫與調(diào)試 三、控制系統(tǒng)的測試與分析 3.1測試方法 3.2測試數(shù)據(jù)與現(xiàn)象 3.3結(jié)果分析 一個(gè)系統(tǒng)

    2024年02月06日
    瀏覽(19)
  • 基于MSP430 紅外避障-遙控小車(電賽必備 附項(xiàng)目代碼)

    基于MSP430 紅外避障-遙控小車(電賽必備 附項(xiàng)目代碼)

    項(xiàng)目環(huán)境: 1. MSP430F5529 2. Code Composer Studio 3. 藍(lán)牙調(diào)試助手 項(xiàng)目簡介: 小車可分為3種工作模式,每種工作模式都會(huì)打印在OLED顯示屏上,通過按鍵轉(zhuǎn)換工作模式。 模式1: 小車紅外循跡,通過超聲波實(shí)時(shí)監(jiān)測障礙物距離,若超出規(guī)定路線,距離障礙物相對(duì)較近時(shí),原地停止,

    2023年04月08日
    瀏覽(26)
  • 小車跟隨行駛系統(tǒng)(基于MSP-EXP430F5529LP系統(tǒng)板)

    選用材料:主控板MSP-EXP430F5529LP、陀螺儀、直流減速電機(jī)(可以選用光電編碼器,霍爾電機(jī)不好調(diào)節(jié)PID)、TB6612電機(jī)驅(qū)動(dòng)、超聲波測距模塊、灰度傳感器、無線透傳/藍(lán)牙模塊(便于兩輛小車相互發(fā)送信息)、OLED屏等。 總體思路:使用灰度傳感器巡線,超聲波檢測前后車距,

    2024年02月12日
    瀏覽(20)
  • 【MSP430F5529基于庫函數(shù)的學(xué)習(xí)】電賽速學(xué)及小車實(shí)戰(zhàn)

    【MSP430F5529基于庫函數(shù)的學(xué)習(xí)】電賽速學(xué)及小車實(shí)戰(zhàn)

    為電賽準(zhǔn)備學(xué)習(xí)的MSP430筆記 提示:主要跟著這個(gè)大佬學(xué)的 一張經(jīng)常要看的圖 時(shí)鐘配置和閃爍的LED 時(shí)鐘系統(tǒng)結(jié)構(gòu) (1)5個(gè)時(shí)鐘來源 時(shí)鐘系統(tǒng)模塊具有5個(gè)時(shí)鐘來源。 ① XT1CLK:低頻/高頻振蕩器,可以使用32768Hz的手表晶振、標(biāo)準(zhǔn)晶體、諧振器或4~32MHz的外部時(shí)鐘源; ② VLOCLK:

    2024年02月12日
    瀏覽(22)
  • MSP432學(xué)習(xí)筆記5——外部中斷

    所用單片機(jī)型號(hào):MSP432P401r 今日繼續(xù)我的MSP432電賽速通之路。 外部中斷是個(gè)很有用的配置 STM32幾乎每個(gè)I/O口都能配置復(fù)用為外部中斷 但MSP432并不是這樣。 我經(jīng)過查閱數(shù)據(jù)手冊發(fā)現(xiàn) 支持中斷的引腳 為: P1^0~ P1^7??????? P3^0~ P3^7???? P5^0~ P5^7 P2^0~ P2^7??????? P4^0~ P4^7??

    2024年02月07日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包