使用STM32设计动作捕捉手套

简介:基于stm32F103c8t6单片机为主控,以MPU6050作为主要传感器的动作捕捉手套设计,能与电脑上基于UNITY3D软件开发的上位机进行通信,在上位机上实时显示手套状态。

一、需求分析

  • 制作一个动作捕捉手套,要求每个手指至少实现两个关节的识别,并且能通过上位机显示对应3d模型。
  • 人手指的结构相对比较复杂,由多个关节组成,因此需要在手上的关键位置布置若多个传感器,采集每个手指和关节的运动信息。
  • 我们可以把手看做是一个多个向量首尾相连的模型。

二、方案论证

方案一:基于stm32为主控,采用多个弯曲传感器。

  • 采用多个弯曲传感器,采集手指节之间的弯曲程度,换算成指节间的相对角度(即上图的β角)。
  • 优点:程序与电路设计方便。
  • 缺点:弯曲传感器昂贵,做成一个手套价格太高。一个弯曲传感器只能识别一个旋转轴的旋转,手的部分关节可以有两个方向的转动,这部分的转动需要增加弯曲传感器来识别。

方案二:基于stm32为主控,采用多个MPU6050传感器。

  • 采用多个MPU6050,采集每个手指节与世界坐标下的夹角,通过换算和数据处理还原出手的运动模型。
  • 优点:每个MPU6050可以识别三个旋转轴上的角度变化,因此能够更准确的反应手的运动,成本相对采用弯曲传感器低。
  • 缺点:电路板数量多,布线存在一些困难,程序设计相对其他两个方案稍复杂。

方案三:基于stm32为主控,采用多个电位器识别手指角度:

  • 多个电位器与手指关节联动,通过ADC获取分压数值再换算成角度还原手的运动模型。
  • 优点:价格低廉,电路简单,程序设计简单
  • 缺点:手套设计结构复杂,容易损坏。

通过综合考虑,采用方案二作为传感器方案。其他功能实现方案如下:

1、无线通信:采用蓝牙串口模块实现单片机与PC的通信,方便快捷。

2、PC端使用unity3d开发一个上位机,PC端调用串口的API获取单片机数据,然后在反应到模型上。

三、调试与测试结果

方案设计完善后进行实际制作。

  • 第一步:先焊接单片机主控板并对其硬件电路进行测试,测试各个模块电压是否正常,升降压芯片,电源管理芯片等是否正常工作。测试结果正常。
  • 第二步:对单片机烧写简单例程,测试单片机能否正常工作,测试结果正常。
  • 第三步:使用单片机读取主控板上的MPU6050测试其是否正常工作,测试结果正常。
  • 第四步:焊接各个手指上的MPU6050小模块,硬件测试有无短路断路,测试能否使用单片机正常与其通信,所有MPU6050全部测试正常。
  • 第五步:测试与配置蓝牙通讯芯片,测试正常。

至此,所有硬件测试完成,进入软件调试环节。

  • 第一步:读取所有MPU6050模块的数据,打包通过蓝牙发送到PC上位机。
  • 第二步:PC上位机使用Unity3D编写程序,调用.NET框架提供的串口API读取数据并解析,将数据映射到3D模型上。
  • 第三步:优化程序。

最后将电路板装配到手套上,完成设计。

最后测试结果为:上位机能识别手套五个手指上两个关节的运动,以及前臂与手掌在空间的运动,带有静止校准功能。手套通过无线传输数据,带有电源管理能进行充放电。

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向明月和赵沟渠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值