2021年4月24日 星期六

[ESP32] 探討 ESP32 開發板的供電方式

ESP32 開發板是以 3.3V 為邏輯電壓,但一般 USB 接口是 5V 電壓,不同的電壓常造成初學者不小的困擾。本文即在探討如何供電給 ESP32 開發板,ESP8266 開發板也同樣適用。




從板載 USB 接口供電

一般 USB 接口電壓都是 5V,您可以使用電腦的 USB 提供 5V 電源,也可以使用行動電源盒提供 5V 電源。當 5V 電源從 ESP32 開發板的 USB 接口進到板子時,開發板上有降壓電路會將 5V 電壓降為 3.3V。這樣的方式是比較常見的一種。



從板載 PH 端子供電

有一種 ESP32 開發板新增了一個 PH 端子接口,這種端子的針腳間距是 2.0mm,您可以從這個接口直接接上 3.7V 的鋰電池。 


市售 PH 端子導線有兩種接法,它們的正負極性是相反的(如下圖),這一點務必要注意。如果正負極性錯誤(如上圖),可能會損壞開發板。


如果電線的正負極性錯誤,你可以使用鑷子的尖銳端輕輕撬開塑膠殼,對換極性後再重新插入。


從板載針腳供電

像 ESP32-CAM 這樣的開發板沒有 USB 接口,也沒有 PH 端子,此時只能從板載針腳的 Vcc 、3.3V 或 5V 供電。

如果是使用行動電源盒,你可以拿公排針和 micro 轉接板自製一個電源擴充板,然後用杜邦線連接到開發板 5V 針腳。



如果是使用鋰電池,則建議如下接法:

鋰電池  ---  充放電保護板  ---  升(降)壓模組  ---  電源擴充板  ---  開發板

下圖是一種集充放電保護和升壓為一體的模組,個人覺得這個還蠻好用的。


採購資訊

PH 端子導線 露天(S&R) https://www.ruten.com.tw/item/show?22116962008962

PH 端子導線 露天(RWG) https://www.ruten.com.tw/item/show?22116958617862

PH 端子導線 蝦皮(RWG) https://shopee.tw/-RWG-PH2.0-%E7%AB%AF%E5%AD%90-%E6%8E%A5%E6%8F%92%E4%BB%B6-%E9%81%A9%E7%94%A8%E6%96%BC-ESP32-%E9%96%8B%E7%99%BC%E6%9D%BF-i.14363185.8047559134

Micro USB 轉接板 露天(S&R) https://www.ruten.com.tw/item/show?22002184102877

Micro USB 轉接板 露天(RWG) https://www.ruten.com.tw/item/show?21650742731727

Micro USB 轉接板 蝦皮(RWG) https://shopee.tw/-RWG-USB-Micro-%E6%AF%8D%E5%BA%A7B%E5%9E%8B-%E8%B2%BC%E7%89%87%E8%BD%89%E7%9B%B4%E6%8F%92-%E8%BD%89%E6%8E%A5%E6%9D%BF-i.14363185.5087096768

充放電保護升壓模組 露天(S&R) https://www.ruten.com.tw/item/show?22116964518173

充放電保護升壓模組 露天(RWG) https://www.ruten.com.tw/item/show?22116964306987

充放電保護升壓模組 蝦皮(RWG) https://shopee.tw/-RWG-3.7V%E5%8D%879V-5V-%E8%90%AC%E7%94%A8%E8%A1%A8%E6%94%B9%E8%A3%9D18650%E9%8B%B0%E9%9B%BB%E6%B1%A0%E5%85%85%E9%9B%BB%E5%8D%87%E5%A3%93%E6%94%BE%E9%9B%BB%E4%B8%80%E9%AB%94%E5%8F%AF%E8%AA%BF%E6%A8%A1%E5%A1%8A2A-i.14363185.8247640771


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/