加入星計(jì)劃,您可以享受以下權(quán)益:

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

基于stm32和mpu9250的usb hid鍵盤、鼠標(biāo)、游戲控制器

2017/02/27
158
服務(wù)支持:
技術(shù)交流群

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

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

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

項(xiàng)目介紹

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

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

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

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

工作原理介紹

1、硬件組成與介紹:

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

2、此項(xiàng)目中STM32的功能:

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

3、軟件流程介紹:

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

如下圖,可看到USB枚舉成功為鍵盤、鼠標(biāo)、游戲控制器復(fù)合設(shè)備。

程序流程圖如下:

實(shí)物與演示

1、實(shí)物圖片與說明:

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

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官網(wǎng)的2個(gè)關(guān)于HID設(shè)備的規(guī)范.zip
    描述:2個(gè)關(guān)于HID設(shè)備的規(guī)范

相關(guān)推薦

電子產(chǎn)業(yè)圖譜