史上最便宜-自製賽車遊戲控制器



哪個男孩不想要擁有自己的賽車搖桿,一組好幾千元的賽車外部裝置,除非你是賽車遊戲愛好者,否則一般人難以體驗這種夢幻設備。


在這邊我要教大家如何便宜的DIY賽車搖桿,而且這種自己做的賽車搖桿可以對應幾乎所有的賽車遊戲,甚至可以直接用在電腦與家用主機上。


網路上雖然也有許多自己DIY的賽車模組,但價格材料通常較為昂貴,或是製作方法較為困難,而這篇文章主要是教大家如何用便宜簡單的方式,來製作自己的簡易賽車搖桿。


材料:

  • Arduino Leonardo開發板 * 1片 (UNO開發板無法使用)

  • 麵包板 * 1片

  • 電阻10KΩ~100KΩ * 3個

  • 小洋芋片罐 * 1個

  • 6B~8B鉛筆 *1隻

  • 厚紙板

  • 電線

  • 棉線

  • 橡皮筋

  • 膠帶

  • 熱溶膠

震動功能選配:

  • 馬達+馬達驅動器 *1



製作這款賽車搖桿,需要會一點Arduino以及寫程式的基本技能喔!

方向盤控制器

首先我們先製作最重要的方向盤控制器,這部分我省略了按鈕、換檔之類的功能,雖然只做方向控制的功能,但輸入的訊號是類比訊號,所以可以讓車子轉向更為精準


首先找一塊厚紙板,這個賽車控制器的寬度需要寬一點,我製作的寬度是60cm,建議尺寸在60cm以上,越寬越好製作


劃一條弧形,用美工刀切割下來,這就是方向盤儀表板的部分


準備一個圓筒狀的物體,我這邊是使用洋芋片的罐子,在中間適當的地方畫一個圓形,並且切割下來


將罐子放上去,確保罐子能夠在中間順利轉動,不會卡卡的


切割另一塊紙板,作為斜撐,讓方向盤可以在桌上傾斜一個角度

再來切割一塊大面積的板子,作為方向盤的底板

使用熱熔膠黏貼板材,這邊不得不說一下威克士的無線膠槍真的很讚,沒有電線,所以在黏貼大板材時也不會被電線勾到


可以使用紙膠帶先固定住,這樣會比較好上熱熔膠喔


底座完成,非常精簡卻穩固的設計


再來切割一片主軸的固定座,這個圓形的洞也要稍大一點點,讓主軸旋轉不容易卡住


使用熱熔膠固定,可以將洋芋片罐子插著,才不會黏歪掉


側面用兩塊紙板固定,這樣旋轉軸就會非常穩固了

接著製作方向盤,這邊可以使用紙板直接打兩個洞畫圓


像方向盤這種許多彎曲的曲線,可以使用30度的美工刀,比較容易切割小弧度的形狀


外面再切一圈紙板,讓方向盤比較好握


將罐子黏貼在方向盤上,最好可以多塗一些膠,讓方向盤比較穩固


切割兩個甜甜圈形狀的紙板,內圓切割剛好卡住罐子,外圈大概切5cm寬


在其中一塊甜甜圈穿一個洞,這是用來穿過橡皮筋用的洞


將板子用熱溶膠固定在罐子上,先固定有挖洞的這塊,離底部方向盤約1~2cm的距離

再來黏貼另一片甜甜圈紙板,由於上方這邊會直接接觸底座,所以這邊不能有熱熔膠溢出來,否則轉動的時候就會卡卡的


從側面看起來像這樣,中間各約間隔1~2cm的縫隙,這就是讓橡皮筋走的路徑

接下來要製作感測器,感測器的詳細製作方法可以參考這部影片


【自製感測器#6】拉力感測器,動作體感偵測,超便宜的材料製作姿態感測裝置

感測的原理主要是透過棉線來回摩擦,讓棉線沾滿鉛筆芯,電阻值就會因為拉扯的力道而有不同。透過分壓原理,就可以讓Arduino讀取到不同的數值。

將棉線約5cm的範圍沾滿鉛筆芯,用電表測量電阻值必須小於1M歐姆


在方向盤底座切割三條縫,這是要用來固定感測器的地方


棉線的一端打一個圈圈,套進去這三個縫隙,就可以固定住感測器了


棉線打兩個結,固定住兩條電線,棉線與電線僅需要綁著就好,不需要焊接或是黏在一起


在另一端穿上橡皮筋,形成一串橡皮筋串


感測器與橡皮筋的長度大概與底座差不多長即可


橡皮筋穿過方向盤前方的這個洞


可以使用鉛筆把橡皮筋挑出來


感測器與橡皮筋長度條整成一樣長


先固定住感測器這端


橡皮筋這端也固定住


橡皮筋就像圖上標示的虛線,完成之後還可以調整左邊橡皮筋的長度,甚至可以串兩條橡皮筋,調整方向盤旋轉的阻力


從側面看,會發現橡皮筋箭頭處有點卡卡的,所以在邊邊用紙板將感測器墊高,另一端也可以墊高防止摩擦


這樣轉起來就很順暢了



震動馬達

這種賽車搖桿沒辦法有旋轉的動力回饋,但手把的震動功能還是有的,所以接下來就自己製作震動馬達吧。

你可以找一顆小風扇,或是玩具的馬達來製作,還需要一顆螺帽當重物,以及一條束線帶


用束線帶綁住螺帽


並且使用熱熔膠加強固定,震動馬達就完成了


為了不讓電線影響方向盤的操控,震動馬達可以裝在轉軸後面,這邊塗上熱溶膠來將馬達固定


電線可以黏在馬達對面,這樣震動時不會碰到電線


確認方向盤旋轉不會影響之後,就把電線固定,整個方向盤就完成了喔!




油門剎車踏板

接下來要製作油門剎車的踏板,這邊我為了讓踏板比較耐久,所以使用木板製作,你也可以使用其他較為堅硬的材料來製作,若真的沒有材料,一般的厚紙板多黏幾層也是個選擇。

先切割踏板的大小,油門跟剎車各一片


兩側要切割凹槽,這是到時候固定橡皮筋用的,若你沒有鋸子可以使用美工刀慢慢挖,只要能卡住橡皮筋就可以


像這樣兩片踏板就做好了


踏板的架子我使用大小適合的紙箱,你也可以自己用紙板做一個框架


我將紙板的兩側反摺回去,形成一個三角形的柱狀體,這樣可以讓箱體更為結實不容易壞,


可以多塗一些熱溶膠固定,兩側都需要加強,否則紙箱很容易壓壞


箱子的頂部也需要加強硬度,可以塗一堆膠,再將頂部紙板反摺回來


將踏板黏在紙箱上,這邊我使用大力膠帶黏貼踏板的正反兩面,用膠帶當作活動鉸鏈


翻過來,確認位置正確不會卡到側邊或底板


將接著黏上膠帶,固定住踏板外側


兩個踏板製作完成後,確認上下活動順暢

在踏板頂部鑽兩個洞,將另外製作的「拉力感測器」穿過這個洞


拉力感測器一端固定在頂端,一端綁上橡皮筋,我希望油門跟剎車有較好的阻力回饋,所以綁上三條橡皮筋


上端這邊的固定方式,可以塗上熱熔膠再貼上膠帶,這樣比較能牢牢固定住


測試踏板確認能夠踩踏,剎車跟油門就完成了喔!




組裝電路

完成方向盤以及踏板之後,就準備來連接電路,測試感測器是否運作正常,電路的連接方式如下圖

方向盤、煞車、油門的拉力感測器,分壓用的電阻我都是裝33KΩ的電阻,這邊電阻的數值大小,僅會影響到感測到的範圍,讀取到的Apin訊號介於200~800之間較佳

方向盤連接到A0,煞車與油門則分別連接到A1與A2,震動馬達連接到D5、D6




程式碼

測試訊號,請先上傳 Racing_Game_Test 這個程式碼

Racing_Game_Test程式碼 
https://create.arduino.cc/editor/kobebeefg/ff02df21-577c-4ece-b5fe-721e97a2f483/preview 

上傳完畢,打開序列埠監控視窗,確認感測器的數值狀態,並請紀錄以下幾種數值:

油門踩下去與放開的2個數值

煞車踩下去與放開的2個數值

方向盤打到最左、置中、最右的3個數值


若數值變化很小,或是根本沒有改變,請確認電路連線是否正確,如果一切正常,就剩下最後的步驟了!

接下來我們要使用XInput這個程式庫,將Arduino Leonardo變成Xbox手把,這個程式庫的操作步驟,需要在電腦新增XInput的開發板,並且安裝程式庫。

這個功能僅限於Arduino Leonardo 等32u4晶片的開發板,可用的開發板有 Leonardo, Esplora, Zero, Due , MKR 系列




安裝XInput開發板


首先要安裝XInput開發板,請到這個網址,點選 code > Download ZIP 下載安裝開發板所需的檔案


XInput開發板
https://github.com/dmadison/ArduinoXInput_AVR 


將下載後的檔案解壓縮,放在C:\Program Files(x86)\Arduino\hardware\xinput\avr

其中xinput\avr這兩個資料夾請自己建立


重新啟動Arduino軟體,在開發板看到Xinput AVR Boards就代表安裝完成




安裝Library

這個Library有收錄在Arduino內的程式庫管理員,打開Arduino的 草稿碼>匯入程式庫>管理程式庫,就可以打開程式庫管理員

搜尋xinput,點選安裝即可



準備好開發板的工作之後,就可以上傳正式的程式碼了,我們下載這個檔案並打開


Racing_Game程式碼 
https://create.arduino.cc/editor/kobebeefg/35fd5c81-d149-4a0c-8e2e-4dd8023015c7/preview 

修改上面這幾個數值,這幾個數值請改成你剛剛測試時,讀取到的數值。


上傳之前,請先選擇開發板,選擇XInput裡面的板子,我用的是Leonardo開發板,所以選擇Arduino Leonardo w/XInput,就可以上傳了


上傳成功後,理論上就可以在電腦的「藍牙與其他裝置」看到Xbox 360的手把了

注意! 上傳完成後,電腦會判斷Arduino開發板為Xbox手把,如果需要再次上傳程式碼就會出錯,電腦會找不到Arduino開發板。


這時候不用擔心,請在上傳的時候,顯示「上傳中…」的字樣時,立刻按下Arduino上的Reset按鈕,這樣就可以成功上傳了。

(原廠的Arduino板按一次可以Reset,副廠的需要連按兩下)





測試手把的網站

上傳完程式碼之後,要先確認手把是不是正常運作,請到這個網站測試每個方向盤、油門、剎車是否正常。

方向盤控制的是左邊類比搖桿的X軸,油門是右邊板機鍵,剎車則是左邊的板機鍵

測試Xbox手把網站
https://gamepad-tester.com/

當然每一款賽車遊戲控制的方法都有差異,若要調整賽車搖桿分別對應的訊號,可以參考下方的網址,這裡面有較為詳細的解說

XInput程式碼詳細說明
https://www.partsnotincluded.com/how-to-emulate-an-xbox-controller-with-arduino-xinput/ 

如果你先不想修改程式碼,單純想測試遊戲的話,你可以在Steam找到免費的賽車遊戲RaceRoom Racing Experience,這款遊戲可以直接使用我提供的程式碼。

當然這只是最陽春的塞車搖桿,你可以搭配XInput裡面的各項功能,來自定義各種按鍵,比如說打檔、後視鏡、視角切換等功能。

當然也可以直接使用Arduino來控制LED燈、馬達…等,比如說在你踩油門或煞車時,會改變控制器上的燈光效果,或是踩油門或剎車時會有額外的震動馬達回饋,請發揮自己的創意,製作屬於自己的賽車搖桿吧!



詳細製作過程影片:







2,005 次查看

最新文章

查看全部
%E5%BB%A3%E5%91%8A_edited.jpg