2017-11-02

彩虹控2改造-DJMAX轉盤與GIMX連接PS4

前篇的程式已經包含有DJMAX支援的程式,旋鈕還可以再改成轉盤


把壓克力切圓形,直徑8cmx5mm,用螺絲鎖上法蘭聯軸器 這裡有賣 ¥6.37CNY
螺絲開孔請參考法蘭聯軸器的實際規格,我拿到的實物跟賣家給的規格並不完全相同




另外需注意螺帽寬度別卡到聯軸器,我本來想把法蘭聯軸器攻牙來鎖沉頭螺絲
不過忘了買M4絲攻,手邊又剛好沒有合適的螺帽,所以這裡的螺帽長相比較奇怪

之前的程式設計上,轉動一個編碼器同時會有兩個類比數值變動
一個隨角度遞增/遞減數值,另一個則固定把搖桿扳到底,停止旋轉則會歸零
後者是設計給DJMAX RESPECT的LS與RS操作,其他鍵位排列大致如下圖


但PS4原生不支援Arduino控制器,這邊再介紹一款開源的轉接器GIMX


GIMX (https://blog.gimx.fr/)可以在電腦周邊與遊戲機之間做轉換
輸入端支援電腦的鍵盤,滑鼠,搖桿,手把,方向盤等
模擬端支援PC,PS2,PS3,PS4,XBOX360,XBOX ONE
轉換訊號支援方向盤力回饋,類比轉按鍵或按鍵轉類比,甚至還可以支援腳本
先講缺點,以PS4的DJMAX RESPECT為例,GIMX需要一台電腦或樹梅派執行程式
並連接PS4的手把作導引,透過GIMX轉換器從USB線傳輸模擬信號進PS4
一般在電腦端至少需要消耗3個USB連接埠,但優點是便宜
而且我認為藉由電腦進行設定會比較直覺好用,也不太需要考慮周邊支援度的問題

製作GIMX轉接器的材料:
1.使用CP2102晶片的USB2.0轉TTL或UART轉接器
2.相容Arduino的SparkFun Pro Micro
3.電線數條
4.常開型小按鈕開關一個(選配)

四項合計大概三百塊就能買到,然後照下圖把線接起來
RX接到TX,另一邊的TX接到RX,兩邊交錯,右邊開關是我覺得有接會比較方便,非必要
(有些CP2102轉接器的RX/TX是印相反的,碰到問題時可以對調試試)


我自己的作法是把兩塊板子疊在一起焊,使用時比較方便
如果你沒有辦法焊接電線(或不懂焊接),可以上GIMX官方商店買一個做好的 (€30 EUR)
或者1跟2的電路板可以買預先焊好2.54mm間距排針的款式
再用杜邦線作連接 (一種市面上很普遍的電子實驗用連接線)


然後準備一台Windows7或以上的電腦從前面的GIMX官網下載軟體並安裝
目前最新版本為6.10 ,安裝包內含USBDK,Arduino與CP210X驅動請一併安裝
並關閉所需裝置的"允許電腦關閉這個裝置以節省電源"選項 (這裡有教學)
*Update:2018-02-18 GIMX已釋出7.2版,新增正體中文介面

使用之前要燒Arduino韌體,GIMX6.8版之後開始內建此功能
首先把接好線的轉接器,兩端的USB都接到同一台電腦


讓驅動程式安裝完畢後啟動gimx-launcher


1.選擇上傳韌體功能
2.選擇PS4用的韌體,按Load
3.此工具只相容特定作法的GIMX轉接器,按確定
4.確認轉接器兩邊USB都接到同一台電腦上,按確定
5.把Pro Micro那一端的USB拔掉,然後馬上插回去(需在10秒內完成)
6.電腦偵測到重插裝置後會自動開始上傳韌體
7.傳輸完畢

前面加裝的開關主要是用在步驟5,當上傳韌體需要拔USB插頭時
實際上只要手動按Reset按鍵就可以了,重新連線8秒之內可以燒韌體
第一次作時可能會因為電腦需安裝驅動程式而超過8秒,重試即可
完成韌體燒錄之後還需要進行按鍵配置,建議先下載DualShock4的檔案


開啟gimx-config,讀取DualShock4.xml進行設定


官方下載的預設配置檔案DualShock4.xml包含原本手把的功能
可以用此檔案先與PS4作連接測試,而GIMX整體使用時的接線是像這樣


接好線之後啟動gimx-launcher,選擇CP2102產生的COM Port跟DualShock4.xml
然後按Start,電腦端的操作會被GIMX攔截,此時按PS鈕之後應該可以操作PS4
更新速率與DualShock4相同,退出程式的快速鍵是Shift+Esc


測試完畢後可以回到gimx-config來新增按鈕對應,可以跟預設的按鍵重複
手把跟彩虹控2能同時對PS4操作,專用控制器缺乏的按鍵可以從手把來補足
如果按鍵只有對應手把訊號,而電腦想繼續操作的話可以取消勾選Grab mouse
Messages項目選擇Curses的話會顯示圖形介面

以下是DJMAX Respect遊玩影片,如果使用上有問題可以留言討論

15 則留言:

Unknown 提到...

請問一下我在網路上看到的cp2102跟你的圖片有點不同,這是可以通用的嗎?https://m.ruten.com.tw/search/search.php?searchfrom=indexbar&k=Cp2102

那克魯斯 提到...

你提供的連結是行動版網頁的搜尋結果,我無法得知你想詢問的款式為何,理論上,只要有包含我文中所使用到的接腳,並且使用相同IC就可以用

那克魯斯 提到...

附帶一提,我自己購買的商家也是給我跟商品圖不同長相的產品,這可能要隨緣了 XD

Unknown 提到...

那我想請問一下我想用ps2塑膠製的IIDX控製器也是可以支援到ps4嗎?

那克魯斯 提到...

GIMX輸入端支援電腦的鍵盤,滑鼠,搖桿,手把,方向盤等,所以只要你能把IIDX CS控轉接到電腦上,那就可以用

Unknown 提到...

Sorry,還有一個疑問就是SparkFun Pro Micro這個你是在哪裡買到的,我查到的價格是@@五六白多
我是要買5V還是3.3V?

那克魯斯 提到...

別篇有提到過,我是買替代品,市面上應該大都是5V的,倒是要注意別把MicroUSB接頭掰斷了 (最近常幹這種事)

Unknown 提到...

抱歉又要打擾了我用到PS4手把有連接到,但是我在gimx-config控制器要怎麼設定怎麼案都沒反應
(IIDX控制器是PS2規格所以有用USB轉接器應該不影響吧?)

那克魯斯 提到...

Gimx-config的設定方式是先按Auto detect後,再按控制器的按鍵讓它抓訊號
要模擬成按鈕的就在button頁面做設定,模擬成類比的在axis頁面
控制器的Event類型也有分button (按鍵)跟axis(類比),部分按鈕抓不到的話建議兩種都試試
Windows控制台裡能抓到的裝置應該都能用,理論上在這階段連鍵盤滑鼠的訊號都能抓進來用
除了經由JoyToKey的轉換需要開啟Advanced>Window Events選項

你的狀況是 IIDX控,鍵盤,滑鼠,Dualshock4都抓不到訊號?

Unknown 提到...

抓到是畫面會閃一下?設定好要怎麼存在控制晶片?

那克魯斯 提到...

設定流程 大概像這樣 (字幕解說)
設定檔是連線時由gimx-launcher載入使用,不會存到控制晶片裡

Unknown 提到...

設定好了話CP2102是直接插在PS4上面另一頭是接控制器嗎?
還是說要連接在電腦透過gimx-launcher載入使用?

那克魯斯 提到...

我的文中有附接線範例與文字說明,照著接的話應該不會有問題

Unknown 提到...

我電腦設定好了GIMX有模擬到但是控制器不能控制遊戲??

那克魯斯 提到...

以PS4來說,Gimx-Launcher按Start之後需要先按PS鈕才能開始操作
引導用手把或其他設定為PS鈕的按鍵皆可,另需確認
Gimx-config程式內是否被開啟Advanced>Windows Events
如果沒開啟的話,Gimx-Launcher的Input項目應該要選Physical devices