鐘山 黃鵬 王銳 代鵬 肖茹雙
摘要:在傳統單片機控制的光立方基礎上,使用高精度陀螺加速度計MPU-6050對光立方使用者的手指姿態進行判斷。為解決單片機數據解算速度問題,主控系統采用STM32F103ZET6芯片,通過藍牙將MPU-6050的原始數據發送至嵌入式主控系統。嵌入式主控系統MPU-6050原始數據進行處理,根據預設數據模型,得出使用者的手指姿態。當使用者的做出不同手勢時,光立方顯示對應動畫,實現了手勢控制光立方的目的。
關鍵詞:光立方;藍牙;MPU-6050;手勢識別
中圖分類號:TP273 文獻標識碼:A 文章編號:1007-9416(2019)01-0046-02
0 引言
隨著信息技術的不斷發展,LED顯示屏廣泛應用于各行各業,大多數LED都是二維顯示屏,由于應用的不斷加深,三維LED顯示技術應運而出,這就是LED光立方[1],光立方是一種通過單片機控制的LED三維顯示陣列,一般的光立方為8×8×8模式,由單片機、鎖存器、譯碼器等電器元件驅動,利用單片機控制外部電路進行并行輸出,通過層選和位選控制每一個LED燈的開關,每一幀圖像一般持續50ms左右,在不斷的圖像切換過程中,實現連續的動畫效果。
1 體感光立方硬件設計
光立方主要通過STM32F103ZET6[2]作為主控芯片,附加外圍電路,MPU-6050 通過藍牙通信的方式將數據傳輸至主控,主控芯片通過兩片74HC245芯片擴展接口,一片74HC245芯片通過74HC138譯碼器實現光立方層選,另一片74HC245芯片通過將數據串行傳輸至8片74HC595芯片級聯的驅動電路實現位選。通過不斷的刷新畫面,實現動畫效果。如圖1所示。
1.1 嵌入式主控STM32F103ZET6
STM32F103系列使用高性能的 ARM Cortex -M3的RISC內核,工作頻率為72MHz,內置高速存儲器(高達512K字節的閃存和64K字節的 SRAM),豐富的增強I/O端口和聯接到兩條APB總線的外設。所有型號的器件都包含3個12位的ADC、4個通用16位定時器和2個PWM定時器,還包含標準和先進的通信接口:多達2個IIC接口、3個SPI接口、2個IIS接口、1個SDIO接口、5個 USART接口、一個USB接口和一個CAN接口。STM32F103系列工作于-40°C至+105°C的溫度范圍,供電電壓2.0V至3.6V,一系列的省電模式保證低功耗應用的要求。本系統中使用該系列嵌入式系統主要用于MPU-6050原始數據的處理和手勢姿態的判別,并輸出對應動畫。
1.2 六軸加速度計MPU-6050
MPU-6050為全球首例整合性6軸運動處理組件,它集成了3軸MEMS陀螺儀,3軸MEMS加速度計,免除了組合陀螺儀與加速度計之間時軸差的問題。本文采用MPU-6050作為體感模塊[3],通過藍牙模塊將原始數據傳輸至嵌入式主控系統,在嵌入式主控系統中對MPU-6050的原始數據進行數據融合,得到X,Y,Z軸加速度,然后分別對其X,Y,Z軸加速度求解反余弦函數,得到X,Y,Z軸傾角,從而計算出當前光立方位置信息。計算過程如圖2所示。
1.3 74HC595驅動電路
本文使用8片74HC595[4]作為位選驅動電路。74HC595是一個8位串行輸入、并行輸出的位移緩存器:并行輸出為三態輸出。在SCK 的上升沿,串行數據由SDL輸入到內部的8位位移緩存器,并由Q7'輸出,而并行輸出則是在LCK的上升沿將在8位位移緩存器的數據存入到8位并行輸出緩存器。當串行數據輸入端OE的控制信號為低使能時,并行輸出端的輸出值等于并行輸出緩存器所存儲的值。而當OE為高電位,也就是輸出關閉時,并行輸出端會維持在高阻抗狀態。
1.4 APM4953驅動電路
APM4953內部包含兩個獨立的,P溝道金屬氧化物場效應管。它有超低的導通電阻,適用于LED顯示驅動,也可以做PWM開關和負載開關。本文所設計光立方為層共陽接口,通過74HC138譯碼器輸出控制APM4953驅動電路[5]層選。
2 程序流程
在主控系統成功初始化之后,對MPU-6050進行自檢,若自檢成功,則開始接收來自藍牙串口的MPU-6050原始數據,自檢不成功,重新進行系統初始化。在接收到原始數據后,主控系統對原始數據進行處理,完成傾角計算,姿態判斷,并且輸出對應動畫。在完成一幀圖像后,重新接收新的原始數據,實現動畫效果。軟件流程圖如圖4所示。
3 結語
本文在傳統的光立方基礎上,創新采用了6軸加速度計MPU-6050,通過藍牙將MPU-6050原始數據發送給嵌入式主控系統。通過對MPU-6050數據的一系列處理,成功實現了光立方使用者手指姿態的判斷,并且根據不同的姿態輸出不同的動畫,完成了傳統光立方不具備的體感功能,這是對于光立方的一種創新改進,對于廣大光立方愛好者具有相當的指導意義,同時具有一定的市場價值。
參考文獻
[1] 李振國,高敏.基于單片機的光立方設計與制作[J].計算機產品與流通,2018(02):270.
[2] 劉志龍,吳昊.STM32F103ZET6芯片在LED顯示屏控制應用中的探索[J].科技創新與應用,2014(04):30-31.
[3] 徐鵬杰,張鳳生,劉延杰,任錦霞.基于MPU6050的人體傾角姿態數據檢測系統設計[J].國外電子測量技術,2018,37(03):117-120.
[4] 李宗瑛.STC89C52單片機控制8×8 LED點陣系統的設計[J].數字技術與應用,2018,36(02):17-18.
[5] 唐康,劉耀聯,韓帥,王羽,嚴月.基于STM32的3D16光立方設計[J].電子技術與軟件工程,2015(23):119-120.
Abstract:On the basis of optical cube controlled by traditional single chip computer, the finger gesture of optical cube user is judged by using high precision gyro accelerometer MPU-6050. In order to solve the problem of data processing speed of single chip computer, the master control system uses STM32F103ZET6 chip, and transmits the original data of MPU-6050 to the embedded master control system through Bluetooth. The original data of the embedded master control system MPU-6050 is processed, and the gesture of the user's finger is obtained according to the preset data model. When the user makes different gestures, the optical cube displays corresponding animation, which realizes the purpose of controlling the optical cube by gestures.
Key words:optical cube; bluetooth; MPU-6050; gesture recognition