0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣將USB游戲控制器添加到Arduino Leonardo / Micro

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-12-11 11:15 ? 次閱讀

步驟1:更新Arduino代碼

首先在“%”中制作以下兩個(gè)文件的備份副本PROGRAMFILES%\ Arduino \ hardware \ arduino \ avr \ cores \ arduino”文件夾:

USBAPI.h

HID.cpp

將這兩個(gè)文件替換為附加文件,以向Arduino Leonardo和Arduino Micro添加通用游戲控制器。

步驟2:運(yùn)行測試草圖

使用Arduino軟件(IDE)編譯附加的UsbJoystickTest.ino草圖文件并將其上傳到Arduino Leonardo或Arduino Micro。我已經(jīng)使用1.6.1到1.6.5版本的軟件對此進(jìn)行了測試。對于Arduino IDE 1.6.6及更高版本,請參見以下Instructionable:Arduino Leonardo/Micro作為游戲控制器/操縱桿。

以下步驟適用于Windows 7。不同的操作系統(tǒng),這些步驟可能會(huì)有所不同。

步驟3:Windows控制面板-硬件和聲音

怎樣將USB游戲控制器添加到Arduino Leonardo / Micro

轉(zhuǎn)到Windows控制面板,然后選擇“硬件和聲音”。

步驟4:設(shè)備和打印機(jī)

然后選擇“設(shè)備和打印機(jī)”

第5步:應(yīng)該出現(xiàn)Arduino

Arduino Micro或Arduino Leonardo應(yīng)該出現(xiàn)在設(shè)備列表中。

第6步:Arduino設(shè)置

下一步,右鍵單擊Arduino Leonardo或Arduino Micro以顯示設(shè)置菜單。

然后選擇“游戲控制器設(shè)置”以進(jìn)入“游戲控制器”對話框。

步驟7:游戲控制器設(shè)置

Arduino Micro或Arduino Leonardo應(yīng)該出現(xiàn)在已安裝游戲控制器的列表中。選擇Arduino Micro或Arduino Leonardo,然后單擊“屬性”按鈕以顯示游戲控制器測試對話框。

步驟8:

當(dāng)此對話框?yàn)榻裹c(diǎn)時(shí),將Arduino上的A0引腳接地以激活測試腳本。測試腳本將按以下順序測試游戲控制器的功能:

32個(gè)按鈕

油門和方向舵

X和Y軸

Z軸

2個(gè)帽子開關(guān)

X和Y軸旋轉(zhuǎn)

第9步:操縱桿庫

現(xiàn)在,由于Arduino Leonardo或Arduino Micro具有游戲桿庫,因此Arduino可用于自定義游戲控制器項(xiàng)目。下面介紹了更新的USBAPI.h和HID.cpp文件中包含的游戲桿庫。

Joystick.begin(bool initAutoSendState)

啟動(dòng)模擬連接到計(jì)算機(jī)的游戲控制器。默認(rèn)情況下,所有方法都會(huì)立即更新游戲控制器狀態(tài)。如果initAutoSendState設(shè)置為false,則必須調(diào)用Joystick.sendState方法來更新游戲控制器狀態(tài)。

Joystick.end()

游戲控制器仿真到已連接的計(jì)算機(jī)。

Joystick.setXAxis(byte value)

設(shè)置X軸值。范圍-127至127(0為中心)。

Joystick.setYAxis(字節(jié)值)

設(shè)置Y軸值。范圍-127到127(0為中心)。

Joystick.setZAxis(byte value)

設(shè)置Z軸值。范圍-127到127(0為中心)。

Joystick.setXAxisRotation(int value)

設(shè)置X軸旋轉(zhuǎn)值。范圍從0°到360°。

Joystick.setyAxisRotation(int value)

設(shè)置Y軸旋轉(zhuǎn)值。范圍從0°到360°。

Joystick.setZAxisRotation(int value)

設(shè)置Z軸旋轉(zhuǎn)值。范圍從0°到360°。

Joystick.setButton(字節(jié)按鈕,字節(jié)值)

設(shè)置指定按鈕的狀態(tài)。該按鈕是從0開始的按鈕編號(即,按鈕#1為0,按鈕#2為1,依此類推)。如果按下按鈕,則值為1;如果釋放按鈕,則值為0。

Joystick.pressButton(字節(jié)按鈕)

按下指示的按鈕。該按鈕是從0開始的按鈕編號(即按鈕#1為0,按鈕#2為1,依此類推。)。

Joystick.releaseButton(字節(jié)按鈕)

釋放指示的按鈕。該按鈕是基于0的按鈕編號(即按鈕#1為0,按鈕#2為1,依此類推。)。

Joystick.setThrottle(字節(jié)值)

設(shè)置油門值。范圍為0到255。

Joystick.setRudder(字節(jié)值)

設(shè)置方向舵值。范圍從0到255。

Joystick.setHatSwitch(字節(jié)hatSwitch,整數(shù)值)

設(shè)置指定的帽子開關(guān)的值。 hatSwitch是基于0的(即,帽子開關(guān)#1為0,帽子開關(guān)#2為1)。值是從0°到360°,但以45°為增量。小于45°的任何值都將向下舍入(即,將44°向下舍入為0°,將89°向下舍入為45°,依此類推。)。/strong》

責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15886

    瀏覽量

    175403
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6453

    瀏覽量

    185933
收藏 人收藏

    評論

    相關(guān)推薦

    USB控制器的作用、工作原理及技術(shù)規(guī)范

    、攝像頭、鍵盤、鼠標(biāo)、耳機(jī)、音箱等。 一、USB控制器的作用 數(shù)據(jù)傳輸:USB控制器的主要功能是實(shí)現(xiàn)計(jì)算機(jī)與外部設(shè)備之間的數(shù)據(jù)傳輸。它通過USB
    的頭像 發(fā)表于 08-29 15:36 ?196次閱讀

    請問如何cURL庫添加到ESP8266_RTOS_SDK項(xiàng)目中?

    我想使用 curl api,但我不知道如何添加到我的項(xiàng)目中,這樣當(dāng)我將該庫的頭文件包含在我的項(xiàng)目中時(shí)它就不會(huì)抱怨。 有誰知道如何正確地第三方庫添加到ESP8266_RTOS_SD
    發(fā)表于 07-09 07:52

    請問如何.C的圖片文件添加到VScode(PlatfromIO)生成的lvgh項(xiàng)目中?

    當(dāng)使用LVGL官方網(wǎng)頁轉(zhuǎn)換,png圖片轉(zhuǎn)換為.c矩陣文件之后,如何.c的圖片文件加到VScode(PlatfromIO)的lvgh工程里面?<br> 不管是把.c放到
    發(fā)表于 06-17 06:03

    STM32F746 QSPI的Flash擴(kuò)展后,添加到工程下載發(fā)現(xiàn)報(bào)錯(cuò),為什么?

    使用 W25Q128 模塊 ,使用的是微雪STM32F746IGT6的開發(fā)板,在QSPI進(jìn)行Flash擴(kuò)展了解發(fā)現(xiàn)需要做一個(gè).FLM的Flash編程算法,我找一個(gè)STM32H7的進(jìn)行修改,然后添加到工程下載發(fā)現(xiàn)報(bào)錯(cuò),無法加載算法,有大佬自己做過Flash編程算法嗎,求解
    發(fā)表于 04-17 06:31

    怎么把stlink server添加到keil里?

    stlink server的使用說明里面是支持keil5.25的。怎么把stlink server添加到keil里?
    發(fā)表于 03-27 07:28

    TC399 adc能添加到同一個(gè)隊(duì)列中并得到結(jié)果嗎?加入隊(duì)列是否有任何限制?

    添加到隊(duì)列中并得到結(jié)果。 我的疑問是,有了這些不同的頻道和組,我還能把它們添加到同一個(gè)隊(duì)列中并得到結(jié)果嗎?加入隊(duì)列是否有任何限制?
    發(fā)表于 03-04 06:33

    如何F-RAM?添加到現(xiàn)有的PSoC? Creator項(xiàng)目?

    我們在PSoC? Creator 中有一個(gè) PSoC6 項(xiàng)目,并希望 QSPI F-RAM?存儲(chǔ)添加到TDA5235_868_5_BOARD中。我很難找到如何在F-RAM? PSoC
    發(fā)表于 03-01 12:14

    FCX3是否具有PTS或SCR添加到映像幀的功能?

    問題 1) FCX3是否具有PTS或SCR添加到映像幀的功能,如隨附的USB規(guī)范中所述? 如果可能,請?zhí)峁┯嘘P(guān)如何配置每個(gè) PTS 和 SCR 的詳細(xì)信息。 問題 2) CAN FCX3 支持1080x1280@120fps傳
    發(fā)表于 02-26 08:23

    如何TC1798器件添加到MDK KEIL?

    我正在嘗試使用 KEIL MDK(μVision)為英飛凌TC1798編程,但我不確定如何TC1798器件添加到MDK KEIL。 誰能幫我拿到 .pack 或者.zip 對于 TC1798?
    發(fā)表于 02-01 08:18

    如何CMSIS DSP庫添加到XMC4700 Relax Kit的Dave CE項(xiàng)目中?

    我剛開始研究 Dave,這對我來說還是個(gè)新事物。 我創(chuàng)建了一個(gè) Dave CE 項(xiàng)目,并能夠啟動(dòng)并運(yùn)行 blink 代碼。 我想將 CMSIS DSP 庫添加到我的項(xiàng)目中,并使用庫中的 DSP 函數(shù)
    發(fā)表于 02-01 07:11

    家用游戲機(jī)的控制器接口類型

    家用游戲機(jī)的控制器接口類型是游戲機(jī)和手柄之間進(jìn)行連接和通信的關(guān)鍵部分。它決定了用戶如何與游戲機(jī)進(jìn)行交互,并直接影響到游戲體驗(yàn)的質(zhì)量和多樣性。
    的頭像 發(fā)表于 01-04 11:23 ?1067次閱讀

    安裝python怎么添加到環(huán)境變量

    不同的Windows版本中添加Python到環(huán)境變量中。 為什么需要將Python添加到環(huán)境變量中: 環(huán)境變量是一種系統(tǒng)范圍內(nèi)的設(shè)置,用于指定操作系統(tǒng)在執(zhí)行命令時(shí)需要查找的程序和文件的位置。Python
    的頭像 發(fā)表于 11-23 16:40 ?2217次閱讀

    Mentor PADSPCB封裝直接添加到PCB的教程

    一般,批量添加封裝到PCB板上有以下方法: 第一步:點(diǎn)擊菜單欄“ECO模式--添加元器件”如圖,點(diǎn)擊以后彈出如圖界面。 1)元件類型 PCB封裝必須得添加完元件類型,才能通過ECO模式添加到
    的頭像 發(fā)表于 11-07 07:45 ?4301次閱讀
    Mentor PADS<b class='flag-5'>將</b>PCB封裝直接<b class='flag-5'>添加到</b>PCB的教程

    Arduino音樂代碼怎樣添加?

    Arduino音樂代碼怎樣添加
    發(fā)表于 10-30 08:26

    基于USB主機(jī)控制器的設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于USB主機(jī)控制器的設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-19 10:39 ?0次下載
    基于<b class='flag-5'>USB</b>主機(jī)<b class='flag-5'>控制器</b>的設(shè)計(jì)