一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

科技觀察員 ? 來(lái)源:circuitdigest ? 作者:Pradeep Kumar ? 2022-09-01 16:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在這個(gè)項(xiàng)目中,我們將使用與游戲手柄或游戲控制器相同的操縱桿來(lái)玩任何需要左右移動(dòng)的電腦游戲。要玩需要更多控制選項(xiàng)的游戲,可以使用兩個(gè)或更多操縱桿。在這里,我們將使用 Arduino Leonardo 將操縱桿作為游戲控制器進(jìn)行接口。Arduino Leonardo 比 Uno 的優(yōu)勢(shì)在于我們可以在其上安裝 USB 驅(qū)動(dòng)程序,并且在連接時(shí)可以被計(jì)算機(jī)檢測(cè)為鼠標(biāo)、鍵盤或操縱桿。

所需組件

阿杜諾·萊昂納多

雙軸XY操縱桿模塊

Arduino IDE

連接線

阿杜諾·萊昂納多

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

pYYBAGMQaj6AHZghAALXAvZWT4c005.png

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

技術(shù)規(guī)格

pYYBAGMQajmAVXUVAAAuditmaho209.png

引腳輸出參考

pYYBAGMQajaAVMInAAEQM_TOS94801.png

雙軸XY操縱桿模塊

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

poYBAGMQajKAdMfyAALMzeimLuw480.png

如您所見(jiàn),此操縱桿模塊有兩個(gè)軸。它們是 X 軸和 Y 軸。JOY STICK 的每個(gè)軸都安裝在電位器或電位器上。這些電位器的中點(diǎn)被驅(qū)動(dòng)為 Rx 和 Ry。所以 Rx 和 Ry 是這些底池的可變點(diǎn)。當(dāng)操縱桿處于待機(jī)狀態(tài)時(shí),Rx 和 Ry 充當(dāng)分壓器。

當(dāng)操縱桿沿水平軸移動(dòng)時(shí),Rx 引腳上的電壓會(huì)發(fā)生變化。類似地,當(dāng)它沿垂直軸移動(dòng)時(shí),Ry 引腳上的電壓會(huì)發(fā)生變化。所以 我們?cè)趦蓚€(gè) ADC 輸出上有四個(gè)方向的操縱桿。當(dāng)搖桿移動(dòng)時(shí),每個(gè)引腳上的電壓會(huì)根據(jù)方向變高或變低。

電路原理

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

pYYBAGMQai6AH4NcAABQqxp_6jU359.png

poYBAGMQaiqAdZmgAAM4sBm9q_Q844.png

poYBAGMQaiiAdQhRAAaZck6_7KM309.png

代碼和工作說(shuō)明

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

首先,我們需要初始化鍵盤庫(kù)

#include《鍵盤.h》

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

const int X_pin 和 const int Y_pin 分別

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

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

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

最后將代碼燒錄到 Arduino 中,并將 Arduino 與計(jì)算機(jī)連接。

接下來(lái)檢查控制面板中的“設(shè)備和打印機(jī)”,您將能夠在設(shè)備部分下看到“ Arduino Leonardo”,如下圖所示。現(xiàn)在您可以開(kāi)始使用操縱桿了。

pYYBAGMQaiOAe5N7AADm5E9LWdw341.png

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

poYBAGMQah-ABymMAAavtoU4LUE891.png

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

#include<鍵盤.h>


常量 int SW_pin = 2; // 數(shù)字引腳連接到開(kāi)關(guān)輸出

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

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

int x, y;

無(wú)效設(shè)置()

{

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

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

Serial.begin(115200);

鍵盤.開(kāi)始();

}

無(wú)效循環(huán)()

{

x = 模擬讀?。╔_pin);// 讀取 X_pin 的輸出

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

{

Serial.println("Up:");

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

}

else

{

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

}

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

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


{

Serial.println("向下:");

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

}

else

{

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

}

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


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

{

Serial.println("Right:");

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

}

else

{

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

}

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


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

{

Serial.println("Left:");

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


}

else

{

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

}

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

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

{

Serial.println("Enter:");

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

}

delay(500);

}

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

    關(guān)注

    190

    文章

    6498

    瀏覽量

    192157
  • 操縱桿
    +關(guān)注

    關(guān)注

    0

    文章

    69

    瀏覽量

    8764
  • 游戲控制器
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    3168
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    用于游戲手柄/操縱桿的PSoC嵌入式系統(tǒng)介紹

    用于游戲手柄/操縱桿的PSoC嵌入式系統(tǒng),使用CY7C63000 USB控制器設(shè)計(jì)低成本USB鼠標(biāo)
    發(fā)表于 07-19 16:06

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

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

    PS2游戲操縱桿搖桿模塊

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

    基于arduino的超級(jí)無(wú)尾卡丁車操縱桿

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

    基于C++的游戲操縱桿模擬鼠標(biāo)的程序

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

    怎樣用Arduino操縱桿控制伺服電機(jī)

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

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

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

    使用Arduino Uno制作操縱桿控制的PC鼠標(biāo)

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

    如何使用Arduino操縱桿控制BLDC電機(jī)

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

    如何使用Arduino創(chuàng)建操縱桿控制器

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

    Arduino之使用PS2操縱桿控制LED

    電子發(fā)燒友網(wǎng)站提供《Arduino之使用PS2操縱桿控制LED.zip》資料免費(fèi)下載
    發(fā)表于 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相機(jī)滑塊

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

    Arduino基于網(wǎng)絡(luò)的操縱桿

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

    如何雙軸操縱桿Arduino Uno連接

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

    如何使用操縱桿Arduino控制伺服電機(jī)

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