2021年4月19日 星期一

[ESP32-CAM] 使用 ESP32-CAM 開發板檢查伺服馬達(舵機)與設定角度

 ESP32 系開發板與 Arduino 系開發板對於伺服馬達在程式撰寫上有所差異,ESP32 系開發板會稍微麻煩一些,但只要有程式庫,一切都會變簡單。


下載程式庫

Step1 在 Arduino IDE 裡點擊下拉功能表 [工具] > [管理程式庫...]。


Step2 在文書欄位內鍵入「ESP32Servo」,然後安裝 ESP32Servo 程式庫。


上傳程式

打開範例程式「Sweep.ino」或開啟程式「ESP32CAM_Servo.ino」並上傳。


ESP32CAM_Servo.ino

//ESP32CAM_Servo.ino by Robot Wolf Group

#include <ESP32Servo.h>


Servo myservo1, myservo2;

#define servoPin1 2  //Angle 90

#define servoPin2 13 //Sweep


void setup() {

  // Allow allocation of all timers

  ESP32PWM::allocateTimer(0);

  ESP32PWM::allocateTimer(1);

  ESP32PWM::allocateTimer(2);

  ESP32PWM::allocateTimer(3);

  

  // using default min/max of 1000us and 2000us

  // different servos may require different min/max settings

  myservo1.setPeriodHertz(50);    // standard 50 hz servo

  myservo1.attach(servoPin1, 1000, 2000); // attaches the servo to the servo object

  myservo1.write(90); 

  

  // for an accurate 0 to 180 sweep  

  myservo2.setPeriodHertz(50);

  myservo2.attach(servoPin2, 1000, 2000);

}


void loop() {

  for (int pos = 0; pos <= 180; pos += 5) { // goes from 0 degrees to 180 degrees

    // in steps of 1 degree

    myservo2.write(pos);    // tell servo to go to position in variable 'pos'

    delay(15);             // waits 15ms for the servo to reach the position

  }

  for (int pos = 180; pos >= 0; pos -= 5) { // goes from 180 degrees to 0 degrees

    myservo2.write(pos);    // tell servo to go to position in variable 'pos'

    delay(15);             // waits 15ms for the servo to reach the position

  }

}


電路接線

GPIO2 可以將伺服馬達設定為 90 度,

GPIO13 可以檢查伺服馬達是否正常轉動。

依照您的需求,將伺服馬達 S 端分別連接 GPIO2 或 GPIO13,然後伺服馬達 V 和 G 端接外部電源 5V 和 Gnd。

不要忘了,也需要從 ESP32-CAM 開發板的 Gnd 拉一條線連到外部電源的 Gnd。

上述如果拉線困難,可以使用麵包板。


採購資訊

ESP32-CAM 雙軸人體偵測器(豪華版)套件 http://pizgchen.blogspot.com/2021/04/esp32-cam.html


2021年4月17日 星期六

[ESP32-CAM] 雙軸人體偵測器(豪華版)套件組裝說明

這是一款適合 ESP32-CAM 開發板使用的輔助套件,它可以讓您的 ESP32-CAM 成為一個鏡頭可移動的人體監視器。


準備材料

下列賣場有販售套件:

露天賣場

露天賣場

蝦皮賣場


準備工具

1. 烙鐵、焊錫

2. 斜口鉗

3. 尖鑷子

4. M2/M3 十字螺絲起子和扳手

5. 吹風機(或打火機)


組裝步驟

在從事組裝步驟前,請先做下列兩件事情:

1. 請參考這方法,將舵機角度保持在 90 度。

2. 將壓克力表面護膜移除乾淨。


Step1 將公排針焊接到 USB micro 轉接板上,並剪下電阻上的鐵絲,焊出 5 組具有 5V 和 Gnd 的小小擴充板。

提醒您:焊接到 USB micro 轉接板上的排針主要是作為固定用,它不具有任何用途。而中間那一排為 5V,另一排為 Gnd。  




Step2 使用 M3*10 螺絲、螺帽和墊片各 2 只,將 USB micro 轉接板固定到壓克力板上。墊片放在壓克力和轉接板中間。


Step3 使用蓋帽 4 只,將尼龍柱固定到壓克力板上。



Step4 使用 M2*12螺絲、螺帽各 2 只,將人體偵測模組固定到壓克力板上。




Step5 預留船型開關孔位,如果有船型開關,可以將它插入到壓克力板上;如果沒有,則略過此步驟。



Step6  使用 M2*8 螺絲、螺帽各 2 只,將舵機固定到壓克力板上。

提醒您:請注意舵機轉軸的位置。




Step7  使用 M2*8 螺絲、螺帽各 2 只,將舵機固定到壓克力板上。

提醒您:請注意舵機轉軸的位置。




Step8  使用舵機自攻螺絲,將搖臂固定到壓克力板上。





Step9  使用舵機自攻螺絲,將搖臂固定到壓克力板上。




Step10   使用 M3*10 螺絲、螺帽,組合兩片壓克力板。



Step11 使用 M3*10 螺絲、螺帽,將兩組舵機組合在一起。



Step12 使用舵機之 M2.5 螺絲,將兩組壓克力組合在一起。



Step13 使用 M3*10 螺絲、螺帽,先將小壓克力板固定到 ESP32-CAM 底板上。

再用 M3*10 螺絲穿過大側板和螺帽後鎖到小壓克力板,

最後再用 M3*10 螺絲、螺帽,將大側板固定到舵機底板上。





Step14  使用舵機之 M2.5 螺絲,將兩組壓克力組合在一起。



Step15 稍微整理一下電線。將垂直舵機之杜邦線由外向內穿過側板。



Step16 用 Arduino IDE 打開 ESP32CAMservo2.ino ,將 Wifi 名稱和密碼改為你家的,然後將程式上傳到 ESP32-CAM 開發板。



Step17 用黑色束帶將 ESP32-CAM 開發板固定到壓克力板上。



Step18 ESP32-CAM 開發板電路接線。

使用 20cm 長母母頭杜邦線連接下列電路:
ESP32-CAM   micro 轉接板
        5V                      +
        Gnd                    -   


Step19 人體偵測模組電路接線。


使用 10cm 長母母頭杜邦線連接下列電路:
人體偵測模組   micro 轉接板 
Vcc                         + 
Gnd                         - 

使用 20cm 長母母頭杜邦線連接下列電路:
人體偵測模組   ESP32-Cam 開發板
Out                            GPIO12


Step20 水平舵機電路接線。

使用 10cm 長公母頭杜邦線連接下列電路:
舵機   micro 轉接板
V                  +
G                  -

使用 20cm 長公母頭杜邦線連接下列電路:
舵機   ESP32-Cam 開發板
S                 GPIO2


Step21 垂直舵機電路接線。

使用 10cm 長公母頭杜邦線連接下列電路:
舵機   micro 轉接板
V                  +
G                  -

使用 20cm 長公母頭杜邦線連接下列電路:
舵機   ESP32-Cam 開發板
S                 GPIO13


Step22 再次稍微整理電線。

舵機和杜邦線接頭處可使用熱縮膜固定(使用吹風機熱風或打火機烤一下),以防止鬆脫。



可使用白色束帶整理電線。


Step 23 組合下部件。

正面板預留一個孔,您可以裝上 1 只 3mm 的紅色 LED 當作電源燈或錄影中指示燈。

提醒您:人體偵測模組有 2 個橘色的可調電阻必須朝向下方,等組裝完成後,您可以使用十字螺絲起子透過底板的兩個孔洞調整偵測的靈敏度。

這是正面


這是背面


這是側面


Step24 將外露的電線全部塞進下部件方盒中,以不妨礙舵機轉動為原則。使用 M3*8 螺絲 4 只,將上部件固定到下部件。至此全部完成。

提醒您:請自行整理下部件方盒內的電線,以避免鬆脫或短路。



使用步驟

Step1 從 USB micro 模組處供給 5V 電源。


Step2 打開手機 Wifi,搜尋並登入「ESP32-CAM」,密碼為「12345678」。


Step3 打開瀏覽器,在網址列輸入「192.168.4.1」,點按「Start Stream」鈕,然後您就可以看到如下畫面。


Step4 您可以試著勾選「Hide control panel」,隱藏搖桿。也可以點觸「Servo H」、「Servo V」來調整水平和垂直舵機的角度。

另外,您會發現到影像畫面是上下顛倒,此時可以打開「V-Flip」和「H-Mirror」,就可以讓它正常。



結論

1. 這個程式並未有人體觸發的功能,可以參考其他程式自行加入。

2. 未來尚可加入臉部辨識與追蹤功能,自動調整舵機角度。

3. 為使 ESP32-CAM 能長時間正常工作,建議使用 1A 以上之穩定電源,並在MCU上加裝散熱片。

4. 鏡頭會也產生高熱,建議使用導熱膏將鏡頭緊貼在SD卡匣上。

5. 建議加裝外接天線,可增進影像傳輸速率。


參考資料

robotzero https://robotzero.one/pan-and-tilt-control-for-an-esp32-cam/

randomnerdtutorials  https://randomnerdtutorials.com/esp32-cam-pan-and-tilt-2-axis/