小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Arduino制作循跡小車(chē)完全教程

 星星點(diǎn)點(diǎn)燈 2019-03-07

材料清單:

車(chē)體:一張板(木板、塑料板、甚至是雪糕棒拼接的),萬(wàn)向輪或小軸承、銅柱、車(chē)輪、電機(jī);

硬件:Arduino Uno或Arduino Nano,電機(jī)驅(qū)動(dòng)模塊、紅外傳感器*3、電源、杜邦線。

軟件:一個(gè)安裝了Arduino程序的電腦

Arduino制作循跡小車(chē)完全教程

在講解如何制作循跡小車(chē)之前,我們先了解一下它的結(jié)構(gòu)組成和運(yùn)行原理,理清軟件硬件實(shí)現(xiàn)的思路,對(duì)我們后期制作循跡小車(chē)會(huì)更有幫助。宏觀上看主要包括車(chē)體、硬件電路和軟件編程三部分。它的整個(gè)運(yùn)行原理就是前端的紅外傳感器檢測(cè)黑線的存在,并將它的位置信號(hào)反饋給主控板,主控程序?qū)π≤?chē)位置進(jìn)行分析,從而控制兩個(gè)電機(jī)的速度(差速運(yùn)行),達(dá)到直行、左轉(zhuǎn)、右轉(zhuǎn)、倒車(chē)等操作效果。

Arduino制作循跡小車(chē)完全教程

那么具體的制作和零件選擇,我們來(lái)依次分析一下。

車(chē)體部分:

首先來(lái)拆解循跡小車(chē)的車(chē)體結(jié)構(gòu)。循跡小車(chē)的車(chē)體可以做得非常簡(jiǎn)單,也可以設(shè)計(jì)的很復(fù)雜但更美觀。一張板子配上電機(jī)和車(chē)輪就可以做好,如果想要設(shè)計(jì)出可愛(ài)的造型,那你就要費(fèi)點(diǎn)時(shí)間和精力了。

(1)這里不在設(shè)計(jì)上過(guò)于糾結(jié),通過(guò)一個(gè)簡(jiǎn)單的結(jié)構(gòu)說(shuō)清楚車(chē)體的制作:

這是一個(gè)簡(jiǎn)單的車(chē)體結(jié)構(gòu),一張塑料洞洞板,通過(guò)螺釘、螺母、電機(jī)固定架將電機(jī)固定在洞洞板上,再將與電機(jī)軸尺寸合適的車(chē)輪直接插到電機(jī)軸上,最后在洞洞板前端用鐵絲固定一個(gè)小軸承充當(dāng)前輪,車(chē)體部分就完成了。

型號(hào):

電機(jī):N20減速電機(jī)(購(gòu)物網(wǎng)站很容易搜到,大概在10元左右)

車(chē)輪:與電機(jī)軸配套的D型孔的橡膠輪(搜索N20電機(jī)橡膠輪)

電機(jī)固定架:搜索N20電機(jī)固定架。

底板:搜索固位板可以找到很多,這個(gè)比較隨意。

軸承:外徑10mm左右都可以,或者也可以選擇其他圓形結(jié)構(gòu)替代。

綜上,重點(diǎn)是選定電機(jī),車(chē)輪和固定架匹配電機(jī)就可以,至于底板可以自由選擇,考慮好如何固定電機(jī)和前輪就可以。

(2)另外介紹一種常見(jiàn)的可以買(mǎi)到的車(chē)體,如圖:

Arduino制作循跡小車(chē)完全教程

這種類(lèi)型的車(chē)體是平時(shí)最常見(jiàn)的車(chē)體結(jié)構(gòu),在網(wǎng)上搜索智能車(chē)套件,會(huì)有很多選擇。當(dāng)然,想動(dòng)手自己嘗試設(shè)計(jì)組裝的也可以買(mǎi)好配件自由發(fā)揮。對(duì)于這個(gè)底板,看上去很復(fù)雜,其實(shí)上面預(yù)留的孔也是隨意切割,只要匹配電機(jī)和萬(wàn)向輪的固定孔位就可以。家里有木工工具的也可以自己鋸一塊木板,打幾個(gè)孔也能搞定?;蛘邥?huì)CAD設(shè)計(jì)的,把圖紙拿到街邊的廣告制作店鋪,分分鐘也可以加工出來(lái)漂亮的亞克力底板。

電機(jī):TT電機(jī),相對(duì)N20電機(jī)要便宜一半左右

輪子:選擇與電機(jī)軸配套的孔型,這個(gè)電機(jī)軸是扁的,網(wǎng)上搜索TT電機(jī)橡膠輪可以找到。

萬(wàn)向輪:網(wǎng)上很容易找到,重點(diǎn)關(guān)注螺絲固定孔與底板上對(duì)應(yīng)孔的匹配。

總結(jié):車(chē)體部分實(shí)際上并不難,重點(diǎn)是要做好各個(gè)組件的安裝匹配。同時(shí),不要忘記后面主控板、傳感器的安裝位置,需要提前確定好,并預(yù)留孔位。

硬件電路部分:

硬件電路部分主要包括主控板、電機(jī)驅(qū)動(dòng)模塊、紅外循跡傳感器、電源等。

(1)主控板以Arduino Uno為例進(jìn)行講解,對(duì)于沒(méi)有編程經(jīng)驗(yàn)的會(huì)簡(jiǎn)單一些,它還可以實(shí)現(xiàn)圖形化編程界面(Mixly),更是適合兒童編程學(xué)習(xí)。板子價(jià)格相對(duì)便宜,20元左右,一個(gè)板子+一條數(shù)據(jù)線就可以用起來(lái)了。

主控板的外形如下圖所示,它的學(xué)習(xí)不是一下可以說(shuō)清楚的,我后面會(huì)給大家提供部分資料,也會(huì)把跟小車(chē)相關(guān)的用法講清楚。

Arduino制作循跡小車(chē)完全教程

從圖上看到,這塊板子有14個(gè)數(shù)字輸入/輸出端口,6個(gè)PWM端口。數(shù)字端口主要用于傳遞高低電平,高電平為1,低電平為0;紅外傳感器就是連接到這些端口上,通過(guò)高低電平來(lái)傳遞消息;PWM端口是在板子上標(biāo)有“~”符號(hào)的端口,電機(jī)驅(qū)動(dòng)的邏輯輸入端口就是跟PWM端口連接,它是用來(lái)給電機(jī)設(shè)定速度的,一般值在0-255之間。

USB接口通過(guò)數(shù)據(jù)線與電腦連接,便于下載程序到主板上。

電源接口可以與外部5V或3.3V電源連接,要注意看板子上的標(biāo)識(shí),不可以隨意接,也可以用來(lái)給傳感器供電。如果電源接口不夠用,可自行連接導(dǎo)線擴(kuò)展,但也要注意不能過(guò)多,電流太大容易燒芯片。

注意:主控板供電只能是3.3V或5V,我們直接用后面的電機(jī)驅(qū)動(dòng)模塊中的5V供電便可以。

板子的資料和對(duì)應(yīng)軟件下載都羅列出來(lái):

1. 插上UNO開(kāi)發(fā)板,驅(qū)動(dòng)會(huì)自動(dòng)安裝

2.在die里面選擇板卡 UNO

3. 選擇COM端口,這個(gè)可以在我的電腦里查詢(xún),剛剛你的UNO開(kāi)發(fā)板里面端口。

這里把軟件安裝完成后的板卡選擇和COM端口選擇截圖演示,以便不懂的朋友參閱。這兩個(gè)端口的設(shè)置是為了將程序傳輸?shù)街骺匕迳希仨氝x擇對(duì)應(yīng)的板卡(主控板型號(hào))和電腦連接端口。如下圖:

Arduino制作循跡小車(chē)完全教程

2)紅外循跡傳感器模塊:就像人的眼睛,是用于判斷黑線的。紅外循跡傳感器上有兩個(gè)二極管,一個(gè)是發(fā)射紅外信號(hào),另一個(gè)可以接收紅外信號(hào)。當(dāng)傳感器下方是黑線時(shí),黑色可以大量吸收紅外信號(hào),從而導(dǎo)致返回的紅外信號(hào)非常微弱;當(dāng)傳感器下方不是黑色時(shí),,大量的紅外信號(hào)被反射回來(lái),被接收端接收。從而可以判斷黑線的存在了,這就是紅外循跡傳感器的作用原理。

網(wǎng)上的紅外循跡傳感器也是多種多樣,不過(guò)使用都是一樣的,最主要的就是判斷在掃描到黑線時(shí),返回的是高電平還是低電平,這個(gè)在產(chǎn)品介紹那都會(huì)有介紹。紅外循跡傳感器模塊大概如下圖所示:

Arduino制作循跡小車(chē)完全教程

圖上看出傳感器上有4個(gè)接線端和3個(gè)接線端的區(qū)別,它們都會(huì)有電源正極Vcc、負(fù)極GND、數(shù)字輸出口D0,而多出那一個(gè)端口是A0,也就是模擬輸出端,這個(gè)對(duì)我們使用并不影響,我們只使用數(shù)字輸出端(D0)就可以。

在使用時(shí),只需將電源端接好,把數(shù)字輸出端接到主控板的數(shù)字輸入/輸出端口,便完成連接。具體連接圖在后面展示。

Arduino制作循跡小車(chē)完全教程

在購(gòu)買(mǎi)時(shí)注意購(gòu)買(mǎi)紅外循跡傳感器模塊,而不能直接購(gòu)買(mǎi)紅外傳感器。因?yàn)閱为?dú)的紅外傳感器是用不了的,需要其他芯片配合使用。模塊上都是集成好的,可以直接使用。

Arduino制作循跡小車(chē)完全教程

(3)電機(jī)驅(qū)動(dòng)模塊,是用于對(duì)電機(jī)速度和轉(zhuǎn)向的控制模塊。費(fèi)用大概在10元左右,其端口連接會(huì)多點(diǎn),但并不復(fù)雜。我來(lái)依次說(shuō)明,如下圖,左右兩端藍(lán)色的輸出A和輸出B是連接兩個(gè)電機(jī)的,把左側(cè)電機(jī)的兩條線接到輸出A,同理,右側(cè)接到輸出B。外部供電可以選擇5-35v,但一般12v或9v就足夠。電源正極接在下圖的12v供電端,負(fù)極接在供電GND端,而圖中5V供電可以用于給控制板和紅外循跡傳感器進(jìn)行供電,注意負(fù)極都是要接到供電GND。最后就是邏輯輸入這四個(gè)端口,需要跟控制板上的數(shù)字輸入/輸出端口相連接,左側(cè)兩個(gè)是控制左側(cè)電機(jī),而右側(cè)兩個(gè)是控制右側(cè)電機(jī)。

具體的連接圖示在最后展示。

(4)電源部分則可以直接買(mǎi)12V鋰電池,或者比較簡(jiǎn)單的就購(gòu)買(mǎi)9v電池,配上連接頭就能直接使用。

由于篇幅有限,僅對(duì)用到的硬件部分進(jìn)行簡(jiǎn)單介紹,但足以完成循跡小車(chē)的制作。下面我就把整體的硬件連接圖展示出來(lái)。

Arduino制作循跡小車(chē)完全教程

軟件編程部分:

該部分應(yīng)該是整個(gè)循跡小車(chē)的核心,它賦予小車(chē)思想,讓小車(chē)智能化。對(duì)于該部分的實(shí)現(xiàn),方式方法都有很多種,比如利用Arduino IDE界面直接代碼編程,還可以通過(guò)圖形化界面進(jìn)行拖拽編程,如Mixly。方法上有直接法,就是對(duì)電機(jī)的控制人為設(shè)定參數(shù),簡(jiǎn)單粗暴;還有會(huì)結(jié)合PID算法的高級(jí)控制,這種方法對(duì)于小車(chē)的響應(yīng)速度更快,也更合理,但是難度會(huì)高一些。

該文章就是科普性質(zhì),所以先通過(guò)最簡(jiǎn)單的方式,實(shí)現(xiàn)小車(chē)的循跡功能。編程的整體思想是先判斷黑線的位置,當(dāng)中間傳感器掃描到黑線時(shí),小車(chē)位置正確,電機(jī)繼續(xù)按原始速度行走;當(dāng)左側(cè)傳感器掃描到黑線時(shí),此時(shí)小車(chē)已經(jīng)偏右,需要及時(shí)向左校正,左側(cè)電機(jī)減速,右側(cè)電機(jī)加速,完成左轉(zhuǎn);當(dāng)右側(cè)傳感器掃描到黑線時(shí),此時(shí)小車(chē)已經(jīng)偏左,需要及時(shí)向右校正,左側(cè)電機(jī)加速,右側(cè)電機(jī)減速,完成右轉(zhuǎn);下面列出上述電路連接對(duì)應(yīng)的程序:

static int initial_motor_speed=100;

const int IN_A1=6;

const int IN_A2=9;

const int IN_B1=10;

const int IN_B2=11;

const int sensor2=2;

const int sensor3=3;

const int sensor4=4;

void setup() {

pinMode(IN_A1,OUTPUT);

pinMode(IN_A2,OUTPUT);

pinMode(IN_B1,OUTPUT);

pinMode(IN_B2,OUTPUT);

pinMode(sensor2,INPUT);

pinMode(sensor3,INPUT);

pinMode(sensor4,INPUT);

}

void loop() {

char num2,num3,num4;

num2=digitalRead(sensor2);

num3=digitalRead(sensor3);

num4=digitalRead(sensor4);

if(num4==0){

analogWrite(IN_A1,150);

analogWrite(IN_A2,0);

analogWrite(IN_B1,50);

analogWrite(IN_B2,0);

}else if(num2==0){

analogWrite(IN_A1,50);

analogWrite(IN_A2,0);

analogWrite(IN_B1,150);

analogWrite(IN_B2,0);

}else{

analogWrite(IN_A1,100);

analogWrite(IN_A2,0);

analogWrite(IN_B1,100);

analogWrite(IN_B2,0);

}

}

將程序拷貝并上傳到主控板中,就完成程序輸入了。如果你的電路連接跟圖示的一樣,那這個(gè)程序可以實(shí)現(xiàn)小車(chē)的循跡功能。如果你購(gòu)買(mǎi)的循跡傳感器檢測(cè)到黑線輸出高電平,只需要把程序中num4==0,nm2==0改成num4==1,nm2==1即可。對(duì)于程序部分不作詳細(xì)的講解,如有需要可以自行查閱資料或私信交流。

到此為止,小車(chē)的車(chē)體、電路、軟件均已完成,靈魂戰(zhàn)車(chē)可以出發(fā)了!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多