树莓派3轮椅控制系统设计

基于树莓派3的模拟摇杆和语音控制轮椅系统设计

摘要

本研究设计了一种结合两种控制方式的电动轮椅:模拟摇杆和语音控制。使用 IC MCP3008通过操纵杆来控制轮椅的移动,其中模拟摇杆的数据将被转换为数字数据。
模拟摇杆在x轴(水平方向)上的移动对应左转和右转,在y轴(垂直方向)上的移动对应前进和向后。用户设定的y轴和x轴上的移动会影响轮椅的速度。同时,安卓平台上的 AMR‐Voice应用程序用于通过声音控制轮椅。该语音控制包含五个命令:“前进”、 “向后”、“左”、“右”、“停止”。这些命令将通过HC‐06模块发送至树莓派3, 并由其识别相应指令。若语音命令被正确接收,树莓派3将向电机驱动器发出激活信号, 使轮椅按照用户给出的指令方向移动。对轮椅的语音控制测试分别在安静房间和嘈杂房间中进行。测试结果表明,轮椅通过语音控制的精度和响应速度高度依赖于互联网连接和房间环境条件。当房间环境安静时,平均响应时间为0.16秒;而在嘈杂环境中,平均响应时间为5.18秒。所研制的带有摇杆控制和语音控制功能的轮椅可用于残疾人,无论其是否具备手指活动能力,且成本较低,可作为发展中国家的一种替代方案。

1. 引言

瘫痪是一个需要使用轮椅的主要问题。这种工具的实用性通常被视为对瘫痪患者的辅助措施。
为这些患者提供轮椅援助已得到广泛认可,可为瘫痪患者提供适当的康复治疗。轮椅的巨大益处能够帮助患者进行日常活动。然而,目前的轮椅通常仍需他人推动才能使用。但在某些情况下,残疾人必须能够独立移动他们的轮椅。在印度尼西亚,由于残疾人数众多,轮椅需求较大。
根据2017年萨克纳斯调查机构的数据,印度尼西亚的残疾人数量达到2100万。目前,轮椅仍普遍采用手动方式使用。
即需要他人的帮助。从心理上来说,残障人士并不希望麻烦周围的人。目前已有大量轮椅的开发研究,其中一项是利用STM32F103C6T6(STM32)模块[1]实现语音控制的轮椅。在另一项研究中,基于脑信号的轮椅通过多种脑电信号处理方法被开发出来[2],[3],[4]。本研究开发了一种使用模拟摇杆和语音控制的轮椅控制系统。在摇杆控制模式下可进行速度设置。由于所用组件成本相对较低,有望为印度尼西亚等发展中国家提供具备特殊控制功能的轮椅解决方案。

2. 方法论

A. 树莓 Pi 3

树莓派3拥有1GB内存,其博通VideoCore IV图形处理器的运行频率高于以往,达到 250MHz。树莓派3上配有40针或26针的通用输入输出(GPIO)接口。在通用输入输出(GPIO)接口上,通常连接传感器或用于驱动继电器。通用输入输出(GPIO)可作为树莓派与外部设备通信的替代方式,功能类似于USB端口或以太网接口。通用输入输出(GPIO)引脚包括:
1. 电源(3.3 V 和 5 V,各2组)
2. UART(通用异步收发器(UART),1组)
3. SPI(串行外设接口(SPI))
4. I2C(集成电路总线(I2C))—电可擦可编程只读存储器 (EEPROM)
5. GPIO(通用输入输出(GPIO))

示意图0

B. 模拟摇杆

模拟摇杆由两个电位器组成,一个用于垂直移动(y轴),另一个用于水平移动(x轴)。
该操纵杆还带有选择开关。当操纵杆处于未移动位置时,X轴和Y轴输出为2.5V。调整操纵杆的方向将导致输出根据移动方向在0V到5V之间变化。

示意图1

配置引脚:
1. GND :接地
2. 5V :5V直流
3. VRx :X轴比例电压
4. VRy :Y轴比例电压
5. SW :开关按钮

C. IC MCP3008

该IC MCP3008是一款10位模数(A/D0转换器)器件。它具有4对伪差分输入或8个单端输入。差分非线性(DNL)和积分非线性(INL)在± 1 LSB时确定。与该器件的通信通过兼容SPI协议的简单串行接口进行。IC MCP30008的转换速率高达200 ksps。
MCP3004/3008器件的工作电压范围宽(2.7 V‐5.5 V)。

示意图2

D. AMR语音控制

AMR‐Voice 是一款可在谷歌Play商店获取的安卓应用。当用户无法通过安卓设备上的触摸键盘输入时,可通过说出一句话来替代,随后谷歌语音将分析所采集的声音。因此,该开发的语音控制功能在使用时需要互联网连接。

示意图3

E. HC-06蓝牙模块

蓝牙是一种基于无线电频率的无线数据通信方式。该蓝牙模块正在取代使用电缆的串行通信。蓝牙包含两种类型的设备,即主设备(数据发送方)和从设备(接收方)。

示意图4

蓝牙模块配对连接后即可进行通信。通过蓝牙的连接为串行通信,即存在TXD通信引脚和RXD通信引脚。

F. 系统框图

所使用的两种控制方式将被集成到一个能够控制轮椅行驶方向的系统中。图6是使用操纵杆和语音控制的轮椅控制框图。而图7展示了使用操纵杆的控制系统流程图。

示意图5

模拟操纵杆产生模拟数据,这些数据将被转换为模数转换器(ADC)的数字数据。图7显示,要使轮椅前进,用户必须移动模拟摇杆的y轴,直到其值大于600。用户可以通过增大y轴的值来提高轮椅的速度。

模拟操纵杆 ADC
ADC
ADC
AMR‐Voice HC‐06
HC‐06
树莓派3
树莓派3
树莓派3
树莓派3
树莓派3
驱动器A 驱动器B 电机B
电机A

将模拟摇杆的y轴向上移动,最大值可达1024。对于后退运动,用户必须将模拟摇杆的y轴移动至数值小于470的位置。后退速度也可以通过将模拟摇杆的y轴向下移动,最大值为0来进行调节。与前进和后退运动类似,对于右转操作,用户必须将模拟摇杆的x轴移动至数值大于600的位置。用户可以通过将模拟操纵杆的x轴移动至最大值10‐24来提高轮椅的速度。对于左转运动,用户必须将模拟摇杆的x轴移动至数值小于470的位置。左转速度也可以通过将模拟摇杆的x轴移动至最大值0来设定。

示意图6

3. 结果与讨论

A. 使用模拟摇杆的轮椅控制测试

表1. 电机移动

此测试旨在确定操纵杆输出值对两个轮椅电机移动的精度,以表征轮椅移动的方向。
测试时,若轮椅使用模拟摇杆向左转动,则用户必须将模拟操纵杆向左偏移,使x轴上的角度变为< 470和>= 0,此时电机2(M2)顺时针(CW)移动,而电机1(M1)处于停止状态。反之,若轮椅向右移动,则用户必须将模拟操纵杆向右偏移,使x轴上的角度变为> 600和<= 1024,此时电机1(M1)顺时针(CW)旋转,而电机2(M2)处于停止状态。对于后退运动,用户必须将模拟操纵杆向后移动,使y轴上的角度变为< 470和 >= 0,此时两个电机均逆时针(CCW)移动;而对于前进运动,用户必须推动模拟摇杆向前推动,使y轴的角度变为> 600和<= 1024,则电机将顺时针(CW)转动。

编号 操纵杆输出ADC值 移动方向 x轴 y轴 电机1 电机2
1 < 470 >= 0 Left - Stop CW
2 > 600 和 <= 1024 Right CW Stop -
3 - 向后 < 470 >= 0 CCW CCW
4 - 前进 > 600 和 <= 1024 CW CW

表2. 移动方向和速度

表2中的测试旨在验证操纵杆输出数据与轮椅电机运动方向和速度的匹配程度。测试结果表明,每个模拟摇杆的输出数据对移动方向和轮椅电机速度都具有精确的精度。

操纵杆 ADC 输出 移动方向(基于 XY 轴输入) 轮椅移动方向 PWM占空比周期 (%) Speed Mode 精确度 (%)
x轴 y轴
498 690 前进 前进 49 50% 正常
495 887 前进 前进 100 100% Fast
495 388 向后 向后 49 50% 正常
497 0 向后 向后 100 100% Fast
700 510 右转 右转 49 50% 正常
910 509 右转 右转 100 100% Fast
382 510 左转 左转 49 50% 正常
99 512 左转 左转 100 100% Fast

B. 使用语音控制的轮椅控制测试

用户说出的语音命令由AMR‐Voice接收,然后通过HC‐06模块将命令发送至树莓派3,随后执行该命令。如果条件合适,轮椅将根据给定的命令移动;如果不合适,轮椅将不会对命令做出响应。表3是AMR‐Voice在两种条件下测得的响应时间,即“安静”条件和“嘈杂”的环境条件。

从表3可以看出,AMRVoice应用程序的响应时间在安静和嘈杂条件下有所不同,其中“安静”条件下的响应时间将优于“嘈杂”条件。这也会影响轮椅运动的响应。

表3. 轮椅运动在“嘈杂”和“安静”条件下的比较结果数据

是否用户输入 Raspberry Data 响应时间(秒) 轮椅移动 “嘈杂”状态 “安静”状态
1 前进 *前进# 4.12 0.12 前进
2 向后 *后退# 6.03 0.20 向后
3 *右转# 4.60 0.19
4 Left *左转# 5.02 0.15 Left
5 Stop *停止# 6.15 0.18 Stop

4. 结论

本研究旨在为肢体受限或无法使用手指的残疾人设计一种低成本且易于使用的轮椅控制系统。该轮椅通过操纵杆和语音控制,能够成功地将轮椅移动至预期方向。操纵杆控制适用于仍能使用双手移动操纵杆的用户,而语音控制则适用于无法用手指推动或操控操纵杆的用户。在具有良好的互联网连接的安静噪声环境下,语音控制具有非常好的响应时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值