基于手势识别的小车运动控制系统设计

2023-02-28 22:01李芊均胡立夫冉兴强吴佳铭
电子产品世界 2023年2期
关键词:手势识别PID控制无线通信

李芊均 胡立夫 冉兴强 吴佳铭

摘 要:设计了一种基于手势识别的小车运动控制系统,该系统采用Arduino Nano作为微控制器,利用姿态角度传感器采集并处理手势指令数据,实现手势信息的识别,通过无线通信模块将手势指令发送给小车运动端,目标角度与实际角度等通过显示屏实时显示,最终达到手势控制小车前进、后退、转弯、停止等动作。本文完成了基于手势识别的小车运动控制系统的软硬件设计,将手势识别技术与移动机器人结合一体,在疫情环境下无接触运动控制方向研究具有实用意义。

关键词:手势识别;无线通信;PID控制

手势是人类社会长期存在的重要肢体语言。它具有简单、直接、高效、清晰,内容丰富的特点,手势识别是指跟踪人类手势并识别其表示含义的整个过程。静态手势识别实现运动控制的研究目的是在不直接触摸设备的情况下使用的手势的位置信息识别作为输入[1],并将命令映射到输出。

本文设计的基于手势识别的小车运动控制系统,用户佩戴传感器装置,传感器将人与机器进行连接,传感器通过对数据进行采集,得到角度等相关数据信息,然后将信息传递给单片机,单片机内部对传感器传输过来的数据进行分析处理,最终得到用户指令并实现运动控制。与语音识别、触摸屏识别、键盘和鼠标等其他人机交互技术相比,人机距离限制小,语言独立等优点。在应用层面,手势识别小车的发展可以使人机交互更加精确、稳定,范围更广,有利于推广应用。

1 系统总体方案设计

该系统的总体结构分为两部分:手部控制端和小车运动端,由五大模块构成:单片机最小系统、传感器模块、无线通信模块、显示模块和电机驱动模块。软件设计主要包括:手部控制程序设计和小车运动程序设计。系统总体方案设计框图如图1所示。

手部端传感器采集不同手势的各轴的角度数据,传感器将数据返回给单片机最小系统,由单片机对数据信息进行滤波处理,辨别指令信息,并且通过无线通信模块传输给小车端。小车端传感器采集车体姿态的各轴的角度数据,传感器将数据传输回单片机的同时无线通信模块接收手部控制端的指令信息,单片机将两部分信息对比处理,对误差运用经典PID算法处理,并将处理结果反馈给电机驱动模块,调整小车左右电机PWM,目的是使小车按照手势指令行驶并且行驶稳定,显示模块显示小车行驶的目标角度和实际角度。

2 硬件电路设计

2.1 单片机最小系统

本设计中在手部控制端和小车运动端均采用Arduino Nano作为主控芯片,其处理器核心是ATmega328(Nano3.0),同时具有14路数字输入/输出口,8路模拟输入[2],ATmega328具有32个引脚,由于引脚数量有限,所以很多功能都共同使用一个引脚,具体功能可以通过软件编程实现。这款单片机便捷灵活、方便上手,具有丰富的接口,适用于本系统。Arduino Nano电路原理图如图2所示。

2.2 姿态角度传感器

本设计中采用姿态角度传感器JY61采集手势指令信息和小车姿态信息,处理器以高精度陀螺仪MPU6050为核心,读取MPU6050的测量数据,通过串口输出[3]JY61模块工作电压3.3 V/5 V,测量数据包括三维角度、三维加速度和三维角速度数据,其角度数据在X轴和Z轴的测量范围是±180°,Y轴的测量范围是±90°,动态测量精度为0.1°,静态测量精度为0.05°。

2.3 蓝牙模块

本设计中采用蓝牙模块HC05实现手部控制端和小车运动端的数据通讯。HC05是一款主从一体式串口蓝牙模块,使用方便快捷,配对后只需要当成固定波特率的串口一样使用即可,因此只要是以“固定波特率,8位数据位,无奇偶校检”通信格式的串口设备都可以直接取代原来的有线串口而不需要修改程序。HC05蓝牙模块电路原理图3如图所示。

2.4 显示模块

本设计中使用LCD1602显示屏显示目标角度(手部控制姿态)和当前角度(小车运动姿态),可以實时地观测小车行进中的角度变化。本设计中采用LCD1602的IIC驱动方式,通过IIC适配器板实现IIC接口,只采用两个IO端口用于驱动LCD1602,适配器板的SDA、SCL分别连接到开发板A4和A5。LCD1602电路原理如图4所示。

2.5 电机驱动模块

本设计中使用L298N电机驱动模块控制小车电机的正反转和行驶速度。L298N电机驱动模块拥有发热小,无需散热片、体积小、省电,温度下降后自动恢复的优点。电机A输出口对应IN1和IN2控制1个电机的旋转,电机B输出口对应IN3和IN4控制另1个电机的转动,其操作简单,稳定性好,能满足直流电机大电流的驱动条件[4]。

3 软件设计

3.1 手部控制程序设计

根据不同手势姿态其各轴角度不同,进行数据处理做出判断后发送至小车端,最终小车依照手势指令实现前进、后退、转弯、停止等行驶状态。角度数据内容如表1所示。

确定前进、停止、后退状态:确定前进、后退、停止行驶状态的手势指令信息,需要对X轴角度进行判断。行驶状态手势指令信息表如表3所示。

3.2 小车运动程序设计

小车运动程序主要实现内容:上电后系统初始化,进入循环程序,行进过程中设定小车左右电机的PWM均为80,采用位置式PID算法减小扰动和误差,将PID运算结果PID_out加在右侧电机PWM,实现小车沿直线行驶和准确转弯。若蓝牙模块未接收到字符“0”,则手势指令无效,小车静止。小车运动端程序流程图如图6所示。

在本设计中,基于手势识别的小车运动控制系统要实现沿直线行驶和准确转弯,首选简单高效的PID控制算法,以保证控制系统快速到达并稳定于目标值[5]。PID控制算法公式为:

本设计中小车沿直线行驶时先给左右电机相同的PWM,在行进过程中由于误差和扰动肯定会走偏,此时传感器采集各轴角度,采用位置式PID算法控制的目的就是使小车转到目标角度并沿目标角度走直线,控制方法是将PID运算结果PID_out加在右侧电机PWM。小车运动状态控制策略如表4所示。

4 系统测试

经过硬件和软件的联合调试,基于手势识别的小车运动控制系统实现了以下功能:手部控制端可以识别不同的手势指令,手部端与小车端能进行数据传输、小车接收手势指令后可以实现前进、后退、停止、转弯等不同行驶状态,显示屏可以显示目标角度和实际角度。测试结果表明,基于手势识别的小车运动控制系统可以准确、稳定地运行,证明了该系统的可行性和识别算法的有效性。系统调试结果如图7所示。

5 结束语

随着科技的进步与社会的发展,人类生活趋于智能化,智能识别技术与智能机器人一定是未来研究的热门课题,基于手势识别的小车运动控制系统将手势识别技术与移步机器人结合为一体,高效地实现了人与小车的交互控制,同时因其智能、安全、工作效率高等特点,有效节约了人力资源,可以在很多场合中得到应用。身处于疫情时期,采用无接触模式实现手势控制小车帮助人们安全、高效地完成一些工作,具有一定的實际意义,做到了真正方便人们的生活,具有广阔的市场前景与实用意义。

参考文献:

[1] 孙亚星,黄帅铭,王宇鹏,等.基于电容传感器的手势识别系统设计[J].自动化仪表,2020,41(2):10-19.

[2] 倪文彬,毛耀,陆广华.基于Arduino的体感机械手设计[J].机床与液压,2017,45(23):5-9.

[3] 张金山.四足步行机器人的3-5R并联腿机构设计与步态规划[D].济南:山东大学,2019.

[4] 杨小博,胡强,苏玉香.基于STC12C5A60S2的循迹避障智能小车的设计[J].福建电脑,2017,33(11):19-20.

[5] 候帅.多自由度机器人搬运平台调平控制系统研究[D].西安:长安大学,2017.

猜你喜欢
手势识别PID控制无线通信
基于手势识别的工业机器人操作控制方法
内模控制在火电厂主汽温系统中的应用
无线通信技术在测绘工程中的应用分析
常规PID控制和常规模糊控制的比较