DIY及创意
直播中

人走了

10年用户 1000经验值
擅长:制造/封装 光电显示
私信 关注

自制一个支持AI 控制的无刷平衡车机器人:开源项目D-BOT全攻略

今天给大家介绍一款创意桌面机器人——D-BOT!它不仅是一个功能强大的平衡车机器人,也是一个融合了AI控制、3D建模与PCB设计的开源项目。

D-BOT 被作者称为“小探险家”(Discovery Bot),象征着对未知世界的探索,也承载了创客对自我突破的追求。

D-BOT的亮点功能

D-BOT 集成了多项技术,给小伙伴们提供了丰富的玩法和扩展空间:

  • 全功能 X-Knob^[1]^ 支持:无缝兼容 X-Knob 的所有功能,带来精准的运动控制体验。

  • 蓝牙手柄遥控:通过蓝牙连接手柄,轻松实现远程操控,操作更灵活。

  • 无线调参:

    • 基于 SimpleFOCStudio^[2]^ (尝试合入到 upstream 中,但仓库作者太忙一直没时间 review,暂时使用作者 fork 的仓库)修改了上位机,通过无线网络连接;
    • 在 D-BOT 端通过 WirelessTuning^[3]^ 库,作为胶水层无缝适配 SimpleFOC 的 monitor 库;
  • 小智 AI 控制,化身 AI 机器人;

硬件

主要硬件列表:

  • 4 块 PCB:主控板 + 驱动板 * 2 + 屏幕板;
  • 电池板: 直接使用饭佬开源平衡车的电池板, 但不用焊接任何元件
  • MCU: ESP32-S3 WROOM-1U-N16R8;
  • 屏幕: 240x240 圆形 LCD GC9A01 (1.28 寸)
  • 磁编码器:MT6701CT;
  • 3205a 无刷直流电机(无限位);

已经上传到嘉立创开源平台:硬件开源链接^[4]^^^

3D打印件

D-BOT 的结构采用 3D 打印技术,包含以下 5 个打印件,设计简洁且易于组装:

  • 车架(3205a_v1.1)
  • 车轮适配件(v0.2)
  • 电池卡扣+底座接口(v0.9)
  • 屏幕架(v0.4)
  • 支撑件(v0.1)

3D模型文件已上传至 Maker World,创客们可以直接下载打印:D-BOT 3D 模型 ^[5]^ 。

开发环境

  • 工具:VSCode + PlatformIO

步骤

  1. 克隆代码:
git clone https://github.com/SmallPond/D-BOT
  1. 编译与烧录:使用 PlatformIO 编译并将固件烧录至 ESP32-S3。
  2. 首次启动:
  • 连接 D-BOT 的 WiFi 热点(DBOT_xxx),访问 <span>192.168.4.1</span> 配置 WiFi。

  • 启动后会自动进行陀螺仪(MPU6050)自动校准和电机自动校准(左右电机依次顺逆时针转动);如果你在完全固定组装前启动过,电机将可能不会再校准导致电机工作不正常;

    • 强制校准方法:在启动听到“叮”一声后,立马按住 boot 键(主控板最外侧的按键)2 秒不动,等待一会应该能看到电机开始校准;或者直接 0 地址重刷 merge 固件,这将清除所有配置。
  • 因为 mpu6050 不是直接板载在主控板的,焊接的差异可能导致平衡(机械)中值有差异,可以通过无线调参修改,有能力的同学也可以直接修改代码后重新编译;

  1. 畅玩 D-BOT:完成配置后,即可体验 AI 控制或手柄遥控的乐趣!

AI控制:让 D-BOT 更聪明

D-BOT 的 AI 控制代码开源于 xiaozhi-esp32 ^[6]^ ,目前优先支持 45coll-sparkbot^[7]^ 开发板。

想适配其他版本的“小智”开发板?欢迎在仓库的 Issue 区 ^[8]^ 提交申请,详细描述板子型号,开发者会统一支持并发布固件。当然,动手能力强的同学也可以参考代码自行适配!

手柄遥控:灵活操控

D-BOT 支持蓝牙手柄遥控,目前适配特定型号手柄,库开源在ESP32 解析蓝牙手柄信号 ^[9]^ 。X-Box 理论上可以使用其他库解析。

  • L + Home 方式启动手柄;
  • 通过小程序“谷雨蓝牙”扫描出手柄蓝牙,获取蓝牙地址,类似 “04:0A:11:11:90:10”。我现在打开这个工具扫描出来的是 UUID 形式的,应该需要改代码,或者通过其他方法获取上述格式的蓝牙地址,有能力的同学可以再研究下。
  • 刷 D-BOT v0.2 及其以上版本固件,在配网界面填入蓝牙地址;重启后打开手柄就能自动连接;
  • D-BOT 默认为 AI 控制模式,按下 A 键 切换为遥控模式后,即可通过摇杆控制。

无线调参:精准优化

  1. 配置 SimpleFOCStudio ^[10]^ 基本环境 ;
  2. 通过串口获取 D-BOT 启动日志打印的 IP 地址;
  3. 在 SimpleFOCStudio 界面中配置 IP 和端口号(默认为 4242),连接成功后,在 Command Line interface 处输入以下指令调参;
对象 命令 示例
直立环 S SP0.2——直立环 P 项设置为 0.2, SP不带参数则为获取当前 P 项
速度环 V VP0.2——速度环 P 项设置为 0.2
转向环 T TP0.2——转向环 P 项设置为 0.2
D-BOT 前后移动闭环控制 R RP0.2
D-BOT 转向闭环控制 B BP0.2
机械中值 X X-3——机械中值设置为 -3(默认值为 -2,正常直立时 D-BOT 向前走,应该减小该值)
保存所有参数 C C

更多回帖

发帖
×
20
完善资料,
赚取积分