app inverter 制作视频小车

用 App Inventor(常被误写为 App Inverter)制作视频遥控小车,核心是:ESP32‑CAM 负责视频流 + 控制、L298N/TC118S 驱动电机、App Inventor 做手机 App(显示视频 + 发指令),全程图形化编程,无需写复杂代码。
 

 

一、硬件清单(一套配齐)

 
  • 小车底盘套件(含 4 个 N20 电机 + 轮子 + 车架)
  • ESP32‑CAM 开发板(OV2640/OV3660 摄像头,带烧录座)
  • 电机驱动:L298N(两路)或 TC118S(四路,麦克纳姆轮可选)
  • 电源:18650 锂电池(2 节,配电池盒)+ 5V 稳压模块(给 ESP32‑CAM 供电)
  • 杜邦线、螺丝、扎带若干
     
    image
    image
     
 

 

二、硬件接线(关键!别接错)

 

1. ESP32‑CAM ↔ L298N(两轮小车)

 
表格
 
ESP32‑CAM GPIOL298N 引脚说明
GPIO12 IN1 左电机方向
GPIO13 IN2 左电机方向
GPIO14 IN3 右电机方向
GPIO15 IN4 右电机方向
5V 12V(L298N 供电) 接电池正极
GND GND 共地
 

2. 电源分配

 
  • 电池 → L298N(12V 端)→ 驱动电机
  • 电池 → 5V 稳压模块 → ESP32‑CAM(5V/GND)
  • 注意:ESP32‑CAM 不能直接接 12V,会烧!
 
image
 
 

 

三、ESP32‑CAM 固件烧录(Arduino IDE)

 

1. 环境配置

 
  1. 安装 Arduino IDE,添加 ESP32 开发板支持:文件→首选项→附加开发板管理器网址 填入 https://dl.espressif.com/dl/package_esp32_index.json
  2. 安装库:ESP32 Camera LibraryWiFiWebServer
 

2. 核心代码(简化版)

 
cpp
 
运行
 
 
 
#include "esp_camera.h"
#include <WiFi.h>
#include <WebServer.h>

// WiFi 配置
const char* ssid = "你的WiFi名";
const char* password = "你的WiFi密码";

// 电机引脚
#define IN1 12
#define IN2 13
#define IN3 14
#define IN4 15

WebServer server(80);

// 摄像头配置
camera_config_t config = {
  .pin_pwdn = 32, .pin_reset = -1, .pin_xclk = 0,
  .pin_sscb_sda = 26, .pin_sscb_scl = 27,
  .pin_d7 = 35, .pin_d6 = 34, .pin_d5 = 39, .pin_d4 = 36,
  .pin_vsync = 25, .pin_href = 23, .pin_pclk = 22,
  .xclk_freq_hz = 20000000, .pixel_format = PIXFORMAT_JPEG,
  .frame_size = FRAMESIZE_QVGA, .jpeg_quality = 12, .fb_count = 1
};

// 电机控制函数
void forward() { digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); }
void backward() { digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); }
void left() { digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); }
void right() { digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); }
void stop() { digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); }

// 视频流接口
void handleStream() {
  camera_fb_t *fb = esp_camera_fb_get();
  server.send_P(200, "image/jpeg", (const char*)fb->buf, fb->len);
  esp_camera_fb_return(fb);
}

// 控制接口
void handleControl() {
  String cmd = server.arg("cmd");
  if (cmd == "F") forward();
  else if (cmd == "B") backward();
  else if (cmd == "L") left();
  else if (cmd == "R") right();
  else if (cmd == "S") stop();
  server.send(200, "text/plain", "OK");
}

void setup() {
  // 初始化电机引脚
  pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT);
  stop();

  // 初始化摄像头
  esp_camera_init(&config);

  // 连接WiFi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) delay(500);

  // 注册接口
  server.on("/stream", HTTP_GET, handleStream); // 视频流地址:http://ESP32_IP/stream
  server.on("/control", HTTP_GET, handleControl); // 控制地址:http://ESP32_IP/control?cmd=F
  server.begin();
}

void loop() { server.handleClient(); }
 
 

3. 烧录步骤

 
  1. ESP32‑CAM 的 GPIO0 接 GND(进入烧录模式),接 USB 转串口工具
  2. 选择开发板:工具→开发板→AI Thinker ESP32‑CAM,端口选对应 COM 口
  3. 点击上传,烧录完成后断开 GPIO0 与 GND,重启 ESP32‑CAM
  4. 打开串口监视器(波特率 115200),获取 ESP32‑CAM 的 IP(如 192.168.1.100
 

 

四、App Inventor 手机 App 制作(图形化,超简单)

 

1. 进入开发平台

 
打开:https://appinventor.mit.edu/,注册登录,新建项目
 

2. 界面设计(Screen1)

 
  • 1 个 WebViewer(显示视频流,宽高占满屏幕)
  • 4 个 Button:前进(F)、后退(B)、左转(L)、右转(R)、停止(S)
  • 1 个 Label:显示连接状态
     
    image
     
 

3. 逻辑设计(Blocks)

 
  1. 初始化:Screen1.初始化 → 设置 WebViewer.网址http://ESP32_IP/stream(替换为你的 ESP32 IP)
  2. 按钮点击事件(以 “前进” 为例):
    • 按钮F.点击WebViewer.访问网址 → 填入 http://ESP32_IP/control?cmd=F
    • 同理,后退(cmd=B)、左转(cmd=L)、右转(cmd=R)、停止(cmd=S)
       
      image
       
     
 

4. 打包安装

 
  1. 点击 Build→App(保存到手机),生成 APK
  2. 手机开启 “允许安装未知应用”,安装 APK
  3. 手机连接与 ESP32‑CAM 同一 WiFi,打开 App,即可看到视频并控制小车
 

 

五、常见问题解决

 
  1. 视频打不开:
    • 手机与 ESP32‑CAM 必须同 WiFi(或手机开热点给 ESP32 连)
    • 关闭电脑端占用视频流的浏览器(部分路由限制多设备访问)
     
  2. 小车不动:
    • 检查 L298N 电源是否接好(12V 端必须接电池正极)
    • 电机引脚定义是否与接线一致(代码里的 IN1~IN4 别接反)
     
  3. ESP32‑CAM 烧录失败:
    • 烧录时 GPIO0 必须接 GND,烧完断开
    • 串口工具必须支持 3.3V 电平(避免烧 ESP32)
     
 

 

六、进阶扩展(可选)

 
  • 加 麦克纳姆轮:换 TC118S 驱动,App 增加斜向移动按钮
  • 加 舵机云台:控制摄像头上下左右转动,增加视角
  • 加 超声波避障:ESP32 接 HC‑SR04,App 显示距离,自动避障
posted @ 2026-05-14 16:51  多多和羊羊  阅读(1)  评论(0)    收藏  举报