机械臂 电控方案 开源!

机械臂 电控方案

源代码

https://www.gitpp.com/japxin/gen-project088-mini-arm

一个适用于T站五轴机械臂Robotic arm的电控方案。基于ESP32构建,使用支持Xbox协议的控制器通过摇杆控制机械臂。该系统采用 FreeRTOS 任务编排,在 ESP32 的双核架构上协调输入处理、运动控制和状态指示。

图片



电源选型

250穿越机降压分电板支持6.5-26V输入,电池电压、12V、5V输出,要获得稳定12V输出时需选用至少4S电池。本项目中使用了24V的DJI经纬M100的TB47D电池。

下图中的电调焊盘与电池焊盘是并联关系,12V或电调输出端可以供给步进电机驱动器使用,5V可供给所有舵机和MCU使用。

模块为两路降压电路并联,当其中一路电路损坏时,电流可能不足以驱动所有舵机,需要更换整个模块。

电源模块

验证实物连线图:

实物连线图

手柄连接

大部分支持Xbox协议的手柄都能通过蓝牙连接ESP32。按照以下步骤配置完MAC地址后ESP32即可自动连接上手柄

替换地址

  1. 用电脑蓝牙连接手柄
  2. 打开设备管理器,找到:蓝牙->Xbox Wireless controller->双击打开->详细信息->属性栏下拉->找到“蓝牙设备地址”->得到地址
  3. 把地址替换到代码对应位置./src/joystick_task.cpp xboxController = XboxSeriesXControllerESP32_asukiaaa::Core("7d:c9:60:ff:0b:62");
查找手柄蓝牙地址

连接到ESP32

把代码烧录到开发板后,首次连接手柄的时候需要让手柄进入配对模式(小鸡启明星是同时长按LOGO键和LOGO键正下方的键,Xbox是长按LOGO键),这时通常指示灯会快闪,等待与ESP32配对成功后指示灯常亮,成功后第二次就可以直接连了。如果手柄在配对模式长时间连接不上,可以按一下开发板的RESET。

系统架构

本程序在软件方面的架构分为三层,底层采用集成FreeRTOS的ESP32 Arduino框架,库依赖采用了三个通过PlatformIO管理的外部库,用于驱动Xbox手柄、步进电机、舵机,顶层的三个任务分别控制机械臂运动、LED指示、摇杆数据处理。

系统架构

任务配置

ESP32是具有两个核心的单片机,可以真正意义上实现双线程并行。FastAccelStepper库可以实现对步进电机的非阻塞式控制,即调用步进电机的运动函数后,代码可以继续向下执行,无需等待步进电机运动到指定位置。实现原理是创建一个RTOS任务,在每次任务运行时对步进电机进行控制,而非在运动函数中直接控制电机运行。Arm Task在调用engine.init(0)初始化时会创建一个名为StepperTask的任务。为确保步进电机平稳运行,将步进电机任务配置在核心0,其它任务配置在核心1。

因步进电机引脚占用了LED引脚,禁用了LED任务的运行。

任务
堆栈大小
优先级
核心
状态
用途
Arm Task
2048
1
1
启用
机械臂运动控制
Joystick Task
4096
1
1
启用
摇杆数据接收和处理
Led Task
1024
1
1
禁用
指示机械臂状态
Stepper Task
2000
25
0
启用
驱动步进电机

共享数据管理架构

系统使用FreeRTOS互斥锁,以协调手柄任务和机械臂控制任务之间线程安全的资源共享。

共享数据管理架构



开源项目介绍:基于ESP32的T站五轴机械臂电控方案

该项目是一个针对T站五轴机械臂(Robotic Arm)的开源电控解决方案,采用 ESP32双核单片机 作为核心控制器,结合 Xbox协议手柄 实现无线操控,并通过 FreeRTOS实时操作系统 实现多任务并行处理。系统支持步进电机驱动、舵机控制、电源管理等功能,适用于教育、科研、DIY机器人开发等场景。


一、核心功能与技术亮点

1. 硬件架构

  • 主控芯片
    :ESP32(双核,240MHz主频,支持Wi-Fi/蓝牙)
    • 利用双核特性实现 任务隔离:核心0负责步进电机控制(高实时性),核心1处理手柄输入和状态指示。
  • 电源管理
    • 采用 250穿越机降压分电板,支持6.5-26V输入,输出12V(驱动步进电机)、5V(驱动舵机和MCU)。
    • 示例使用 DJI经纬M100的TB47D电池(24V),通过分电板降压后供电。
  • 电机驱动
    • 步进电机:通过 FastAccelStepper库 实现非阻塞式控制,支持梯形加减速曲线。
    • 舵机:直接由ESP32的PWM引脚控制(5V供电)。
  • 手柄输入
    • 支持所有兼容Xbox协议的蓝牙手柄(如Xbox Series X/S、小鸡启明星等)。
    • 手柄MAC地址通过代码配置,首次配对后自动连接。

2. 软件架构

  • 操作系统
    :FreeRTOS(集成于ESP32 Arduino框架)
    • Arm Task
      :机械臂运动控制(核心1,优先级1)。
    • Joystick Task
      :摇杆数据接收与处理(核心1,优先级1)。
    • Stepper Task
      :步进电机驱动(核心0,优先级25,确保实时性)。
    • Led Task
      :状态指示(禁用,因引脚冲突)。
    • 实现 多任务并行
  • 线程安全
    • 使用 FreeRTOS互斥锁 保护共享数据(如手柄输入与机械臂控制之间的坐标变量)。
  • 库依赖
    • Xbox手柄驱动
      XboxSeriesXControllerESP32_asukiaaa
    • 步进电机控制
      FastAccelStepper
    • 舵机控制
      :ESP32原生PWM

3. 关键特性

  • 非阻塞式电机控制
    • 步进电机任务通过RTOS定时触发,避免阻塞主程序,提升系统响应速度。
  • 低延迟无线操控
    • Xbox手柄蓝牙连接延迟低于50ms,满足实时控制需求。
  • 模块化设计
    • 电源、电机、手柄、状态指示独立模块化,便于扩展(如增加传感器或视觉模块)。

二、应用场景

1. 教育与研究

  • 机器人教学
    • 高校机器人课程实验平台,学生可学习嵌入式开发、RTOS、电机控制等知识。
  • 科研原型开发
    • 快速验证机械臂运动学算法(如逆运动学解算)、力控策略等。

2. 工业与自动化

  • 轻量化自动化设备
    • 适用于小型分拣、装配、焊接等场景(需替换为工业级电机和电源)。
  • 远程操控
    • 通过Wi-Fi扩展实现手机/PC端监控,结合手柄实现危险环境(如辐射区)的远程作业。

3. DIY与创意开发

  • 开源硬件社区
    • 机械臂爱好者可基于此方案二次开发(如增加机械爪、摄像头模块)。
  • 艺术装置
    • 结合LED灯带、传感器实现交互式机械臂表演(如跟随音乐节奏动作)。

4. 商业产品原型

  • 低成本机械臂控制核心
    • 企业可基于此方案快速开发消费级机械臂(如咖啡拉花机器人、书法机器人)。

三、技术价值与优势

1. 成本效益

  • 硬件成本低
    • ESP32开发板(约5/轴)+ 舵机(约100**(五轴机械臂)。
  • 开源免费
    • 无需购买商业控制器(如Arduino Mega+Ramps板约500+)。

2. 性能对比


指标
本方案(ESP32+FreeRTOS)
传统方案(Arduino单线程)
工业PLC
多任务支持
双核并行,RTOS任务调度
单线程轮询,易阻塞
多核,实时性强
电机控制延迟
<10ms(非阻塞式)
>50ms(阻塞式)
<1ms(硬实时)
扩展性
高(支持Wi-Fi/蓝牙/传感器)
低(仅GPIO)
高(模块化I/O)
开发门槛
中等(需RTOS基础)
低(Arduino生态)
高(需PLC编程)


3. 生态兼容性

  • 手柄支持广泛
    • 兼容所有Xbox协议手柄,避免专有控制器的绑定。
  • 开源社区支持
    • 基于PlatformIO管理依赖,方便跨平台开发(Windows/Linux/macOS)。

四、潜在改进方向

  1. 增加传感器融合
    • 集成IMU、力传感器实现闭环控制,提升定位精度。
  2. 支持ROS
    • 添加ROS节点,实现与机器人操作系统的兼容。
  3. 工业级加固
    • 替换为STM32H7+RTOS(如Azure RTOS),满足-40℃~85℃工作温度。
  4. AI扩展
    • 集成ESP32-S3的AI加速核心,实现视觉识别(如物体抓取点检测)。

五、总结:开源的意义与未来

该项目通过 “低成本硬件+高性能软件” 的组合,降低了机械臂开发的门槛,为教育、科研和DIY社区提供了可定制的电控核心。其价值不仅在于技术实现,更在于:

  • 推动机器人技术普及
    :让更多人能接触并学习机械臂控制;
  • 激发创新应用
    :开源社区的二次开发可能催生新的应用场景(如医疗辅助、农业采摘);
  • 商业转化潜力
    :企业可基于此方案快速推出低成本机械臂产品,抢占消费级市场。

未来展望:随着ESP32-C6(支持Wi-Fi 6/BLE 5.0)和ESP32-H2(支持Matter协议)的发布,该方案可进一步升级为 物联网机械臂控制器,实现多设备协同和云端管理。


机械臂 电控方案

源代码

https://www.gitpp.com/japxin/gen-project088-mini-arm

一个适用于T站五轴机械臂Robotic arm的电控方案。基于ESP32构建,使用支持Xbox协议的控制器通过摇杆控制机械臂。该系统采用 FreeRTOS 任务编排,在 ESP32 的双核架构上协调输入处理、运动控制和状态指示。


本篇文章来源于微信公众号: GitHubFun网站

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容