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