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