40| 13
|
[项目] 【Arduino 动手做】由ESP32 Cam模块驱动的全方位监控机器人 |
DODGE是一款新颖的三脚架设计,由ESP32 Cam模块驱动。三脚架的第三条腿(支撑腿)位于中间,可在移动过程中为定位支撑腿提供支撑。由于支撑腿底部设有伺服装置,它还可以 360 度旋转。该机器人共有六个伺服装置,考虑到 ESP32 Cam 模块在使用摄像头时可用的 GPIO 引脚有限,因此可以实现多种运动。顾名思义,DODGE 可以横向移动,也可以垂直上下移动。 Dodge 可在室内用于监控房屋周围环境,并可通过连接到其 WIFI 接入点,使用手机或电脑进行控制。连接后,您可以控制它的运动,并查看安装在其头部的摄像头的实时画面。它使用两块电池 - 一块为伺服器供电,另一块为 ESP32 模块供电。两块电池确保机器人稳定运行,因为使用同一块电池为伺服器和 ESP32 模块供电会导致摄像头信号出现一些故障,稍后会详细介绍。 至于未来的计划,我希望将道奇的摄像头拍摄的画面传输到树莓派,用于图像识别、人脸检测等功能,并控制其运动。道奇的3D模型是使用Fusion360设计的,并进行了3D打印。由于道奇体积小,所有部件都可以快速打印,且耗材量不大。 ![]() |
## 补给品 Emax ES08MDII 数字伺服电机 x 6连杆 铝棒(长度-200mm,直径-4mm)x 1节 SS 销或铝销 - 如果您愿意,也可以将铝棒切成 10 毫米长的段(直径 4 毫米 x 长度 10 毫米)x 4链环 ESP32 Cam 模块,带 MB,用于 Type-C USB(CH340)连接 x 1链路 7.4 V 800mAH 15C 锂电池(长 57mm x 宽 30mm x 高 15mm) 5V 800mAh 锂电池(长 50mm x 宽 31mm x 高 11mm) 2.5M 螺纹插件 x 8 2.5M六角螺丝(长度-15mm)x 4 2.5M六角螺丝(长度-25mm)x 4 2.5M六角螺丝(长度-10mm)x 4 3A 可调降压转换器模块 x 1链接 筒式千斤顶 x 1节 母头引脚(8 孔)x 2 LM4UU 直线轴承 (内径-4mm, 外径-8mm , 长度-12mm) x 2链节 小型径向轴承(内径 4 毫米,外径 7 毫米)x 4链节 电解电容(10V,1000uF)x 1 电解电容(10V,470uF)x 1 通用穿孔板 (50mm x 50mm) x 1 2mm普通螺丝 x 4 28 AWG 延长线(黑色、红色、黄色)x 1 螺旋绕线(直径 4 毫米)x 1节 滑动开关 x 1链接 强力胶 x 1 旧鼠标垫或热缩材料,用于在脚和地面之间产生摩擦 手锯或 Dremel x 1 3D打印机 x 1 3D打印耗材 x 1 ![]() |
## 步骤 6:支撑腿 支撑腿由齿条和小齿轮组件组成,小齿轮由伺服器驱动。另一个伺服器安装在支撑脚上,使 Dodge 能够旋转 360 度。由于伺服器的旋转范围为 0 到 180 度,Dodge 可以抬起支撑脚,使其旋转 180 度,然后将其脚放低至地面,使其能够旋转另一半。考虑到单个 180 度伺服器的局限性,这是一种实现 360 度旋转的巧妙方法。 用强力胶将机架的一端固定在套环的插槽上。套环的下端有一个齿轮轮廓切口,用于插入耦合齿轮,耦合齿轮随后用螺丝固定在舵机附带的圆形舵机支架上。然后将舵机放入支撑脚中,并用螺丝固定到位。支撑脚也需要与地面产生摩擦,所以旧鼠标垫派上了用场,它被剪成合适的形状,并粘在支撑脚的底部。 轴承支架两侧各有两个孔,可装入直线轴承,然后将其粘合到机架后面的切割槽中。机架和轴承支架上有对准标记,可实现精确组装,粘合前应对准。轴承架需要粘到顶板底部。顶板底部的对准孔和轴承架上的孔可轻松组装。将轴承架粘合到位后,需要将铝棒切成两段,长度为 60 毫米。这些杆穿过直线轴承,允许滑动运动并限制其他方向的运动。驱动小齿轮的伺服器可以用螺丝固定在顶板底部。伺服器附带的圆形伺服喇叭安装在小齿轮后面的槽中,然后使用两个 2.5M 六角螺钉(10 毫米长)将其固定到位。现在可以将小齿轮推入伺服头并拧紧。再次确保将伺服头旋转至90度(中间位置),并将齿条置于中间位置,拧紧小齿轮。虽然伺服头无需旋转至最大范围即可控制支撑腿的升降,但组装完成后,您也可以随时进行调整。 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
## 步骤7:头部和电池组 头部由前部和后部两部分组成,其中装有 ESP32 摄像头模块的穿孔板夹在头部的前部和后部之间。对准头部后,在穿孔板上钻四个孔。将四个螺纹嵌件插入头部后部的孔中,并使用四个 M2.5(25 毫米长)六角螺钉固定前部头部、穿孔板和头部后部。 电池组粘在两侧,较重的辅助电池组位于左侧,较轻的主电池组位于右侧。由于增加了驱动小齿轮的舵机,更多的重量向右移动,因此较轻的电池组位于右侧。电子元件整理好后,舵机的电线就可以通过头部后部的孔布线。 降压转换器放置在降压转换器外壳内,然后粘合在主电池组和辅助电池组之间。在将其密封在外壳内之前,请确保在输入电压为 7.4V 时将输出电压调整为 5V。 ![]() ![]() ![]() ![]() ![]() ![]() |
## 步骤8:接线 将穿孔板切割成 35 x 50 毫米的尺寸,然后将母头引脚焊接到板上。使用焊料制作了两条导轨,分别用作 GND 和 VCC(伺服电机电源)。检查头部正面的开孔后,应将滑动开关焊接到穿孔板上。这样,当头部闭合时,就可以操作开关。将连接件连接到相应的引脚,并从孔中引出电线。这样,我稍后就可以将电线焊接到伺服电机上,并清楚地知道需要多长的电线才能让腿部自由移动。 伺服连接如下: 支撑脚底座伺服器 - IO 4 右腿顶部伺服器 - IO 12 左腿顶部伺服器 - IO 13 右腿底部伺服 - IO 14 左腿底部伺服器 - IO 15 小齿轮伺服 - IO 2 ESP32 摄像头和伺服器均通过电容供电,以平滑任何电压尖峰,避免伺服器运动抖动和摄像机镜头出现故障。伺服器通过 1000uF 电容供电,ESP32 摄像头通过 470uF 电容供电。最初,我尝试使用 7.4 V 电池同时为伺服器和 ESP32 供电,但 ESP32 模块出现了断电现象,有时还会导致摄像机信号出现故障。我推测这是由于电压尖峰和电源线不规则造成的。隔离电源后,一切正常。添加电容后,效果也确实有显著的改善。 ![]() ![]() ![]() ![]() |
## 步骤9:运动学分析 运动学分析 为了加快开发进程,对运动进行运动学分析始终是必要的。由于我们关注的是确定伺服器需要移动的角度来定位小腿的末端,因此使用逆运动学模型会很有帮助。在这种情况下,我们的主要目标是确定角度θ1和θ2,它们分别是大腿和小腿的伺服器角度,而不太关心小腿末端相对于垂直轴(Y)的角度,因为无论角度如何,脚尖的圆形设计都能提供与地面的充分接触。 下面是一段 Python 代码,用于推导方程式并确定角度。在我的案例中,在为支脚添加摩擦垫后,连杆长度 L1 和 L2 分别确定为 42 毫米和 72.5 毫米。已知变量为 L1、L2、x 和 y,需要计算的是角度 theta1 和 theta2。
![]() |
## 步骤10:STL和代码 需要注意的是,将代码上传到 ESP32 Cam 模块时,您需要使用带有引导加载程序的 ESP32 Cam-MB 来上传代码。您需要按下 ESP32 Cam-MB 上的 IO 0 按钮,然后按下 ESP32 模块上的 RST 按钮,以使开发板接受代码上传。此外,您还需要从 Arduino IDE 的库管理器下载 Kevin Harrington/John K. Bennett 编写的 ESP32Servo 库。 在代码文件中更新您所需的密码以连接到 Dodge。代码上传后,您可以在 WIFI 网络上看到它,名称为 Dodge-Tripod。上传代码后,请务必按下背面的 RST 按钮重置 ESP32 Cam 模块。连接到 Dodge-Tripod,然后打开浏览器,在手机/电脑的 URL 中输入 192.168.4.1,即可连接到 Dodge Control App。请确保已为主电池和备用电池供电,然后即可开始使用。 代码和3D模型 ![]() ![]() |
## 步骤11:结论 搭建完成后,值得注意的是,当机器人的整个重量压在支撑腿上时,支撑腿会有些晃动,因为我在支撑腿上的伺服器上用了一个塑料伺服喇叭。或许可以用铝制喇叭来解决这个问题,这样可以防止喇叭变形或弯曲。 Dodge 是一款小型机器人,可以在室内使用,它能够捕捉视频,让我可以监控房屋周围环境。它也可以用作桌面机器人。如前所述,我的下一个目标是将其视频数据传输到 Raspberry Pi,用于人脸检测和图像识别。除此之外,除了已经完成的功能外,它还可以通过编程实现许多其他动作,我希望尝试一下,如果有机会,我会更新这个教程。 ![]() |
附录 【Arduino 动手做】由ESP32 Cam模块驱动的全方位监控机器人 项目链接:https://www.youtube.com/watch?v=WIU3OHDz7Xk 项目作者:马尔代夫马累 hannu_hell (我热衷于一切机械的东西,并融入艺术和创意。就像一块废金属,在计算机的二进制世界里,与电火花融合在一起。) 项目视频 :https://www.youtube.com/watch?v=WIU3OHDz7Xk 项目代码和 3D 文件:https://github.com/hannu-hell/Dodge-ESP32-Cam-Tripod ![]() ![]() ![]() |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed