家里廢棄的自行車(chē)的另類(lèi)情調(diào)!電子發(fā)燒友們的遙控夢(mèng)在本文的自行車(chē)上發(fā)揮得淋漓盡致,點(diǎn)擊了解遙控DIY詳情!如果你厭倦了用鍵盤(pán)、鼠標(biāo)、游戲方向盤(pán)、手柄來(lái)玩極品飛車(chē),不妨試下用自行車(chē),寓健身、娛樂(lè)、減肥于一體,那是相當(dāng)拉轟!
制作時(shí)間:5小時(shí);制作難度:★★☆☆☆;GEEK指數(shù):★★★☆☆。
1 引言
近來(lái)有點(diǎn)喜歡玩《極品飛車(chē)》,所以買(mǎi)了一個(gè)游戲方向盤(pán)。
快遞到后,迫不及待地拆開(kāi),才玩了一會(huì),就想把它扔掉,手感實(shí)在有點(diǎn)爛,微微地打方向一點(diǎn)反應(yīng)都沒(méi)有,再打多點(diǎn)突然間像打雞血一樣猛轉(zhuǎn)方向,還不如鍵盤(pán)來(lái)得爽。扔垃圾筒有點(diǎn)可惜,想了想,覺(jué)得可以花點(diǎn)心思改造一下,打造一個(gè)不錯(cuò)的游戲控制器。
家里能與“速度與激情”扯上點(diǎn)關(guān)系的,就只有1樓已經(jīng)廢棄了10年的簡(jiǎn)易跑步機(jī),和一臺(tái)鄰居送的很破的自行車(chē)。
我選擇了自行車(chē),個(gè)人覺(jué)得把自行車(chē)的后輪架起來(lái),操控起來(lái)實(shí)在很自然。另外還有一個(gè)原因,我搬不動(dòng)跑步機(jī)。
基本設(shè)計(jì)如下:
自行車(chē)車(chē)頭 ————》 賽車(chē)方向盤(pán)
自行車(chē)腳踏 ————》 賽車(chē)油門(mén)
自行車(chē)左剎車(chē) ————》 賽車(chē)腳剎
自行車(chē)右剎車(chē) ————》 賽車(chē)手剎或氮?dú)饧铀?/p>
2 設(shè)計(jì)思路
一般游戲方向盤(pán)都在方向盤(pán)和油門(mén)剎車(chē)上裝有線性電位器,當(dāng)玩家打方向盤(pán)或踩下油門(mén)剎車(chē)的時(shí)候,電位器的阻值改變,通過(guò)AD轉(zhuǎn)換測(cè)量加到電阻器的變化電壓,從而得知方向盤(pán)或油門(mén)剎車(chē)的改變量,再通過(guò)MCU或usb芯片與電腦通訊。
由于我不太懂usb通訊方面的知識(shí),所以就直接采用“拿來(lái)主義”,取得方向盤(pán)的主電路板來(lái)制作。
簡(jiǎn)單來(lái)說(shuō),只要輸入一個(gè)相應(yīng)電阻給方向盤(pán)的主電路板,便可以“騙”它進(jìn)行工作,發(fā)送相應(yīng)數(shù)據(jù)給上位機(jī)(電腦《極品飛車(chē)》),而我們要做的工作,就是使用一些傳感器,來(lái)測(cè)量自行車(chē)的一些參數(shù)(速度,車(chē)頭轉(zhuǎn)向,是否剎車(chē)),通過(guò)MCU處理后,改變數(shù)字電位器,接入到方向盤(pán)的主電路板中,便可。
請(qǐng)看詳細(xì)圖示:
3 工具
自行車(chē)一臺(tái),自行車(chē)騎行臺(tái)一只。
霍爾傳感器模塊,微動(dòng)開(kāi)關(guān),LPC2013最小系統(tǒng)模塊,電子羅盤(pán)模塊,加速度傳感器模塊
ULINK調(diào)試器、電腦一臺(tái),MDK keil4開(kāi)發(fā)環(huán)境,萬(wàn)用表
玩電子的必備工具:電烙鐵,錫線,吸錫器,螺絲筆一套,鑷子,防水膠布,臺(tái)鉆,扎帶等等,反正焊接電路板該有的都要有,不細(xì)細(xì)述說(shuō)了。
4 方向盤(pán)拆解
把方向盤(pán)拆開(kāi),測(cè)量一些參數(shù):
方向盤(pán)線性電位器的最大阻值,左右方向方向盤(pán)均打盡的阻值,方向盤(pán)居中的阻值。
未踩下剎車(chē)時(shí)的阻值,踩盡剎車(chē)時(shí)的阻值。
未踩下油門(mén)時(shí)的阻值,踩盡油門(mén)時(shí)的阻值。
經(jīng)過(guò)測(cè)量發(fā)現(xiàn),剎車(chē)和油門(mén)共用一個(gè)線性電位器。
??????????????? ?
而對(duì)于方向盤(pán)來(lái)說(shuō),方向盤(pán)居中時(shí),其電位器阻值剛好是最大阻值一半,如此一來(lái),就沒(méi)有必要過(guò)多關(guān)注其電阻值了。
雖然如此,選用的電位器相差不要超過(guò)一個(gè)數(shù)量級(jí)為好。
5 電路設(shè)計(jì)與焊接
1)由于買(mǎi)回來(lái)的ARM7 2103模塊已經(jīng)是最小系統(tǒng),所有管腳直接引出,因此只需要將其管腳用板略為引伸,接上座子,方便安裝便可。整個(gè)MCU模塊所用到的管腳有——SPI0管腳,I2C0管腳,外部中斷2個(gè),一些GPIO口接指示LED、觸動(dòng)開(kāi)關(guān)(可有可無(wú)),UART0管腳(調(diào)試輸出數(shù)據(jù)用,可有可無(wú))等。
電路圖就不需要給出了,如果你以上基本都能看懂或是學(xué)過(guò)ARM的,那肯定知道怎么接,我只是畫(huà)了個(gè)草圖,就開(kāi)始焊接了,焊好的板子如下。
2)把方向盤(pán)的主電路板和轉(zhuǎn)接板取出來(lái),焊到一塊萬(wàn)用板上,焊上接線座,方便安裝。
為了方便安裝,我另外還給兩個(gè)霍爾傳感器和加速度傳感器、電子羅盤(pán)加焊了幾塊電路板,加上接線座子。全家福一張。
?????
6 模塊詳細(xì)介紹
1)霍爾傳感器(測(cè)量自行車(chē)的速度)
霍爾傳感器模塊是這樣工作的,3個(gè)管腳,VCC腳,GND腳,DATA腳,缺省狀態(tài)DATA腳輸出低電平,若有磁石靠近,產(chǎn)生磁場(chǎng)切割,便會(huì)輸出一個(gè)高電平,當(dāng)磁石遠(yuǎn)離傳感器,又恢復(fù)低電平。
所以在自行車(chē)的腳踏邊上貼上一個(gè)磁石,把兩個(gè)霍爾傳感器模塊裝到腳踏經(jīng)過(guò)的兩邊位置,在踩自行車(chē)時(shí),通過(guò)計(jì)算兩只霍爾傳感器的時(shí)間差,來(lái)獲得騎車(chē)人踩單車(chē)的速度,由此對(duì)應(yīng)賽車(chē)油門(mén)的深淺。
???????
2)電子羅盤(pán),加速度傳感器模塊(測(cè)量自行車(chē)的轉(zhuǎn)角)
???????
我使用的這款電子羅盤(pán)的芯片型號(hào)為HMC5883L,I2C接口,75HZ的數(shù)據(jù)讀取頻率,沒(méi)太多好說(shuō)的,上電復(fù)位,通過(guò)I2C接口設(shè)置好工作參數(shù)和工作模式,就可以讀取數(shù)據(jù)了。數(shù)據(jù)的模式是地磁在XYZ軸的分量,還搞得不是非常懂。XYZ軸的基準(zhǔn)與芯片的位置有關(guān)。不過(guò)取出數(shù)據(jù)按照芯片手冊(cè)計(jì)算,就可以測(cè)得與地磁的夾角。
模塊上還有一個(gè)ADXL345加速度傳感器,一樣是I2C接口,主要是因?yàn)樽孕熊?chē)的車(chē)頭旋轉(zhuǎn)平面并不是完全水平的,因?yàn)樽孕熊?chē)的車(chē)頭軸(不知道是不是這樣稱呼)與地平面有一個(gè)夾角,所以就導(dǎo)致了——整個(gè)模塊無(wú)法工作在水平面中,也就是說(shuō)電子羅盤(pán)的XY軸形成的平面,不與水平面平行,Z軸的地磁分量肯定不為0,至少大部分時(shí)間不為0。
說(shuō)了這么多ADXL345加速度傳感器就是用來(lái)測(cè)量水平傾角,對(duì)電子羅盤(pán)的數(shù)據(jù)進(jìn)行校正的。
事實(shí)上,我另外還買(mǎi)了一個(gè)模塊,上面集成了一個(gè)加速度傳感器和一個(gè)角速度傳感器,本來(lái)是怕一個(gè)加速度傳感器有誤差,可以進(jìn)行取平均值來(lái)校正,后沒(méi)有使用。
美中不足的是,因?yàn)槭褂昧穗娮恿_盤(pán),所以每次開(kāi)始玩的時(shí)候,都需要校正,因?yàn)樽孕熊?chē)的位置不同導(dǎo)致了車(chē)頭居中朝向不一致,因此需要初始化。甚至在玩的時(shí)候,玩得太嗨,動(dòng)作太大,導(dǎo)致自行車(chē)位移,也要不斷地校正。
最好的方式,還是在車(chē)頭上安裝一個(gè)轉(zhuǎn)動(dòng)電位器來(lái)取代電子羅盤(pán),但是考慮到電位器的安裝需要合適的齒輪,安裝起來(lái)很麻煩,也沒(méi)有模具,所以就罷了。
3)微動(dòng)開(kāi)關(guān)(剎車(chē),氮?dú)饧铀伲?/p>
在自行車(chē)剎車(chē)裝上兩個(gè)微動(dòng)開(kāi)關(guān),開(kāi)始的方案是壓力傳感器,如此一來(lái),剎車(chē)的參數(shù)便是模擬量,但安裝的問(wèn)題太過(guò)于麻煩,所以就采取了開(kāi)關(guān)量的方式來(lái)進(jìn)行。
微動(dòng)開(kāi)關(guān)直接接入了方向盤(pán)的電路板中,不通過(guò)ARM7 LPC2103電路板。
4)數(shù)字電位器MCP42050。
最大量程50K歐姆,SPI通訊接口,2個(gè)電位器,精度為50K歐/256,已經(jīng)是非常夠用。在初始設(shè)定中,油門(mén)深淺(即車(chē)速)分10個(gè)等級(jí),方向盤(pán)每5度設(shè)為一個(gè)等級(jí),左右各90度便是32個(gè)等級(jí)。綽綽有余。
5)LPC2103模塊。
沒(méi)什么好說(shuō)的,處理數(shù)據(jù)用。
7 編程、調(diào)試
1)我使用了小型操作系統(tǒng)Ucos,分成4個(gè)任務(wù)。
任務(wù)1:指示燈亮滅。任務(wù)2:電子羅盤(pán)數(shù)據(jù)讀取,加速度傳感器數(shù)據(jù)讀取,進(jìn)行數(shù)據(jù)處理得到轉(zhuǎn)角并寫(xiě)入一全局變量中。任務(wù)3:霍爾傳感器的數(shù)據(jù)處理,將時(shí)間間隔(車(chē)速)寫(xiě)入一全局變量中。任務(wù)4:根據(jù)速度和轉(zhuǎn)向2個(gè)全局變量的數(shù)據(jù),把對(duì)應(yīng)的電阻值寫(xiě)入數(shù)字電位器中。
評(píng)論