滕飛 胡湘娟 陽泳

摘 要:隨著電子技術的飛速發展,各類電子芯片在性能不斷提高的同時價格卻在不斷降低,文章將采用STM32F103來制作一款空中鼠標,在方便實用的同時整體成本又比較低廉。目前市面廣泛應用的光電鼠標是通過一個發光二極管發出光線經過桌面、鼠標墊等平面反射后傳到光感應器件來分析運動軌跡并傳輸給電腦。它的原理決定它必須要一塊相對平整的反射面才能正常工作,在一些特殊場合使用時將會受到限制。文章介紹的空中鼠標在空中即可實現普通光電鼠標的功能,使用十分方便。
關鍵詞:STM32;MPU6050;姿態解算;空中鼠標
1 方案設計
普通的光電鼠標通過底部的LED燈以一定角度照射在桌面上,在鼠標移動時反射光線通過一塊透鏡傳入傳感器來得到連續的圖案,然后通過對比前后的圖案變化來分析鼠標的位移來得到鼠標在二維坐標的具體移動數值,最終將數據傳送給電腦。正是由于工作原理的限制,所以在實際使用中光電鼠標在一些特殊的場合使用將受到限制。不同于光電鼠標的位移檢測原理,本設計的位移檢測是通過MPU6050芯片來檢測空間的對應坐標方向的角速度,由于MPU6050是六軸運動處理器件,而電腦鼠標指針的移動是二維平面,所以只用讀取X軸和Z軸的角速度即可。STM32F103芯片讀取對應值后通過NRF24l01無線傳輸模塊將數據發送至數據接收端,接收端通過USB接口將數據發送至電腦從而實現鼠標的功能。
2 硬件電路設計
據本系統的工作原理,硬件部分主要有MPU6050模塊,NRF24l01無線傳輸模塊,STM32F103芯片,鋰電池一塊,按鍵電路,USB串口電路等。
2.1 MPU6050模塊
MPU6050是InvenSense公司的整合性6軸運動處理組件,內部自帶3軸陀螺儀和3軸加速度傳感器,自帶有數字運動處理器硬件加速引擎,大大減少了MCU由于對運動處理計算而帶來的復雜計算,同時開發難度也大大降低了,利用InvenSense公司提供的運動處理資料庫,可以十分方便的實現姿態解算。MPU6050的時鐘設置、采樣率設置、傳感器使能都是通過配置相關寄存器來實現,使用方便。時鐘源一般選擇X軸陀螺PLL作為時鐘源,可以得到高精度的時鐘。MPU6050的量程范圍也是可以選擇的,共有四個可選檔位,分別為±250°/S;±500°/S;±1000°/S;±2000°/S;陀螺儀的ADC為16位分辨率,鼠標使用起來較為流暢。MPU6050的超低功耗和4*440.9mm的超小封裝也使發射端的制作和使用簡便了很多。發射部分可使用一塊小鋰電池供電,因此可反復充電使用,同時鋰電池的充電器生活中非常常用,減少了用戶的后續開支,由于本設計只用到了X軸和Z軸的角速度值,MPU6050芯片的性能對本設計來說已經綽綽有余。
2.2 NRF24l01無線傳輸模塊
NRF24L01是一款低功耗無線收發專用芯片,工作頻率高,傳輸速度快,功耗很低,等待模式電流僅為22uA,通過PCB天線即可以實現10m的有效傳輸距離,可以方便的實現發射和接收。外部電路也較為簡單,而模塊的價格也只有幾塊錢,所以本設計直接采用了現成的NRF24l01無線傳輸模塊。兩個芯片工作在相同的模式下即可實現相互通信。
3 程序設計
由于本設計分為發射端和接收端兩個部分,所以編程也要分開進行。發射部分主要包括MPU6050數據讀取,按鍵數據讀取,數據發送。接收端編程主要為數據接收,與PC的USB通訊。因為STM32F103系列芯片都自帶了USB,符合USB2.0規范,所以通訊十分方便。在調試時可以使用四軸飛行器的上位機軟件調試發射部分的程序,分模塊進行調試。
4 結束語
本次基于STM32F103的空中鼠標設計硬件部分較為簡單,體積較小,節能穩定,發射部分采用鋰電池供電,可以反復充電,減少了不必要的開支,接收部分直接通過電腦的USB端口供電,數據傳輸和供電共用的是一個USB接口,減少了電腦端口的占用。整體來說,本空中鼠標設計可以方便的在空中實現鼠標指針的位移控制和左右鍵功能,實現了基本的鼠標功能,可以滿足普通的使用,在一些特殊場合比如戶外,工業前線等等,具有光電鼠標不具備的優勢,對實際應用具有一定的意義。同時對于MPU6050和來STM32來說,本實驗僅僅用到了部分功能,仍有很大的改進空間來升級功能和使用體驗。
參考文獻
[1]正點原子.MPU6050六軸傳感器實驗[EB/OL].開源電子網,2014(12).
作者簡介:滕飛(1994-),男,湖南常德人,漢族,學生,在讀本科,所學專業為電子信息工程。