18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>帶有PS3遙控器的ESP32上的Arduboy TV

帶有PS3遙控器的ESP32上的Arduboy TV

2022-11-10 | zip | 1.86 MB | 次下載 | 2積分

資料介紹

描述

目標(biāo)

我著手做一個(gè)簡(jiǎn)單而省力的 Arduboy 游戲機(jī)。設(shè)計(jì)目標(biāo)是

  • 便宜又簡(jiǎn)單
  • 電視輸出
  • 不錯(cuò)的控件
  • 各種有趣的游戲

我現(xiàn)在對(duì)使用 ESP32 和 Arduboy 代碼感到很自在,并認(rèn)為這將是一個(gè)有趣的項(xiàng)目,可以推動(dòng)自己學(xué)習(xí)一些新事物。

將目標(biāo)一一確定

便宜又簡(jiǎn)單

KISS - 保持簡(jiǎn)單愚蠢。

幾乎唯一要購(gòu)買(mǎi)的大產(chǎn)品就是這個(gè)

TTGO T-Display ESP32,這個(gè)板實(shí)際上比我買(mǎi)它時(shí)很多沒(méi)有顯示器的板便宜,但幾乎任何 ESP32 板都可以。

我一直在不斷地構(gòu)建控件,這一次我希望我可以利用 ESP32 中的一些額外硬件來(lái)實(shí)現(xiàn)這一目的。我選擇了 PS3 控制器,任何無(wú)線通用 PS3 控制器都應(yīng)該是完美的。

你還需要一些 RCA 插孔,我選擇了母頭,這樣我就可以在電視和我的電腦之間快速輕松地來(lái)回運(yùn)行,還需要一根公對(duì)公延長(zhǎng)線,以便將背面也插入電視。 .. 最終我確實(shí)得到了一個(gè) RCA 到 HDMI 轉(zhuǎn)換器并將它連接到我的第二臺(tái)顯示器,我對(duì)設(shè)備非常滿意,并且在閃爍和測(cè)試之間的周轉(zhuǎn)時(shí)間更少。

電視輸出

電視輸出是我真正想了解更多的第一個(gè)也是最重要的事情。

我啟動(dòng)并運(yùn)行了它,看到我從裸 ESP32 發(fā)送到電視的一些實(shí)際視頻信號(hào)真的很酷。

未修改的代碼存在一些問(wèn)題,它實(shí)際上是為帶有 PSRAM 的 ESP32 設(shè)計(jì)的,它將通??捎玫?520kb 增加了另外 8mb!

問(wèn)題是做顏色會(huì)占用大量空間,并且對(duì)于庫(kù)和它的工作方式,它有非常嚴(yán)格的時(shí)間要求,所以你實(shí)際上使用了一個(gè)雙緩沖區(qū),這意味著當(dāng)你繪制一個(gè)緩沖區(qū)(屏幕)時(shí),您致力于更新另一個(gè)緩沖區(qū)。在完成對(duì)一個(gè)緩沖區(qū)的渲染時(shí),將其換出,然后顯示該緩沖區(qū),然后開(kāi)始繪制到備用緩沖區(qū)。這允許您在游戲處理下一幀時(shí)將一個(gè)緩沖區(qū)連續(xù)渲染到電視。

通過(guò)從彩色轉(zhuǎn)換為黑白,我繞過(guò)了我所面臨的大小限制,這使緩沖區(qū)從一個(gè)字節(jié)縮小了 8 倍......所以我們又回到了游戲中:)

生成電視信號(hào)的另一個(gè)有趣問(wèn)題是,它需要滿足非常嚴(yán)格的時(shí)序約束,而 ESP32 有 2 個(gè)內(nèi)核,我通過(guò)將其中一個(gè)內(nèi)核專門(mén)用于電視信號(hào)來(lái)解決這個(gè)問(wèn)題。

我本可以走另一條路,得到一個(gè)帶有 PSRAM 的 ESP32,大多數(shù)相機(jī)模塊都有它們,因?yàn)樗鼈兘?jīng)常咀嚼超過(guò) 520kb,盡管回到我最初的廉價(jià)和簡(jiǎn)單的目標(biāo),即沒(méi)有額外內(nèi)存的“裸”ESP32更容易掌握。

poYBAGNsUiyAP5S_AANg51OOrHg324.png
不太理想的設(shè)置
?
poYBAGNsUjqALbC0AASmdCqP7eo959.png
后來(lái)看起來(lái)好一點(diǎn)
?

不錯(cuò)的控件

我最初的選擇是使用藍(lán)牙,它實(shí)現(xiàn)了我的一些目標(biāo),它很好的控制,硬件內(nèi)置在 ESP32 中(雖然需要一些軟件黑客),而且因?yàn)槲覀冋谧鲭娨曒敵觯运?當(dāng)我們玩的時(shí)候,會(huì)給我們一些范圍來(lái)打沙發(fā)。

我碰巧有一個(gè)廢棄的 PS3 和 2 個(gè)控制器,所以在弄亂了一些原始的藍(lán)牙外圍設(shè)備之后,我決定看看使用這些。

PS3 控制器幾乎是一個(gè)令人著迷的案例,從技術(shù)上講,它使用藍(lán)牙,但通過(guò)序列號(hào)有一個(gè)自定義配對(duì)過(guò)程。

我將我的 PS3 控制器連接到我的 PC 并使用 SixAxisPair 工具將其序列號(hào)設(shè)置為 01:02:03:04:05:06(我知道非常原始?。?/font>

我從這里得到了這個(gè)網(wǎng)站,這似乎是合法的....

pYYBAGNsUjyATyltAAAay6P7d00002.png
SixAxisTool 設(shè)置控制器新控制臺(tái)
?

使用 Wifi 和藍(lán)牙啟動(dòng) ESP32 項(xiàng)目時(shí)要注意的一件事是庫(kù)非常龐大!你炸掉大約 1Mb 的 ROM 只是為了獲得 BT 和 Wifi 堆棧,我相信有更輕的可用,但不是我可以使用 Arduino。

完成此操作后,我的輸入和輸出開(kāi)始工作了!

現(xiàn)在我的游戲在哪里!

各種各樣的游戲

到目前為止,Arduboy 已經(jīng)給我?guī)?lái)了一個(gè)有趣的世界,它是我放在面包板上的第一個(gè)真正的硬件,然后焊接到原型板上并構(gòu)建了我自己的 ESP32 版本,最后現(xiàn)在制作了一個(gè)電視輸出版本。我對(duì)我在這個(gè)生態(tài)系統(tǒng)中和周?chē)臉?lè)趣感到非常滿意。我什至構(gòu)建了一款令我引以為豪的游戲 Game Plug ArduRacer https://community.arduboy.com/t/arduracer-a-trackmania-type-time-trial-game/8850 ,它具有平滑滾動(dòng)、放大功能起跑線和 10 個(gè)關(guān)卡為特色!

poYBAGNsUj6ALBm8AAALWk7BQEw205.png
介紹屏幕
?
poYBAGNsUkGARN3JAAAG_2rVzT0119.png
游戲截圖
?

一個(gè)早期的控制臺(tái)原型(錯(cuò)誤的芯片,但我保證我有一個(gè)非常相似的帶有按鈕的 Arduino Pro Micro)。

pYYBAGNsUkuAMh6EAAQrcDszC_0363.png
我用 Arduino Pro Micro 和按鈕拍了一張非常相似的照片,真正的共同點(diǎn)是拍攝時(shí)間
?

啟動(dòng)和運(yùn)行它的實(shí)際過(guò)程非常有趣。

最初我嘗試使用 Blinky 先生的圖書(shū)館

https://github.com/MrBlinky/Arduboy-homemade-package

這很棒,并且在不同的屏幕上為許多不同類型的 Arduboy 和 Arduino 的不同引腳做了訣竅。經(jīng)過(guò)一堆錯(cuò)誤的開(kāi)始后,我找到了 ESPBoy https://www.espboy.com/的 ESP8266 轉(zhuǎn)換

一旦我抓住了這個(gè),我做的第一件事就是讓它在它所構(gòu)建的硬件上啟動(dòng)并運(yùn)行,所以我抓住了一個(gè) ESP8266、一個(gè)兼容的屏幕和面包板,一直在研究它,直到我啟動(dòng)并運(yùn)行它(并且然后玩了一會(huì)兒游戲)

完成此操作后,接下來(lái)的步驟是更換處理器,進(jìn)行了很多更改,但主要是刪除和更改庫(kù)。我將列出一些亮點(diǎn)

  • PROGMEM 不是 ESP32 上的東西,刪除引用
  • avr/pgmspace.h 已移至 ESP32 上的 pgmspace.h
  • EEPROM不是很好,必須工作
  • 音調(diào)不起作用,不得不重新編寫(xiě)代碼,它仍然有點(diǎn)hacky
  • 更改控件以使用 PS3 控制器
  • 將輸出代碼大幅更改為線程化并輸出到電視
  • 因?yàn)樾枰€程,我不得不修改每個(gè)游戲的代碼!

PROGMEM - 這有點(diǎn)簡(jiǎn)單,你需要做的就是#define PROGMEM 沒(méi)有任何意義,等 viola,完成

poYBAGNsUk6AefIeAAAGOlU02HM714.png
假裝不存在
?

avr/pgmspace.h - 我有點(diǎn)懶,在 Visual Studio Code 中對(duì)整個(gè)文件夾進(jìn)行了完整的搜索和替換,這很快就解決了這個(gè)問(wèn)題

Tones - 我寫(xiě)了一些非常適用于詛咒地下墓穴的 hacky 代碼,我喜歡它!不幸的是,其他一些游戲也在為此苦苦掙扎……我應(yīng)該稍后再研究一下

EEPROM - 我在游戲過(guò)程中運(yùn)行良好,可以存儲(chǔ)它,但實(shí)際上它需要一個(gè)完整的實(shí)現(xiàn),我希望它知道哪個(gè)游戲正在運(yùn)行并將 EEPROM 文件存儲(chǔ)在 SPIFFS 分區(qū)上,這更像文件系統(tǒng)并允許文件,可能是與游戲名稱匹配的格式,并將特定游戲 EEPROM 存儲(chǔ)在 SPIFFS 上的文件中,因此它永遠(yuǎn)不會(huì)被覆蓋。待定

PS3 控制器連接- PS3 庫(kù)實(shí)際上有一個(gè)經(jīng)常運(yùn)行的通知檢查,我只是將它的值存儲(chǔ)在一些全局變量中,然后我可以在 Arduboy2Core::buttonsState 過(guò)程中使用它來(lái)設(shè)置值。

電視輸出- Arduboy 有它自己的幀緩沖區(qū),理想情況下我會(huì)使用它來(lái)避免代碼重復(fù)和復(fù)制,但它的水平條紋格式有點(diǎn)奇怪。緩沖區(qū)模仿您一次寫(xiě)入幾個(gè)水平像素的屏幕的方式,這使得我的電視輸出代碼很難使用,所以我有一個(gè)過(guò)程,我把它放入 Arduboy 輸出代碼中,而不是輸出到屏幕,它準(zhǔn)備緩沖區(qū)并使用鎖處理緩沖區(qū)的交換。有一個(gè)線程一直在運(yùn)行,只是使用當(dāng)前設(shè)置的輸出緩沖區(qū)進(jìn)行 TV 輸出,當(dāng)它們準(zhǔn)備好時(shí),它將獲取更改。

修改每個(gè)游戲的代碼- 這實(shí)際上非常有趣,因?yàn)樗馕吨创a兼容我想找到一種修改每個(gè) Arduboy 游戲的方法,我研究了很多解決方案。但讓我先設(shè)置前提。

我需要為線程添加初始化代碼,電視輸出代碼對(duì)于它生成的 NTSC 信號(hào)非常敏感,所以我希望它本身有一個(gè)完整的核心。默認(rèn)情況下,Wifi 和藍(lán)牙代碼也在默認(rèn)使用的一個(gè)核心上運(yùn)行。這對(duì)電視輸出來(lái)說(shuō)是有問(wèn)題的,所以我希望它在不同的核心上。

第一次嘗試- 手動(dòng)修改游戲這是一件很痛苦的事情,并且不能對(duì)所有游戲進(jìn)行維護(hù)或擴(kuò)展。

第二次嘗試- 用我自己的替換主 ino 文件,同時(shí)將 ino 重命名為 mytvgame.cpp 或類似的,我能夠通過(guò)一兩個(gè)游戲擺脫這個(gè)問(wèn)題,但由于一些原因而出現(xiàn)了一些問(wèn)題。Ino 文件就像一個(gè)全局命名空間,可以按照您喜歡的任何順序定義函數(shù)(就像您在導(dǎo)入的頭文件中指定它們一樣),但是當(dāng)我以編程方式生成頭文件時(shí),我開(kāi)始遇到更多錯(cuò)誤。這是一個(gè)單一的源文件,一旦它們被復(fù)制到 CPP 文件中,它實(shí)際上就能夠從我的 Arduino INO 文件https://fossil-scm.org/home/doc/trunk/src/makeheaders.html制作標(biāo)題。

第三次嘗試- 實(shí)際上我需要的只是將 setup() 和 loop() 重命名為其他名稱,然后創(chuàng)建自己的啟動(dòng)和循環(huán)方法來(lái)調(diào)用它們!

我最近在 Python 上玩得很開(kāi)心,并決定在其中編寫(xiě)腳本。首先,瀏覽所有 GAMES 目錄,尋找與文件夾名稱匹配的 a.ino 文件(這是我從未理解的 Arduino IDE 限制,但謝謝?。?/font>

找到文件后,請(qǐng)進(jìn)行備份(始終進(jìn)行備份!)。然后復(fù)制到我愿意修改的文件,我運(yùn)行了一些更改

pYYBAGNsUlCAAlLCAAF0B_Ghe2M742.png
?

最后,一旦完成所有磨機(jī)更改,它會(huì)使用我的新設(shè)置和循環(huán)創(chuàng)建一個(gè)新的 ino 文件,一旦完成,它就會(huì)調(diào)用重命名的游戲設(shè)置和循環(huán)方法

poYBAGNsUlKAEZtlAAA6EA8jmhE072.png
?

我的設(shè)置運(yùn)行游戲設(shè)置代碼并為游戲邏輯循環(huán)設(shè)置線程。

我?guī)缀蹩梢栽谶@里做任何我想做的事情,目前它只是嘗試進(jìn)行無(wú)線更新,但以后可能會(huì)添加一個(gè) flash 菜單,如果我們有 SD 卡,你可以在設(shè)備上玩多個(gè)游戲

你會(huì)看到循環(huán)只是一種延遲方法。它不需要做任何 gameLogicLoop 線程負(fù)責(zé)運(yùn)行原始循環(huán)代碼的事情。

其中一個(gè)不錯(cuò)的功能是實(shí)際上使其可多次運(yùn)行(有點(diǎn)冪等),因此每次運(yùn)行它時(shí),它都會(huì)修改原始文件而不是已經(jīng)更改的文件,這對(duì)快速迭代有很大幫助。

從這里到哪里

如果您有興趣四處尋找,可以查看我的所有代碼

https://github.com/tonym128/ESP32_Arduboy

這個(gè)項(xiàng)目目前都在 tvout 分支下

我已經(jīng)在 BSides Cape Town 2019 Badge 上運(yùn)行了它,我在這里詳細(xì)介紹了徽章項(xiàng)目本身的軟件。

ESP32 電子紙顯示器

現(xiàn)在有了帶有 PS3 控制器的電視輸出,我認(rèn)為這是最簡(jiǎn)單、最快捷的方式來(lái)開(kāi)始這一點(diǎn)并獲得一些樂(lè)趣。

我希你在我的旅程中發(fā)現(xiàn)了一些有趣的地方,如果你想聊聊這方面的任何事情,請(qǐng)給我留言,我很樂(lè)意參與。

在那之前,我會(huì)玩一些該死的地下墓穴。

?

?


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

評(píng)論

查看更多

下載排行

本周

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

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)