眾所周知,樹莓派是一個基于ARM微處理器的開辟平臺。依附其壯大的計算能力,它正在恢弘電子愛好者中時常會締造出事業(yè)。為了更好天相識樹莓派及其事情原理,讓咱們測驗考試?yán)脴漭山ㄔ煲粋€巡線機(jī)器人。
若是您對機(jī)器人感興趣,那么您該當(dāng)十分熟習(xí)“巡線機(jī)器人”這個稱號。這類機(jī)器人只需利用一對傳感器跟馬達(dá)便能沿著線行走。利用樹莓派制造如許一個機(jī)器人,會讓咱們翻開更大的想象空間。
尋線機(jī)器人的原理
尋線機(jī)器人可能正在紅外傳感器的資助下跟蹤線條。紅外線傳感器存在紅外線發(fā)射器跟紅外線接收器,此中,紅外線發(fā)射器次要發(fā)射光,它發(fā)射出的紅外線只有正在被反射時才會前往。接收器則守候吸收前往后的紅外光。然而,不是一切的概況皆能反射紅外線,只有紅色的概況才氣完整反射紅外線,而玄色的概況會接收紅外光。
利用如許的兩個紅外傳感器去隨時搜檢機(jī)器人是不是處于軌道上,若是機(jī)器人偏離軌道,咱們便經(jīng)由過程兩個機(jī)電去校訂它。機(jī)電該當(dāng)是雙向扭轉(zhuǎn)的,并且須要的事情電流較大,是以,咱們須要額定利用機(jī)電驅(qū)動模塊,如L293D。機(jī)器人借須要一個像樹莓派如許的主控大腦,它會依據(jù)紅外傳線傳感器模塊的數(shù)值去唆使機(jī)電事情。上面是一個簡化的節(jié)制原理圖。
兩個紅外傳感器被安排正在軌道線的兩側(cè)。若是不傳感器檢測到黑線,樹莓派將下令機(jī)電向前挪動,以下所示:
若是左邊的傳感器檢測到黑線,那么樹莓派便會下令機(jī)器人,經(jīng)由過程零丁扭轉(zhuǎn)右側(cè)的輪子,使機(jī)器人向左轉(zhuǎn)。
若是右側(cè)的傳感器檢測到黑線,那么樹莓派便會下令機(jī)器人,經(jīng)由過程零丁扭轉(zhuǎn)左邊的輪子,使機(jī)器人向右轉(zhuǎn)。
若是兩個傳感器皆檢測到黑線,機(jī)器人便會終止。
如許,機(jī)器人便可能正在沒有脫離軌道的環(huán)境下沿著軌道線始終行進(jìn)。上面讓咱們看看電路跟代碼。
樹莓派尋線機(jī)器人電路圖
如上圖所示,左上角的引腳是+5V引腳,咱們利用這個+5V引腳給紅外傳感器供電,如圖所示(白色線)。然后,咱們用玄色線將GND引腳毗鄰到紅外線傳感器跟機(jī)電驅(qū)動模塊的GND。黃線離別將傳感器1跟2的輸出引腳與GPIO引腳2跟3連接起來。同時,要驅(qū)動機(jī)電,咱們須要毗鄰L293D機(jī)電驅(qū)動板的四個引腳(ABAB)。那四個引腳離別與樹莓派的GPIO14417跟18毗鄰。機(jī)電與L293D機(jī)電驅(qū)動模塊毗鄰,驅(qū)動模塊利用電池供電。必然要將電池的負(fù)極與樹莓派的接地連接起來,如許才氣保障電路的畸形事情。
樹莓派編程
起首須要導(dǎo)入GPIO,上面的函數(shù)是對樹莓派的GPIO引腳停止編程。咱們借將“GPIO”重命名為“IO”,以是正在順序中,每當(dāng)咱們想要援用GPIO引腳時,咱們皆會利用“IO”這個詞。
importasIO
有時,當(dāng)咱們試圖利用某個GPIO引腳時,能夠它正在履行一些其他功用。正在這類環(huán)境下,當(dāng)咱們執(zhí)行程序時會收到正告。上面的下令是通知樹莓派疏忽正告繼承執(zhí)行程序。
(False)
咱們可以參考樹莓派的GPIO引腳界說,無論是采取電路板上的引腳號碼或采取引腳的功用號碼,好比,電路板上的“PIN29”是“GPIO5”。以是正在這里,咱們要用上面的代碼通知樹莓派詳細(xì)用的是“29”仍是“5”去默示引腳號。
()
咱們后面道到,電路中將設(shè)置6個引腳作為輸入/輸出引腳。前兩個引腳是讀取紅外線傳感器數(shù)據(jù)的輸入引腳。后四個是輸出引腳,前兩個用于節(jié)制左機(jī)電,后兩個用于節(jié)制左機(jī)電。
(2)#GPIO2-LeftIRout
(3)#GPIO3-RightIRout
(4)#GPIO4-Motor1terminalA
(14)#GPIO14-Motor1terminalB
(17)#GPIO17-MotorLeftterminalA
(18)#GPIO18-MotorLeftterminalB
紅外傳感器若是檢測到紅色的里,將輸出“True”,以是只有兩個傳感器的形態(tài)皆是“True”,機(jī)器人便可以繼續(xù)前進(jìn)。
if((2)==Trueand(3)==True):#bothwhitemoveforward
(4True)#1A+
神木分揀機(jī)器人(14False)#1B-
(17True)#2A+
(18False)#2B-
若是右側(cè)的紅外傳感器檢測到黑線,機(jī)器人將履行右轉(zhuǎn)舉措。當(dāng)前提知足時,終止左機(jī)電,零丁扭轉(zhuǎn)左機(jī)電,如上面的代碼所示:
elif((2)==Falseand(3)==True):#turnright
(4True)#1A+
(14True)#1B-
(17True)#2A+
(18False)#2B-
若是左紅外傳感器檢測到黑線,機(jī)器人將履行左轉(zhuǎn)舉措。當(dāng)前提知足時,終止左機(jī)電,零丁扭轉(zhuǎn)左機(jī)電,如上面的代碼所示:
elif((2)==Trueand(3)==False):#turnleft
(4True)#1A+
(14False)#1B-
(17True)#2A+
(18True)#2B-
自動播種分揀機(jī)器人多少錢若是兩個傳感器皆檢測到黑線,那意味著機(jī)器人履行終止舉措。那可以經(jīng)由過程設(shè)置機(jī)電的兩個端子皆為“True”去實現(xiàn),如上面的代碼所示:
else:#staystill
(4True)#1A+
(14True)#1B-
(17True)#2A+
(18True)#2B-
實現(xiàn)釀成后,咱們可以正在紅色的瓷磚空中,用玄色膠帶粘貼出咱們想要的軌道線外形,如許便可以起頭享用機(jī)器人巡線的興趣了。上面是完全的Python代碼,將其保留到樹莓派上,正在樹莓派下令窗口中履行代碼便可。
importasIO
importtime
(False)
()
(2)#GPIO2-LeftIRout
(3)#GPIO3-RightIRout
(4)#GPIO4-Motor1terminalA
(14)#GPIO14-Motor1terminalB
(17)#GPIO17-MotorLeftterminalA
分揀機(jī)器人的應(yīng)用領(lǐng)域(18)#GPIO18-MotorLeftterminalB
while1:
并聯(lián)分揀機(jī)器人雙輸送帶機(jī)構(gòu)if((2)==Trueand(3)==True):#bothwhilemoveforward
(4True)#1A+
(14False)#1B-
(17True)#2A+
(18False)#2B-
elif((2)==Falseand(3)==True):#turnright
(4True)#1A+
(14True)#1B-
(17True)#2A+
(18False)#2B-
elif((2)==Trueand(3)==False):#turnleft
(4True)#1A+
(14False)#1B-
(17True)#2A+
(18True)#2B-
else:#staystill
(4True)#1A+
(14True)#1B-
(17True)#2A+
(18True)#2B-
運(yùn)輸分揀機(jī)器人識別顏色視覺識別的分揀機(jī)器人物料分揀機(jī)器人怎么工作