欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

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

QQ登錄

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

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

如何解決51單片機(jī)紅外避障小車(chē)不能在迷宮內(nèi)走直線(xiàn)這一難題。

[復(fù)制鏈接]
ID:936280 發(fā)表于 2021-7-13 08:35 | 顯示全部樓層 |閱讀模式
//個(gè)人剛?cè)雽W(xué)51單片機(jī),玩的東西,沒(méi)那么高級(jí)
//三輪紅外避障小車(chē)(一個(gè)萬(wàn)向輪,二個(gè)輪子用電機(jī)驅(qū)動(dòng))
// 小車(chē)由于倆個(gè)電機(jī)不可能完全相等,摩檫力等等系列因素讓二個(gè)輪子的轉(zhuǎn)速不同,故無(wú)法走直線(xiàn)

//解決思路:
//可以通過(guò)左右兩邊的紅外其中一個(gè)紅外讓小車(chē)走一個(gè)一抖一抖的直線(xiàn),實(shí)現(xiàn)其原理就是 例如是右邊打的紅外,檢測(cè)到右邊的墻壁,就讓它往左走,檢測(cè)不到右邊的墻壁,就讓它往右走。讓其在中斷里進(jìn)行不斷掃描其過(guò)程。

//由于速度過(guò)大就會(huì)抖的非常厲害,故通過(guò)PWM調(diào)節(jié)速度。

//代碼如下

#include <REGX52.H>

//L298N輸出
sbit out1=P1^3;                sbit out3=P1^5;
sbit out2=P1^4;                sbit out4=P1^6;        

//使能
sbit ine1=P1^0;
sbit ine2=P1^1;


//紅外
sbit hw_y=P0^0;


//調(diào)節(jié)二個(gè)輪子的速度,不能讓其太快
unsigned int count=0;
unsigned int compare_l=50;
unsigned int compare_r=50;


void Timer0Init()               
{
        TMOD &= 0xF0;               
        TMOD |= 0x01;               
        TL0 = 0xA4;               
        TH0 = 0xFF;        
        TR0 = 1;               
        ET0=1;
        EA=1;
}


void right()  //右
{
        compare_l=30;
        compare_r=30;
        out1=0;                  
        out2=0;  
        out3=0;
        out4=1;   
}


void left()   //左
{
        compare_l=30;
        compare_r=30;
        out1=1;  
        out2=0;
        out3=0;  
        out4=0;  
}


void Turnaround()   //靠墻走直的函數(shù)
{

      if(hw_y==0)  
            left();
     else if(hw_y==1)
          right();
}

void main()
{
        Timer0Init();
        while(1)
        {}
}


void Timer0_Routine() interrupt 1
{
        TL0 = 0xA4;               
        TH0 = 0xFF;
        count++;
        count%=100;        
        //左右搖擺放入其中糾正方向,通過(guò)那兩個(gè)函數(shù)來(lái)調(diào)節(jié)方向               
       Turnaround();   
       if(count<compare_r)
          ine1=1;
        else
          ine1=0;        
        if(count<compare_l)
          ine2=1;
        else
          ine2=0;
}



//還沒(méi)解決走出迷宮的思路,希望各位大佬給點(diǎn)建議。蟹蟹啦
回復(fù)

使用道具 舉報(bào)

ID:934353 發(fā)表于 2021-7-13 11:33 | 顯示全部樓層
可以用pid算法調(diào)節(jié)兩個(gè)輪子的速度
回復(fù)

使用道具 舉報(bào)

ID:744327 發(fā)表于 2021-7-13 12:46 | 顯示全部樓層
PWM口可以再細(xì)分一下,遇到障礙物時(shí),可以避開(kāi)。
回復(fù)

使用道具 舉報(bào)

無(wú)效樓層,該帖已經(jīng)被刪除
ID:123289 發(fā)表于 2021-7-14 09:27 | 顯示全部樓層
PWM等等……,都不是要點(diǎn):
想想,如果你自己在迷宮里開(kāi)車(chē):
1、你需要什么條件?
2、你會(huì)如何處理?
如果僅僅是走直線(xiàn),在硬件想想辦法,是可以達(dá)成相對(duì)滿(mǎn)意的目標(biāo)的。
例如:每個(gè)汽車(chē)都有脫手方向盤(pán)走直線(xiàn)的功能,可以借鑒。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表