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 使用的天线,外部天线可以提高摄像头视频数据流性能。
发表评论