在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>電子資料>Arduino游戲機

Arduino游戲機

2023-06-27 | zip | 0.17 MB | 次下載 | 免費

資料介紹

描述

概述

該項目的硬件構建非常容易。一個 Arduino Mega 和一個 7 英寸 Nextion 顯示器是主要組件!但是軟件開發可以像您想要的那樣具有挑戰性。我已經使用這個平臺開發了三款游戲,它們都包含在軟件下載中。但我在這里希望找幾個人為這個平臺寫游戲軟件,這樣我們就可以交換軟件,并為它建立一個游戲庫。

poYBAGOIxJGAf89kAADmZ631Zq0334.jpg
西蒙游戲的游戲機
?

為該平臺創建的任何游戲都有兩個軟件組件 - Nextion 的圖形用戶界面 (GUI) 文件和構建游戲操作和邏輯的 Arduino 草圖。

我在這里介紹的三款游戲是井字游戲、Dots and Boxes 和 Simon。

每個人都知道井字游戲。它可以使計算機無與倫比,但我遺漏了幾步,為玩家贏得了一扇門。

Dots and Boxes 是另一種類似于井字游戲的游戲,您可以在其中與計算機對戰。當你連接點并形成一個盒子時,你會得到一個點和另一個轉彎。誰得到最多的盒子就贏了。在這種情況下,計算機是一個很好的播放器,但它可以被擊敗。

西蒙就像孩之寶的同名記憶挑戰游戲。我使用了 Simon 游戲的圖像,所以它看起來和工作起來都一樣。

在一個單獨的項目中,Arduino 游戲控制臺第 2 部分,我將展示我也為這個平臺開發的兩個紙牌游戲:二十一點和五張牌撲克。

稍后我們將更詳細地討論每款游戲。除了下載中每個游戲的單獨軟件外,還有一個名為 Arcade 的應用程序中的前三個游戲的組合。

?

硬件

為了創建一個便攜式游戲機,除了 Arduino Mega 和 Nextion 顯示器之外,我還添加了一個 7.4 伏鋰離子電池、一個開關和一個穩壓器。2000 mAh 電池在兩次充電之間可持續使用約 3 小時。稍后的示意圖向您展示了它的接線方式。Arduino 可以通過 Vin 引腳直接使用電池供電,但 Nextion 需要 5 伏電壓。有很多方法可以獲得 5 伏,盡管 Arduino 上的 5 伏引腳不是其中之一。Nextion 帶有幾個警告,即 Arduino 無法處理 Nextion 當前的要求。我選擇了一個 LM317 可變電壓調節器模塊,因為我有一個可用的。您只需將輸出電壓設置為 5 伏,因為它是一個可變電壓調節器。

我還提供了 3D 打印案例的文件,但如果您無法使用 3D 打印機,您可能可以用塑料或輕質膠合板制作一個。以下是一些施工細節的照片:

poYBAGOIxJWACQB4AAD8rEXOptc235.jpg
內臟
?

?

pYYBAGOIxJeAHDJQAAEbAfKqjLw571.jpg
Nextion 顯示器的背面視圖
?

上圖顯示了一些重要的事情。該板帶有一個漂亮的 4 針連接器,但它插入側面。我的 3D 打印外殼沒有為該連接器留出任何空間,因此我將 4 根電線直接焊接到連接器的背面。此外,重要的是要注意 Nextion 的 TX 連接到 Arduino RX (pin10),Nextion 的 RX 連接到 Arduino 的 TX (pin11)。我們在這里使用軟件串行,以免占用用于編程 Arduino 的硬件串行引腳 0、1。

pYYBAGOIxJmAF-sEAABnHgyaXhQ283.jpg
可訪問 Arduino 和電池充電器輸入的側視圖
?

充電器插頭和 Arduino Mega 都用大量熱膠固定!

poYBAGOIxJ6AG7shAAAuTJIEOXk176.jpg
空殼
?

上面顯示的空殼實際上經過了幾次迭代,然后我才得到它以容納 Nextion 顯示器邊緣的所有東西。

poYBAGOIxKGAMMaLAAAKTZWxmHs187.jpg
背面的插槽可訪問 Nextion 的 Micro SD 卡插槽
?

Arduino 的編程顯然是通過 USB 端口完成的,但 Nextion GUI 文件需要加載到 micro SD 卡上并插入 Nextion 背面的插槽中。只需在 SD 卡就位的情況下打開 Nextion 即可安裝文件。然后可以取出 SD 卡進行正常使用。

關于硬件的最后一點說明:我使用 Arduino 上的模擬輸入 A0 來獲得一個隨機值,用于設置隨機種子,因為所有這些游戲都使用隨機數。為了獲得良好的隨機模擬輸入,我將一根 3 英寸的線連接到 A0。它不依附于任何東西。它只是接收雜散電噪聲的天線

使用 Nextion

在這個項目開始時,我并沒有專門尋找 Nextion 顯示器。我只是在尋找可以與 Arduino 一起使用的大型 LCD 屏幕。Nextion 不僅僅是一個 LCD 觸摸屏。它有自己的處理器、自己的操作系統、用于設計圖形用戶界面的應用程序,以及您可以從 Arduino 使用的命令語言來配置和控制它。

我在這里看到的大多數使用 Nextion 的項目都將它視為他們用于用戶界面的工具。我將嘗試更深入地研究 Nextion 的真正含義,因為它已成為該項目的關鍵部分。

Nextion 顯示器旨在為幾乎任何事情提供人機界面,但似乎特別針對工業控制應用,即一個完整的觸摸屏,可用于控制工業機械在我看來,它并不是專門為業余愛好者設計的,所以需要一點時間來適應。

使用 Arduino 和 Nextion 構建項目涉及兩個截然不同且不同的步驟 - 1) 使用 Nextion 編輯器創建圖形用戶界面或 GUI,2) 開發與該用戶界面交互的 Arduino 應用程序。

pYYBAGOIxKWAdqUeAAH-KRnJKtQ760.jpg
使用 Nextion Editor 編輯井字游戲
?

Nextion Editor 是您構建 GUI 的應用程序。您可以創建菜單和各種頁面。如果這一切聽起來很熟悉,它可能應該,因為它幾乎就像建立一個網站。

事實上,就網站而言,Nextion 系統的設計和行為與特定的 Web 技術平臺非常相似:ASP.NET(Active Server Pages)。在這種情況下,Nextion 就像在您自己的計算機上運行的網絡瀏覽器一樣,而 Arduino 就像一個遠程服務器,在用戶界面上采取行動并響應更改,然后將它們傳回 Nextion。

Nextion Editor 是一個非常好的應用程序!它易于學習且功能非常強大。它甚至有一個模擬器/調試器,可以模擬 Nextion 顯示器,并允許您測試您創建的用戶界面,而無需將其下載到實際的 Nextion 顯示器。

Nextion 和 Arduino 之間的通信通過簡單的串行連接在兩個方向上完成。這種通信的協議和命令結構是 Nextion 自己的語言。它沒有什么復雜的,但是有許多不同的命令和一門新的語言需要學習!有幾個 Arduino 庫可用,它們試圖彌合差距并處理 Nextion 的所有命令。我不確定他們中的任何一個在這方面特別成功。我讀過的幾篇文章建議最直接的方法是一起跳過庫并學習 Nextion 語言。

在查看了各種庫和許多 Nextion 有點令人眼花繚亂的文檔之后,我最終使用了 Neo Nextion。它是一個功能齊全的庫,具有官方 Nextion 庫的所有功能,但總體上比官方提供了很多好的示例和更好的文檔。但即使有了這個庫,也需要一些時間來弄清楚你在 Arduino 方面做了什么。

Nextion 的基本思想是用戶界面中的對象(如按鈕、圖像框、頁面、文本框等)具有屬性,其中一些屬性只能由 Nextion 編輯器設置,但大部分可以設置和從 Arduino 改變。因此,例如,我可以更改圖像框中的圖片或更改 Arduino 中按鈕的顏色。因此,要使用此方案構建游戲,我們使用 Nextion Editor 創建用戶界面,并使用 Arduino 對游戲邏輯進行編程。

Nextion 通過名稱和 ID 號標識每個接口對象。一些命令使用對象的名稱;其他人使用它的 ID。Neo Nextion 之類的庫允許您僅使用對象的名稱來保持一致性。(我對 Nextion 編輯器的一個批評是,如果你刪除一個對象,例如一個按鈕,它會更改頁面上許多其他對象的 ID 號——這不是一個好主意——它真的會弄亂你的 Arduino草圖!)

關于所有這些庫的另一個值得一提的問題是它們實現了完整 Nextion 控制語言的一個子集。例如,Nextion 支持可以動態更改的按鈕上的圖像。但是 Neo Nextion 庫不支持圖像按鈕,所以我無法從 Arduino 控制按鈕上的圖像。

我將通過快速概述 Arduino 如何與 Nextion 上的按鈕交互來完成對 Nextion 的討論。理解這一點將大大有助于理解 Nextion 使用的 Arduino 代碼。首先,在 Nextion 方面,必須將按鈕配置為將其 ID 發送到 Arduino,無論是在按下時,還是在釋放時,或兩者兼而有之。在 Arduino 端,我們需要在 Neo Nextion 中設置一個按鈕實例和一個“回調”” 它將按鈕鏈接到按下(或釋放)按鈕時執行的例程。我們還需要創建將要執行的實際例程。然后,在 Arduino 的設置中,我們需要向 Nextion 發送一個“回調”指令,該指令為 Nextion 提供我們的“回調”例程的地址。最后,在 Arduino 的主循環中唯一允許的是 Nextion 的按鈕輪詢例程。其他所有內容都內置在按鈕被按下的“回調”響應中!

第一次設置按鈕時似乎有點混亂,但每個按鈕都是一樣的,所以創建一堆按鈕主要是“復制和粘貼”練習。Neo Nextion 有很多很好的例子,向你展示如何做按鈕等等。

軟件

正如我們已經說過的,該軟件有兩個部分:1)使用 Nextion 編輯器創建圖形用戶界面,以及 2)創建 Arduino 草圖以生成所有游戲邏輯和對用戶界面的響應。

在軟件下載中,我為每個游戲和三個游戲的“街機”組合分別包含了 Arduino 草圖和 Nextion GUI 文件。如果您只想重新創建我所做的,只需使用這些文件。順便說一下,GUI 文件 (.tft) 需要通過 microSD 卡下載到 Nextion。如果您想為此硬件創建自己的游戲,請繼續閱讀...

Nextion 編輯器易于使用且有據可查,所以我不會在這里花很多時間解釋它。您需要選擇特定的 Nextion 顯示器 - 我們的是 7 英寸、智能電容式觸控,并在水平 0 模式下運行。您將按鈕和圖像框從工具包拖到活動屏幕并在屬性窗口中配置它們。在應用程序的底部,您可以啟用按鈕的操作。一種操作是將該對象的 ID 發送到 Arduino,如果您希望 Arduino 響應,您必須啟用該 ID。您希望 Nextion 自行執行的操作,例如更改頁面或更改圖片框中的圖片,需要在操作窗口中指定。在大多數情況下,操作幾乎是直觀的,例如“page 1”切換到第 1 頁或“p0.pic=3”將圖片框 0 中的圖片更改為圖像編號 3。您可以參考Nextion 指令集以獲取有關這些命令的更多信息Nextion Editor 有自己的調試器,您可以在其中運行新創建的用戶界面并測試它的工作原理——這是一個非常好的功能。

在這一點上我應該提到的一個細節是匹配 Nextion 和 Arduino 的串行通信波特率。Nextion 默認設置為 9600,但這很慢。我的每個 Nextion 文件都設置了波特率。(它是通過使用類似“bauds = 38400”的命令的預啟動操作設置的)匹配的 Arduino 文件在 Setup() 中設置為相同的波特率。我在這里所做的一切都是波特率 38400。

我使用更高的波特率試圖加快 Nextion 對我在 Arduino 上所做更改的反應。雖然它有一點幫助,但并沒有我想象的那么好。顯然,大部分感知到的延遲是等待 Nextion 確認成功接收請求的結果。這意味著我們有時會等待按鈕變為活動狀態。

對 Arduino 進行編程以與 Nextion 一起工作并不是特別直觀,但 Neo Nextion 有很好的示例可以幫助您入門。Neo Nextion 庫似乎需要大量初始代碼才能啟動。必須為要使用的庫的每個部分添加“包含”,并且每個圖形對象都需要在 Neo Nextion 中聲明,然后才能與之交互。回調必須包含您希望按鈕執行的例程,并且它們的地址必須傳達給 Nextion。一切都發生在回調例程中。除了輪詢按鈕的活動外,主循環不做任何事情。

如果您想使用我的 Arduino 草圖來幫助您入門,我建議您使用其中一款單獨的游戲。三場比賽的街機變得相當復雜。

井字游戲

這是我處理的第一場比賽。網格是背景圖像,每個正方形都有一個大按鈕。一個非常大的字體(144 像素高)在這些按鈕內形成了 Xs 和 Os。

?

Arduino 草圖基本上有兩部分:1)與 Nextion 按鈕的接口和 2)實際玩井字游戲所需的邏輯。

游戲邏輯嘗試按順序完成以下步驟

  • 阻止對手獲勝
  • 創建一個可以通過兩種方式獲勝的分叉
  • 阻止對手創建分叉
  • 走對面的角落
  • 采取任何空的角落
  • 取一個中間正方形

如果以上都實現了,那電腦就打不過了。我故意省略了涉及分叉的第二步和第三步(它們在代碼中,但為空),以便有可能擊敗計算機。擊敗它仍然不容易。只有幾個非常特定的序列,您可以擊敗計算機。這是一個:

?

Nextion 有助于為游戲創建漂亮的圖形。圖像用于游戲標題和獲勝、失敗、平局圖形,并且可以在 Arduino 控制下輕松打開或關閉或切換。

西蒙

西蒙是一個簡單的記憶測試。它是四款游戲中最容易創建的一款,但視覺效果非常令人愉悅,因為它看起來與真實的西蒙游戲一模一樣。

?

這一切都是通過交換圖像來完成的。該序列是隨機生成的,并一遍又一遍地重復,每次都會在序列中增加一個。與其物理對應物完全一樣。

點和框

這個游戲很簡單。不熟悉的可以去網上看看各種網上版本。(或者你的孩子可能會教你怎么玩!)我沒想到無論是從 Nextion 的用戶界面還是從 Arduino 的游戲邏輯來說,這都是一個巨大的挑戰。但與井字游戲或西蒙游戲相比,這是一個巨大的挑戰。

?

第一個問題是用戶界面。我們的 5 x 5 游戲網格上有 30 個垂直門和 30 個水平門。那是60個按鈕。當玩家或電腦分別拍攝時,這 25 個單元格需要分別涂成綠色或紅色。我使用了空文本框的背景顏色,所以有 25 個文本框。然后有一個用于點網格的圖像框、一個開始按鈕、另一個顯示游戲標題的圖像框、一個獲勝圖像、一個失敗圖像、兩個顯示分數的數字框,以及一個用于標記分數的文本框。使用 Nextion 編輯器創建和配置大量圖形對象。并且每一個都有一個唯一的ID號和一個唯一的名字。

Arduino 代碼也是一個挑戰。一方面,每個圖形對象都有一個名稱,名稱可以包括它們在網格上的位置,但這些名稱不能被索引我們可以使用索引數組來定義每個盒子的狀態(哪些邊是閉合的,多少邊是閉合的)但是將該索引轉換為特定對象需要一個專門進行轉換的子例程 - 一次一個對象!

設置和配置按鈕所需的 Arduino 代碼中的每個步驟都必須重復 60 次。而且由于它們無法被索引,因此每個步驟需要 60 行代碼。沒什么大不了的,但是很多復制和粘貼!

游戲邏輯也不是特別容易。關閉一個特定的門會導致幾件事發生。我們首先要看到的是之前沒有關閉。然后它會導致它兩側的盒子的一側關閉(在水平門的情況下它的上方和下方)。然后我們必須看看關門是否導致這些盒子中的任何一個被完全關閉并被玩家或計算機認領。無論玩家還是電腦移動,所有這些都是真實的。

計算機如何決定移動到哪里是另一組問題。它首先嘗試關閉它可以關閉的任何盒子并聲稱該盒子,它會再轉一圈。當這不能發生時,它會嘗試找到一個兩側尚未關閉的盒子,因為在兩側已經關閉的盒子旁邊選擇一個門會設置玩家關閉它并聲稱該盒子。如果這也失敗了,它會隨機從剩余的門中挑選。這就是計算機成為一個非常好的玩家所需要的一切,但是要實現這個相對簡單的策略需要查看很多門和很多盒子的狀態。

最重要的是,Dots & Boxes 比井字游戲或西蒙游戲更難構建和編程!

下一步是什么

正如我之前所說的,在第 2 部分中,我將為該平臺介紹兩種紙牌游戲的附加軟件:二十一點和五張牌撲克。我希望其他人能建造這個游戲機并創造一些我們可以分享的新游戲。其他想法可能包括德州撲克、紅心。跳棋,或任何兩人棋盤游戲。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 四虎国产精品永久在线看 | 狠狠轮 | 天天爱添天天爱添天天爱添 | 久操免费视频 | 欧美在线网站 | 国产午夜精品理论片在线 | 女人大毛片一级毛片一 | aa毛片| 亚洲一区 在线播放 | 一区二区中文字幕亚洲精品 | 六月婷婷网 | 黄色网址在线免费观看 | 四虎在线最新地址公告 | 色婷婷六月丁香七月婷婷 | 丁香婷婷影院 | 天天操天天干天天玩 | 成人羞羞视频国产 | 免费 视频| 国产精品欧美激情第一页 | 国产精品任我爽爆在线播放6080 | 韩国三级日本三级在线观看 | 国产精品最新资源网 | 黄网站观看 | 国产一级又色又爽又黄大片 | 很黄很污的视频网站 | 亚洲综合伊人 | 扒开双腿疯狂进出爽爽爽 | 日韩欧美视频在线一区二区 | 很黄很色网站 | 放荡女同老师和女同学生 | 欧美成人鲁丝片在线观看 | 日韩一级特黄 | 亚洲码在线 | 97色婷婷成人综合在线观看 | 成人欧美一区二区三区的电影 | 伊人2233 | 色多多www | 天天操夜夜摸 | 三级黄色录像 | 天天插综合 | 5x视频在线观看 |