USB遊戲控制器(手把)DIY:使用Arduino Leonardo(李奧納多)控制板與Wii Classic經典手把

ATmega32u4微控器內建USB介面,採用此微控器的Arduino控制板,例如Leonardo(李奧納多)和Micro Pro,不需要USB序列通訊介面IC,即可連接電腦,而且還能用程式把控制板設置成滑鼠、鍵盤、遊戲控制器(手把)…等裝置。

Arduino Uno VS Leonardo(李奧納多)

本文使用Arduino Leonardo連接Wii Classic經典手把,將它轉換成USB介面連接電腦使用。

Arduino Leonardo連接Wii 經典手把、轉換成USB介面。

附帶一提,Arduino官方曾在2012年12月10日發表「遊戲控制器」形式的Arduino Esplora(義大利文的「探索」之意)控制板,微控器型號也是ATmega32u4,但Esplora控制板已經停產。

安裝XInput程式庫

Arduino IDE內建讓具備控制板(採用ATmega32u4微控器)變成滑鼠和鍵盤的範例程式(位於主功能表的「檔案→範例→USB」選單中)。David Madison先生開發了“ArduinoXInput”程式庫,可讓Leonardo等控制板模擬Xbox 360遊戲控制器。

請先下載三個檔案:

  • ArduinoXInput:在Arduino板模擬Xbox 360控制器的程式庫。
  • ArduinoXInput_AVR:搭配ArduinoXInput程式庫使用的控制板核心程式。
  • NintendoExtensionCtrl:讀取Wii Nunchuck(左手把)與Classic Controller(經典手把)資料的程式庫。

開啟Arduino IDE之前,先把剛剛下載的ArduinoXInput_AVR_v1.0.0.zip解壓縮,把其中的xinput資料夾存入Arduino安裝資料夾裡的hardware資料夾(在Windows系統上,預設路徑為:C:\Program Files (x86)\Arduino\hardware):

安裝ArduinoXInput核心程式

接著開啟Arduino IDE,選擇「草稿碼→匯入程式庫→加入.ZIP程式庫」指令,選取剛剛下載的ArduinoXInput-master.zip,安裝Xinput程式庫。

再次執行「草稿碼→匯入程式庫→加入.ZIP程式庫」,選擇NintendoExtensionCtrl-master.zip,安裝連接Wii控制器的程式庫。

從「工具→開發板」選單,選擇Arduino Leonardo w/XInput

選擇Arduino Leonardo w/XInput控制板

USB介面的Wii Classic Controller經典手把

使用Wii轉接板連接Wii經典把手,或者如《超圖解Arduino互動設計入門》第11章「讀取Wii左手把的搖桿、按鈕與加速度計值」單元,用PCB板自製一個轉接板:

用Wii轉接板連接Wii經典把手

選擇「檔案→範例→XInput→WiiClassicController」,編譯並上傳程式碼。

程式上傳完畢後,控制板將自行重置,從「裝置管理員」可看到「Xbox 360控制器」已連接:

裝置管理員

從Windows控制台的「遊戲控制器」,可測試與調整遊戲手把的按鍵:

裝置管理員

或者,用瀏覽器開啟gamepadviewer.com,也能測試遊戲手把的按鍵:

amepadviewer.com

延伸閱讀

Posts created 470

2 thoughts on “USB遊戲控制器(手把)DIY:使用Arduino Leonardo(李奧納多)控制板與Wii Classic經典手把

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top