加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于stm32和mpu9250的usb hid鍵盤、鼠標、游戲控制器

2017/02/27
133
服務支持:
技術交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術大咖們分享疑惑和經驗、收獲成長和認同、領取優(yōu)惠和紅包等。

虛擬商品不可退

當前內容為數字版權作品,購買后不支持退換且無法轉移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
方塊圖(3)
相關方案
  • 方案介紹
  • 相關文件
  • 相關推薦
  • 電子產業(yè)圖譜
申請入駐 產業(yè)圖譜

項目介紹

1、方案主題:基于STM32+MPU9250的重力感應游戲控制器

2、方案功能:使用STM32CubeMX配置了Nucleo-L476RG,開發(fā)了USB HID復合設備用于體感游戲控制,板載STM32L476RG ARM核微控制器支持USB2.0 全速設備,通過I2C讀取九軸姿態(tài)傳感器-MPU9250(三軸加速度、三軸陀螺儀、三軸磁力計),使用高效的傳感器數據融合算法、姿態(tài)解算算法,實現體感控制PC游戲,精度高,超低延遲,可作為虛擬自行車等控制器,支持硬件定制。

硬件:帶USB控制器的STM32都可以,我這里使用的是Nucleo-L476RG,芯片是STM32L476RG,支持USB2.0全速模式,其中
PA12---->USB_DP
PA11---->USB_DM

軟件:使用STM32CubeMX配置
直接用USB線連接到電腦USB即可,按照USB規(guī)范,USB線里面的綠線為DP(D+),白線為DM(D-),全速設備是要在DP線加上拉1.5K電阻的,由于STM32的USB外設內部有這個電阻,因此無需外加上拉電阻。
配置過程不解釋了,查看附件的PDF文檔即可

工作原理介紹

1、硬件組成與介紹:

Demo板采用了Nucleo-L476RG板卡,板載STM32L476RG高性能ARM Cortex-M4內核MCU,主頻高達80MHz,1MB Flash、128KB SRAM,支持浮點DSP;8個輕觸按鍵連接到了STM32的GPIO;MPU9250采用GY-91模塊,通過I2C接口連接到STM32,MPU9250由應美盛(InvenSense)出品,是MPU6050的升級版,第二代9軸組合傳感器將6軸慣性測量單元(三軸加速度計+三軸陀螺儀)和三軸軸磁力計集成于3 mm x 3 mm QFN封裝中。

2、此項目中STM32的功能:

通過I2C接口采集傳感器數據;強大的運算性能和浮點DSP的支持保證了數據融合、姿態(tài)解算等算法的高效、準確運行;控制LED作為狀態(tài)指示;掃描按鍵狀態(tài);通過USB接口與PC機通信。

3、軟件流程介紹:

采用前后臺系統(tǒng),主要分為三大部分,一是外設初始化,二是數據處理,三是業(yè)務邏輯處理。使用STM32CubeMX配置生成了USB HID復合設備,是一個USB鍵盤和USB鼠標、2個游戲Pad,配置方法和測試工程源碼點我?;蛘摺跋嚓P文件”直接下載

如下圖,可看到USB枚舉成功為鍵盤、鼠標、游戲控制器復合設備。

程序流程圖如下:

實物與演示

1、實物圖片與說明:

Demo板說明:Demo板配置了9個按鍵,Nucleo板載藍色按鍵為模式切換按鍵,開機板載LD2綠色LED快閃表明此時為鎖定狀態(tài),控制器不起作用,短按1下,切換到按鍵控制模式,LD2慢閃,再短按切換到體感控制模式,LD2 1s閃爍一次,再按切換到鎖定狀態(tài);板載4個大按鍵,依次映射為WASD,4個小按鍵依次映射為R、shift、鼠標左鍵、鼠標右鍵。

2、演示視頻:

QQ飛車測試:

https://player.youku.com/player.php/sid/XMjUyOTY3ND...

坦克世界測試:

https://player.youku.com/player.php/sid/XMjUyOTY5NT...

  • L476USBKeyBoard.pdf
    描述:STM32CubeMX配置的PDF文檔
  • L476USBKeyBoard.zip
    描述:Nucleo-L476RG的測試工程源碼
  • USB官網的2個關于HID設備的規(guī)范.zip
    描述:2個關于HID設備的規(guī)范

相關推薦

電子產業(yè)圖譜