本文将向您展示如何使用两个舵机为 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文章
268浏览量
41013 -
ESP32
+关注
关注
18文章
970浏览量
17198
发布评论请先 登录
相关推荐
评论