久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4468|回復(fù): 1
收起左側(cè)

stm32單片機(jī)紅外遙控超聲波避障小車源程序+視頻+制作詳解

[復(fù)制鏈接]
ID:794476 發(fā)表于 2020-7-2 10:14 | 顯示全部樓層 |閱讀模式
去年11月到12月,和同學(xué)一起在學(xué)校參加院電子設(shè)計(jì)大賽做的項(xiàng)目,看起來(lái)時(shí)間很長(zhǎng),但實(shí)際上我們攏共做的時(shí)間差不多是3天的樣子。
板子是正點(diǎn)的,所以很多地方我們就直接扒的正點(diǎn)的例程,比如紅外遙控的部分完整拿過(guò)來(lái)了,能直接用。
我們?cè)谕瓿蓪W(xué)校的要求后又多加了測(cè)距顯示和差速調(diào)節(jié)(讓小車可以從完全停止到最高速度),后面我會(huì)分塊盡量詳細(xì)敘述小車的功能原理及代碼介紹。

視頻演示
https://www.bilibili.com/video/av85501350/
電源
我們采用的是三節(jié)18650供電,三節(jié)電池就有12v,用來(lái)驅(qū)動(dòng)小車綽綽有余,為了獲得更穩(wěn)定符合小車需求的電壓,我們又采用了一個(gè)LM2596S降壓模塊,把12V的電壓給降到3v給單片機(jī)供電。在安裝電源的時(shí)候,其實(shí)我們犯了一個(gè)錯(cuò)誤,把電池給安裝在了小車的第二層,這樣在取放電池時(shí)就需要拆卸螺絲,比較麻煩。

驅(qū)動(dòng)
驅(qū)動(dòng)模塊使用的是經(jīng)典的L298N,主要是實(shí)驗(yàn)室一抓一大把,關(guān)于模塊的詳細(xì)說(shuō)明可以搜索得到,不再贅述。
我們對(duì)于這個(gè)模塊具體的使用如圖我們做的是4輪驅(qū)動(dòng),把輪子分左右用一個(gè)驅(qū)動(dòng)模塊進(jìn)行驅(qū)動(dòng),為了用PWM對(duì)小車進(jìn)行速度控制,所以我們需要調(diào)用時(shí)鐘,這里調(diào)用TIM4,使能PB8對(duì)左電機(jī)進(jìn)行方向控制,使能PB9作為左電機(jī)的PWM信號(hào),使能PA6對(duì)右電機(jī)進(jìn)行方向控制,使能PB10作為右電機(jī)的PWM信號(hào)。

一邊有倆電機(jī)對(duì)應(yīng)倆輪子,所以,這里還進(jìn)行了映射,PB8映射到PB5和PB6,對(duì)應(yīng)左邊的in1和in2,進(jìn)行方向控制。
PA6映射到PA5和PA6,對(duì)應(yīng)左邊的in3和in4,進(jìn)行方向控制。
更多具體的配置都在函數(shù)里面。
驅(qū)動(dòng)部分并不是由我完全負(fù)責(zé),所以我會(huì)在大體完成后找機(jī)會(huì)請(qǐng)當(dāng)時(shí)一起完成的小伙伴一起校驗(yàn)。
在驅(qū)動(dòng)部分,我想再主要挑一部分詳細(xì)談?wù)劇?br /> 當(dāng)時(shí)我們?cè)趯?duì)于進(jìn)行差速控制部分有一個(gè)想法,讓它實(shí)現(xiàn)從零開(kāi)始逐步加速或者最高速逐步減速,同時(shí)也完成要求的三擋速度。
對(duì)于要求的三擋速度,其他選了小車的組,據(jù)我觀察,應(yīng)該都是在函數(shù)里面寫(xiě)好了預(yù)先配置3個(gè)的PWM占空比,來(lái)實(shí)現(xiàn)。
當(dāng)時(shí)是我負(fù)責(zé)的這個(gè)功能的實(shí)現(xiàn),我覺(jué)得這樣寫(xiě)只能單一完成那個(gè)要求,然后為了達(dá)成我們預(yù)想的差速調(diào)節(jié),于是我在主函數(shù)設(shè)置一個(gè)變量來(lái)代表占空比,然后motor.c里面引進(jìn)并在后面的調(diào)速函數(shù)和三擋預(yù)置速度函數(shù)調(diào)用,就能夠?qū)崿F(xiàn)這兩個(gè)功能了。里面更改占空比的數(shù)值是我們測(cè)試調(diào)節(jié)修改出來(lái)的。


在控制方向上,我們有旋轉(zhuǎn)和有一定精度的角度的旋轉(zhuǎn)。功能完成也是依靠調(diào)節(jié)占空比,不再贅述。

超聲波部分我們采用的模塊是HC-SR04,同樣是一個(gè)比較經(jīng)典的模塊,這一部分比較搞的是什么,是超聲波模塊需要5v供電,及其重要,我們一開(kāi)始代碼調(diào)試好后,一直顯示不出來(lái)正確的數(shù)據(jù),一直為0(我們有加OLED顯示模塊,所以可以方便測(cè)試),從驅(qū)動(dòng)做好后一直順風(fēng)順?biāo)蝗辉谶@卡殼了,弄得我們自閉許久。后來(lái)在網(wǎng)上查到是5v供電后,一改立馬成功。

OLED顯示
我們用的0.96寸7針顯示模塊,代碼部分也沒(méi)什么好說(shuō)的,網(wǎng)上找到讀懂后直接調(diào)用就行了

單片機(jī)源程序如下:
  1. #include "stm32f10x.h"
  2. #include "delay.h"
  3. #include "motor.h"
  4. #include "usart.h"
  5. #include "remote.h"  
  6. #include "oled.h"
  7. #include "hcsr04.h"
  8. /*
  9. void ZYSTM32_run(int speed,int time);       //前進(jìn)函數(shù)
  10. void ZYSTM32_brake(int time);               //剎車函數(shù)
  11. void ZYSTM32_Spin_Left(int speed,int time); //左旋轉(zhuǎn)函數(shù)
  12. void ZYSTM32_Spin_Right(int speed,int time);//右旋轉(zhuǎn)函數(shù)
  13. void ZYSTM32_back(int speed,int time);      //后退函數(shù)
  14. */
  15. float length=0,sum=0;
  16.          u16 tim;
  17.          uint j=0;
  18. int i=2000;
  19. int main(void)
  20. {        
  21.          u8 key;
  22.           float distance;
  23.          delay_init();
  24.          TIM4_PWM_Init(7199,0);  //初始化PWM
  25.          Remote_Init();                        //紅外接收初始化        
  26.          CH_SR04_Init();
  27.                           OLED_Init();                        //初始化OLED  
  28.                 OLED_Clear();
  29.          ZYSTM32_brake(500);         
  30.          NVIC_Config();         
  31.          while(1)
  32.                 {                  
  33.                          key=Remote_Scan();        
  34.                         distance=Senor_Using();                        
  35.                         OLED_ShowString(0,2,"distance is");
  36.                         OLED_ShowNum(0,4,distance,8,20);
  37.                         if(distance>30)
  38.                         switch(key)
  39.                         {   
  40.                                 case 98:ZYSTM32_run(100);break;            
  41.                                 case 2:ZYSTM32_brake(100);break;                                             
  42.                                 case 34:ZYSTM32_Spin_Left(100);break;                  
  43.                                 case 168:ZYSTM32_back(100);break;                  
  44.                                 case 194:ZYSTM32_Spin_Right(100);break;
  45.         case 104:speedchange(1);break;
  46.         case 152:speedchange(2);break;        
  47.         case 176:speedchange(3);break;        
  48.                                 case 48:turnleft45(220);break;                //4   
  49.                                 case 24:turnright45(220);break;                //5   
  50.                      case 16:turnleft45(50);break;     //7
  51.         case 56:turnright45(50);break;                //8               
  52.                                 case 224:speeddown();break;                                    
  53.                                 case 144:speedup();break;
  54.                         }
  55.                         else
  56.                                 {
  57.                                         ZYSTM32_back(100);
  58.                                         delay_us(50);
  59.                                         ZYSTM32_brake(100);
  60.                         }
  61.                 }
  62. }
復(fù)制代碼

所有資料51hei提供下載:
小車基礎(chǔ)部分+紅外遙控+超聲波避障測(cè)距顯示.7z (205.01 KB, 下載次數(shù): 126)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:793141 發(fā)表于 2020-9-19 14:58 | 顯示全部樓層
為什么用紅外遙控沒(méi)有反應(yīng)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品视频一区二区三区四区 | 国产视频一区二区在线 | 青青草手机在线视频 | 成人午夜在线视频 | 国产伦精品一区二区三区视频网站 | 欧美黄色片| 国产中文字幕在线 | 久久福利视频导航 | 午夜精品视频在线 | 免费黄色网址在线观看 | 91啪国产| 97cao| 丁香六月激情 | 成人免费网站黄 | 亚洲欧美视频在线 | 日韩免费一区二区三区 | 国产性猛交96 | 日本高清视频www | 天天干夜夜撸 | 久久久久久黄色 | av在线小说| 91久久综合 | 久久一区视频 | 99久久精品国产毛片 | 亚洲自拍偷拍一区 | 国产成人精品亚洲男人的天堂 | 国产剧情在线 | 九九视频免费观看 | 日韩免费精品视频 | 日韩色黄大片 | 国产福利在线播放 | 久久久精品一区 | 欧美成年人视频 | 免费黄色小网站 | 日本三级香港三级 | 超碰在线观看免费版 | 999热视频| 久久三区 | 久草综合在线 | 久久久久免费 | 99九九久久|