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

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

橫掃饑餓吧!平民級(jí)USB有線電腦游戲手柄制作(原理圖、PCB源文件、程序源碼、設(shè)計(jì)報(bào)告)

2016/10/26
55
服務(wù)支持:
技術(shù)交流群

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

虛擬商品不可退

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

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

PC電腦智能游戲手柄設(shè)計(jì)背景及概述:

智能手機(jī)隨處可見的今天,各式各樣的APP層出不窮。由于手機(jī)有重力感應(yīng)功能,手機(jī)游戲自然也不會(huì)錯(cuò)過(guò)這個(gè),相比八、九十年代的小游戲,如今的游戲不再只是用眼去看,用手指操作,更多的是讓玩家用身體去體驗(yàn)游戲。賽車類、飛機(jī)類、游艇類等游戲,通過(guò)控制手機(jī)的姿態(tài)就能控制游戲?qū)ο?,這種體驗(yàn)使的很多人著迷。

但是,在游戲體驗(yàn)得到大幅度提升的同時(shí),也存在一些問(wèn)題。重力傳感器與手機(jī)是一體的,手機(jī)屏幕也是手機(jī)的一部分,當(dāng)敵機(jī)快速朝我方?jīng)_來(lái)時(shí),我們會(huì)最大限度的傾斜手機(jī)來(lái)躲避敵機(jī)。但是此時(shí)由于手機(jī)傾斜,我們要么看不見屏幕內(nèi)容,要么頭也隨手機(jī)傾斜。

為了解決這個(gè)問(wèn)題,我想把傳感器與屏幕分離出來(lái),即,使控制與顯示獨(dú)立。正值“深聯(lián)華杯單片機(jī)應(yīng)用設(shè)計(jì)大賽”如火如荼的進(jìn)行,我就借此機(jī)會(huì)將我的計(jì)劃實(shí)現(xiàn)。制作一款具有重力感應(yīng)的游戲手柄。

雖然帶重力感應(yīng)的游戲手柄在市場(chǎng)上也有,但是上百元的價(jià)格并不是人人都會(huì)購(gòu)買的。深聯(lián)華SLH89F5162單片機(jī)是增強(qiáng)型51單片機(jī),兼容傳統(tǒng)的51單片機(jī),又添加了許多實(shí)用的周邊模塊,使得單片機(jī)真正成為“單片微機(jī)”。同時(shí)因其低廉的價(jià)格,使得制作出來(lái)的重力游戲手柄的成本也極低,屬于平民級(jí)的消費(fèi)電子,市場(chǎng)競(jìng)爭(zhēng)力不言而喻。

項(xiàng)目設(shè)計(jì)原理
1、 原理概述
SLH89F5162單片機(jī)從傳感器MPU6050獲取游戲手柄的實(shí)時(shí)2軸加速度值,經(jīng)過(guò)運(yùn)算可得到游戲手柄的傾斜角度,將這個(gè)角度信息通過(guò)串口發(fā)送到電腦上的接收程序,由接收程序經(jīng)過(guò)簡(jiǎn)單的數(shù)據(jù)打包,就能把游戲手柄的姿態(tài)傳遞給游戲?qū)ο?,從而達(dá)到與智能手機(jī)重力感應(yīng)游戲一樣的游戲效果。
2、 硬件設(shè)計(jì)原理
SLH89F5162單片機(jī)有內(nèi)部16.6MHz振蕩器,所以不接外部晶振也可正常工作。用其產(chǎn)生115200波特率,通訊速度快,誤差極小,可忽略不計(jì),測(cè)試了數(shù)萬(wàn)個(gè)數(shù)據(jù),沒(méi)發(fā)現(xiàn)出錯(cuò)的數(shù)據(jù)。同時(shí),產(chǎn)生的波特率越小,誤差越大。單片機(jī)內(nèi)部有復(fù)位電路,可省去外部復(fù)位電路,因此一片單片機(jī)芯片就是一個(gè)最小系統(tǒng)。
控制器SLH89F5162單片機(jī)為主控制器,負(fù)責(zé)傳感器的控制,傳感器信息的讀取、矩陣鍵盤掃描、獨(dú)立按鍵輸入、與電腦的串口通訊。
傳感器MPU6050內(nèi)部集成了3軸陀螺儀、3軸加速度計(jì)、溫度傳感器和數(shù)字運(yùn)動(dòng)處理器,并支持外接其他輔助傳感器。I2C通訊接口,數(shù)字量輸出,體積小。
115200波特率的分頻系數(shù) = 16.6M / 16 / 115200 = 9.00608
38400波特率的分頻系數(shù) = 16.6M / 16 / 38400= 27.0182
19200波特率的分頻系數(shù) = 16.6M / 16 / 19200 = 54.0365
9600波特率的分頻系數(shù) = 16.6M / 16 / 9600 = 108.073
3、 軟件設(shè)計(jì)原理
軟件開發(fā)環(huán)境采用Keil3,編程語(yǔ)言采用匯編。采用模塊化方法,將I2C讀寫函數(shù)、MPU6050操作函數(shù)、鍵盤掃描函數(shù)、數(shù)學(xué)運(yùn)算、表格分開在不同的文件,編譯時(shí)再鏈接在一起。
MPU6050只支持I2C通訊,最大I2C時(shí)鐘為400KHz,采用匯編語(yǔ)言編寫,可最大限度的滿足其時(shí)鐘要求,這是高級(jí)語(yǔ)言無(wú)法做到的。重力傳感器輸出的是某一軸的加速度大小,該值與重力加速度g的比值,就是傳感器繞該軸與豎直方向夾角的正弦值,只要求其反正弦就可得到相應(yīng)的角度大小。
angleX = arcsin(accelX / g)
angleY = arcsin(accelY / g)
采集的數(shù)據(jù)具有噪聲,采用數(shù)字低通濾波器可有效減小噪聲干擾。某一軸上不僅存在重力加速度的分量,同時(shí)也存在運(yùn)動(dòng)加速度的分量,這會(huì)對(duì)傾角的計(jì)算帶來(lái)誤差。運(yùn)動(dòng)加速度的分量比重力加速度小很多,持續(xù)時(shí)間也很短,采用低通濾波算法也能較小運(yùn)動(dòng)帶來(lái)的誤差。
低通濾波算法:y =a * y + (1 - a) * x; x:輸入, y:輸出, a:系數(shù)
由于8位的51單片機(jī)先天不足,對(duì)浮點(diǎn)數(shù)據(jù)運(yùn)算的支持很差,尤其是涉及三角函數(shù)、反三角函數(shù)。所以我采用空間換時(shí)間的方法,即通過(guò)查表得到arcsin(accel)的值,這樣運(yùn)算非??欤揖葲](méi)有打任何折扣。SLH89F5162具有片內(nèi)62KFlash ROM,而accel = -8192 ~ 8192,存儲(chǔ)8192個(gè)浮點(diǎn)數(shù)據(jù)需要8192 * 4 = 32K字節(jié),采用SLH89F5162單片機(jī)沒(méi)有任何壓力。

視頻演示:

硬件設(shè)計(jì)框圖:

軟件設(shè)計(jì)框圖:

作品展示:

  • 硬件原理圖.rar
    描述:硬件原理圖,見截圖展示
  • 軟件源碼.rar
    描述:軟件源碼,見截圖展示
  • 項(xiàng)目報(bào)告書.doc
    描述:項(xiàng)目報(bào)告書

相關(guān)推薦

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