方案名稱:
基于GD32的空中鼠標設計
空中鼠標功能介紹:
辦公會議經(jīng)常會用的電腦接投影儀來演示PPT,使用常規(guī)鼠標操作往往很麻煩,而且還經(jīng)常出現(xiàn)問題。空中鼠標就是為解決這個問題而誕生的,只需要拿著鼠標在空中劃來劃去就可以在電腦上實現(xiàn)普通鼠標的功能。
空中鼠標系統(tǒng)設計框圖:
空中鼠標制作講解:
使用GD32 Colibri開發(fā)板,讀取MPU6050加速度傳感器的X,Y坐標的加速度值,捕獲手在空中的動作。然后能過nRF24L01+ 2.4G無線通訊發(fā)射至電腦端的接收器,電腦端GD32實現(xiàn)USB鼠標功能。在接收器收到數(shù)據(jù)后,根據(jù)X,Y的值移動鼠標到相應的位,發(fā)射端同時檢測GD32 Colibri開發(fā)板上的按鍵,把按鍵情況發(fā)送至電腦接收端,接收端再模擬鼠標按鍵,空中飛鼠的大體功能就基本實現(xiàn)。
在代碼部分借鑒了MBED的思想,對SPI和I2C進行抽像,在這實現(xiàn)nRF24L01+驅動的時候,就是從mbed移植過來。我覺得這部分是精華,在調(diào)試硬件I2C的時候也花了很長時間,走了些彎路。如果你也遇到了問題,可以參考我之前發(fā)的貼子,希望能對大家有幫助。
最后由于在GD32開發(fā)USB的時候遇到了至今還沒有解決的問題,所以電腦端用KF64代替,等把GD32的USB搞定,再把代碼移植過來。
注意:代碼使用了Keil.GD32F1xx_DFP.1.0.5開發(fā)包,如果沒有裝這個,用keil打編譯可能會報一堆錯誤。
視頻展示:
【GD32】nRF24L01無線通訊空中鼠標實物圖片展示: