手势控制机械臂项目概述:
本系统是采用CC3220s与LPC54608制作的手势控制的机械臂系统。可以完成通过简单的手势对机械臂的控制。手势识别指令采用的是MPU6050以及CC3220S自带的BMA222加速度计组合采集的。CC3220S作为手势端,将采集到的角度值进行分析、滤波、修正之后通过蓝牙发送给LPC54608,其中LPC54608作为控制端,与舵机相连,接收手势命令,通过滤波、限幅与消抖之后控制舵机,进而完成机械臂的运动。通信采用蓝牙进行,CC3220S将需要传输的数据进行处理封装、打包,通过串口进行发送,LPC54608将接收到的数据进行解析,防止出错。近实物验证,功能能够实现。
作品实物图:
1. 整体系统图
在这些行图中,包含了整个系统的组成图片(4自由度机械臂,LPC54608,CC3220S,MPU6050,蓝牙模块等)
2. CC3220S
CC3220S采集MPU6050与BMA222的数据,进行转换,封装。然后通过蓝牙模块发送出去,其中用到的模块都有标注,LED灯组用来显示连接状态,绿灯与黄灯表明IIC通信是都正常,在正常情况之下常亮,当IIC拦截不正常时会熄灭。红色的LED用来标志状态(LED说明:此LED有三种闪烁状态,机械臂动作时闪烁周期是1秒,机械手动作时闪烁周期是2秒,空闲阶段闪烁周期是3秒),开关用来进行不同功能的控制转换(开关用途:本来机械臂的机械手是想通过弯曲度传感器来进行识别的,弯曲传感器实际上是一种可变电阻,不同的弯曲度的电阻值不一样,通过采集AD值既可以进行弯曲度的识别了,但是目前在实习,弯曲传感器放在了学校忘带,所以在这里我就采用了mpu6050来才做,然后用图中所示的开关进行模式切换,区别是控制机械臂还是控制机械手)。
3. LPC54608
LPC54608接受来自CC3220S的数据,结果解析出具体角度数据,然后通过各种数据处理将数值转换成舵机控制数据,控制舵机的转动。同时液晶屏会实时显示接收到的数据,方便调试工作。
4. 机械臂
机械臂采用了4自由度的小型机械臂,控制舵机的型号是MG90S(控制力度太小,灵敏度太低,别问我为什么选择这个机械臂,因为no money,想着下学期就要毕业了,提前到公司实习一下,结果这一实习,直接就要吃土了,省吃俭用,靠着蚂蚁花呗才买了一个这个机械臂,没办法呀,自己挖的坑,怎么也得跳进去呀,只能将就着用这个机械臂了。这里还要吐槽一下,组装机械臂花了半天也就算了,调试的时候花了n天,都不好意思说了,力度还小的不行,灵敏度也特差,小范围的值变动根本就不动作)
5. 调试过程图
放上一些在软件调试过程中的一些图片
演示视频:
1. 手势控制端CC3220S组成及介绍
说明:本来这个系统是应该直接待在手上的,但是由于体积有点大,带上之后不好操作,而且我也没有手套。所以我就直接拿着拿着演示了。
2. 机械臂控制端LPC54608组成及介绍
说明:这是LPC54608的控制演示,图中可以看到屏幕显示接收到的数据,只有成功接收后才会显示数据,数据不正确的话是不会读取的,会直接跑跑去不解析。
3. 系统工作演示
说明:这是系统工作时的演示视频。从视频中可以看出机械臂运动的不是很流畅,其实硬件原因占很大一部分,前面已经说过了,买的这个机械臂我也很后悔,但是没办法,这能将就着调试。这个械臂的最大的缺点就是灵敏度太差,所以会出现运动不流畅的现象,其次就是力度太小,稍微受电力就会出现不能运动的现象。当然,说了这么多,具体的原因还是在我自己。
3. 系统工作演示
说明:这个视频看看就行
附件资料截图: