本文將向您展示如何使用兩個舵機為 ESP32-CAM 創建云臺控制。ESP32-CAM 是一款小型相機,可用于拍照和視頻。
伺服器用于平移和傾斜攝像機,同時還可用于創建安全攝像頭、機械眼或您能想到的任何其他東西。我們還將向您展示如何使用 Web 界面來控制相機
第 1 步:所需材料
ESP32 凸輪模塊
云臺伺服組件
SG90 伺服電機
面包板
跳線
第 2 步:用伺服電機組裝傾斜套件
這個完全組裝的云臺套件是使用兩個伺服系統為您的項目提供最大運動范圍的絕佳方式。
云臺可以左右旋轉 180° 左右,可以上下傾斜接近 150°。它還完全組裝,包括兩個微型伺服系統(SG-90 型)和一個 38 毫米 x 36 毫米的空間來安裝相機。
您可以使用任何微控制器。它們適合想要讓物體移動的初學者,云臺是一種輕松的方式,可以讓您在左右和上下運動中做出任何動作。
第 3 步:ESP32 攝像頭模塊
ESP32-CAM 是一款內置攝像頭的開發板。它基于 ESP32 芯片,可用于拍攝高質量的靜止圖像和視頻。ESP32-CAM 可以與各種傳感器和外圍設備連接,以創建強大的攝像頭系統。
我們使用 ESP32-CAM 開發板來控制兩個舵機,它們充當攝像機的云臺機構。我們將首先編寫代碼來使用 Arduino IDE 控制伺服系統,
對于這個項目,我們將使用 SG90 舵機,它的最小脈沖寬度為 500 微秒,最大脈沖寬度為 2500 微秒,我們將為每個舵機使用 0 度到 180 度的范圍。
伺服電機是一種可用于控制物體位置的電動機。伺服電機通常用于機器人應用中,以控制機器人手臂或腿的運動。伺服電機也用于無線電遙控飛機和汽車,以控制控制面的運動。
第 4 步:接線圖
接線圖很清楚。您必須按照示意圖將伺服電機引腳與 ESP32 引腳連接起來。示意圖如上所示。
使用原理圖連接所有部件。使用一塊雙面膠帶將 ESP32-CAM 連接到云臺。
第 5 步:設置 ESP32 開發板
您可以使用 Arduino IDE 對相機模塊進行編程。安裝好開發環境后,可以打開它,為使用攝像頭模組做準備。
1. 啟動 Arduino IDE 并打開 Preferences 窗口。
2. 進入https://dl.espressif.com/dl/package_esp32_index。進入 Arduino IDE 的 File》Preferences》Additional Boards Manager URLs 字段。您可以添加多個 URL,并用逗號分隔它們。
3. 使用 OK 按鈕關閉此窗口。從 Tools 》 Board 菜單打開 Boards Manager 并選擇正確的 ESP32 Cam 板。
第 6 步:上傳代碼
#define DUMMY_SERVO1_PIN 12 //We need to create 2 dummy servos.
#define DUMMY_SERVO2_PIN 13 //So that ESP32Servo library does not interfere with pwm channel and timer used by esp32 camera.
#define PAN_PIN 14
#define TILT_PIN 15
Servo dummyServo1;
Servo dummyServo2;
Servo panServo;
Servo tiltServo;
//Camera related constants
#define PWDN_GPIO_NUM 32
#define RESET_GPIO_NUM -1
#define XCLK_GPIO_NUM 0
#define SIOD_GPIO_NUM 26
#define SIOC_GPIO_NUM 27
#define Y9_GPIO_NUM 35
#define Y8_GPIO_NUM 34
#define Y7_GPIO_NUM 39
#define Y6_GPIO_NUM 36
#define Y5_GPIO_NUM 21
#define Y4_GPIO_NUM 19
#define Y3_GPIO_NUM 18
#define Y2_GPIO_NUM 5
#define VSYNC_GPIO_NUM 25
#define HREF_GPIO_NUM 23
#define PCLK_GPIO_NUM 22
const char* ssid = "NowISeeYou";
const char* password = "12345678";
AsyncWebServer server(80);
AsyncWebSocket wsCamera("/Camera");
AsyncWebSocket wsServoInput("/ServoInput");
uint32_t cameraClientId = 0;
#define LIGHT_PIN 4
const int PWMLightChannel = 4;
const char* htmlHomePage PROGMEM = R"HTMLHOMEPAGE(
.noselect {
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Safari */
-khtml-user-select: none; /* Konqueror HTML */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none; /* Non-prefixed version, currently
supported by Chrome and Opera */
}
.slidecontainer {
width: 100%;
}
.slider {
-webkit-appearance: none;
width: 100%;
height: 20px;
border-radius: 5px;
background: #d3d3d3;
outline: none;
opacity: 0.7;
-webkit-transition: .2s;
transition: opacity .2s;
}
.slider:hover {
opacity: 1;
}
.slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 40px;
height: 40px;
border-radius: 50%;
background: red;
cursor: pointer;
}
.slider::-moz-range-thumb {
width: 40px;
height: 40px;
border-radius: 50%;
background: red;
cursor: pointer;
}
第 7 步:測試
安裝攝像頭模塊,將您的 SD 卡插入攝像頭的插槽,將那一小塊橡膠推回,通過滑動背面的開關為攝像頭供電,然后找到其獨特的 IP 攝像頭網絡服務器。
我對這個小工具的最終結果非常滿意。完成以后你也可以在任何場合將此小工具贈送給其他人。
-
舵機
+關注
關注
17文章
280瀏覽量
41126 -
ESP32
+關注
關注
18文章
977瀏覽量
17457
發布評論請先 登錄
相關推薦
評論