0代码,不用app Arduino esp32cam 远程控制Web Server视频小车

使用 ESP32-CAM 构建 Wi-Fi 遥控汽车机器人。您将能够使用Web服务器控制机器人,该服务器显示机器人"看到"的视频流。您可以远程控制您的机器人,即使它不在你的视线范围内。ESP32-CAM 将使用 Arduino IDE 进行编程。

0代码,不用app Arduino esp32cam 远程控制Web Server视频小车_第1张图片

电路板兼容性:此项目需要 4 个 GPIO 来控制直流电机。因此,您可以使用任何带有 4 个可用 GPIO 的 ESP32 相机板,如 ESP32-CAM Ai-Thinker  

项目概况

在开始项目之前,我们将重点介绍用于构建机器人的最重要功能和组件。

无线网络

机器人将使用您的 ESP32-CAM 通过 Wi-Fi 进行控制。我们将创建一个基于Web的界面来控制机器人,可以在本地网络内的任何设备中访问。

该网页还显示了机器人"看到"的视频流。为了获得良好的视频流效果,我们建议使用带外部天线。

0代码,不用app Arduino esp32cam 远程控制Web Server视频小车_第2张图片

 

机器人控制

Web 服务器有 5 个控件:"前进"、"向后"、"向左"、"向右""停止"

0代码,不用app Arduino esp32cam 远程控制Web Server视频小车_第3张图片

 

只要您按下按钮,机器人就会移动。当您松开任何按钮时,机器人就会停止。但是,我们包含了"停止"按钮,如果您释放按钮时 ESP32 未收到停止命令,该按钮非常有用。

智能机器人底盘套件

我们将使用智能机器人底盘套件。您可以在大多数在线商店中找到它。该套件的价格约为10美元,并且易于组装 - 观看此视频,了解如何组装机器人底盘套件。

您可以使用任何其他机箱套件,只要它带有两个直流电机即可。

0代码,不用app Arduino esp32cam 远程控制Web Server视频小车_第4张图片

 

L298N 电机驱动器

控制直流电机的方法有很多种。我们将使用L298N电机驱动器,它提供了一种简单的方法来控制2个直流电机的速度和方向。

0代码,不用app Arduino esp32cam 远程控制Web Server视频小车_第5张图片

为了保持电路简单,我们将使用相同的电源为机器人(电机)和 ESP32 供电。我们使用了移动电源/便携式充电器(就像用于为智能手机充电的充电器一样),效果很好。

0代码,不用app Arduino esp32cam 远程控制Web Server视频小车_第6张图片 

 注意:电机消耗大量电流,因此,如果您觉得机器人无法正常移动,则可能需要为电机使用外部电源。这意味着您需要两种不同的电源。一个用于为直流电机供电,另一个用于为 ESP32 供电。

部件
对于此项目,我们将使用以下部分:

ESP32-CAM AI-Thinker(安信可原装性能有保障),价格较贵,不带外置天线

ESP32-CAM模块带外置天线,第三方,较实惠
L298N 电机驱动器
机器人汽车底盘套件
移动电源或其他5V电源

锂电池充电板
原型电路板(洞洞板,排针)

代码下载:icon-default.png?t=M1H3https://gitee.com/jun-tian/esp32-cam-wi-fi-car

#include "esp_camera.h"
#include 
#include "esp_timer.h"
#include "img_converters.h"
#include "Arduino.h"
#include "fb_gfx.h"
#include "soc/soc.h"             // disable brownout problems
#include "soc/rtc_cntl_reg.h"    // disable brownout problems
#include "esp_http_server.h"

// Replace with your network credentials
const char* ssid = "REPLACE_WITH_YOUR_SSID";//修改为你的wifi名称
const char* password = "REPLACE_WITH_YOUR_PASSWORD";//修改为你的WiFi密码

#define PART_BOUNDARY "123456789000000000000987654321"

#define CAMERA_MODEL_AI_THINKER
//#define CAMERA_MODEL_M5STACK_PSRAM
//#define CAMERA_MODEL_M5STACK_WITHOUT_PSRAM
//#define CAMERA_MODEL_M5STACK_PSRAM_B
//#define CAMERA_MODEL_WROVER_KIT

#if defined(CAMERA_MODEL_WROVER_KIT)
  #define PWDN_GPIO_NUM    -1
  #define RESET_GPIO_NUM   -1
  #define XCLK_GPIO_NUM    21
  #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      19
  #define Y4_GPIO_NUM      18
  #define Y3_GPIO_NUM       5
  #define Y2_GPIO_NUM       4
  #define VSYNC_GPIO_NUM   25
  #define HREF_GPIO_NUM    23
  #define PCLK_GPIO_NUM    22

#elif defined(CAMERA_MODEL_M5STACK_PSRAM)
  #define PWDN_GPIO_NUM     -1
  #define RESET_GPIO_NUM    15
  #define XCLK_GPIO_NUM     27

你可能感兴趣的:(arduino,ESP32CAM,前端,音视频,服务器)