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