立创开源:基于合宙ESP32-C3的迷你四足机器人DIY全攻略(含蓝牙遥控与TFT屏)

📅 发布时间:2026/7/17 9:01:39 👁️ 浏览次数:
立创开源:基于合宙ESP32-C3的迷你四足机器人DIY全攻略(含蓝牙遥控与TFT屏)
立创开源基于合宙ESP32-C3的迷你四足机器人DIY全攻略含蓝牙遥控与TFT屏最近有不少朋友问我想入门机器人DIY有没有一个成本低、容易上手又有趣的项目这不我刚好用合宙那块9块9的ESP32-C3开发板配合几个舵机和一个TFT小屏幕做了一个迷你四足机器人。它不仅会走路还能通过微信小程序蓝牙遥控甚至有个小脸蛋屏幕显示状态。整个项目从硬件组装到软件编程都是开源的非常适合想动手玩嵌入式或机器人的朋友。今天我就把这个项目的完整制作过程分享给大家手把手带你从零开始复现。1. 项目概览与材料清单在开始动手之前咱们先看看这个机器人长什么样以及需要准备哪些东西。这个机器人的“骨架”灵感来源于国外开源社区的一个四足机器人设计我在此基础上增加了上下机盖和头部把主板和电池都藏进了“肚子”里外观更完整。核心控制大脑是合宙ESP32-C3开发板它自带Wi-Fi和蓝牙性能足够且价格便宜。机器人的“关节”由8个SG90舵机驱动眼睛则是一块1.14寸的LCD彩屏。身体结构通过3D打印完成动力来自一节16340锂电池。下面是一份详细的物料清单你可以照着采购类别名称/型号数量备注/购买参考主控合宙ESP32-C3开发板无串口芯片版1核心板约9.9元。注意有带串口芯片和不带两种版本本项目用的是无串口芯片版烧录方式不同。执行器SG90 180度舵机8机器人的8条腿各需要一个。显示1.14寸LCD液晶屏SPI接口插接式1用作机器人头部显示。结构3D打印件上下机盖、腿部、头部支架1套文件在附件3D打印机STL文件.zip中。电源16340锂电池带电池盒1建议选用质量好的续航更长。电路两档开关、8P 0.5mm间距FPC座下接、MOS管等各1用于电源开关、屏幕连接和防反接保护电路。紧固件M26螺丝、M2.58螺丝、M2.54螺丝、M24螺丝8颗、8颗、2颗、4颗固定舵机、机盖、屏幕支架和主板。SG90舵机自带两颗固定螺丝但舵机臂固定螺丝需要更长的M2*6。注意合宙ESP32-C3开发板有“带串口芯片”和“无串口芯片”两种版本。本项目使用的是无串口芯片版本它的USB通信直接由ESP32-C3芯片的USB接口实现烧录程序时需要进入特殊的下载模式后面会详细讲。如果你买的是带串口芯片的版本烧录会更简单但接线和成本略有不同。2. 硬件组装与电路连接东西都备齐了接下来就是“搭积木”的时间。硬件组装主要分三步打印结构件、组装机械部分、焊接电路。2.1 3D结构打印与机械组装首先把附件里的3D打印机STL文件.zip下载下来用3D打印机打出所有零件。打印时注意支撑和层高设置确保关节孔位光滑这样舵机装进去转动才顺畅。机械组装顺序我建议这样来安装舵机将8个SG90舵机分别嵌入到机器人的髋关节和膝关节结构件中使用舵机自带的短螺丝固定舵机本体。连接舵机臂将舵机摇臂舵盘安装到舵机输出轴上并用M2*6的长螺丝配合螺母将金属舵机臂牢牢固定到舵盘上。这一步很关键螺丝短了会固定不牢。组装腿部按照设计将大腿和小腿的零件与对应的舵机输出轴连接形成完整的机械腿。安装机身将四条腿组装到机器人的身体下机盖上然后盖上上机盖用M2.5*8的螺丝固定。安装头部将1.14寸LCD屏幕插入FPC软排线然后安装到头部支架上用M2.5*4的螺丝固定。最后把头部支架装到机身上。2.2 核心电路焊接与连接机械部分是躯干电路就是神经系统。为了简化制作我们直接使用合宙ESP32-C3开发板作为核心只需要焊接少量外围元件。核心电路原理防反接与电源管理 为了防止电池接反烧坏板子我用了一个MOS管搭建了简单的防反接电路。当电池正负极正确连接时MOS管导通电源给系统供电如果接反了MOS管截止电路不通电起到保护作用。电池经过开关后同时给ESP32-C3开发板和8个舵机供电。接线清单 你需要将以下部件连接到ESP32-C3开发板的对应引脚上ESP32-C3引脚连接对象功能说明GPIO0-GPIO7舵机1-舵机8的控制信号线橙色线输出PWM信号控制8个舵机角度。GPIO181.14寸LCD屏的SCL时钟线SPI通信时钟。GPIO191.14寸LCD屏的SDA数据线SPI通信数据。GPIO101.14寸LCD屏的RES复位屏幕复位引脚。GPIO81.14寸LCD屏的DC数据/命令选择区分发送的是数据还是命令。GPIO91.14寸LCD屏的CS片选选择SPI从设备屏幕。VCC (3.3V)1.14寸LCD屏的VCC、背光为屏幕供电。GND所有舵机、屏幕的GND共地。电池正极两档开关输入端控制总电源。开关输出端ESP32-C3的VIN引脚、舵机电源正极红色线为整个系统供电。提示焊接时务必注意不要短路。舵机信号线黄或橙色接GPIO电源线红色接开关后的正极地线棕色或黑色接GND。LCD屏幕通过FPC座子连接对准方向插紧即可。3. 软件开发环境搭建与固件烧录硬件搭好了接下来要给它注入“灵魂”——程序。我们使用Arduino IDE来开发因为它对初学者非常友好。3.1 安装Arduino IDE与ESP32开发板支持安装Arduino IDE如果你还没安装去Arduino官网下载并安装最新版。添加ESP32开发板支持打开Arduino IDE点击文件-首选项。在“附加开发板管理器网址”中填入以下网址https://espressif.github.io/arduino-esp32/package_esp32_index.json点击工具-开发板-开发板管理器搜索“esp32”。找到由“Espressif Systems”提供的“esp32”平台点击安装。3.2 准备项目库与源码安装舵机控制库ESP32-C3用传统的Servo库控制多个舵机可能有问题。附件里提供了一个专门优化的ESP32_C3_ISR_Servo.zip库。下载后在Arduino IDE中点击项目-加载库-添加.ZIP库…选择这个zip文件安装。获取主程序源码解压附件中的ESP32C3_XiaoSiZu_BLE.zip你会看到项目的.ino源代码文件。3.3 关键为无串口版ESP32-C3烧录固件这是最容易卡住的一步请仔细看。合宙9.9元的无串口芯片版ESP32-C3其USB通信直接由芯片负责。在正常运行时GPIO18和GPIO19被程序占用我们用来驱动屏幕了这会和USB下载功能冲突。因此烧录前必须手动让板子进入“下载模式”。烧录步骤用USB线将ESP32-C3开发板连接到电脑。在连接USB线之前先按住开发板上的BOOT按键不放。保持按住BOOT键的状态下再短暂按一下RESET按键然后松开RESETBOOT键仍然按住。此时开发板会进入固件下载模式。再将USB线插入电脑如果已经插着就执行第2、3步。在Arduino IDE中做如下设置工具-开发板- 选择ESP32C3 Dev Module。工具-Flash Mode- 选择DIO非常重要否则无法运行。工具-Upload Speed- 选择921600。工具-Port- 选择识别出的串口通常是USB JTAG/serial debug unit或类似名称。点击上传按钮向右箭头等待编译和烧录完成。烧录成功后按一下RESET键机器人程序就开始运行了注意如果你用的是带串口芯片如CH340的ESP32-C3开发板则无需按住BOOT键直接选择对应的COM口将Flash Mode设为DIO即可正常烧录。4. 微信小程序蓝牙遥控使用程序烧录进去后机器人应该能自己站起来了。但怎么控制它走路呢我写了一个简单的微信小程序作为蓝牙遥控器。打开小程序使用微信扫描下方二维码即可打开“迷你四足机器人”遥控小程序。连接机器人打开机器人电源开关。在小程序首页点击“搜索设备”或“连接”按钮。在设备列表中找到并点击你的机器人设备名可能是ESP32C3_Robot或类似。连接成功后小程序界面会更新。控制机器人连接后你会看到方向控制按钮前后左右、动作模式按钮如前进、后退、左转、右转、跳舞等。最新固件还支持自定义动作模式。你可以在小程序中录制一个最多包含10个步骤的动作序列让机器人学习并执行。5. 项目源码浅析与自定义如果你不满足于只是使用还想了解代码是怎么工作的或者想修改动作这里简单讲一下核心逻辑。打开ESP32C3_XiaoSiZu_BLE.ino主程序关键部分如下舵机控制使用了我们安装的ESP32_C3_ISR_Servo库它利用硬件定时器中断产生PWM比软件模拟更稳定。在setup()函数中初始化了8个舵机引脚。#include ESP32_C3_ISR_Servo.h #define SERVO_PIN_1 0 #define SERVO_PIN_2 1 // ... 定义其他舵机引脚 #define SERVO_PIN_8 7 void setup() { // ... 其他初始化 ESP32_C3_ISR_Servos.useTimer(0); // 使用定时器0 // 为每个舵机设置初始位置角度 ESP32_C3_ISR_Servos.setupServo(SERVO_PIN_1, 90); // ... 设置其他舵机 }蓝牙通信程序使用了ESP32的Bluetooth Serial库创建一个蓝牙串口服务。手机小程序通过蓝牙向机器人发送简单的字符命令比如F代表前进B代表后退。步态生成机器人的行走动作步态是通过预先计算好的一组舵机角度数组来实现的。代码里定义了不同动作走、爬、扭动下每个舵机在每一步的角度值。通过循环播放这些角度序列机器人就动起来了。屏幕驱动使用TFT_eSPI库来驱动1.14寸LCD屏在屏幕上可以显示连接状态、电池电量如果ADC读取了电压、当前动作模式等信息。想修改动作你可以找到控制步态的数组调整里面的角度值。比如想让机器人步子迈大点就增加髋关节舵机的前后摆动幅度。修改后记得重新编译并按照前面的方法烧录固件。最后这个项目我在家测试用一块5块钱的16340电池持续运动大概能玩15分钟。如果用质量更好的电池续航会更久。整个项目从硬件到软件都是开源的希望你能在制作过程中享受到动手的乐趣也能学到ESP32开发、舵机控制和蓝牙通信这些实用的嵌入式技能。如果遇到问题欢迎在开源项目页面下留言讨论。