《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 人工智能 > 業(yè)界動(dòng)態(tài) > 基于手勢(shì)識(shí)別的小車運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)

基于手勢(shì)識(shí)別的小車運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)

2023-02-23
來源:電子產(chǎn)品世界

手勢(shì)是人類社會(huì)長(zhǎng)期存在的重要肢體語言。它具有簡(jiǎn)單、直接、高效、清晰,內(nèi)容豐富的特點(diǎn),手勢(shì)識(shí)別是指跟蹤人類手勢(shì)并識(shí)別其表示含義的整個(gè)過程。靜態(tài)手勢(shì)識(shí)別實(shí)現(xiàn)運(yùn)動(dòng)控制的研究目的是在不直接觸摸設(shè)備的情況下使用的手勢(shì)的位置信息識(shí)別作為輸入[1],并將命令映射到輸出。

本文引用地址:http://www.eepw.com.cn/article/202302/443617.htm

本文設(shè)計(jì)的基于手勢(shì)識(shí)別的小車運(yùn)動(dòng)控制系統(tǒng),用戶佩戴傳感器裝置,傳感器將人與機(jī)器進(jìn)行連接,傳感器通過對(duì)數(shù)據(jù)進(jìn)行采集,得到角度等相關(guān)數(shù)據(jù)信息,然后將信息傳遞給單片機(jī),單片機(jī)內(nèi)部對(duì)傳感器傳輸過來的數(shù)據(jù)進(jìn)行分析處理,最終得到用戶指令并實(shí)現(xiàn)運(yùn)動(dòng)控制。與語音識(shí)別、觸摸屏識(shí)別、鍵盤和鼠標(biāo)等其他人機(jī)交互技術(shù)相比,人機(jī)距離限制小,語言獨(dú)立等優(yōu)點(diǎn)。在應(yīng)用層面,手勢(shì)識(shí)別小車的發(fā)展可以使人機(jī)交互更加精確、穩(wěn)定,范圍更廣,有利于推廣應(yīng)用。

圖1 系統(tǒng)總體方案設(shè)計(jì)框圖

1   系統(tǒng)總體方案設(shè)計(jì)

該系統(tǒng)的總體結(jié)構(gòu)分為兩部分:手部控制端和小車運(yùn)動(dòng)端,由五大模塊構(gòu)成:?jiǎn)纹瑱C(jī)最小系統(tǒng)、傳感器模塊、無線通信模塊、顯示模塊和電機(jī)驅(qū)動(dòng)模塊。軟件設(shè)計(jì)主要包括:手部控制程序設(shè)計(jì)和小車運(yùn)動(dòng)程序設(shè)計(jì)。系統(tǒng)總體方案設(shè)計(jì)框圖如圖1 所示。

手部端傳感器采集不同手勢(shì)的各軸的角度數(shù)據(jù),傳感器將數(shù)據(jù)返回給單片機(jī)最小系統(tǒng),由單片機(jī)對(duì)數(shù)據(jù)信息進(jìn)行濾波處理,辨別指令信息,并且通過無線通信模塊傳輸給小車端。小車端傳感器采集車體姿態(tài)的各軸的角度數(shù)據(jù),傳感器將數(shù)據(jù)傳輸回單片機(jī)的同時(shí)無線通信模塊接收手部控制端的指令信息,單片機(jī)將兩部分信息對(duì)比處理,對(duì)誤差運(yùn)用經(jīng)典PID 算法處理,并將處理結(jié)果反饋給電機(jī)驅(qū)動(dòng)模塊,調(diào)整小車左右電機(jī)PWM,目的是使小車按照手勢(shì)指令行駛并且行駛穩(wěn)定,顯示模塊顯示小車行駛的目標(biāo)角度和實(shí)際角度。

圖2 Arduino Nano電路原理圖

2   硬件電路設(shè)計(jì)

2.1 單片機(jī)最小系統(tǒng)

本設(shè)計(jì)中在手部控制端和小車運(yùn)動(dòng)端均采用Arduino Nano 作為主控芯片, 其處理器核心是ATmega328(Nano3.0),同時(shí)具有14 路數(shù)字輸入/ 輸出口,8 路模擬輸入[2],ATmega328 具有32 個(gè)引腳,由于引腳數(shù)量有限,所以很多功能都共同使用一個(gè)引腳,具體功能可以通過軟件編程實(shí)現(xiàn)。這款單片機(jī)便捷靈活、方便上手,具有豐富的接口,適用于本系統(tǒng)。Arduino Nano電路原理圖如圖2所示。

2.2 姿態(tài)角度傳感器

本設(shè)計(jì)中采用姿態(tài)角度傳感器JY61采集手勢(shì)指令信息和小車姿態(tài)信息, 處理器以高精度陀螺儀MPU6050為核心, 讀取MPU6050的測(cè)量數(shù)據(jù), 通過串口輸出[3]JY61模塊工作電壓3.3 V/5 V,測(cè)量數(shù)據(jù)包括三維角度、三維加速度和三維角速度數(shù)據(jù),其角度數(shù)據(jù)在X 軸和Z 軸的測(cè)量范圍是±180 °,Y 軸的測(cè)量范圍是±90 °,動(dòng)態(tài)測(cè)量精度為0.1 °,靜態(tài)測(cè)量精度為0.05 ° 。

2.3 藍(lán)牙模塊

本設(shè)計(jì)中采用藍(lán)牙模塊HC05實(shí)現(xiàn)手部控制端和小車運(yùn)動(dòng)端的數(shù)據(jù)通訊。HC05 是一款主從一體式串口藍(lán)牙模塊,使用方便快捷,配對(duì)后只需要當(dāng)成固定波特率的串口一樣使用即可,因此只要是以“固定波特率,8 位數(shù)據(jù)位,無奇偶校檢”通信格式的串口設(shè)備都可以直接取代原來的有線串口而不需要修改程序。HC05 藍(lán)牙模塊電路原理圖3 如圖所示。

圖3 HC05藍(lán)牙模塊電路原理圖

2.4 顯示模塊

本設(shè)計(jì)中使用LCD1602 顯示屏顯示目標(biāo)角度(手部控制姿態(tài))和當(dāng)前角度(小車運(yùn)動(dòng)姿態(tài)),可以實(shí)時(shí)地觀測(cè)小車行進(jìn)中的角度變化。本設(shè)計(jì)中采用LCD1602的IIC 驅(qū)動(dòng)方式,通過IIC 適配器板實(shí)現(xiàn)IIC 接口,只采用兩個(gè)IO 端口用于驅(qū)動(dòng)LCD1602,適配器板的SDA、SCL 分別連接到開發(fā)板A4 和A5。LCD1602 電路原理如圖4 所示。

圖4 LCD1602電路原理圖

2.5 電機(jī)驅(qū)動(dòng)模塊

本設(shè)計(jì)中使用L298N 電機(jī)驅(qū)動(dòng)模塊控制小車電機(jī)的正反轉(zhuǎn)和行駛速度。L298N 電機(jī)驅(qū)動(dòng)模塊擁有發(fā)熱小,無需散熱片、體積小、省電,溫度下降后自動(dòng)恢復(fù)的優(yōu)點(diǎn)。電機(jī)A 輸出口對(duì)應(yīng)IN1 和IN2 控制1 個(gè)電機(jī)的旋轉(zhuǎn),電機(jī)B 輸出口對(duì)應(yīng)IN3 和IN4 控制另1 個(gè)電機(jī)的轉(zhuǎn)動(dòng),其操作簡(jiǎn)單,穩(wěn)定性好,能滿足直流電機(jī)大電流的驅(qū)動(dòng)條件[4]。

圖5 手部控制程序流程

3   軟件設(shè)計(jì)

3.1 手部控制程序設(shè)計(jì)

手部控制程序主要實(shí)現(xiàn)內(nèi)容如下:上電后系統(tǒng)初始化,進(jìn)入循環(huán)程序,對(duì)X、Y、Z 軸基準(zhǔn)角度進(jìn)行數(shù)據(jù)校準(zhǔn)。傳感器采集當(dāng)前X、Y、Z 軸角度,將當(dāng)前角度與基準(zhǔn)角度相減所得偏差角度作為手勢(shì)指令,采集數(shù)據(jù)后進(jìn)行手勢(shì)識(shí)別,通過Z 軸角度判斷0°、45°、90°、?45°、?90°五種轉(zhuǎn)彎狀態(tài),通過 X 軸角度判斷前進(jìn)、后退、停止3 種行進(jìn)狀態(tài),濾波處理后,發(fā)送至小車運(yùn)動(dòng)端;若未讀到低開始信號(hào)則表示手勢(shì)指令無效,小車靜止。

手部控制程序流程圖如圖5 所示。進(jìn)行手勢(shì)檢測(cè)時(shí),將姿態(tài)角度傳感器JY61 佩戴在用戶右手中指上方,杜邦線所在一側(cè)貼著食指。在前進(jìn)、停止、后退指令中定義掌心向下指尖向前為停止,掌心向前指尖向上為前進(jìn),掌心向后指尖向下為后退。在0° 、45°、90°、?45°、?90°指令中定義掌心向下指尖向前為0° 轉(zhuǎn)彎,掌心向下指尖向左為90° 轉(zhuǎn)彎,掌心向下指尖向右為 ?90°轉(zhuǎn)彎。

根據(jù)不同手勢(shì)姿態(tài)其各軸角度不同,進(jìn)行數(shù)據(jù)處理做出判斷后發(fā)送至小車端,最終小車依照手勢(shì)指令實(shí)現(xiàn)前進(jìn)、后退、轉(zhuǎn)彎、停止等行駛狀態(tài)。角度數(shù)據(jù)內(nèi)容如表1 所示。

表1 角度數(shù)據(jù)

各軸角度計(jì)算公式如下:

確定轉(zhuǎn)彎狀:確定 0°、 45°、 90°、 ?45°、?90°轉(zhuǎn)彎狀態(tài)的手勢(shì)指令信息,需要對(duì) Z 軸角度進(jìn)行判斷。不同人所給出的手勢(shì)指令不同,以及演示手勢(shì)指令存在一定角度誤差,所以判斷條件都在一定區(qū)間范圍內(nèi)。轉(zhuǎn)彎狀態(tài)手勢(shì)指令信息表如表2 所示。

表2 轉(zhuǎn)彎狀態(tài)手勢(shì)指令信息表

確定前進(jìn)、停止、后退狀態(tài):確定前進(jìn)、后退、停止行駛狀態(tài)的手勢(shì)指令信息,需要對(duì)X軸角度進(jìn)行判斷。行駛狀態(tài)手勢(shì)指令信息表如表3 所示。

表3 行駛狀態(tài)手勢(shì)指令信息表

3.2 小車運(yùn)動(dòng)程序設(shè)計(jì)

小車運(yùn)動(dòng)程序主要實(shí)現(xiàn)內(nèi)容:上電后系統(tǒng)初始化,進(jìn)入循環(huán)程序,行進(jìn)過程中設(shè)定小車左右電機(jī)的PWM均為80,采用位置式PID 算法減小擾動(dòng)和誤差,將PID運(yùn)算結(jié)果PID_out 加在右側(cè)電機(jī)PWM,實(shí)現(xiàn)小車沿直線行駛和準(zhǔn)確轉(zhuǎn)彎。若藍(lán)牙模塊未接收到字符“0”,則手勢(shì)指令無效,小車靜止。小車運(yùn)動(dòng)端程序流程圖如圖6 所示。

圖6 小車運(yùn)動(dòng)端程序流程

在本設(shè)計(jì)中,基于手勢(shì)識(shí)別的小車運(yùn)動(dòng)控制系統(tǒng)要實(shí)現(xiàn)沿直線行駛和準(zhǔn)確轉(zhuǎn)彎,首選簡(jiǎn)單高效的PID 控制算法,以保證控制系統(tǒng)快速到達(dá)并穩(wěn)定于目標(biāo)值[5]。PID控制算法公式為:

本設(shè)計(jì)中小車沿直線行駛時(shí)先給左右電機(jī)相同的PWM,在行進(jìn)過程中由于誤差和擾動(dòng)肯定會(huì)走偏,此時(shí)傳感器采集各軸角度,采用位置式PID 算法控制的目的就是使小車轉(zhuǎn)到目標(biāo)角度并沿目標(biāo)角度走直線,控制方法是將PID 運(yùn)算結(jié)果PID_out 加在右側(cè)電機(jī)PWM。小車運(yùn)動(dòng)狀態(tài)控制策略如表4 所示。

表4 小車運(yùn)動(dòng)狀態(tài)控制策略

4   系統(tǒng)測(cè)試

經(jīng)過硬件和軟件的聯(lián)合調(diào)試,基于手勢(shì)識(shí)別的小車運(yùn)動(dòng)控制系統(tǒng)實(shí)現(xiàn)了以下功能:手部控制端可以識(shí)別不同的手勢(shì)指令,手部端與小車端能進(jìn)行數(shù)據(jù)傳輸、小車接收手勢(shì)指令后可以實(shí)現(xiàn)前進(jìn)、后退、停止、轉(zhuǎn)彎等不同行駛狀態(tài),顯示屏可以顯示目標(biāo)角度和實(shí)際角度。測(cè)試結(jié)果表明,基于手勢(shì)識(shí)別的小車運(yùn)動(dòng)控制系統(tǒng)可以準(zhǔn)確、穩(wěn)定地運(yùn)行,證明了該系統(tǒng)的可行性和識(shí)別算法的有效性。系統(tǒng)調(diào)試結(jié)果如圖7 所示。

圖7 系統(tǒng)調(diào)試結(jié)果

5   結(jié)束語

隨著科技的進(jìn)步與社會(huì)的發(fā)展,人類生活趨于智能化,智能識(shí)別技術(shù)與智能機(jī)器人一定是未來研究的熱門課題,基于手勢(shì)識(shí)別的小車運(yùn)動(dòng)控制系統(tǒng)將手勢(shì)識(shí)別技術(shù)與移步機(jī)器人結(jié)合為一體,高效地實(shí)現(xiàn)了人與小車的交互控制,同時(shí)因其智能、安全、工作效率高等特點(diǎn),有效節(jié)約了人力資源,可以在很多場(chǎng)合中得到應(yīng)用。身處于疫情時(shí)期,采用無接觸模式實(shí)現(xiàn)手勢(shì)控制小車幫助人們安全、高效地完成一些工作,具有一定的實(shí)際意義,做到了真正方便人們的生活,具有廣闊的市場(chǎng)前景與實(shí)用意義。

參考文獻(xiàn):

[1] 孫亞星,黃帥銘,王宇鵬,等.基于電容傳感器的手勢(shì)識(shí)別系統(tǒng)設(shè)計(jì)[J].自動(dòng)化儀表,2020,41(2):10-19.

[2] 倪文彬,毛耀,陸廣華.基于Arduino的體感機(jī)械手設(shè)計(jì)[J].機(jī)床與液壓,2017,45(23):5-9.

[3] 張金山.四足步行機(jī)器人的3-5R并聯(lián)腿機(jī)構(gòu)設(shè)計(jì)與步態(tài)規(guī)劃[D].濟(jì)南:山東大學(xué),2019.

[4] 楊小博,胡強(qiáng),蘇玉香.基于STC12C5A60S2的循跡避障智能小車的設(shè)計(jì)[J].福建電腦,2017,33(11):19-20.

[5] 候帥.多自由度機(jī)器人搬運(yùn)平臺(tái)調(diào)平控制系統(tǒng)研究[D].西安:長(zhǎng)安大學(xué),2017.

(本文來源于《電子產(chǎn)品世界》雜志2023年2月期)



更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。