<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 自己動(dòng)手用Cortex-M3與ADXL345做個(gè)重力感應遙控器

自己動(dòng)手用Cortex-M3與ADXL345做個(gè)重力感應遙控器

作者: 時(shí)間:2016-10-15 來(lái)源:網(wǎng)絡(luò ) 收藏

已經(jīng)是很久沒(méi)有寫(xiě)文章了,因為沒(méi)有時(shí)間,人家都說(shuō)大四不考研,天天像過(guò)年,可我依舊沒(méi)能有那份閑暇的時(shí)間。

本文引用地址:http://dyxdggzs.com/article/201610/307592.htm

現在幾乎人人的手里都是一款安卓智能機這是我非常羨慕的,而我手里只有上學(xué)期用380元買(mǎi)的一臺二手諾基亞N96,雖然也稱(chēng)得上智能機但是遠遠沒(méi)有如今安卓智能的優(yōu)秀,其中一個(gè)功能就是通過(guò)玩賽車(chē)游戲,我想這個(gè)大家都不陌生,只要把手機歪一歪斜一斜就可以控制賽車(chē)方向了,這個(gè)功能令橋哥好生羨慕嫉妒恨,可惜自己的手機不能玩,上周突來(lái)靈感何不自己做一個(gè)玩玩。正好上學(xué)期開(kāi)始著(zhù)手給侄子做的四軸飛行器的基板基本調試完成,核心的芯片就是一塊M3微控器,一塊三軸加速度傳感器,一塊三軸數字陀螺儀。而要做一個(gè)簡(jiǎn)單的遙控器用M3結合就可以實(shí)現了。實(shí)際上由于之前調試把芯片的控制函數都寫(xiě)好了,而且上位機的程序又有之前給學(xué)長(cháng)做畢設的時(shí)候寫(xiě)的程序的基礎,所以花的時(shí)間很少也就兩個(gè)下午的時(shí)間。

要實(shí)現一個(gè)控制電腦游戲的遙控器原理也非常簡(jiǎn)單,無(wú)非就是判斷此時(shí)遙控器傾斜角度,然后M3將指令迅速傳給電腦,電腦根據指令給出跟敲擊鍵盤(pán)方向鍵一樣的指令就完事了。檢測傾斜角度由實(shí)現,三軸加速度傳感器能夠測出靜態(tài)時(shí)xyz方向的加速度,如果平放的情況下,只在z軸有一個(gè)向下的重力加速度,如果傾斜,那么重力將可以分解到xy方向,這樣產(chǎn)生了xy方向的加速度,從而可以測得遙控器向哪邊傾斜了。

接下來(lái),M3通過(guò)IIC總線(xiàn)方式讀取ADXL345測得的X軸的加速度數據,只要通過(guò)判斷X軸方向的數據就可以判斷基板往哪個(gè)方向傾斜了。下面是M3的測量代碼

M3判斷出傾斜方向之后立即通過(guò)57600波特率的串口向電腦上位機發(fā)送指令,為了提高遙控器靈敏度和反映速度,我這里指令只用了一個(gè)字符,L代表左,R 代表右,并且不使用校驗,也不需要上位機回應M3,M3只管往上位機不斷發(fā)指令就可以了,可以大大提高效率,實(shí)際測試中,這種波特率情況下即保證了傳輸速率,誤碼率也是較低的。

接下來(lái)上位機接收到方向指令后就得通過(guò)代碼來(lái)模擬我們平時(shí)敲擊鍵盤(pán)的動(dòng)作,程序也是非常簡(jiǎn)單。跟我以前做的無(wú)線(xiàn)鼠標的實(shí)現代碼非常的類(lèi)似。

通過(guò)這段代碼可以發(fā)現,除了左鍵右鍵的指令外,還有一個(gè)名為’X’的空白指令,代表的是當遙控器水平放置的時(shí)候釋放按鍵。

VC寫(xiě)的上位機界面如下所示

看起來(lái)比較的粗糙,外觀(guān)上我就不做什么修飾了,畢竟做的是電子而不是軟件開(kāi)發(fā),只要能夠實(shí)現我需要的功能,軟件難看一點(diǎn)就將就吧。中間的四個(gè)方向按鍵作用是為了滿(mǎn)足有些游戲是需要一直按下某個(gè)按鍵玩的,比如極品飛車(chē)你就得一直按著(zhù)方向鍵才能走吧呵呵,當然就目前來(lái)講我只判斷了ADXL345的X軸數據,如果聯(lián)合Y軸數據來(lái)判斷,就可以同時(shí)控制上下左右四個(gè)方向了,這點(diǎn)我就先不再做,因為最近還是忙。最右邊的調試數窗口用來(lái)做開(kāi)發(fā)的時(shí)候監測串口數據用的,也可以用于系統的后續開(kāi)發(fā)的調試使用。

實(shí)測狀況,因為這塊小板原先的設計是微型四軸所以用的是電池供電,還是非常方便的,這塊電池也是非常給力,就沖了一次電,我都拿它調試過(guò)很長(cháng)的時(shí)間了,依舊有電。

遙控器通過(guò)串口跟電腦連接以后,打開(kāi)軟件然后打開(kāi)串口,然后把軟件最小化之后就可以使用了,已經(jīng)過(guò)了一把重力感應玩賽車(chē)的隱。

我現在還用的是有線(xiàn)串口實(shí)現通信,如果是無(wú)線(xiàn)的遙控器那將會(huì )更加完美,實(shí)際上我的板子上設計有2.4G無(wú)線(xiàn)通信模塊接口,但是向無(wú)線(xiàn)模塊寫(xiě)入發(fā)送數據,然后另一方還得有接收然后再通過(guò)串口傳給電腦,這中間就額外增加了一段時(shí)間,或許會(huì )給遙控器的靈敏度帶來(lái)下降,當然我還沒(méi)有實(shí)測過(guò),這是后續開(kāi)發(fā)的事,我已經(jīng)沒(méi)有太多的時(shí)間放在此處,接下來(lái)我的重心將放在四軸飛行器上邊,或許最好的結果是在今年過(guò)年可以讓小侄看到能夠飛起來(lái)的四軸,當然很可能也是他什么都看不到,我只能盡力了況且還有好多任務(wù)做真心忙。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>