99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

怎樣制作基于SNES控制器的Arduino游戲

454398 ? 來(lái)源:wv ? 2019-10-12 08:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:所需的材料

所需的材料如下:

-1 Arduino

-1小面包板

- 1個(gè)您不介意拆除的舊SNES控制器

-10-15跳線(我使用11個(gè))

-5個(gè)LEDs

-膠帶

第2步:連接Arduino的所有電線

將跳線插入arduino的2-9針中。參見下文,了解每個(gè)引腳的功能以及我推薦的配色方案。

引腳2:頻閃引腳。從控制器連接到橙色導(dǎo)線,所以我將跳線設(shè)置為粉紅色或橙色。

引腳3:時(shí)鐘引腳。從控制器連接到黃色電線,所以我建議使用黃色跳線。

引腳4:數(shù)據(jù)引腳??刂破魃嫌屑t色導(dǎo)線,所以最好使用紅色跳線。

引腳5:頂部LED的電源。引腳6:右側(cè)LED的電源。引腳7:底部LED的電源。

Pin 8:左側(cè)LED的電源。引腳5-8的跳線顏色應(yīng)相同。我選擇“深綠色”。

Pin 9:指示燈電源。我使用了淺綠色。

5V:電源引腳,連接到控制器的白線,所以我用了白色的跳線。

GND:控制器的棕線,我用了黑色的跳線。

GND:用于將面包板的所有接地線重新連接到arduino,所有接地線都使用藍(lán)色。

步驟3:設(shè)置LED和面包板

將您的LED以菱形放置在面包板上。確保沒有2個(gè)LED引腳共享相同編號(hào)的行。將所有陰極(LED上的短引腳)連接到面包板上的接地線,然后將接地線連接到arduino的GND之一。將針腳5-8上的跳線連接到LED的陽(yáng)極,與它們的位置相對(duì)應(yīng),如上一步中所述。

對(duì)于游戲指示器LED,只需將其與其他LED放開,將其陽(yáng)極連接到Pin 9,其陰極連接到接地軌。

步驟4:連接控制器

到現(xiàn)在為止,您完全不必弄亂控制器。現(xiàn)在,您必須從電線末端切下塑料外殼,以便可以進(jìn)入電線內(nèi)部。它們上應(yīng)該有一些金屬小端(請(qǐng)參閱圖片),因此,將跨接導(dǎo)線鉤起來(lái)應(yīng)該相當(dāng)簡(jiǎn)單,對(duì)嗎?

錯(cuò)。

首先將控制器線由arduino綁在桌子上。如果任其發(fā)展,就很難建立良好的聯(lián)系。我的跳線直接從小金屬物品中滑出,所以我拿了一把小刀,將兩端撬開(見圖),這樣我就可以將跳線垂直地插入插座中。將5根線連接到控制器時(shí),請(qǐng)確保它們彼此之間不接觸,并且確保正確匹配顏色。

步驟5:

在這一點(diǎn)上,您應(yīng)該已正確連接好一切并準(zhǔn)備就緒。下載鏈接的Arduino草圖,對(duì)其進(jìn)行編譯,然后將其上傳到您的arduino。要播放,請(qǐng)等待游戲指示燈LED停止閃爍,然后將AXBY用作4個(gè)基本方向。在接下來(lái)的兩個(gè)步驟中,我將嘗試解釋代碼,但是如果您想要的只是一個(gè)運(yùn)行中的游戲,則可以在此處停止。

Simon_Says_snes.ino

步驟6:代碼,第1部分

首先介紹了控制器如何發(fā)送數(shù)據(jù)的一些背景知識(shí)。為了從控制器接收數(shù)據(jù),您將選通引腳設(shè)置為高電平,然后讀取數(shù)據(jù)的第一位(最低有效位)。要獲得第二位,請(qǐng)切換時(shí)鐘引腳,然后從數(shù)據(jù)引腳讀取。您將繼續(xù)執(zhí)行16次??刂破鞯臓顟B(tài)是一個(gè)2字節(jié)數(shù)字,其中12個(gè)最低有效字節(jié)包含當(dāng)前被按下的按鈕,而4個(gè)最高有效字節(jié)則無(wú)用。

所以前7行非常簡(jiǎn)單,因?yàn)樗鼈冎皇欠峙涿Q

第8-20行聲明用于檢測(cè)按下控制器上哪個(gè)按鈕的十六進(jìn)制數(shù)據(jù)。每個(gè)十六進(jìn)制值都會(huì)在數(shù)據(jù)流中打開一個(gè)單獨(dú)的位,因此您可以使用移位來(lái)確定是否按下了某個(gè)按鈕,或者僅使用按位和。

變量“數(shù)組”只是一個(gè)數(shù)組長(zhǎng)度為30 ints的整數(shù)。這將存儲(chǔ)游戲的按順序?!畃os’是位置變量。

timeForPress’是必須按下按鈕的時(shí)間。

接下來(lái)的是setup()方法。我們從播種隨機(jī)數(shù)生成器開始,然后為每個(gè)引腳2-9設(shè)置引腳模式。接下來(lái),我們出于調(diào)試目的打開串行通信,并將按鈕順序設(shè)置為全“ 4”。我這樣做是因?yàn)閎/c的LED編號(hào)系統(tǒng)最多只能增加3個(gè),因此4個(gè)基本上只是一個(gè)占位符。現(xiàn)在我們將timeForPress設(shè)置為1000,并調(diào)用genSequence()方法,該方法將數(shù)組填充為0到3(含3)之間的隨機(jī)整數(shù)。接下來(lái),將我們的位置設(shè)置為0,以表明它尚未開始游戲,然后閃爍游戲指示器以表明游戲即將開始。

步驟7:代碼,第2部分

在這一步中,我將快速介紹用于從控制器獲取數(shù)據(jù)的方法。我在上一步中告訴了您理論知識(shí),但是現(xiàn)在我將列出實(shí)際的函數(shù)調(diào)用。

我認(rèn)為我從這個(gè)可指導(dǎo)的代碼中獲得了一些代碼。但是,還不能完全確定。

有三種方法可用于檢查控制器輸入:

buttons()

頻閃()

shiftin()

buttons()方法首先設(shè)置了返回值變量和一個(gè)位置計(jì)數(shù)器。然后,它選通(使用strobe()),并進(jìn)入for()循環(huán)。在for循環(huán)中,它使用shiftin()方法和按位運(yùn)算符一次讀取并存儲(chǔ)一位數(shù)據(jù)。

strobe()方法非常簡(jiǎn)單?;旧现皇菍⑦x通引腳設(shè)置為高電平,然后立即返回至低電平。很簡(jiǎn)單的東西。這告訴控制器開始傳輸數(shù)據(jù)。

shiftin()方法實(shí)際上讀取數(shù)據(jù)。它從數(shù)據(jù)引腳獲取數(shù)據(jù),然后切換時(shí)鐘引腳,告訴控制器發(fā)送下一位。

僅使用這三種方法,您就可以讀取控制器的狀態(tài)。您永遠(yuǎn)不必直接調(diào)用strobe()或shiftin()。最后一點(diǎn),當(dāng)檢查按鈕是否被按下時(shí),必須使用2個(gè)按位運(yùn)算符。 ?(波浪號(hào))不是按位的,而是反轉(zhuǎn)數(shù)據(jù),然后&檢查狀態(tài)與您要按下的按鈕的關(guān)系。

步驟8:代碼,第3部分

這是關(guān)于代碼的最后一步。我只是要快速了解游戲循環(huán)的操作,因?yàn)閷?duì)于新手程序員來(lái)說(shuō),這應(yīng)該很容易理解。

loop()方法通過(guò)串行打印控制器的狀態(tài)開始。然后,它播放存儲(chǔ)在數(shù)組中的序列,然后使用readAndCheckInput方法檢查用戶輸入,該方法本質(zhì)上只是一個(gè)帶有一些if語(yǔ)句的for循環(huán)。如果您弄錯(cuò)了,它就會(huì)跳出循環(huán)并執(zhí)行閃爍的操作,然后結(jié)束。

聲明:本文內(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)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17113

    瀏覽量

    184362
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6498

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    基于stm32和mpu9250的usb hid鍵盤、鼠標(biāo)、游戲控制器實(shí)例打包下載

    基于stm32和mpu9250的usb hid鍵盤、鼠標(biāo)、游戲控制器實(shí)例打包,推薦下載!
    發(fā)表于 05-29 21:44

    車載整機(jī)控制器 工程機(jī)械主機(jī)控制器#碩博電子#國(guó)產(chǎn)控制器

    控制器
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2025年05月26日 09:09:02

    基于stm32和mpu9250的usb hid鍵盤、鼠標(biāo)、游戲控制器

    基于stm32和mpu9250的usb hid鍵盤、鼠標(biāo)、游戲控制器 項(xiàng)目實(shí)例下載! 純分享帖,需要者可點(diǎn)擊附件免費(fèi)獲取完整資料~~~【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問(wèn)題,請(qǐng)第一時(shí)間告知,刪除內(nèi)容!
    發(fā)表于 05-23 20:53

    工程機(jī)械控制器廠家 控制器國(guó)產(chǎn)替代 #國(guó)產(chǎn)控制器#控制器廠家#控制器品牌

    控制器
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2025年04月29日 14:15:05

    工程機(jī)械控制器如何選型?控制器選型指南 #控制器 #車載控制器 #整車控制器 #控制器選型

    控制器
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2025年03月14日 10:54:24

    Y1620工程機(jī)械主機(jī)控制器 車載智能控制器 CAN總線 #工程機(jī)械控制器 #整車控制器 #車載控制器

    控制器
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2025年02月10日 15:32:21

    如何使用Arduino實(shí)現(xiàn)CAN總線通信呢

    CAN(Controller Area Network)總線是一種常用于汽車和工業(yè)控制系統(tǒng)的串行通信協(xié)議,以其高可靠性和實(shí)時(shí)性而聞名。Arduino,作為一種流行的開源微控制器平臺(tái),可以通過(guò)附加
    的頭像 發(fā)表于 12-23 09:06 ?1948次閱讀

    stm32與Arduino的比較

    在微控制器的世界里,STM32和Arduino是兩個(gè)經(jīng)常被提及的名字。STM32是一系列由STMicroelectronics生產(chǎn)的高性能微控制器,而Arduino則是一個(gè)開源電子原型
    的頭像 發(fā)表于 11-19 15:45 ?4198次閱讀

    如何選擇合適的PID控制器

    在工業(yè)自動(dòng)化領(lǐng)域,PID控制器因其簡(jiǎn)單、高效和廣泛應(yīng)用而備受青睞。PID代表比例(Proportional)、積分(Integral)和微分(Derivative)三個(gè)控制作用,它們共同作用于系統(tǒng)
    的頭像 發(fā)表于 11-13 14:34 ?1269次閱讀

    開源項(xiàng)目!基于Arduino做的“魷魚游戲”BOSS面具,支持動(dòng)作檢測(cè)

    一個(gè)更穩(wěn)定的電路和原型。 組件包括: Arduino Nano(主控制器) DFPlayer MP3模塊(用于聲音) PIR傳感(運(yùn)動(dòng)檢測(cè)) 5個(gè)舵機(jī)輸入 揚(yáng)聲器用于音頻輸出 作者選擇了
    發(fā)表于 10-28 10:18

    游戲、AR和VR控制器中的位置檢測(cè)

    電子發(fā)燒友網(wǎng)站提供《游戲、AR和VR控制器中的位置檢測(cè).pdf》資料免費(fèi)下載
    發(fā)表于 09-05 11:05 ?0次下載
    <b class='flag-5'>游戲</b>、AR和VR<b class='flag-5'>控制器</b>中的位置檢測(cè)

    國(guó)產(chǎn)控制器廠家 整車控制器 以太網(wǎng)控制器 CAN控制器 國(guó)產(chǎn)化替代

    控制器
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2024年09月03日 09:15:51

    車載智能控制器 工程機(jī)械控制器 CAN總線控制器 碩博電子 #控制器 #can總線 #國(guó)產(chǎn)化替代

    控制器總線
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2024年08月29日 10:43:57

    移動(dòng)工程機(jī)械控制器,車載智能控制器,碩博電子

    控制器
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2024年08月08日 10:18:12