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