網(wǎng)絡(luò)控制樹(shù)莓派監(jiān)視機(jī)器人
掃描二維碼
隨時(shí)隨地手機(jī)看文章
樹(shù)莓派4是樹(shù)莓派3b +的改進(jìn)版本。樹(shù)莓派4配備了Cortex-A72四核處理器,運(yùn)行頻率為1.5GHz,內(nèi)存提升到LPDDR4。它的處理性能和速度是樹(shù)莓派3的三倍。有了樹(shù)莓派4,你可以同時(shí)運(yùn)行兩個(gè)4K顯示器。派4增加了一個(gè)USB Type-C接口,而不是MicroUSB接口。
我們以前使用樹(shù)莓派3與Pi相機(jī)來(lái)構(gòu)建應(yīng)用程序,如基于物聯(lián)網(wǎng)的智能Wi-Fi門(mén)鈴,監(jiān)控?cái)z像頭和樹(shù)莓派云相機(jī)。在這里,我們使用Pi相機(jī)與樹(shù)莓派4構(gòu)建樹(shù)莓派網(wǎng)絡(luò)控制機(jī)器人。在這里,我們將使用Flask來(lái)創(chuàng)建網(wǎng)頁(yè),該網(wǎng)頁(yè)將具有移動(dòng)機(jī)器人的控件,它還將顯示視頻的實(shí)時(shí)饋送。該網(wǎng)頁(yè)將有五個(gè)控制按鈕來(lái)移動(dòng)機(jī)器人在前進(jìn),后退,左,右方向和停止。
組件的要求
?樹(shù)莓派4(任何型號(hào)都可以)
?π的相機(jī)
?L293D電機(jī)驅(qū)動(dòng)模塊
?直流電機(jī)(2)
接口Pi相機(jī)或USB網(wǎng)絡(luò)攝像頭與樹(shù)莓派4
π相機(jī):
1. 要在Raspberry Pi上使用Pi -camera,首先從raspi-config中啟用相機(jī)接口。為此,運(yùn)行sudo raspi-config并選擇interface options。
2. 然后選擇相機(jī)選項(xiàng)并在下一個(gè)窗口啟用它并重新啟動(dòng)Pi。
3. 現(xiàn)在測(cè)試相機(jī),使用下面的命令捕獲一張照片。
如果您在Pi目錄中獲得了一個(gè)圖像,那么您就可以繼續(xù)檢查您的相機(jī)帶和相機(jī)模塊了。
USB相機(jī):
如果你沒(méi)有Pi Camera,也可以使用USB攝像頭。只需安裝一些軟件包來(lái)啟用網(wǎng)絡(luò)攝像頭功能。使用下面的命令安裝包
現(xiàn)在,通過(guò)使用以下命令捕獲照片來(lái)檢查相機(jī)的工作情況
在樹(shù)莓派上安裝Motion用于視頻饋送
Motion Software是一款免費(fèi)的、開(kāi)源的閉路電視運(yùn)動(dòng)檢測(cè)軟件,為L(zhǎng)inux開(kāi)發(fā)的。它可以處理來(lái)自許多不同類(lèi)型相機(jī)的圖像。動(dòng)態(tài)軟件可以監(jiān)控來(lái)自多個(gè)攝像機(jī)的視頻,它可以檢測(cè)到圖像的變化。在Motion軟件的幫助下,你可以把樹(shù)莓派變成閉路電視監(jiān)控?cái)z像頭,可以檢測(cè)到運(yùn)動(dòng)并發(fā)送警報(bào)。動(dòng)態(tài)軟件也可以用來(lái)獲取網(wǎng)頁(yè)上的實(shí)時(shí)視頻。
在安裝Motion之前,首先使用以下命令更新樹(shù)莓派操作系統(tǒng):
之后,使用下面的命令安裝Motion:
現(xiàn)在導(dǎo)航到/etc/default/motion文件,將Motion daemon設(shè)置為yes,這樣它就會(huì)一直運(yùn)行。使用以下命令編輯文件:
然后按CTRL+X > ' Y ' > Enter保存文件。
現(xiàn)在,使用下面的命令設(shè)置motion Directory (/var/lib/motion/)的權(quán)限,它保存所有的視頻記錄和圖片文件。
現(xiàn)在,在最后一步中,關(guān)閉運(yùn)動(dòng)配置文件中的localhost,以便在同一網(wǎng)絡(luò)上訪(fǎng)問(wèn)樹(shù)莓派外部的視頻提要。關(guān)閉本地主機(jī),使用以下命令:
您可以使用ctrl+W在nano編輯器中搜索特定的單詞。
現(xiàn)在要檢查視頻饋送,使用以下命令啟動(dòng)動(dòng)作:
之后,使用Pi的IP地址和端口8081(192.168.1.207:8081)打開(kāi)視頻提要頁(yè)面。
在Motion之后,現(xiàn)在安裝Flask來(lái)創(chuàng)建一個(gè)Web服務(wù)器來(lái)控制機(jī)器人。
控制機(jī)器人的網(wǎng)頁(yè)將使用Flask Web Framework創(chuàng)建。該網(wǎng)頁(yè)將具有向左、向右、向前和向后移動(dòng)機(jī)器人的控件。在基于物聯(lián)網(wǎng)的應(yīng)用中,web服務(wù)器用于使用web瀏覽器控制或監(jiān)控任何傳感器值,我們以前使用Arduino, ESP8266, NodeMCU, ESP32,樹(shù)莓派等創(chuàng)建了許多web服務(wù)器。
Flask是一個(gè)流行的Python web框架,由Pocoo的Armin Ronacher開(kāi)發(fā)。它是用于開(kāi)發(fā)web應(yīng)用程序的第三方Python庫(kù)。Flask被歸類(lèi)為微框架,它基于Pocoo項(xiàng)目Werkzeug和Jinja2。Flask在樹(shù)莓派上非常常用,因?yàn)闃?shù)莓派有Linux操作系統(tǒng),可以很容易地處理Python腳本。樹(shù)莓派由于其高處理能力和內(nèi)置Wi-Fi功能,在創(chuàng)建web服務(wù)器和基于物聯(lián)網(wǎng)的項(xiàng)目中也很受歡迎。
使用下面的命令來(lái)安裝Flask:
我們之前通過(guò)網(wǎng)頁(yè)使用Flask來(lái)控制伺服電機(jī)和步進(jìn)電機(jī)。
樹(shù)莓派監(jiān)視機(jī)器人電路圖
下面是基于樹(shù)莓派的監(jiān)控機(jī)器人的電路圖。
在這個(gè)項(xiàng)目中,我們不需要建立太多的聯(lián)系。我們只需要使用L293D電機(jī)驅(qū)動(dòng)模塊將兩個(gè)直流電機(jī)連接到樹(shù)莓派。之后,將直流電機(jī)和樹(shù)莓派安裝到機(jī)器人底盤(pán)上。電機(jī)驅(qū)動(dòng)模塊的四個(gè)引腳(A1, A2和B1, B2)連接到樹(shù)莓派的GPIO引腳18,23,24和25。
樹(shù)莓派控制機(jī)器人的HTML代碼
使用HTML創(chuàng)建一個(gè)網(wǎng)頁(yè)來(lái)控制機(jī)器人并顯示視頻提要。在這個(gè)HTML代碼中,我們?yōu)椴煌姆较虬粹o分配了不同的整數(shù)。例如,1代表Forward, 2代表Left。因此,每當(dāng)按下網(wǎng)頁(yè)上的Forward按鈕時(shí),它將發(fā)送1。
下面給出了使用web服務(wù)器控制機(jī)器人的完整HTML代碼。創(chuàng)建一個(gè)名為surveillance erobot的目錄,并在該目錄中創(chuàng)建一個(gè)名為templates的新文件夾。然后復(fù)制下面的代碼并將其保存為index.html的模板文件夾中。
Python代碼
這個(gè)物聯(lián)網(wǎng)樹(shù)莓派機(jī)器人的完整python代碼在本文檔的末尾給出。復(fù)制提供的代碼,并使用以下命令將其保存到monitancerobot文件夾中:
在python代碼中,有五個(gè)函數(shù)用于移動(dòng)機(jī)器人向前、向左、向右、反向和停止。這五個(gè)函數(shù)有五個(gè)不同的整數(shù)。從網(wǎng)頁(yè)接收到的整數(shù)將保存在一個(gè)名為changePin的變量中,并與所有函數(shù)進(jìn)行比較。所以當(dāng)我們按下網(wǎng)頁(yè)上的前進(jìn)按鈕時(shí),它會(huì)發(fā)送一個(gè),并以此為基礎(chǔ),機(jī)器人會(huì)朝前進(jìn)方向移動(dòng)。
測(cè)試物聯(lián)網(wǎng)控制機(jī)器人
在完成所有設(shè)置并將Raspberry Pi安裝到Robot機(jī)箱之后,運(yùn)行python代碼。在瀏覽器中打開(kāi)樹(shù)莓派的IP地址,端口為8000?,F(xiàn)在您將在頁(yè)面的左側(cè)看到視頻流,并在頁(yè)面的右側(cè)看到控制按鈕,如下圖所示?,F(xiàn)在這個(gè)樹(shù)莓派監(jiān)視機(jī)器人可以通過(guò)網(wǎng)頁(yè)進(jìn)行控制。
本文編譯自iotdesignpro