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

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

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

基于ESP32制造有趣的超級馬里奧主題時鐘

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

MAKER:jnthas/譯:趣無

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

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

組件清單

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

自制 PCB

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

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

你只需按照 GitHub 上顯示驅(qū)動程序的接線的說明進(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

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

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

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

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

推薦一個很棒的平臺——Tindie,全球各地的制造商都會在這里創(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)行時,需要配置 WiFi。通過智能手機(jī)或筆記本電腦連接到 “Clockwise-Wifi”,密碼為:12345678,再點(diǎn)擊配置 WiFi,選擇你的 AP,輸入密碼和時區(qū)并保存。然后時鐘就可以連接到 NTP 服務(wù)器并獲取正確的時間。它使用的是 2.4GHz WiFi,不適用于 5G。

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

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

對于我而言,在 WiFi 管理器的時區(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

通常,我會使用 PlatformIO 開發(fā)固件,如果你不知道,推薦試試。但在本項(xiàng)目中,我使用 Arduino IDE ,項(xiàng)目會更簡單一些。存儲庫中的代碼與 ESP32-HUB75-MatrixPanel-I2S-DMA 庫一起使用,同時我也使用了 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)入根目錄。第一次看到時可能會有點(diǎn)混亂,我會試著在這里整理一下。

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

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

clockface:包含圖形、字體、圖標(biāo)等以及馬里奧的顯示。
commons:包含通用實(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),組裝好后就能夠顯示出圖片中的時鐘了。在靜態(tài)物體的風(fē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)建了一個外殼。3D 建模并不是我的強(qiáng)項(xiàng),但效果很好。我以家里的顯示器為例建模。

不同的顯示器,孔位可能會不一樣。

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

這是一個開源的項(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ī)問題,請聯(lián)系本站處理。 舉報投訴
  • 時鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1733

    瀏覽量

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

    關(guān)注

    0

    文章

    338

    瀏覽量

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

    關(guān)注

    25

    文章

    5050

    瀏覽量

    97456
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6469

    瀏覽量

    187054
  • ESP32
    +關(guān)注

    關(guān)注

    18

    文章

    971

    瀏覽量

    17256

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

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

    fpga通過什么實(shí)現(xiàn)邏輯功能,以超級馬里奧為例子講述FPGA有些制作。1、FPGA游戲目標(biāo)沒有CPU,單純用 FPGA 的verilog硬件語言來實(shí)現(xiàn)一個游戲,而這個游戲還得符合老師要求,由于沒有
    發(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 ?548次閱讀

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

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

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

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

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

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

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

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

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

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

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

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

    Labview編的超級馬里奧8.0源碼

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

    創(chuàng)建一個動畫馬里奧時鐘的教程分享

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

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

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

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

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

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

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

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

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