{"code":1,"msg":"成功","time":"1793358169","data":{"title":"舒衡智养 · 自适应多模理疗机械臂——基于兆易创新 GD32H759I-EVAL 主控的下位机实现","content":"# 舒衡智养 · 自适应多模理疗机械臂——基于兆易创新 GD32H759I-EVAL 主控的下位机实现\r\n\r\n一套面向居家康养的 AI 视觉穴位理疗机器人：摄像头看一眼，就能自动找到你身上的穴位，机械臂随即完成仿生推拿点按。下位机以兆易创新 GD32H759I-EVAL（ARM Cortex-M7，600MHz）为主控，结合 RT-Thread 实时操作系统完成多外设并发通信与实时运动控制。本文将分享该项目的功能设计、硬件框架与软件框架。\r\n\r\n## 一、项目概述\r\n\r\n### 1.1 项目简介\r\n\r\n「舒衡智养 · 自适应多模理疗机械臂」是一套面向居家场景的四自由度智能理疗机器人系统，由下位机理疗设备与云端多端应用两部分组成。项目围绕「看得准穴位、按得稳力度、断网也能用、数据留得下」的目标，将嵌入式 AI 视觉、机器人运动控制、物联网通信与云端数据管理相融合，形成「识别—解算—运动—按压—记录」的居家理疗闭环。\r\n\r\n下位机以轻量化桌面机械臂形态呈现，集成 K230 视觉识别（人体姿态识别、骨骼关键点提取、穴位坐标解算）、幻尔总线舵机四自由度机械臂、主控单元、淘晶驰 X2 串口触摸屏、ESP8266 联网通信等功能；上位机包含 Web 网页端、Qt PC 客户端与 Android 移动端，配套 SpringBoot 云端服务，实现理疗方案库管理、自定义穴位方案存储、理疗历史养护档案记录与远程控制。\r\n\r\n系统核心特色在于 **AI 视觉无标记穴位定位**：用户无需粘贴任何标记点，K230 实时识别人体骨骼关键点并解算出内关、天突、中脘、曲池等穴位的三维坐标下发给主控；主控完成逆运动学解算，驱动机械臂运动到穴位位置，模拟真人推拿的力度与韵律执行定点按压，人体小幅移动时还能自适应更新目标点位。\r\n\r\n### 1.2 行业背景与居家理疗痛点\r\n\r\n- **人工理疗门槛高**：专业理疗师人力有限，预约难、价格高、时间受限，难以高频次居家使用。\r\n- **普通按摩设备不智能**：按摩椅、局部按摩仪点位固定，不能识别人体姿态，无法自动对准穴位，也难以适配不同身高、不同坐姿的用户。\r\n- **方案灵活性不足**：设备内置方案固定，用户不能自由编排自定义穴位理疗方案。\r\n- **缺少数据管理**：没有理疗档案，无法记录每次理疗时长与方案选择，居家康养数据无法追溯。\r\n- **控制方式单一**：大多只有实体按键，缺少本地触屏 + 远程网页的多途径操作。\r\n\r\n## 二、功能介绍\r\n\r\n### 2.1 AI 视觉识别与穴位定位\r\n\r\n- **人体姿态识别**：K230 运行轻量化人体关键点检测模型，实时输出人体肩、肘、腕、胯等 17 组骨骼关键点坐标。\r\n- **无标记穴位解算**：根据中医穴位相对骨骼关键点的偏移关系，自动推算内关、天突、章门、中脘、曲池、神阙等穴位的三维空间坐标，自动矫正站姿偏差。\r\n- **动态跟随**：人体微动时实时刷新穴位坐标并下发主控，解决理疗过程中的穴位偏移问题。\r\n\r\n### 2.2 机械臂智能理疗控制\r\n\r\n- **逆运动学解算**：主控接收穴位 X\/Y\/Z 坐标，逆解出 4 个关节舵机的目标角度，经安全限位过滤后驱动机械臂精准到位。\r\n- **仿生按摩输出**：幻尔总线舵机精细控制运动速度与往复节奏，支持穴位 8 秒定点按压、多穴位循环点按，模拟真人推拿韵律。\r\n- **全流程自动闭环**：复位对位 → 视觉定点 → 姿态调节 → 穴位按压 → 复位收尾，全程无人干预；无效坐标、逆解无解时自动跳过并执行下一穴位。\r\n\r\n### 2.3 本地 + 远程双通路交互\r\n\r\n- **本地脱机通路**：淘晶驰 X2 触摸屏直接下发指令，模式切换、预设方案选择、自定义穴位编排、启动\/暂停\/复位、状态回显，断网也能完整完成理疗流程。\r\n- **云端网络通路**：用户在 Web 网页选择理疗方案，指令经云服务器、ESP8266 下发给主控执行；设备状态、理疗记录实时回传云端。两套通路互相备份，设备忙时自动屏蔽重复指令。\r\n\r\n### 2.4 云端康养数据管理\r\n\r\n- **理疗方案库**：内置多套针对肩颈、关节、脾胃养护的中医配伍方案，用户可自由勾选穴位生成自定义方案并云端保存。\r\n- **养护档案**：云端完整记录每次理疗的时间、方案与时长，历史记录随时查询导出。\r\n- **AI 智能问诊**：Web 端接入 DeepSeek 大模型，SSE 流式输出问诊内容并自动生成结构化理疗方案（仅作居家康养参考）。\r\n- **多端协同**：Web 网页、Qt PC 客户端、Android 移动端三端数据同步，随时随地查看设备状态、管理理疗方案。\r\n\r\n### 2.5 安全防护机制\r\n\r\n- 软件角度限位：舵机最大\/最小角度硬限位，超出安全范围拒绝执行；\r\n- 参数校验：非法坐标与非法参数直接拦截；\r\n- 状态机管理：待机、运行、暂停状态严格区分，触屏与网页端均配置紧急停止入口。\r\n\r\n## 三、硬件框架\r\n\r\n### 3.1 系统硬件框架图\r\n\r\n系统硬件按「云端应用层—通信层—主控与计算层—感知层—执行层」五层组织，主控为兆易创新 GD32H759I-EVAL 评估板，整体框架如下图所示。\r\n\r\n\r\n![screenshot_系统硬件框架图.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261014\/babc791eb2c5c0f484765991b78a310d.png.webp)\r\n\r\n### 3.2 硬件选型\r\n\r\n| 模块    | 选型                                        | 主要接口                                    | 功能作用                          |\r\n| ----- | ----------------------------------------- | --------------------------------------- | ----------------------------- |\r\n| 主控    | 兆易创新 GD32H759I-EVAL（ARM Cortex-M7，600MHz） | 多路 USART \/ I2C \/ SPI \/ GPIO \/ TIM \/ DMA | 多外设调度、协议解析、逆运动学解算与机械臂运动控制     |\r\n| 视觉模块  | 幻尔 CanMV K230 视觉开发板                       | UART \/ MIPI-CSI                         | 人体姿态识别、骨骼关键点提取、穴位三维坐标解算       |\r\n| 执行机构  | 幻尔 LX 系列总线舵机（HTS35H）×4 + 总线舵机控制板          | UART 总线（115200）                         | 四自由度机械臂，完成仿生推拿按压动作            |\r\n| 人机交互屏 | 淘晶驰（TJC）X2 串口触摸屏                          | UART                                    | 本地理疗方案选择、启停复位、状态回显            |\r\n| 联网模块  | ESP8266（ESP-01S）WiFi 模块                   | UART                                    | 串口透传，对接云端 MQTT \/ WebSocket 通信 |\r\n| 摄像头   | GC2093 200W 摄像头（接 K230）                   | MIPI-CSI                                | 1080P 图像采集                    |\r\n| 电源    | 12V 直流电源模块                                | 电源                                      | 舵机、主控与各模块供电及电压转换              |\r\n| 结构件   | 四自由度机械臂支架 + 自制底座                          | —                                       | 整机装配与桌面固定                     |\r\n\r\n### 3.3 主控接口分配\r\n\r\n| 接口        | 连接对象            | 说明                         |\r\n| --------- | --------------- | -------------------------- |\r\n| USART1    | K230 视觉模块       | 接收穴位三维坐标与识别状态数据包           |\r\n| USART2    | ESP8266 WiFi 模块 | 云端指令下发与设备状态、理疗记录上报         |\r\n| USART3    | 幻尔总线舵机控制板       | 下发四路舵机目标角度与运动参数，波特率 115200 |\r\n| USART4    | 淘晶驰 X2 串口屏      | 双向交互：接收触屏指令，回显设备运行状态       |\r\n| TIM \/ PWM | 预留（热敷、振动等扩展模块）  | 后续多模理疗功能扩展                 |\r\n| GPIO      | 预留（急停按键、压力传感器）  | 后续按摩力度闭环反馈迭代               |\r\n\r\n说明：上表为基础分配方案，实际引脚可按硬件布线调整；GD32H759I-EVAL 为 3.3V 逻辑电平，与外设连接时需注意电平匹配与共地，总线舵机由 12V 独立电源供电。四路外设各占一路硬件 USART，高波特率下的通信稳定性明显优于软件串口方案。\r\n\r\n### 3.4 主控实现要点\r\n\r\n- **算力与外设**：600MHz 主频配合 Cortex-M7 硬件 FPU，逆运动学浮点解算耗时大幅缩短，机械臂运动刷新率与动作细腻度明显提升；多路 USART、定时器与 DMA 资源丰富，可轻松承载四路外设并发通信与实时运动控制。\r\n- **电平与供电**：主控为 3.3V 逻辑，需确认外设电平兼容性；总线舵机等大电流部件由 12V 独立电源供电并共地。\r\n- **开发方式**：基于 GD32 官方固件库（Keil MDK 环境）开发，并引入 RT-Thread 实时操作系统进行多线程任务调度，配合 finsh\/msh 命令行组件，调试效率大幅提升。\r\n- **协议与模块解耦**：主控与 K230、串口屏、舵机控制板之间采用统一的串口帧格式，与云端之间采用统一的 JSON 报文与 MQTT 主题，各模块职责清晰，可独立替换与迭代。\r\n- **后续扩展**：评估板自带 TFT-LCD 控制器、CAN-FD 等外设资源，为后续接入压力传感器实现力度闭环、增加本地显示或其他传感器预留空间。\r\n\r\n## 四、软件框架说明\r\n\r\n### 4.1 总体软件架构\r\n\r\n系统软件分为下位机主控固件、视觉端程序、云端后端与多端应用四部分，整体采用分层设计：\r\n\r\n- **应用层**：理疗流程状态机（复位、预备、运动、按压、结束）、按摩动作时序编排、方案解析与执行、设备状态上报。\r\n- **业务与协议层**：串口帧协议解析（帧头 + 长度 + 命令字 + 数据域 + 校验）、穴位坐标处理、逆运动学解算与角度限位过滤、MQTT\/JSON 消息封装。\r\n- **驱动与系统层**：GD32 固件库外设驱动（USART、TIM、GPIO、DMA），RT-Thread 内核提供线程调度、信号量、消息队列与软件定时器。\r\n- **视觉端**：K230 上基于 CanMV（MicroPython）运行人体关键点检测模型，输出穴位三维坐标，经串口封装下发主控。\r\n- **云端与多端**：SpringBoot 后端 + MySQL + Redis + MQTT\/WebSocket 消息服务；UniApp + Vue3 Web 端、Qt\/C++ PC 客户端、Android 移动端。\r\n\r\n### 4.2 主控软件任务划分（RT-Thread 线程模型）\r\n\r\n| 线程     | 运行周期 \/ 触发方式   | 主要职责                                     |\r\n| ------ | ------------- | ---------------------------------------- |\r\n| 视觉通信线程 | 信号量触发（串口中断释放） | 接收并解析 K230 上报的穴位坐标数据包，写入坐标消息队列           |\r\n| 运动控制线程 | 20ms          | 读取目标坐标，逆运动学解算、限位过滤，驱动状态机并下发舵机角度          |\r\n| 屏交互线程  | 50ms          | 处理触屏指令（方案选择、启停、复位），回显设备状态与执行进度           |\r\n| 网络通信线程 | 事件触发          | ESP8266 透传数据收发，解析云端 JSON 指令，封装上报 MQTT 消息 |\r\n| 监护日志线程 | 500ms         | 监测设备运行状态，记录穴位执行日志，异常状态拦截与告警              |\r\n\r\n线程间通过消息队列传递坐标与指令、信号量同步串口收发，相比裸机大循环 + 非阻塞状态机的调度方式，任务边界更清晰，后续接入压力传感器只需新增一个采集线程，不影响既有逻辑。\r\n\r\n```c\r\n\/* RT-Thread 线程创建示例 *\/\r\nrt_thread_t tid_motion = rt_thread_create(\"motion\",\r\n                          motion_thread_entry, RT_NULL,\r\n                          2048, 10, 10);   \/* 运动控制：高优先级 *\/\r\nrt_thread_startup(tid_motion);\r\n```\r\n\r\n### 4.3 数据与通信协议\r\n\r\n- **串口帧格式**：帧头 + 数据长度 + 命令字 + 数据域 + 校验和 + 帧尾，多设备通信抗干扰、可检错；异常残缺数据包直接丢弃不解析。\r\n- **云端指令**：JSON 报文承载穴位 ID 序列及模式、温度、力度参数，如 `{\"xw1\":21,\"xw2\":22,\"xw3\":23,\"xw4\":24}`。\r\n- **MQTT 主题**：`arduino\/Servo\/control`（方案下发）、`device\/+\/status`（设备状态）、`device\/+\/event`（理疗完成、故障、上下线事件）。\r\n- **断网兜底**：ESP8266 自动重连；网络断开后设备无缝切换到本地触屏模式，本地理疗功能完全不受影响。\r\n\r\n### 4.4 云端与多端应用\r\n\r\n后端基于 Spring Boot + MyBatis-Plus + MySQL + Redis，提供用户与设备管理、理疗方案与养护档案接口，通过 MQTT 与设备双向通信，经 WebSocket 向前端实时推送设备状态；AI 问诊模块调用 DeepSeek 大模型，SSE 流式生成结构化理疗方案。Web 端基于 UniApp + Vue3 + Vite 开发，集成 Three.js 实现 3D 人体穴位模型预览、uCharts 实现理疗数据可视化；Qt\/C++ PC 客户端负责设备监控、参数配置与整机调试运维。\r\n\r\n## 五、演示视频\r\n\r\n【舒衡智养演示视频】https:\/\/www.bilibili.com\/video\/BV16ip16REbF?vd_source=cf1d073adaa534077cab411f219acc28\r\n\r\n## 六、结语\r\n\r\n从「固定点位振动」到「AI 视觉自适应穴位理疗」，我们希望用一双「AI 的眼睛」和一条「柔性的机械臂」，把专业理疗师从重复劳动中解放出来，让传统中医穴位理疗走进普通家庭。本次主控迁移到 GD32H759I-EVAL 并引入 RT-Thread 后，系统的实时性、稳定性与可扩展性都上了一个台阶。后续我们将接入压力传感器实现按摩力度闭环，继续优化识别精度与运动手感，让设备真正经得起居家场景的检验。","updatetime":"2026-10-19 13:40:57","author":"ZL8157"}}