步驟1:準(zhǔn)備
步驟2:
通常,機(jī)器人是虛擬的人工或機(jī)械代理,能夠?qū)Νh(huán)境做出反應(yīng)并自主決定要實(shí)現(xiàn)特定目標(biāo)的行動(dòng)。這些角色將機(jī)器人與汽車或烤面包機(jī)等東西區(qū)分開(kāi)來(lái),因?yàn)樗鼈儫o(wú)法感知環(huán)境。
機(jī)器人通常由電子電路或計(jì)算機(jī)程序控制。在這里,我拍了一張圖,表明Arduino機(jī)器人的基本組成。
機(jī)器人平臺(tái)是決定它的外觀和功能的機(jī)器人主體。輪式平臺(tái)是目前最常見(jiàn)的平臺(tái)。與其他產(chǎn)品相比,它具有一些優(yōu)勢(shì),例如相對(duì)較低的成本,豐富的選擇以及簡(jiǎn)單的設(shè)計(jì)和構(gòu)造。強(qiáng)烈建議對(duì)機(jī)器人初學(xué)者使用。
微控制器是機(jī)器人的大腦,因?yàn)樗軌驁?zhí)行程序,并負(fù)責(zé)所有決策,計(jì)算和通信。 Arduino UNO和Romeo是用于DIY Arduino機(jī)器人的兩種流行的微控制器。
電動(dòng)機(jī)是可以將電能轉(zhuǎn)換為物理運(yùn)動(dòng)的設(shè)備,而電動(dòng)機(jī)驅(qū)動(dòng)器則充當(dāng)微控制器,電池和電動(dòng)機(jī)之間的中間設(shè)備。它以所需的電壓提供電流,并與微控制器一起工作,以使電動(dòng)機(jī)適當(dāng)?shù)匾苿?dòng)。
由于各種機(jī)電傳感器,機(jī)器人具有感知周圍環(huán)境的能力。例如,紅外傳感器可以幫助Arduino機(jī)器人檢測(cè)自身與物體之間的距離,然后將該信息反饋給微控制器。制造線跟蹤機(jī)器人需要灰度傳感器。
在開(kāi)始制造機(jī)器人之前,最好先了解一些基本工具。
第3步:基本工具
螺絲起子
螺絲起子,一種用于擰緊螺絲(驅(qū)動(dòng)或卸下螺絲)的工具)對(duì)于構(gòu)建機(jī)器人必不可少。我們建議您帶一把螺絲起子,這對(duì)于處理不同類型和大小的螺絲非常方便。
吸錫筆
錫焊筆是電子項(xiàng)目中經(jīng)常用于在電路板上進(jìn)行焊接和去焊的工具。在這個(gè)項(xiàng)目中我們需要用它來(lái)焊接電動(dòng)機(jī)的電纜。
注意:加熱后,焊接筆的筆尖會(huì)變得非常熱。如果您以前從未使用過(guò)電焊筆,請(qǐng)花一些時(shí)間來(lái)熟悉如何使用電筆。使用電焊筆時(shí)要當(dāng)心!
針鼻鉗
針鼻鉗通常用于切斷電纜和電線的多余長(zhǎng)度。在這個(gè)項(xiàng)目中,我們不會(huì)使用過(guò)多的鉗子;但是,它們是電子項(xiàng)目中必不可少的工具。
剝線鉗
剝線鉗是用于剝?nèi)?a target="_blank">電氣絕緣層的手持式工具斷線。如果需要,剝線鉗也可以用剪刀代替。使用此工具時(shí),只需要?jiǎng)內(nèi)サ谝粚咏^緣層即可,使內(nèi)部的導(dǎo)線暴露在外。這有助于簡(jiǎn)化焊接過(guò)程。
步驟4:裝配說(shuō)明-步驟1
下一步,系統(tǒng)將教您建立一個(gè)基本的Arduino機(jī)器人。為了使本教程易于理解,此處以Arduino機(jī)器人套件(海盜:帶有藍(lán)牙4.0的4WD Arduino移動(dòng)機(jī)器人套件)為例。
STEP1:組裝自己的電動(dòng)機(jī)
在零件袋中尋找八個(gè)長(zhǎng)螺絲。這些用于將電動(dòng)機(jī)固定和固定到位。正確對(duì)齊電機(jī),然后將它們擰緊到位,如下圖所示。
請(qǐng)注意,零件包中還包括墊圈和墊圈。墊圈可用于增加摩擦力,這有助于將電動(dòng)機(jī)固定到位。墊圈有助于防止由于機(jī)器人的運(yùn)動(dòng)和碰撞而導(dǎo)致螺母松動(dòng)和脫落。
步驟5:組裝說(shuō)明-步驟2:焊接電纜
將黑色和紅色電線從零件袋中取出。將一根黑色和一根紅色電纜(長(zhǎng)15厘米)連接到每個(gè)電動(dòng)機(jī)(總共4臺(tái)電動(dòng)機(jī))。然后,使用剝線鉗剝?nèi)ル娋€兩端的絕緣層(確保不要?jiǎng)內(nèi)ヌ啜C請(qǐng)參見(jiàn)下圖)。接下來(lái),將電線焊接到固定在電機(jī)上的插針上。對(duì)所有四個(gè)電機(jī)重復(fù)焊接過(guò)程。
注意:焊接時(shí),請(qǐng)注意紅色和黑色導(dǎo)線的正確位置。有關(guān)詳細(xì)信息,請(qǐng)查閱以下圖片。
步驟6:組裝說(shuō)明-步驟3:組裝Romeo BLE控制器
在零件袋中尋找三個(gè)銅支撐。那些1厘米長(zhǎng)的支架用于固定Romeo控制器板。如下圖所示,控制器板上有三個(gè)孔。將三個(gè)銅支架放入孔中,然后用適當(dāng)?shù)穆葆攲⑵涔潭ǖ轿弧?/p>
步驟7:組裝說(shuō)明-步驟4:組裝Romeo BLE控制器
取出兩個(gè)沉頭螺釘(它們的頭是平的)。然后按照下圖所示的步驟將電池固定在汽車底座上。
步驟8:組裝說(shuō)明-步驟5:制作電源開(kāi)關(guān)
電池是機(jī)器人必不可少的命脈。為了控制電源使用,我們需要使用電源開(kāi)關(guān):不使用時(shí),該開(kāi)關(guān)會(huì)關(guān)閉電源,從而節(jié)省電和電池壽命。組裝和安裝電源開(kāi)關(guān)之前,請(qǐng)參考下圖。
組裝開(kāi)關(guān)時(shí),請(qǐng)注意墊片和螺母的順序。
組裝開(kāi)關(guān)后,我們要開(kāi)始焊接其導(dǎo)線。取一些以前剩余的電線。剝?nèi)ル娎|兩端的電線,使電線的內(nèi)部裸露(與之前的電機(jī)相同)。我們想將電線的裸露端焊接到開(kāi)關(guān)的引腳上。焊接時(shí),務(wù)必注意開(kāi)關(guān)的插針位置。
讓我們逐步進(jìn)行此操作。
a)將開(kāi)關(guān)連接到電池充電器。注意這兩個(gè)項(xiàng)目的確切位置。
b)如下圖所示,焊接連接交換機(jī)和電池充電器的紅色電纜。
c)最后,取一根紅色電纜和一根黑色電纜。將一根電纜的一端連接到電池充電器的負(fù)極,另一根電纜的一端連接到電池充電器的正極。然后將兩條電纜的另一端連接到Romeo BLE控制器上。
觀看放大的圖片,可以更好地了解電線的連接方式。焊接后,請(qǐng)確保從頭到尾檢查電池和Romeo控制器之間的接線是否一致,并與上述圖片匹配。
步驟9:組裝說(shuō)明-STEP6:制作電源開(kāi)關(guān)
使用八個(gè)M3x6mm螺釘,將側(cè)板固定到前后保險(xiǎn)杠板上,如圖所示注意:在此步驟中擰緊螺釘時(shí),請(qǐng)確保首先不要完全擰緊螺釘-這樣,我們可以在以后的步驟中輕松卸下頂板,如果需要的話。進(jìn)行調(diào)整。
然后,將底板重新安裝到汽車車身上。
**這是汽車底座組裝后的樣子-記住要安裝
步驟10:組裝說(shuō)明-STEP7:將電動(dòng)機(jī)與微控制器板連接
現(xiàn)在我們需要電動(dòng)機(jī)用微控制器板。仔細(xì)遵循下圖:左馬達(dá)的紅線和黑線應(yīng)焊接到M2中;正確的電動(dòng)機(jī)的紅線和黑線應(yīng)焊接到M1。請(qǐng)?zhí)貏e注意電池組:黑色電線應(yīng)焊接到接線端口的GND上,而紅色電線應(yīng)焊接在標(biāo)有VND的電線端口中。用螺絲刀松開(kāi)并擰緊電線端口-插入電線后,請(qǐng)確保將這些端口固定好。
注意:確保將來(lái)自一臺(tái)電動(dòng)機(jī)(即左電動(dòng)機(jī))的電線焊接到其中馬達(dá)端口。 (即下圖的M2端口-請(qǐng)勿將一根電動(dòng)機(jī)的導(dǎo)線焊接到兩個(gè)單獨(dú)的端口中。)
將電動(dòng)機(jī)的導(dǎo)線焊接到微控制器板上之后,我們準(zhǔn)備將頂板連接到汽車的底座。
在安裝頂板之前,您可以選擇安裝傳感器板(請(qǐng)參見(jiàn)下圖)-如果您尚不打算使用傳感器,則可以跳過(guò)此額外步驟。 p》
在安裝平臺(tái)的頂部之后,您的機(jī)器人平臺(tái)應(yīng)類似于下圖。
步驟11:組裝說(shuō)明-STEP8:在您的機(jī)器人上附加一個(gè)水平儀
找到基座頂板上的四個(gè)孔。擰入四個(gè)M3x60mm銅支架,然后如下圖所示安裝附加的頂板-使用M3x6mm螺絲將該板固定到銅支架上。
在機(jī)器人平臺(tái)上扔一些輪子,您將
第12步:編碼
組裝好之后,是時(shí)候?qū)⒋a上傳到微控制器并使Arduino機(jī)器人移動(dòng)了。一旦組裝好,機(jī)器人便具有用于移動(dòng)的所有組件。瀏覽名為“ MotorTest.ino”的Arduino文件的示例代碼。
示例代碼MotorTest:
#include
DFMobile Robot (4,5,7,6); // initiate the Motor pin
void setup () {
Robot.Direction (LOW,HIGH); // initiate the positive direction
}
void loop () {
Robot.Speed (255,255); //Forward
delay (1000);
Robot.Speed (-255,-255); //Back
delay (2000);
}
下載代碼,然后將其上傳到您的微控制器。電動(dòng)機(jī)和車輪應(yīng)迅速運(yùn)轉(zhuǎn)。如果沒(méi)有,請(qǐng)檢查電池和電源開(kāi)關(guān)是否正確安裝。電動(dòng)機(jī)正常工作后,恭喜!您已經(jīng)邁出了一大步-差不多要把橡膠放到路上了。
然后觀察您的機(jī)器人汽車,檢查它是否可以在1秒鐘內(nèi)前進(jìn)并在1秒鐘內(nèi)后退。如果是這樣,祝您好運(yùn)。您無(wú)需調(diào)整組件。對(duì)于那些需要對(duì)汽車底座或馬達(dá)進(jìn)行一些調(diào)整的人,請(qǐng)找到以下有關(guān)機(jī)器人運(yùn)動(dòng)方式的信息。
檢查您的機(jī)器人平臺(tái)是否遵循上面顯示的代碼:它應(yīng)該向前移動(dòng)保持1秒鐘,然后反轉(zhuǎn)1秒鐘。如果是這種情況,只需瀏覽以下內(nèi)容,然后就可以開(kāi)始了!
但是,大多數(shù)人都需要調(diào)整他們的電動(dòng)機(jī)。在此之前,我們先簡(jiǎn)要回顧一下機(jī)器人的電機(jī)功能和代碼如何工作。
步驟13:如何使機(jī)器人前進(jìn)?
為了理解這個(gè)問(wèn)題,我們首先檢查一下機(jī)器人的向前運(yùn)動(dòng)。
下圖說(shuō)明了這種向前運(yùn)動(dòng)。
上方的紅色箭頭表示車輪的方向。如上圖所示,只有在左右車輪/電動(dòng)機(jī)都向前行駛時(shí),汽車才能向前行駛。如上所示,Arduino機(jī)器人僅在左右電機(jī)和車輪都向前移動(dòng)時(shí)才向前移動(dòng)。
代碼簡(jiǎn)介
第一行代碼是:
#include//調(diào)用庫(kù)
我們無(wú)需對(duì)此行進(jìn)行過(guò)多思考。我們要做的就是調(diào)用/使用Arduino基本框架之外的一組功能-DFMobile庫(kù)。有關(guān)Arduino庫(kù)的更多信息,請(qǐng)?jiān)L問(wèn)Arduino網(wǎng)站。
下一行代碼是:
DFMobile Robot(4,5,7,6);//啟動(dòng)電動(dòng)機(jī)針腳
此功能來(lái)自DFMobile庫(kù)(也就是說(shuō),它不是通用的Arduino功能)。我們?cè)谶@里使用它來(lái)初始化微控制器上的電機(jī)引腳(4、5、7、6)-如果沒(méi)有此功能,電機(jī)將無(wú)法啟動(dòng)。
我們稍后還將使用此功能。
看看下面的功能:
DFMobile機(jī)器人(EnLeftPin,LeftSpeedPin,EnRightPin, RightSpeedPin);
此功能用于初始化四個(gè)電動(dòng)機(jī)引腳(4、5、7、6),并分為四個(gè)單獨(dú)的參數(shù):
EnLeftPin:控制電動(dòng)機(jī)左方向的引腳
LeftSpeedPin:控制左馬達(dá)速度的引腳
EnRightPin:控制右馬達(dá)方向的引腳
RightSpeedPin:控制右馬達(dá)速度的引腳
請(qǐng)注意:不包含此功能,機(jī)器人的電動(dòng)機(jī)將無(wú)法運(yùn)行。另外,必須將此函數(shù)放置在Arduino草圖的void setup()字段中。
在測(cè)試機(jī)器人的向前運(yùn)動(dòng)之前,我們可能遇到了一個(gè)問(wèn)題:汽車將開(kāi)始漂移,更改方向,而不完全遵循我們給出的代碼。這是由于未正確地將電動(dòng)機(jī)電線焊接到電池上。
不用擔(dān)心-我們可以通過(guò)代碼進(jìn)行糾正。通過(guò)使用LOW/HIGH值,我們可以調(diào)整汽車轉(zhuǎn)彎的方向。
步驟14:如何調(diào)整機(jī)器人汽車的直線方向?
要調(diào)整電動(dòng)機(jī)和車輪的方向,我們需要以下代碼行:
Robot.Direction(LOW,HIGH);
功能如下:
Robot.Direction(LeftDirection,RightDirection);
此功能用于使電動(dòng)機(jī)向前移動(dòng)。該函數(shù)分為兩個(gè)參數(shù):LeftDirection和RightDirection,在Arduino代碼中以LOW或HIGH形式編寫(xiě)。
之前,我們簡(jiǎn)要介紹了如何使Arduino機(jī)器人向前移動(dòng)。在這里,我們將使用“低/高”來(lái)糾正機(jī)器人的向后移動(dòng)。例如,在示例代碼中,LeftDirection被設(shè)置為L(zhǎng)OW。但是,機(jī)器人汽車的左輪可能會(huì)向后旋轉(zhuǎn)而不是向前旋轉(zhuǎn)?,F(xiàn)在,您要做的就是將LeftDirection從LOW更改為HIGH。相同的方法適用于右輪。例如:在此示例代碼中,LeftDirection被配置為L(zhǎng)OW。假設(shè)您的左輪沒(méi)有向前移動(dòng),而是向后移動(dòng)。在這種情況下,請(qǐng)將LeftDirection的配置從LOW更改為HIGH。將其更改為“高”后,再次上傳代碼-您應(yīng)注意,左輪現(xiàn)在向前移動(dòng)而不是向后移動(dòng)。如果此調(diào)整有效,請(qǐng)對(duì)RightDirection(從低到高,反之亦然)進(jìn)行相同的操作。
成功調(diào)整Arduino機(jī)器人的方向后,就可以設(shè)置了!恭喜!您現(xiàn)在可以使用機(jī)器人的所有基本功能。不過(guò),在結(jié)束之前,有必要簡(jiǎn)要地討論一下Robot.Speed()函數(shù)。
對(duì)以下函數(shù)有所幫助:
Robot.Speed(LeftSpeed,RightSpeed) ;
此功能包含兩個(gè)元素(LeftSpeed和RightSpeed),用于設(shè)置電動(dòng)機(jī)的速度。您可以輸入-255到255之間的數(shù)字。255是最大數(shù)字,負(fù)號(hào)表示方向。
此功能用于配置電動(dòng)機(jī)的速度。該功能分為兩個(gè)參數(shù):LeftSpeed和RightSpeed。這些參數(shù)以Arduino代碼編寫(xiě),取值范圍-255至255。255是前進(jìn)速度最快的值;默認(rèn)值為255。 -255是最快的速度(即反向)。
我們已經(jīng)在代碼的void setup()部分中配置了機(jī)器人的速度?,F(xiàn)在,我們可以使用speed()函數(shù)來(lái)控制汽車的速度,甚至向前/向后的方向。
看看是否可以理解以下兩行:Robot.Speed(255,255);機(jī)械手速度(-255,-255);
第一行顯示了汽車以全速前進(jìn)-如果可以的話,以全速前進(jìn)(船長(zhǎng),是的)。第二行顯示汽車以全速向后移動(dòng)(倒車)。
從這個(gè)意義上說(shuō),speed()是必不可少的函數(shù)。接下來(lái),我們將回顧最后一部分:機(jī)器人如何運(yùn)動(dòng)和旋轉(zhuǎn)的原理。
步驟15:機(jī)器人如何運(yùn)動(dòng)和旋轉(zhuǎn)
下圖顯示了機(jī)器人汽車的一些常規(guī)運(yùn)動(dòng)方式。例如,如果“左方向”的速度為零,那么如果您向右輪提供一些力向前移動(dòng),機(jī)器人將向左轉(zhuǎn)。
下圖顯示了Arduino的多種方式機(jī)器人可以移動(dòng)和轉(zhuǎn)動(dòng)。例如,如果左輪的速度設(shè)置為0,則將導(dǎo)致右輪向前移動(dòng)-因此,Arduino機(jī)器人將向左旋轉(zhuǎn)。
要考慮的事情:我們?cè)趺茨?/p>
最后:如果需要,您可以運(yùn)行更多代碼來(lái)測(cè)試和校準(zhǔn)自己的機(jī)器人運(yùn)動(dòng)。打開(kāi)“ MotorTest2.ino”文件。除了左右轉(zhuǎn)彎之外,此代碼還應(yīng)幫助您更好地理解和評(píng)估前進(jìn)和后退運(yùn)動(dòng)的能力。考慮到這一點(diǎn),將那些輪胎放到道路(或地毯)上,讓我們撕裂吧!
恭喜,現(xiàn)在您已經(jīng)建立了第一個(gè)機(jī)器人!它具有基本功能,可以向前,向后,左轉(zhuǎn)和右轉(zhuǎn)。
-
機(jī)器人
+關(guān)注
關(guān)注
213文章
29568瀏覽量
211978 -
Arduino
+關(guān)注
關(guān)注
189文章
6494瀏覽量
190340
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論