ESP32-CAM 是一款非常小的摄像头模块,配备 ESP32-S 芯片。除了 OV2640 摄像头和几个用于连接外围设备的 GPIO 外,它还具有一个 microSD 卡插槽,可用于存储使用摄像头拍摄的图像或存储文件以提供给客户。包括乐鑫 ESP32-S Wifi + 蓝牙+BLE 芯片、2MP 摄像头模块 OV2640 和带有 CH340 UART 芯片的 USB 编程适配器。
ESP32-Cam 是一款运行在 ESP32-S 芯片上并使用 OV2640 摄像头的小型摄像头模块。ESP32_Cam 也可以 OV7670 摄像头,但 OV2640 更好(更高的分辨率和内置的 JPEG 编码,这消除了 ESP32-S 的处理任务)。
ESP-32 Cam 规格
ESP-32 系列
它支持 Wi-Fi (802.11b/g/n)
支持蓝牙 (4.2 带 BLE)
内置 LED 闪光灯
9 个 IO 端口
支持 UART、SPI、I2C 和 PWM
内置 micro SD 读卡器
输入电源:3.3V / 5V(据报道,5V 供电比 3.3V 更稳定)
OV2640 摄像头
2 百万像素
阵列尺寸:UXGA (1600 x 1200)
镜头尺寸:1/4 英寸(6.35 毫米)
最大图像传输速率:15 帧/秒
MG996R舵机是一种高性能的舵机,它具有金属齿轮和双轴承设计,能够提供高扭矩和稳定的运行。以下是MG996R舵机的一些主要特性和应用:
1、结构材质:MG996R舵机采用金属齿轮,这使得它比塑料齿轮的舵机更加耐用,能够承受更大的负载。
2、连接线长度:MG996R舵机的连接线长度为30厘米,其中包含信号线(黄线)、电源线(红线)和地线(棕色)。
3、尺寸和重量:其尺寸为40.7mm × 19.7mm × 42.9mm,重量为55克。
4、反应转速:在无负载的情况下,MG996R舵机的速度为0.17秒/60度(在4.8V下)和0.13秒/60度(在6.0V下)。
5、工作死区:MG996R舵机的工作死区为4微秒。
6、工作电压:MG996R舵机的工作电压范围是3.0V到6.0V。
7、工作扭矩:在4.8V的工作电压下,MG996R舵机的工作扭矩为13KG/cm。
8、控制方法:MG996R舵机通过PWM(脉冲宽度调制)信号进行控制。对于360度舵机,PWM信号的周期为20ms,其中脉冲宽度在0.5ms到2.5ms之间。舵机的控制不仅包括方向,还包括速度。舵机正转时,脉冲宽度在0.5ms到1.5ms之间变化,对应不同的速度;舵机反转时,脉冲宽度在1.5ms到2.5ms之间变化。
9、应用:MG996R舵机由于其高扭矩和快速响应的特点,被广泛应用于机器人、遥控飞机、遥控车模以及其他需要精确控制的领域。
10、注意事项:在使用MG996R舵机时,需要注意PWM信号的分辨率应调制到0.1ms,以确保舵机能够平滑地改变方向和速度。
MG996R舵机的这些特性使其成为一个多功能和可靠的执行元件,适用于各种需要精确控制角度和速度的应用。
安装ESP32Servo库
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
项目实验之二十六:使用ESP32-CAM驱动MG 996R舵机(360度)
实验开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
项目实验之二十六:使用ESP32-CAM驱动MG 996R舵机(360度)
*/
#include <ESP32Servo.h>
Servo myservo; // 创建舵机对象
void setup() {
Serial.begin(115200);
myservo.attach(16); // 将舵机连接到引脚 16
// 设置初始角度为 0 度
myservo.write(0);
}
void loop() {
// 逐渐增加角度,实现顺时针旋转
for (int angle = 0; angle <= 360; angle += 10) {
myservo.write(angle);
delay(100);
}
// 逐渐减小角度,实现逆时针旋转
for (int angle = 360; angle >= 0; angle -= 10) {
myservo.write(angle);
delay(100);
}
}
代码解读
1、初始化串口通信:在 setup() 函数中初始化串口通信,为后续调试和数据传输做好准备。
2、绑定信号线:将舵机信号线连接到ESP32-CAM的GPIO16引脚,确保舵机能够正确接收控制信号。
3、设置初始位置:将舵机设置为中间位置(1500微秒),这相当于标准伺服的90度位置。
4、正转和反转控制:通过for循环控制舵机从中间位置旋转到最大位置(2000微秒),然后再反转回中间位置(1500微秒)。
5、延时控制:使用 delay() 函数在每次改变位置后添加延时,使舵机在不同位置停留一段时间,确保平稳旋转。
实验场景图
动态图
评论