基于 ESP32 制造步行机器人,支持网络图像传输

MAKER: 陳亮/译:趣无尽(转载请注明出处)

Strider 是 Wade Vagle 开发的机械步行机器人。它是基于 ESP32 摄像头和 3D 打印机身的且移动速度灵活便捷的爬行类的机器人。它经过的多次的迭代,不断优化移动的速度。


在构建此台机器人前,我还尝试搭建过其他机器人 Lego Trotbot (https://www.instructables.com/Lego-Trotbot/) 。

最后,在 Wade Vagle 的建议下,我搭建了 Strider,大家可以参考一下链接,了解更多关于机械设计和 Strider 的信息。
https://www.diywalkers.com/walker-abcs.html
https://www.diywalkers.com/strider-link age-plans.html

这里有一组我自己搭建的 Strandbeest 与 Strider 的对比。

几年前我组装的 Strandbeest 只能在非常平坦的表面上行走,甚至不能穿过垫子,但相比之下,尺寸要小一些的 Strider 可以很好地穿过相同的垫子,足以说明 Strider 有更好的行走能力。

组件清单

ESP32-CAM-MB × 1
LiFePO4 14500 电池带充电器 × 1
N20 3V 200RPM 电机 × 1
DRV8833 2 通道直流电机驱动器模块板 × 1
8 针脚排针母头 × 2
6702ZZ 轴承 × 8
6 mm M2 平头螺丝 × 100
155mm 长 2mm 直径的杆 × 2
15mm 长 2mm 直径的杆 × 6

组件说明

电池的选用
Strider 选用带有两个 14500(AA 尺寸)的电池插槽。

电压要求
ESP32-CAM 需要 3.3V 的电源,板载稳压器 (AMS1117) 接受最大电压为 15V。
N20 电机可接受 3-12V 供电,但更高的电压可以运行更快。
DRV8833 电机驱动器可接受 2.7-10.8 V。
在电池安全方面,最好采用 LiFePO4 电池,如果你选择锂电池,记得选择内置保护板或在里面嵌入一个保护电池的电路。

电机
Strider 采用 2 个微型 N20 齿轮电机。有三种齿轮电机可供选择。

我测试了 3V 100RPM、200 RPM 和 500RPM 的三个比率。 3V 500RPM 跑的很快,但是行走的平稳性稍差一些,因此我建议使用 3V 200 RPM。工作电压与转速成线性比例,3V 100RPM 就等于 6V 200RPM。

轴承
Strider 是从电机带动腿部旋转运动,因为旋转不能直接由直线轴驱动,所以我使用了一些薄壁球轴承来建立一个稳定的曲轴来旋转运动。最后采用八个 6702ZZ 轴承,内部直径为 15mm,外部直径为 21mm,宽度为 4mm。

螺丝
螺丝在 Strider 的项目中很重要,它要将腿关节、身体部位、电池座和电子元件等重要部门连接起来。为了方便,所有连接的部分都设计使用相同的螺钉,尺寸为 6mm 长的 M2 平头螺钉。
Strider 机器人需要 72 个来组装。但也可以组装更多的元件,100个是最合理的数量。

杆的选用
需要两根 155mm 和六根 15mm 长,直径为 2mm 的杆,如果没有现货,你可以自己切割。

3D 打印零件

在 thingiverse 下载需要 3D 打印的所有部件:https://www.thingiverse.com/thing:4917588

注意:
1、在文件后带有 x2 表示打印 2 份,x12 表示打印 12 份。
2、3D 打印组件打孔,如图所示使用 2.1mm 的钻头可以修补打印的孔,以便更好的使用。

组装部件

螺丝

使用四颗螺丝将 core1、core2a 和 core2b 组合在一起。

安装电机
两个电机要并排安装,注意避免电机末端接触不良。

电机轴和车身组装

1、将轴承放入内部。
2、将 轴3 安装至轴承。
3、重复此步骤,准备好2份。

安装电机轴

将 D 形电机轴与轴 3 对齐并将其安装到位。

安装盖子

1、使用八颗螺丝将盖子 1 和盖子 2 固定到主体上。
2、安装 155mm 杆
3、将杆穿过主体上的孔。

腿部的组装

1、用一颗螺丝将腿 2、腿 3 和腿 1 连接在一起。
2、用一颗螺丝将腿 3 和腿 4 连接在一起。
3、重复此步骤制作第二条腿。
4、镜像安装第二条腿到右侧。
5、用一颗螺丝将腿 2 和腿 4 连接在一起。
6、重复此步骤制作出6条腿。

安装腿部

1、在轴 3 上安装 15mm 的杆。
2、将 155mm 的杆穿过两条腿 1 的孔 。
3、将 15mm 的杆穿过两腿 2 中间的孔。

轴和主体组装

1、将轴承安放至主体 2。
2、再将轴 2 安装至轴承内。
3、重复此步骤,准备好4份。

安装轴体

1、将155mm 的杆穿过主体 2 的孔。
2、将 15mm 的杆穿过轴的孔。
3、使用两颗螺丝固定轴体。

4、重复安装腿。每边有三对腿;每对腿移动曲轴为 60°。

边轴和主体组装

1、将轴承安放至主体 1。
2、再将轴 1 安装至轴承内。
3、重复此步骤,准备好2份。

安装主体边缘

1、将 15mm 杆穿过 轴 1 的孔。
2、使用两颗螺丝固定主体边缘。

连接电池底座

1、将电池底座与电线串联。强烈建议使用红线和蓝线用来表示电池的正负极。

2、排列电池底座的红线和蓝线并穿过 Core2b 的孔。

3、使用 8 个螺丝将 2 个电池座固定到 core2a 和 core2b。

软件部分

Arduino IDE
下载并安装 Arduino IDE:
https://www.arduino.cc/en/main/software

ESP32
请按照安装说明添加 ESP32:
https://github.com/espressif/arduino-esp32

Arduino ESP32 文件系统上传器
请按照安装步骤安装:
https://github.com/lorol/arduino-esp32fs-plugin

FSBrowserPlus
下载 FSBrowserPlus:(“Clone or Download”->“下载 ZIP”)
https://github.com/moononournation/FSBrowserPlus
在 Arduino IDE 中导入库。 (Arduino IDE “Sketch” Menu -> “Include Library” -> “Add .ZIP Library” -> select downloaded ZIP file)

ESP 异步 Web 服务器库
下载最新的 ESPAsyncWebServer 库:(”Clone or Download”->“下载 ZIP”)
https://github.com/me-no-dev/ESPAsyncWebServer.git

在 Arduino IDE 中导入库。 (Arduino IDE “Sketch” Menu -> “Include Library” -> “Add .ZIP Library” -> select downloaded ZIP file)

配置

摄像头类型
在“FSBrowserPlus.ino”中,在第 28 行取消注释摄像头型号并注释掉其他。例如,Strider 摄像头机器人的 CAMERA_MODEL_ESP32_CAM_ROBOT。

// Select camera model
// #define CAMERA_MODEL_WROVER_KIT // Has PSRAM
// #define CAMERA_MODEL_ESP_EYE // Has PSRAM
// #define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM
// #define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM
// #define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM
// #define CAMERA_MODEL_ESP32_CAM // Has PSRAM
#define CAMERA_MODEL_ESP32_CAM_ROBOT // Has PSRAM
// #define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM
// #define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM
// #define CAMERA_MODEL_JSZWY_CYIS
#include "cameraAPI.h"

电机引脚
CAMERA_MODEL_ESP32_CAM_ROBOT 在“camera_pins.h”中定义了电机引脚:

#define MOTOR
#define MotorL_A_Pin 13
#define MotorL_B_Pin 12
#define MotorR_A_Pin 2
#define MotorR_B_Pin 14

LED 灯引脚
LED 灯由 Web GPIO API 直接控制。一般来说在 GPIO 4,你可以在616行“camerarobot.htm” 更改 LED 引脚。

const query = `${baseHost}/gpio?pin=4&val=${value}`;

编译和上传

1、将 ESP32-CAM 连接到 USB Serial Dock。
2、打开 Arduino IDE。
3、打开 FSBrowserPlus.ino。
4、将 ssid 和密码编辑为自己的 WiFi AP 凭证。
5、在 “Tools” 菜单中选择 Board 到 “ESP32 Dev Module”。
6、在 “Tools” 菜单中选择分区方案,”Default 4 4MB with fat (1.2MB APP/1.5MB FATFS)”
7、按 Arduino IDE 上传。
8、在 “Tools” 菜单中选择 “ESP32 Sketch Data Upload”。
9、选择 FS 类型为 “FatFS”,然后按“确定”按钮。

PCB 部分

1、将 PCB 切割成 10 x 10 孔的板子。

2、在 C3、H3、C8 和 H8 处钻 4 个孔(要与 core1 的孔位相匹配)。

焊接工作

因为 ESP32-CAM 没有内置 USB 串口芯片,使用最好使用排针帮助分离,这样重新编程也更容易。

连接方式如下:

Battery -> Switch -> ESP32-CAM -> DRV8833 -> Motor
+ve pole -> Pin 1
 Pin 2 -> 5V -> Vcc
-ve pole -> GND -> GND
 GPIO 12 -> IN1
 GPIO 13 -> IN2
 GPIO 14 -> IN3
 GPIO 2 -> IN4
 OUT1 -> LEFT +ve
 OUT2 -> LEFT -ve
 OUT3 -> RIGHT -ve
 OUT4 -> RIGHT +ve
 short J2

固定 PCB

使用 4 颗螺丝将 PCB 固定在 core1 上。

排列和连接电线

将电池和电机引脚连接到 PCB。

安装 ESP32-CAM

1、将 ESP32-CAM 插入排针。
2、在 SD 读卡器上贴一个散热片。
3、将摄像头模块贴在散热器上。

安装电池

安装电池前一定要检电池极柱是否正确,否则会烧毁芯片。再次建议在电池底座中使用红线和蓝线。

连接和运行

FSBrowserPlus 以 AP+STA 双模式运行。
如果你已经输入 WiFi AP 和密码,你可以直接浏览到 http://fsbrowserplus.local 访问 FSBrowserPlus,仅限于WiFi AP 覆盖的区域。

如果你的摄像头机器人不在 WiFi AP 覆盖区域,只需搜索 WiFi网络 AP 调用 “fsbrowserplus” 并在代码中输入预定义的密码进行连接。一旦连接,一个 Captive Portal 网页将会弹出。然后选择 Camera Robot 路径即可。

一切完成后,Strider 就可以灵活的动起来了。

改进的地方

1、这款 Strider 是最小的尺寸的。但遥控起来还是太宽了,很容易被摄像机视野外的障碍物阻挡。我将尝试在下一次迭代中修复它。
2、添加外部天线(可选)。市面上有许多适合 ESP32-CAM 使用的天线,外部天线可以提高摄像头视频数据流性能。

via



坐沙发

发表评论