回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【花雕学编程】Arduino动手做(230)---使用ESP32-CAM驱动360度 MG 996R舵机2 简单

头像 驴友花雕 2024.10.22 15 0

02.jpg

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 帧/秒

 

0-2.jpg

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舵机的这些特性使其成为一个多功能和可靠的执行元件,适用于各种需要精确控制角度和速度的应用。

 

75-6.jpg

安装ESP32Servo库

 

75-5.jpg

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
 实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
 项目实验之二十七:使用ESP32-CAM驱动360度MG 996R舵机2

实验开源代码

 

代码
/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
  项目实验之二十七:使用ESP32-CAM驱动360度MG 996R舵机2
*/

#include <ESP32Servo.h>

Servo myservo;

void setup() {
  Serial.begin(115200);
  myservo.attach(16);  // 将舵机连接到引脚16
}

void loop() {
  for (int pos = 0; pos <= 180; pos += 1) {
    myservo.write(pos);              // 设定舵机位置
    delay(15);                       // 等待15毫秒
  }
  for (int pos = 180; pos >= 0; pos -= 1) {
    myservo.write(pos);              // 设定舵机位置
    delay(15);                       // 等待15毫秒
  }
}

代码解读:

1、库兼容性:确保使用与硬件兼容的库。ESP32不支持标准的Servo库,需要使用ESP32Servo库。

2、正确安装库:通过Arduino IDE的库管理器安装所需的库,确保代码能顺利编译和运行。

3、引脚配置:在ESP32开发板上,正确配置舵机连接的引脚。代码中的示例将舵机连接到引脚16。

4、初始化与配置:在setup函数中初始化串口通信,并附加舵机到指定引脚。

5、循环控制:在loop函数中控制舵机位置的变化,通过简单的for循环实现舵机的来回转动。
 

实验场景图  

 

75-8.jpg
75-9.jpg

 

动态图

 

0006.gif

 

实验记录视频

 

【[花雕动手做]  使用ESP32+MG996R舵机控制行走机器人的二条腿#DIY动手做 #行走机器人 #电子爱好者】

 

 https://www.bilibili.com/video/BV1avyHYvEEF/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987

 

评论

user-avatar
icon 他的勋章
    展开更多