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

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

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

基于ESP32制造有趣的超級(jí)馬里奧主題時(shí)鐘

jf_zGNBEhbi ? 來源:趣無盡 ? 作者:趣無盡 ? 2022-10-28 11:54 ? 次閱讀

MAKER:jnthas/譯:趣無

這是一款超級(jí)馬里奧主題的時(shí)鐘,基于 ESP32 和彩色點(diǎn)陣制造,非常生動(dòng)有趣。

馬里奧會(huì)站在舞臺(tái)上頂起磚塊來更新時(shí)間數(shù)字。除了馬里奧表盤之外,我們還會(huì)制作了一個(gè)會(huì)文字顯示時(shí)間的表盤,顯示世界地圖上的時(shí)間的表盤和一個(gè)模擬時(shí)鐘的表盤。
所有這些資料都可以在 Clockwise’s 網(wǎng)站上找到。除了時(shí)鐘的外觀,之后我們還考慮添加一些其他功能,例如:電子郵件通知、天氣預(yù)報(bào)、新聞、交通、向順時(shí)針發(fā)送短信等。

組件清單

ESP32 開發(fā)板/ESP32 Trinity × 1
64×64 RGB LED × 1
5v 電源 × 1

自制 PCB

de256934-55d8-11ed-a3b6-dac502259ad0.jpg

期初開發(fā)的時(shí)候,我使用 ESP32 來控制 LED 矩陣。對(duì)于沒法自制 PCB 板的新手來說 ESP32 開發(fā)板是非常不錯(cuò)的選擇。如何利用好板子取決于你拍線的能力。

你只需按照 GitHub 上顯示驅(qū)動(dòng)程序的接線的說明進(jìn)行操作,也可以尋求接線圖的幫助。

具體可以參考:
https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-I2S-DMA#2-wiring-esp32-with-the-led-matrix-panel/

de6abcf0-55d8-11ed-a3b6-dac502259ad0.jpg

在完成時(shí)鐘的基本代碼后,我準(zhǔn)備自制一塊的 PCB 板。它可以控制顯示器的電路板。

具體詳情可查看:
https://github.com/jnthas/clockwise/tree/main/firmware/

de797448-55d8-11ed-a3b6-dac502259ad0.jpg

de8b33ae-55d8-11ed-a3b6-dac502259ad0.jpg

推薦一個(gè)很棒的平臺(tái)——Tindie,全球各地的制造商都會(huì)在這里創(chuàng)建和銷售他們的項(xiàng)目。

在這里我找到更好的板子——ESP32 Trinity,它帶有觸摸感應(yīng)按鈕、LDR(可以用它調(diào)節(jié)顯示器的亮度)、USB-C、電源控制等。

查看更多信息
https://github.com/witnessmenow/ESP32-Trinity/

de9fd5ac-55d8-11ed-a3b6-dac502259ad0.png

dec58360-55d8-11ed-a3b6-dac502259ad0.jpg

刷固件

df2959da-55d8-11ed-a3b6-dac502259ad0.png

如果你不想了解代碼的工作原理、設(shè)置和配置,只是想檢查它是否正常工作,你可以使用 Mario Bros. Clock 安裝程序,然后上傳固件。因?yàn)樗呀?jīng)編譯,你無需安裝任何東西。將 ESP32 插入 USB 端口,然后單擊 P-Switch 閃爍即可。

https://jnthas.github.io/mariobros-clock/

配置 WiFi

第一次運(yùn)行時(shí),需要配置 WiFi。通過智能手機(jī)或筆記本電腦連接到 “Clockwise-Wifi”,密碼為:12345678,再點(diǎn)擊配置 WiFi,選擇你的 AP,輸入密碼和時(shí)區(qū)并保存。然后時(shí)鐘就可以連接到 NTP 服務(wù)器并獲取正確的時(shí)間。它使用的是 2.4GHz WiFi,不適用于 5G。

關(guān)于時(shí)區(qū)

WiFi Manager 可以收集時(shí)鐘中使用的時(shí)區(qū)參數(shù)并確保顯示正確的時(shí)間。例如 NTP 客戶端時(shí),默認(rèn)時(shí)間為 UTC,我們需要在 Wifi 設(shè)置中告知正確的時(shí)區(qū)。所有時(shí)區(qū)可點(diǎn)解這里查看:
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones/

對(duì)于我而言,在 WiFi 管理器的時(shí)區(qū)字段中輸入“America/Sao_Paulo”即可。如果你想了解更多關(guān)于 NTP 服務(wù)器工作的信息,可點(diǎn)擊此處查看:
https://lastminuteengineers.com/esp32-ntp-server-date-time-tutorial/

源代碼

df38f2c8-55d8-11ed-a3b6-dac502259ad0.jpg

通常,我會(huì)使用 PlatformIO 開發(fā)固件,如果你不知道,推薦試試。但在本項(xiàng)目中,我使用 Arduino IDE ,項(xiàng)目會(huì)更簡單一些。存儲(chǔ)庫中的代碼與 ESP32-HUB75-MatrixPanel-I2S-DMA 庫一起使用,同時(shí)我也使用了 PxMatrix 并且一切正常。你只需要替換庫而不需要進(jìn)一步更改代碼,因?yàn)槎际腔?Adafruit_GFX。

https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-I2S-DMA/

https://github.com/2dom/PxMatrix/

為了讓它在 Arduino IDE 中工作,我需要稍微修改一下項(xiàng)目結(jié)構(gòu),所有文件都與 mariobros-clock.ino 一起進(jìn)入根目錄。第一次看到時(shí)可能會(huì)有點(diǎn)混亂,我會(huì)試著在這里整理一下。

源代碼可點(diǎn)擊這里查看:
https://github.com/jnthas/mariobros-clock/

該結(jié)構(gòu)是由三個(gè)文件夾和文件樹組成。

clockface:包含圖形、字體、圖標(biāo)等以及馬里奧的顯示。
commons:包含通用實(shí)用程序,例如日期、時(shí)間和 Wifi 的配置。
engine:包含顯示器中一般使用功能的實(shí)現(xiàn),例如繪制風(fēng)景、精靈、事件等功能。

.
├── clockface
│   ├── Clockface.cpp
│   ├── Clockface.h
│   └── gfx
│       ├── assets.h
│       ├── block.cpp
│       ├── block.h
│       ├── mario.cpp
│       ├── mario.h
│       └── Super_Mario_Bros__24pt7b.h
├── commons
│   ├── CWDateTime.cpp
│   ├── CWDateTime.h
│   ├── IClockface.h
│   └── WiFiConnect.h
├── engine
│   ├── EventBus.cpp
│   ├── EventBus.h
│   ├── EventTask.h
│   ├── Game.h
│   ├── Locator.cpp
│   ├── Locator.h
│   ├── Object.h
│   ├── Sprite.cpp
│   ├── Sprite.h
│   └── Tile.h
└── mariobros-clock.ino

有了這種結(jié)構(gòu),組裝好后就能夠顯示出圖片中的時(shí)鐘了。在靜態(tài)物體的風(fēng)景的基本上,我們有兩個(gè)動(dòng)態(tài)的小精靈,馬里奧和積木。馬里奧每分鐘跳躍一次并擊中積木。

代碼邏輯如下:

1) mario.jump()              // changes the sprite and starts the jump animation
2) mario.collidesWith(block) // if collision is detected, mario reverses the movement and starts to fall,
                             // the blocks starts an upward movement already with the new time set
3) Block reaches the ascent limit and starts to fall until it reaches the starting position.
4) Mario hits the ground and returns to the initial state

IDE 設(shè)置

在運(yùn)行之前,需要從 Arduino Library Manager 安裝一些庫。
1、ESP32-HUB75-MatrixPanel-I2S-DMA:搜索 ESP32 HUB75 MATRIX。
2、Adafruit GFX:搜索 Adafruit GFX。
3、FastLED:搜索 FastLED。
4、Fabrice Weinberg 的 NTPClient – 搜索 NTPClient。
5、Adafruit BusIO:搜索同名。
6、Michael Margolis版本的Time:搜索 timelib。
7、tzapu的WiFi Manager:搜索 wifimanager。
8、ezTime:搜索同名。

安裝所有庫并選擇正確的板后,將它們上傳后就可以工作了。按照固件部分提供的說明配置 wifi。

3D 打印

df4f29c6-55d8-11ed-a3b6-dac502259ad0.jpg

為了讓鐘更容易掛在墻上,我在 TinkerCAD 創(chuàng)建了一個(gè)外殼。3D 建模并不是我的強(qiáng)項(xiàng),但效果很好。我以家里的顯示器為例建模。

不同的顯示器,孔位可能會(huì)不一樣。

可以改進(jìn)的地方
1、通過 WebSerial API 更改表盤。創(chuàng)建一個(gè)網(wǎng)絡(luò)應(yīng)用程序,你只需選擇所需的表盤即可更新固件。
2、創(chuàng)建通知小部件并在表盤上顯示它們,它們可以在網(wǎng)絡(luò)應(yīng)用程序中進(jìn)行配置。
3、將 MQTT 集成到表盤中,以便在任何地方都可以接收這些通知。
4、創(chuàng)建更多表盤。

這是一個(gè)開源的項(xiàng)目,大家也可以自行二次開發(fā)。

項(xiàng)目所用的代碼在本項(xiàng)目文件庫中可以下載
https://make.quwj.com/project/452

via instructables.com/Mario-Bros-Clock/

審核編輯:湯梓紅

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

    關(guān)注

    10

    文章

    1673

    瀏覽量

    130946
  • IDE
    IDE
    +關(guān)注

    關(guān)注

    0

    文章

    334

    瀏覽量

    46538
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4768

    瀏覽量

    96149
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6453

    瀏覽量

    185915
  • ESP32
    +關(guān)注

    關(guān)注

    17

    文章

    936

    瀏覽量

    16655

原文標(biāo)題:基于 ESP32 制造有趣的超級(jí)馬里奧主題時(shí)鐘

文章出處:【微信號(hào):趣無盡,微信公眾號(hào):趣無盡】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    用labview設(shè)計(jì)超級(jí)馬里奧游戲時(shí)如何加障礙物?

    用labview設(shè)計(jì)超級(jí)馬里奧游戲時(shí)如何加障礙物
    發(fā)表于 05-09 13:33

    fpga通過什么實(shí)現(xiàn)邏輯功能

    fpga通過什么實(shí)現(xiàn)邏輯功能,以超級(jí)馬里奧為例子講述FPGA有些制作。1、FPGA游戲目標(biāo)沒有CPU,單純用 FPGA 的verilog硬件語言來實(shí)現(xiàn)一個(gè)游戲,而這個(gè)游戲還得符合老師要求,由于沒有
    發(fā)表于 07-22 07:07

    RFID技術(shù)讓現(xiàn)實(shí)版馬里奧賽車成為可能

    自奧斯汀滑鐵盧實(shí)驗(yàn)室決定將RFID標(biāo)簽應(yīng)用于游戲,這樣一來,在現(xiàn)實(shí)世界里,你也可以玩一把馬里奧賽車了。
    發(fā)表于 01-30 11:11 ?533次閱讀

    特斯拉Autopilot新功能:似馬里奧賽車彩虹賽道功能

    當(dāng)汽車處于自動(dòng)駕駛狀態(tài)中只能看到比較灰色沉悶的特斯拉行走畫面,而這項(xiàng)功能添加之后能夠?qū)⑵嚠?dāng)前行進(jìn)路線會(huì)變成類似于馬里奧賽車?yán)锩娴牟屎缳惖?,?biāo)記傳感器所感知的路線和前方障礙物。
    發(fā)表于 04-12 15:18 ?2307次閱讀

    iPhone7發(fā)布會(huì)上提到的游戲 馬里奧大叔15日可以在iOS平臺(tái)試玩了!

    App Store了。這款名為《超級(jí)馬里奧Run》的游戲是一款跑酷游戲,該游戲?qū)⒂谙略?5日正式登陸App Store,售價(jià)9.99美元。
    發(fā)表于 11-16 11:14 ?859次閱讀

    超級(jí)馬里奧Run安卓版即將上市,國內(nèi)玩家先別激動(dòng)

    12 月 29 日,任天堂官方在國外社交網(wǎng)站推特上宣布,超級(jí)馬里奧Run已經(jīng)登錄了Google Play 并開啟預(yù)約注冊(cè),現(xiàn)在注冊(cè)的用戶,未來可以第一時(shí)間獲知安卓版超級(jí)馬里奧Run
    發(fā)表于 12-30 17:29 ?773次閱讀

    利用視頻游戲語料庫,訓(xùn)練一個(gè)GAN模型為超級(jí)馬里奧兄弟生成游戲級(jí)別

    在視頻游戲中,馬里奧游戲級(jí)別有不同的表征Level Corpus (VGLC) 和Mario AI 框架,這兩種都是基于tile的表征形式。具體地說,以VGLC 表征的馬里奧級(jí)別使用特定的字符符號(hào)來
    的頭像 發(fā)表于 07-25 17:59 ?3985次閱讀
    利用視頻游戲語料庫,訓(xùn)練一個(gè)GAN模型為<b class='flag-5'>超級(jí)</b><b class='flag-5'>馬里奧</b>兄弟生成游戲級(jí)別

    PIR運(yùn)動(dòng)傳感器的簡介

    一個(gè)簡單的房間迎賓員,當(dāng)被入侵的airwick清新劑單元中的PIR觸發(fā)時(shí),播放超級(jí)馬里奧兄弟主題音樂。/em》
    的頭像 發(fā)表于 11-27 10:24 ?3.2w次閱讀
    PIR運(yùn)動(dòng)傳感器的簡介

    馬里奧忠實(shí)粉絲稱其自制的渲染圖被超級(jí)任天堂世界官網(wǎng)盜用

    ,但它最近卻被發(fā)現(xiàn)盜用了粉絲制作的渲染圖。 推特用戶“uJIdow”是一位馬里奧的忠實(shí)粉絲,他致力于制作各種馬里奧的渲染圖。昨日(1.7),“uJIdow”發(fā)表推文表示,超級(jí)任天堂世界官網(wǎng)使用了其制作的
    的頭像 發(fā)表于 01-08 12:52 ?1811次閱讀

    Labview編的超級(jí)馬里奧8.0源碼

    Labview編的超級(jí)馬里奧8.0源碼
    發(fā)表于 11-02 16:35 ?27次下載

    創(chuàng)建一個(gè)動(dòng)畫馬里奧時(shí)鐘的教程分享

    本文將指導(dǎo)您以非常簡單的步驟創(chuàng)建一個(gè)動(dòng)畫馬里奧時(shí)鐘,它可以成為任何環(huán)境的復(fù)古裝飾物。
    發(fā)表于 07-25 16:32 ?2217次閱讀
    創(chuàng)建一個(gè)動(dòng)畫<b class='flag-5'>馬里奧</b><b class='flag-5'>時(shí)鐘</b>的教程分享

    帶有壓電蜂鳴器和Arduino的超級(jí)馬里奧主題

    電子發(fā)燒友網(wǎng)站提供《帶有壓電蜂鳴器和Arduino的超級(jí)馬里奧主題曲.zip》資料免費(fèi)下載
    發(fā)表于 11-01 09:32 ?1次下載
    帶有壓電蜂鳴器和Arduino的<b class='flag-5'>超級(jí)</b><b class='flag-5'>馬里奧</b><b class='flag-5'>主題</b>曲

    ESP32 Feather實(shí)時(shí)時(shí)鐘開源分享

    電子發(fā)燒友網(wǎng)站提供《ESP32 Feather實(shí)時(shí)時(shí)鐘開源分享.zip》資料免費(fèi)下載
    發(fā)表于 12-09 10:05 ?1次下載
    <b class='flag-5'>ESP32</b> Feather實(shí)時(shí)<b class='flag-5'>時(shí)鐘</b>開源分享

    帶有ESP32 CAM的超級(jí)簡單安全攝像機(jī)

    電子發(fā)燒友網(wǎng)站提供《帶有ESP32 CAM的超級(jí)簡單安全攝像機(jī).zip》資料免費(fèi)下載
    發(fā)表于 06-30 14:46 ?0次下載
    帶有<b class='flag-5'>ESP32</b> CAM的<b class='flag-5'>超級(jí)</b>簡單安全攝像機(jī)

    基于Microchip 8位微控制器制作超級(jí)馬里奧的蘑菇徽章

    今天給大家?guī)硪黄谥戮唇?jīng)典的超級(jí)馬里奧的徽章??蓯鄣哪⒐交照?,經(jīng)典的紅黃配色,立馬把我們拉回到兒時(shí)的快樂的時(shí)光里(不小心暴露了年齡)。
    的頭像 發(fā)表于 09-11 10:16 ?773次閱讀
    基于Microchip 8位微控制器制作<b class='flag-5'>超級(jí)</b><b class='flag-5'>馬里奧</b>的蘑菇徽章