精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用Arduino Leonardo將操縱桿作為游戲控制器的方式

科技觀察員 ? 來源:circuitdigest ? 作者:Pradeep Kumar ? 2022-09-01 16:17 ? 次閱讀

在這個項目中,我們將使用與游戲手柄或游戲控制器相同的操縱桿來玩任何需要左右移動的電腦游戲。要玩需要更多控制選項的游戲,可以使用兩個或更多操縱桿。在這里,我們將使用 Arduino Leonardo 將操縱桿作為游戲控制器進行接口。Arduino Leonardo 比 Uno 的優勢在于我們可以在其上安裝 USB 驅動程序,并且在連接時可以被計算機檢測為鼠標、鍵盤或操縱桿。

所需組件

阿杜諾·萊昂納多

雙軸XY操縱桿模塊

Arduino IDE

連接線

阿杜諾·萊昂納多

對于這個項目,我們使用的是 Arduino Leonardo,它是一個基于 ATmega32u4 的微控制器板。它有 20 個數字輸入/輸出引腳(其中 7 個可用作 PWM 輸出,12 個用作模擬輸入)、一個 16 MHz 晶體振蕩器、一個微型 USB 連接、一個電源插孔、一個 ICSP 接頭和一個復位按鈕。它包含支持微控制器所需的一切;只需使用 USB 電纜將其連接到計算機或使用 AC-DC 適配器或電池為其供電即可開始使用。

pYYBAGMQaj6AHZghAALXAvZWT4c005.png

Leonardo 與之前所有開發板的不同之處在于 ATmega32u4 具有內置 USB 通信功能,無需輔助處理器。除了虛擬 (CDC) 串行/COM 端口外,這允許 Leonardo 在連接的計算機上顯示為鼠標和鍵盤。

技術規格

pYYBAGMQajmAVXUVAAAuditmaho209.png

引腳輸出參考

pYYBAGMQajaAVMInAAEQM_TOS94801.png

雙軸XY操縱桿模塊

操縱桿 有不同的形狀和尺寸。典型的 操縱桿模塊 如下圖所示。此操縱桿模塊通常提供模擬輸出,并且此模塊提供的輸出電壓會根據我們移動它的方向不斷變化。我們可以通過使用一些微控制器解釋這些電壓變化來獲得運動方向。

poYBAGMQajKAdMfyAALMzeimLuw480.png

如您所見,此操縱桿模塊有兩個軸。它們是 X 軸和 Y 軸。JOY STICK 的每個軸都安裝在電位器或電位器上。這些電位器的中點被驅動為 Rx 和 Ry。所以 Rx 和 Ry 是這些底池的可變點。當操縱桿處于待機狀態時,Rx 和 Ry 充當分壓器。

當操縱桿沿水平軸移動時,Rx 引腳上的電壓會發生變化。類似地,當它沿垂直軸移動時,Ry 引腳上的電壓會發生變化。所以 我們在兩個 ADC 輸出上有四個方向的操縱桿。當搖桿移動時,每個引腳上的電壓會根據方向變高或變低。

電路原理

此Arduino 操縱桿游戲控制器需要 Arduino 和操縱桿之間的連接,如下所示:

pYYBAGMQai6AH4NcAABQqxp_6jU359.png

poYBAGMQaiqAdZmgAAM4sBm9q_Q844.png

poYBAGMQaiiAdQhRAAaZck6_7KM309.png

代碼和工作說明

最后給出完整的代碼和演示視頻;在這里,我們解釋它的幾個重要部分。

首先,我們需要初始化鍵盤庫

#include《鍵盤.h》

接下來在下面的代碼中,我們分別為模擬引腳 A0 和 A1 初始化了操縱桿模塊的 X 和 Y 軸。

const int X_pin 和 const int Y_pin 分別

讀取 VRX 引腳的模擬值,如果值為 1023,則給出“向上”命令,如果值為 0,則給出“向下”命令。

類似地,讀取 VRY 引腳的模擬值,如果值為 1023,則給出“右”命令,如果值為 0,則給出“左”命令。

操縱桿頂部還有一個按鈕,因此該按鈕 (SW) 也會被讀取,如果按下按鈕,則值將為 0,然后給出“輸入”命令。

最后將代碼燒錄到 Arduino 中,并將 Arduino 與計算機連接。

接下來檢查控制面板中的“設備和打印機”,您將能夠在設備部分下看到“ Arduino Leonardo”,如下圖所示。現在您可以開始使用操縱桿了。

pYYBAGMQaiOAe5N7AADm5E9LWdw341.png

我們可以使用此操縱桿控制任何游戲控件。搖桿內部有兩個電位器,一個用于 X 軸移動,另一個用于 Y 軸移動。每個電位器從 Arduino 獲得 5v。所以當我們移動操縱桿時,電壓值會改變,模擬引腳 A0 和 A1 的模擬值也會改變。所以操縱桿將充當游戲手柄。

poYBAGMQah-ABymMAAavtoU4LUE891.png

因此,這就是使用 Arduino Leonardo 將普通操縱桿轉換為游戲控制器的方式,并可用于玩具有向左、向右、向上和向下移動的所有控件的游戲。如前所述,除了這四個基本功能之外,可以連接多個操縱桿以獲得更多控制。

#include<鍵盤.h>


常量 int SW_pin = 2; // 數字引腳連接到開關輸出

const int X_pin = A0; // 模擬引腳連接到 X 輸出

const int Y_pin = A1; // 模擬引腳連接到 Y 輸出

int x, y;

無效設置()

{

pinMode(SW_pin,輸入);// SW 引腳設置為輸入

digitalWrite(SW_pin, HIGH); // 向 SW 引腳寫入高值

Serial.begin(115200);

鍵盤.開始();

}

無效循環()

{

x = 模擬讀取(X_pin);// 讀取 X_pin 的輸出

if (x == 1023) // 檢查 x = 1023

{

Serial.println("Up:");

鍵盤.press(218); // 鍵向上移動

}

else

{

鍵盤.release(218); // 釋放鍵

}

x = analogRead(X_pin); // 讀取 X_pin 的輸出

if (x == 0) // 檢查 x 的值是否 = 0


{

Serial.println("向下:");

鍵盤.press(217); // 鍵向下移動

}

else

{

Keyboard.release(217); // 釋放鍵

}

y = analogRead(Y_pin); // 讀取 Y_pin 的輸出


if (y == 1023) // 檢查 y = 1023

{

Serial.println("Right:");

鍵盤.press(216); // 鍵向右移動

}

else

{

Keyboard.release(216); // 釋放鍵

}

y = analogRead(Y_pin); // 讀取 Y_pin 的輸出


if (y == 0) // 檢查 y = 0

{

Serial.println("Left:");

鍵盤.press(215); // 鍵向左移動


}

else

{

鍵盤.release(215); // 釋放密鑰

}

int z = digitalRead(SW_pin); // 讀取 SW pin 的值

if (z == 0) // 檢查 z 的值是否 = 0

{

Serial.println("Enter:");

鍵盤.println(); //按下回車鍵

}

delay(500);

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Arduino
    +關注

    關注

    187

    文章

    6464

    瀏覽量

    186644
  • 操縱桿
    +關注

    關注

    0

    文章

    67

    瀏覽量

    8519
  • 游戲控制器
    +關注

    關注

    0

    文章

    15

    瀏覽量

    3007
收藏 人收藏

    評論

    相關推薦

    用于游戲手柄/操縱桿的PSoC嵌入式系統介紹

    用于游戲手柄/操縱桿的PSoC嵌入式系統,使用CY7C63000 USB控制器設計低成本USB鼠標
    發表于 07-19 16:06

    如何使用Arduino UNO、操縱桿模塊和NRF24L01模塊控制伺服電機?

    文章目錄參考資料:如何使用Arduino UNO、操縱桿模塊和NRF24L01模塊控制伺服電機1. 必需的組件2. 伺服電機控制如何工作3. NRF24L01引腳說明4. 電路原理圖5
    發表于 06-28 09:49

    PS2游戲操縱桿搖桿模塊

    PS2游戲操縱桿搖桿模塊(雙軸按鍵搖桿)產品簡介:雙軸按鍵搖桿傳感模塊由采用PS2搖桿電位制作,具有(X,Y)2軸模擬輸出,(Z)1路按鈕數字輸出。配合
    發表于 07-19 09:40

    基于arduino的超級無尾卡丁車操縱桿

    描述超級無尾卡丁車操縱桿這是我為在 2021 年的 arduino 日玩 Super Tux Kart 而創建的 arduino 操縱桿的演變。您可以在下面看到第一個版本,它是精美的紙
    發表于 06-24 06:52

    基于C++的游戲操縱桿模擬鼠標的程序

      要編寫一個支持游戲操縱桿的應用程序,首先必須要捕獲游戲操縱桿,接著要處理Windows發送給程序窗口的操縱桿消息,最后使用完
    發表于 09-01 11:54 ?1996次閱讀

    怎樣用Arduino操縱桿控制伺服電機

    這個項目的硬件部分非常容易制作。首先,操縱桿模塊與Arduino連接。操縱桿模塊和Arduino的連接如下:
    的頭像 發表于 08-01 14:24 ?5747次閱讀

    使用操縱桿模塊和LCD制作游戲

    電子發燒友網站提供《使用操縱桿模塊和LCD制作游戲.zip》資料免費下載
    發表于 10-28 14:27 ?0次下載
    使用<b class='flag-5'>操縱桿</b>模塊和LCD制作<b class='flag-5'>游戲</b>

    使用Arduino Uno制作操縱桿控制的PC鼠標

    電子發燒友網站提供《使用Arduino Uno制作操縱桿控制的PC鼠標.zip》資料免費下載
    發表于 11-04 14:46 ?2次下載
    使用<b class='flag-5'>Arduino</b> Uno制作<b class='flag-5'>操縱桿</b><b class='flag-5'>控制</b>的PC鼠標

    如何使用Arduino操縱桿控制BLDC電機

    電子發燒友網站提供《如何使用Arduino操縱桿控制BLDC電機.zip》資料免費下載
    發表于 11-24 10:10 ?0次下載
    如何使用<b class='flag-5'>Arduino</b>和<b class='flag-5'>操縱桿</b><b class='flag-5'>控制</b>BLDC電機

    如何使用Arduino創建操縱桿控制器

    電子發燒友網站提供《如何使用Arduino創建操縱桿控制器.zip》資料免費下載
    發表于 12-06 14:35 ?0次下載
    如何使用<b class='flag-5'>Arduino</b>創建<b class='flag-5'>操縱桿</b><b class='flag-5'>控制器</b>

    Arduino之使用PS2操縱桿控制LED

    電子發燒友網站提供《Arduino之使用PS2操縱桿控制LED.zip》資料免費下載
    發表于 12-22 16:39 ?2次下載
    <b class='flag-5'>Arduino</b>之使用PS2<b class='flag-5'>操縱桿</b><b class='flag-5'>控制</b>LED

    基于Arduino Pro Mini的操縱桿手柄和DIY相機滑塊

    方案介紹操縱桿手柄控制器可以使用兩軸值(操縱桿旋鈕的移動方向)來控制項目。此外,在這個項目中,我制作了一個 DIY 相機滑塊,并使用 Arduino
    發表于 12-27 16:35 ?0次下載

    Arduino基于網絡的操縱桿

    電子發燒友網站提供《Arduino基于網絡的操縱桿.zip》資料免費下載
    發表于 02-01 10:06 ?0次下載
    <b class='flag-5'>Arduino</b>基于網絡的<b class='flag-5'>操縱桿</b>

    如何雙軸操縱桿Arduino Uno連接

    Duel axis Joystick:Arduino搖桿模塊,采用雙軸電位控制X、Y軸。按下時,它會激活一個開關。它基于 PS2 控制器操縱桿
    發表于 07-07 15:01 ?0次下載
    如何<b class='flag-5'>將</b>雙軸<b class='flag-5'>操縱桿</b>與<b class='flag-5'>Arduino</b> Uno連接

    如何使用操縱桿Arduino控制伺服電機

    在這篇文章中,我們學習如何使用操縱桿Arduino控制伺服電機。我們看到有關操縱桿,其銷,
    的頭像 發表于 07-27 11:47 ?1738次閱讀
    如何使用<b class='flag-5'>操縱桿</b>和<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>伺服電機