ATmega32u4微控器內建USB介面,採用此微控器的Arduino控制板,例如Leonardo(李奧納多)和Micro Pro,不需要USB序列通訊介面IC,即可連接電腦,而且還能用程式把控制板設置成滑鼠、鍵盤、遊戲控制器(手把)…等裝置。
本文使用Arduino Leonardo連接Wii Classic經典手把,將它轉換成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):
接著開啟Arduino IDE,選擇「草稿碼→匯入程式庫→加入.ZIP程式庫」指令,選取剛剛下載的ArduinoXInput-master.zip,安裝Xinput程式庫。
再次執行「草稿碼→匯入程式庫→加入.ZIP程式庫」,選擇NintendoExtensionCtrl-master.zip,安裝連接Wii控制器的程式庫。
從「工具→開發板」選單,選擇Arduino Leonardo w/XInput:
USB介面的Wii Classic Controller經典手把
使用Wii轉接板連接Wii經典把手,或者如《超圖解Arduino互動設計入門》第11章「讀取Wii左手把的搖桿、按鈕與加速度計值」單元,用PCB板自製一個轉接板:
選擇「檔案→範例→XInput→WiiClassicController」,編譯並上傳程式碼。
程式上傳完畢後,控制板將自行重置,從「裝置管理員」可看到「Xbox 360控制器」已連接:
從Windows控制台的「遊戲控制器」,可測試與調整遊戲手把的按鍵:
或者,用瀏覽器開啟gamepadviewer.com,也能測試遊戲手把的按鍵:
請問一下這燒錄後要如何重置回燒錄模式重新燒錄程式
你需要重新燒錄Leonardo板子的Bootloader,操作方式類似這篇貼文,我改天再補充說明。
文章已更新:重新燒錄Arduino Bootloader(開機啟動程式):以Leonardo板為例
thanks,
jeffrey