完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>
標(biāo)簽 > 循跡小車
做單片機(jī)的工程師相比都堆循跡小車有所認(rèn)識(shí),它是自動(dòng)引導(dǎo)機(jī)器人系統(tǒng)的基本應(yīng)用,那么今天小編就給大家介紹下自動(dòng)自動(dòng)循跡小車的原理,智能循跡小車的應(yīng)用,智能循跡小車程序,循跡小車用途等知識(shí)吧!
一款自動(dòng)循跡小車的設(shè)計(jì)方案 自動(dòng)循跡小車是比較熱門地電子競(jìng)賽,有許多設(shè)計(jì)方案。做單片機(jī)的工程師相比都堆循跡小車有所認(rèn)識(shí),它是自動(dòng)引導(dǎo)機(jī)器人系統(tǒng)的基本應(yīng)用,那么今天小編就給大家介紹下自動(dòng)自動(dòng)循跡小車的原理,智能循跡小車的應(yīng)用,智能循跡小車程序,循跡小車用途等知識(shí)吧!
做單片機(jī)的工程師相比都堆循跡小車有所認(rèn)識(shí),它是自動(dòng)引導(dǎo)機(jī)器人系統(tǒng)的基本應(yīng)用,那么今天小編就給大家介紹下自動(dòng)自動(dòng)循跡小車的原理,智能循跡小車的應(yīng)用,智能循跡小車程序,循跡小車用途等知識(shí)吧!
自動(dòng)循跡小車的原理
1.小車控制及驅(qū)動(dòng)單元的選擇
此部分是整個(gè)小車的大腦,是整個(gè)小車運(yùn)行的核心部件,起著控制小車所有運(yùn)行狀態(tài)的作用。通常選用單片機(jī)作為小車的核心控制單元,本文以臺(tái)灣凌陽公司的 SPCE061A單片機(jī)為例予以介紹。SPCE061是一款擁有2K RAM、32KFlash、32 個(gè)I/O 口,并集成了AD/DA功能強(qiáng)大的16位微處理器,它還擁有豐富的語音處理功能,為小車的功能擴(kuò)展提供了相當(dāng)大的空間。只要按照該單片機(jī)的要求對(duì)其編制程 序就可以實(shí)現(xiàn)很多不同的功能。
小車驅(qū)動(dòng)電機(jī)一般利用現(xiàn)成的玩具小車上的配套直流電機(jī)。考慮到小車必須能夠前進(jìn)、倒退、停止,并能靈活轉(zhuǎn)向,在左右兩輪各裝一個(gè)電機(jī)分別進(jìn)行驅(qū)動(dòng)。當(dāng)左輪 電機(jī)轉(zhuǎn)速高于右輪電機(jī)轉(zhuǎn)速時(shí)小車向右轉(zhuǎn),反之則向左轉(zhuǎn)。為了能控制車輪的轉(zhuǎn)速,可以采取PWM調(diào)速法,即由單片機(jī)的IOB8、IOB9輸出一系列頻率固定 的方波,再通過功率放大來驅(qū)動(dòng)電機(jī),在單片機(jī)中編程改變輸出方波的占空比就可以改變加到電機(jī)上的平均電壓,從而可以改變電機(jī)的轉(zhuǎn)速。左右輪兩個(gè)電機(jī)轉(zhuǎn)速的 配合就可以實(shí)現(xiàn)小車的前進(jìn)、倒退、轉(zhuǎn)彎等功能。
2.小車循跡的原理
這里的循跡是指小車在白色地板上循黑線行走,通常采取的方法是紅外探測(cè)法。
紅外探測(cè)法,即利用紅外線在不同顏色的物體表面具有不同的反射性質(zhì)的特點(diǎn),在小車行駛過程中不斷地向地面發(fā)射紅外光,當(dāng)紅外光遇到白色紙質(zhì)地板時(shí)發(fā)生漫反 射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,小車上的接收管接收不到紅外光。單片機(jī)就是否收到反射回來的紅外光為依據(jù)來確定黑線的 位置和小車的行走路線。紅外探測(cè)器探測(cè)距離有限,一般最大不應(yīng)超過15cm。對(duì)于發(fā)射和接收紅外線的紅外探頭,可以自己制作或直接采用集成式紅外探頭。
(1)自制紅外探頭電路如圖1所示,紅外光的發(fā)送接收選用型號(hào)為ST168的對(duì)管。當(dāng)小車在白色地面行駛時(shí),裝在車下的紅外發(fā)射管發(fā)射紅外線信號(hào), 經(jīng)白色反射后,被接收管接收,一旦接收管接收到信號(hào),那么圖中光敏三極管將導(dǎo)通,比較器輸出為低電平;當(dāng)小車行駛到黑色引導(dǎo)線時(shí),紅外線信號(hào)被黑色吸收 后,光敏三極管截止,比較器輸出高電平,從而實(shí)現(xiàn)了通過紅外線檢測(cè)信號(hào)的功能。將檢測(cè)到的信號(hào)送到單片機(jī)I/O口,當(dāng)I/O口檢測(cè)到的信號(hào)為高電平時(shí),表 明紅外光被地上的黑色引導(dǎo)線吸收了,表明小車處在黑色的引導(dǎo)線上;同理,當(dāng)I/O口檢測(cè)到的信號(hào)為低電平時(shí),表明小車行駛在白色地面上。此種方法簡(jiǎn)單,價(jià) 格便宜,靈敏度可調(diào),但是容易受到周圍環(huán)境的影響,特別是在圖1較強(qiáng)的日光燈下,對(duì)檢測(cè)到的信號(hào)有一定的影響。
(2)集成式紅外探頭可以采用型號(hào)為E3F-DS10C4集成斷續(xù)式光電開關(guān)探測(cè)器,它具有簡(jiǎn)單、可靠的工作性能,只要調(diào)節(jié)探頭上的一個(gè)旋鈕就可以 控制探頭的靈敏度。該探頭輸出端只有三根線(電源線、地線、信號(hào)線),只要將信號(hào)線接在單片機(jī)的I/O口,然后不停地對(duì)該I/O口進(jìn)行掃描檢測(cè),當(dāng)其為高 電平時(shí)則檢測(cè)到白紙,當(dāng)為低電平時(shí)則檢測(cè)到黑線。此種探頭還能有效地防止普通光源(如日光燈等)的干擾。其缺點(diǎn)則是體積比較大,占用了小車有限的空間。
3.紅外探頭的安裝
在小車具體的循跡行走過程中,為了能精確測(cè)定黑線位置并確定小車行走的方向,需要同時(shí)在底盤裝設(shè)4個(gè)紅外探測(cè)頭,進(jìn)行兩級(jí)方向糾正控制,提高其循跡的可靠 性。這4個(gè)紅外探頭的具體位置如圖2所示。圖中循跡傳感器共安裝4個(gè),全部在一條直線上。其中InfraredMR與InfraredML 為第一級(jí)方向控制傳感器,InfraredSR 與InfraredSL 為第二級(jí)方向控制傳感器。小車行走時(shí),始終保持黑線(如圖2 中所示的行走軌跡黑線)在InfraredMR和InfraredML這兩個(gè)第一級(jí)傳感器之間,當(dāng)小車偏離黑線時(shí),第一級(jí)探測(cè)器一旦探測(cè)到有黑線,單片機(jī) 就會(huì)按照預(yù)先編定的程序發(fā)送指令給小車的控 制系統(tǒng),控制系統(tǒng)再對(duì)小車路徑予以糾正。若小車回到了軌道上,即4個(gè)探測(cè)器都只檢測(cè)到白紙,則小車會(huì)繼續(xù)行走;若小車由于慣性過大依舊偏離軌道,越出了第 一級(jí)兩個(gè)探測(cè)器的探測(cè)范圍,這時(shí)第二級(jí)動(dòng)作,再次對(duì)小車的運(yùn)動(dòng)進(jìn)行糾正,使之回到正確軌道上去。可以看出,第二級(jí)方向探測(cè)器實(shí)際是第一級(jí)的后備保護(hù),從而 提高了小車循跡的可靠性。
4.軟件控制
其程序控制框圖如圖3。小車進(jìn)入循跡模式后,即開始不停地掃描與探測(cè)器連接的單片機(jī)I/O口,一旦檢測(cè)到某個(gè)I/O口有信號(hào),即進(jìn)入判斷處理程序 (switch),先確定4個(gè)探測(cè)器中的哪一個(gè)探測(cè)到了黑線,如果InfraredML(左面第一級(jí)傳感器)或者InfraredSL(左面第二級(jí)傳感 器)探測(cè)到黑線,即小車左半部分壓到黑線,車身向右偏出,此時(shí)應(yīng)使小車向左轉(zhuǎn);如果是InfraredMR(右面第一級(jí)傳感 器)或InfraredSR(右面第二級(jí)傳感器)探測(cè)到了黑線,即車身右半部壓住黑線,小車向左偏出了軌跡,則應(yīng)使小車向右轉(zhuǎn)。在經(jīng)過了方向調(diào)整后,小車 再繼續(xù)向前行走,并繼續(xù)探測(cè)黑線重復(fù)上述動(dòng)作。
由于第二級(jí)方向控制為第一級(jí)的后備,則兩個(gè)等級(jí)間的轉(zhuǎn)向力度必須相互配合。第二級(jí)通常是在超出第一級(jí)的控制范圍的情況下發(fā)生作用,它也是最后一層保護(hù),所 以它必須要保證小車回到正確軌跡上來,則通常使第二級(jí)轉(zhuǎn)向力度大于第一級(jí),即level2》level1(level1、level2為小車轉(zhuǎn)向力 度,其大小通過改變單片機(jī)輸出的占空比的大小來改變),具體數(shù)值在實(shí)地實(shí)驗(yàn)中得到。
專家點(diǎn)評(píng):根據(jù)本文所講述的方法,我們可以較容易地做出按照一定軌跡行走的智能電動(dòng)小車。但是按照該方法行走的小車如果是走直線,有可能會(huì)是蛇形前進(jìn)。為 了使小車能夠按軌跡行走的更流暢,可以在軟件編程時(shí)運(yùn)用一些簡(jiǎn)單的算法。例如,在對(duì)小車進(jìn)行糾偏時(shí),適當(dāng)提前停止糾偏,而不要等到小車完全不偏時(shí)再停止, 以防止小車的過沖。
51單片機(jī)尋跡小車完整程序
今天終于把小車調(diào)成功了耶!!!
費(fèi)了好大勁去調(diào)PWM波把速度降下來,然后寫轉(zhuǎn)彎,左轉(zhuǎn)大灣,左轉(zhuǎn)小灣,右轉(zhuǎn)大灣,右轉(zhuǎn)小灣,四個(gè)紅外收發(fā)管,所以就寫了四個(gè)轉(zhuǎn)彎的狀態(tài)。
P1是用來控制電機(jī)的端口,IN~控制前進(jìn)后退,EN~控制小車能不能走,P0是紅外接收的口,為1時(shí)表示探測(cè)到黑線
zkb為占空比,通過zkb來控制小車的速度,t為相當(dāng)于總時(shí)間,zkb是在t時(shí)間內(nèi)電機(jī)工作的時(shí)間。
下面是我寫的程序:
#include 《reg52.h》
sbit IN1 = P1^0;
sbit IN2 = P1^1;
sbit ENA = P1^2;
sbit IN3 = P1^3;
sbit IN4 = P1^4;
sbit ENB = P1^5;
sbit left1 = P0^0;
sbit left2 = P0^1;
sbit right1 = P0^2;
sbit right2 = P0^3;
unsigned char zkb1 = 0;
unsigned char zkb2 = 0;
unsigned char t = 0;
void init()
{
EA = 1;
TMOD |= 0x01;
TH0 =(65536 - 100) / 256;
TL0 = (65536 - 100)% 256;
ET0 = 1;
TR0 = 1;
}
void timer0() interrupt 1
{
TH0 = (65536 - 100) / 256;
TL0 = (65536 - 100) % 256;
if(t 《 zkb1)
{
// if(t % 2 == 0)
// {
// ENA = 1;
// }
// else
// {
// ENA = 0;
// }
ENA = 1;
}
else
{
ENA = 0;
}
if(t 《 zkb2)
{
// if(t%2 == 0)
// {
// ENB = 1;
// }
// else
// {
// ENB = 0;
// }
ENB =1;
}
else
{
ENB = 0;
}
++t;
if(t 》= 50)
{
t = 0;
}
}
void turn_left1()
{
zkb1 = 13;
zkb2 = 0;
}
void turn_left2()
{
zkb1 = 13;
zkb2 = 0;
}
void turn_right1()
{
zkb1 = 0;
zkb2 = 13;
}
void turn_right2()
{
zkb1 = 0;
zkb2 = 13;
}
void qianjin()
{
zkb1 = 8;
zkb2 = 8;
}
void xunji()
{
unsigned char flag;
if((right2 == 0)&&(right1 == 0)&&(left1 == 0)&&(left2 == 0))
{
flag = 0;
}
if((right2 == 0)&&(right1 ==1)&&(left1 == 0)&&(left2 == 0))
{
flag = 1;
}
if((right2 == 0)&&(right1 == 0)&&(left1 == 1)&&(left2 == 0))
{
flag = 2;
}
if((right2 == 0)&&(right1 == 0)&&(left1 == 0)&&(left2 == 1))
{
flag = 3;
}
if((right2 == 1)&&(right1 == 0)&&(left1 == 0)&&(left2 == 0))
{
flag = 4;
}
switch(flag)
{
case 0:qianjin();break;
case 1:turn_right1();break;
case 2:turn_left1();break;
case 3:turn_left2();break;
case 4:turn_right2();break;
default:qianjin();break;
}
}
void main()
{
init();
// zkb1 = 40;
// zkb2 = 30;
IN1 = 0;
IN2 = 1;
IN3 = 0;
IN4 = 1;
while(1)
{
xunji();
}
}
學(xué)生通過動(dòng)手實(shí)踐能大大提高解決實(shí)際問題的能力,而且智能小車還是一個(gè)很好的硬件平臺(tái),只要增加一些控制電路就能完成循跡小車、救火機(jī)器人、足球機(jī)器人、避障機(jī)器...
無線供電技術(shù)隨著氣候變化、能源枯竭和環(huán)境保護(hù)的日趨嚴(yán)峻而不斷發(fā)展,而電磁所具有的功率大、輸電效率高的特點(diǎn),各高校和研究機(jī)構(gòu)先后投入該領(lǐng)域的研究和應(yīng)用。
采用LM393設(shè)計(jì)的太陽能發(fā)電循跡小車
循跡小車是這種能夠順著預(yù)置的運(yùn)動(dòng)軌跡線路行車的小車,在很多實(shí)驗(yàn)教學(xué)場(chǎng)所均有運(yùn)用。而在循跡小車行車的全過程中,怎么讓小轎車可以精確地順著運(yùn)動(dòng)軌跡路線行車而...
基于 STC12C5A60S2 的智能循跡小車(附傳感器電機(jī)驅(qū)動(dòng)電路圖)
設(shè)計(jì)了一種智能循跡小車,介紹了系統(tǒng)總體,STC12C5A60S2 單片機(jī)為智能小車控制核心、電源模塊、電機(jī)驅(qū)動(dòng)電路、循跡傳感器模塊及相應(yīng)軟件設(shè)計(jì)方案。...
2017-04-19 標(biāo)簽:傳感器循跡小車stc12c5a60s2 1.1萬 0
以LDC1000電感/數(shù)字轉(zhuǎn)換器為核心,設(shè)計(jì)并制作了一個(gè)可自動(dòng)根據(jù)鐵絲形狀循跡小車。系統(tǒng)的主要功能模塊包括:主控模塊、金屬信號(hào)探測(cè)模塊、速度檢測(cè)模塊,電...
智能循跡避障小車設(shè)計(jì)與實(shí)現(xiàn)立即下載
類別:單片機(jī) 2017-06-06 標(biāo)簽:stc89c516rd循跡小車光敏傳感器
類別:信號(hào)處理電路 2012-07-06 標(biāo)簽:循跡小車紅外循跡小車
課程實(shí)訓(xùn):基于LM393P的光敏自動(dòng)循跡小車立即下載
類別:自動(dòng)控制系統(tǒng)論文 2017-12-21 標(biāo)簽:循跡小車lm393p
編輯推薦廠商產(chǎn)品技術(shù)軟件/工具OS/語言教程專題
電機(jī)控制 | DSP | 氮化鎵 | 功率放大器 | ChatGPT | 自動(dòng)駕駛 | TI | 瑞薩電子 |
BLDC | PLC | 碳化硅 | 二極管 | OpenAI | 元宇宙 | 安森美 | ADI |
無刷電機(jī) | FOC | IGBT | 逆變器 | 文心一言 | 5G | 英飛凌 | 羅姆 |
直流電機(jī) | PID | MOSFET | 傳感器 | 人工智能 | 物聯(lián)網(wǎng) | NXP | 賽靈思 |
步進(jìn)電機(jī) | SPWM | 充電樁 | IPM | 機(jī)器視覺 | 無人機(jī) | 三菱電機(jī) | ST |
伺服電機(jī) | SVPWM | 光伏發(fā)電 | UPS | AR | 智能電網(wǎng) | 國(guó)民技術(shù) | Microchip |
Arduino | BeagleBone | 樹莓派 | STM32 | MSP430 | EFM32 | ARM mbed | EDA |
示波器 | LPC | imx8 | PSoC | Altium Designer | Allegro | Mentor | Pads |
OrCAD | Cadence | AutoCAD | 華秋DFM | Keil | MATLAB | MPLAB | Quartus |
C++ | Java | Python | JavaScript | node.js | RISC-V | verilog | Tensorflow |
Android | iOS | linux | RTOS | FreeRTOS | LiteOS | RT-THread | uCOS |
DuerOS | Brillo | Windows11 | HarmonyOS |