0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于ESP32制造有趣的超级马里奥主题时钟

jf_zGNBEhbi 来源:趣无尽 作者:趣无尽 2022-10-28 11:54 次阅读

MAKER:jnthas/译:趣无

这是一款超级马里奥主题的时钟,基于 ESP32 和彩色点阵制造,非常生动有趣。

马里奥会站在舞台上顶起砖块来更新时间数字。除了马里奥表盘之外,我们还会制作了一个会文字显示时间的表盘,显示世界地图上的时间的表盘和一个模拟时钟的表盘。
所有这些资料都可以在 Clockwise’s 网站上找到。除了时钟的外观,之后我们还考虑添加一些其他功能,例如:电子邮件通知、天气预报、新闻、交通、向顺时针发送短信等。

组件清单

ESP32 开发板/ESP32 Trinity × 1
64×64 RGB LED × 1
5v 电源 × 1

自制 PCB

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

期初开发的时候,我使用 ESP32 来控制 LED 矩阵。对于没法自制 PCB 板的新手来说 ESP32 开发板是非常不错的选择。如何利用好板子取决于你拍线的能力。

你只需按照 GitHub 上显示驱动程序的接线的说明进行操作,也可以寻求接线图的帮助。

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

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

在完成时钟的基本代码后,我准备自制一块的 PCB 板。它可以控制显示器的电路板。

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

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

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

推荐一个很棒的平台——Tindie,全球各地的制造商都会在这里创建和销售他们的项目。

在这里我找到更好的板子——ESP32 Trinity,它带有触摸感应按钮、LDR(可以用它调节显示器的亮度)、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

如果你不想了解代码的工作原理、设置和配置,只是想检查它是否正常工作,你可以使用 Mario Bros. Clock 安装程序,然后上传固件。因为它已经编译,你无需安装任何东西。将 ESP32 插入 USB 端口,然后单击 P-Switch 闪烁即可。

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

配置 WiFi

第一次运行时,需要配置 WiFi。通过智能手机或笔记本电脑连接到 “Clockwise-Wifi”,密码为:12345678,再点击配置 WiFi,选择你的 AP,输入密码和时区并保存。然后时钟就可以连接到 NTP 服务器并获取正确的时间。它使用的是 2.4GHz WiFi,不适用于 5G

关于时区

WiFi Manager 可以收集时钟中使用的时区参数并确保显示正确的时间。例如 NTP 客户端时,默认时间为 UTC,我们需要在 Wifi 设置中告知正确的时区。所有时区可点解这里查看:
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones/

对于我而言,在 WiFi 管理器的时区字段中输入“America/Sao_Paulo”即可。如果你想了解更多关于 NTP 服务器工作的信息,可点击此处查看:
https://lastminuteengineers.com/esp32-ntp-server-date-time-tutorial/

源代码

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

通常,我会使用 PlatformIO 开发固件,如果你不知道,推荐试试。但在本项目中,我使用 Arduino IDE ,项目会更简单一些。存储库中的代码与 ESP32-HUB75-MatrixPanel-I2S-DMA 库一起使用,同时我也使用了 PxMatrix 并且一切正常。你只需要替换库而不需要进一步更改代码,因为都是基于 Adafruit_GFX。

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

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

为了让它在 Arduino IDE 中工作,我需要稍微修改一下项目结构,所有文件都与 mariobros-clock.ino 一起进入根目录。第一次看到时可能会有点混乱,我会试着在这里整理一下。

源代码可点击这里查看:
https://github.com/jnthas/mariobros-clock/

该结构是由三个文件夹和文件树组成。

clockface:包含图形、字体、图标等以及马里奥的显示。
commons:包含通用实用程序,例如日期、时间和 Wifi 的配置。
engine:包含显示器中一般使用功能的实现,例如绘制风景、精灵、事件等功能。

.
├── 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

有了这种结构,组装好后就能够显示出图片中的时钟了。在静态物体的风景的基本上,我们有两个动态的小精灵,马里奥和积木。马里奥每分钟跳跃一次并击中积木。

代码逻辑如下:

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 设置

在运行之前,需要从 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 创建了一个外壳。3D 建模并不是我的强项,但效果很好。我以家里的显示器为例建模。

不同的显示器,孔位可能会不一样。

可以改进的地方
1、通过 WebSerial API 更改表盘。创建一个网络应用程序,你只需选择所需的表盘即可更新固件。
2、创建通知小部件并在表盘上显示它们,它们可以在网络应用程序中进行配置。
3、将 MQTT 集成到表盘中,以便在任何地方都可以接收这些通知。
4、创建更多表盘。

这是一个开源的项目,大家也可以自行二次开发。

项目所用的代码在本项目文件库中可以下载
https://make.quwj.com/project/452

via instructables.com/Mario-Bros-Clock/

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 时钟
    +关注

    关注

    10

    文章

    1718

    浏览量

    131328
  • IDE
    IDE
    +关注

    关注

    0

    文章

    334

    浏览量

    46653
  • 开发板
    +关注

    关注

    25

    文章

    4926

    浏览量

    97137
  • Arduino
    +关注

    关注

    187

    文章

    6461

    浏览量

    186571
  • ESP32
    +关注

    关注

    17

    文章

    953

    浏览量

    17035

原文标题:基于 ESP32 制造有趣的超级马里奥主题时钟

文章出处:【微信号:趣无尽,微信公众号:趣无尽】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    用labview设计超级马里奥游戏时如何加障碍物?

    用labview设计超级马里奥游戏时如何加障碍物
    发表于 05-09 13:33

    fpga通过什么实现逻辑功能

    fpga通过什么实现逻辑功能,以超级马里奥为例子讲述FPGA有些制作。1、FPGA游戏目标没有CPU,单纯用 FPGA 的verilog硬件语言来实现一个游戏,而这个游戏还得符合老师要求,由于没有
    发表于 07-22 07:07

    RFID技术让现实版马里奥赛车成为可能

    自奥斯汀滑铁卢实验室决定将RFID标签应用于游戏,这样一来,在现实世界里,你也可以玩一把马里奥赛车了。
    发表于 01-30 11:11 542次阅读

    特斯拉Autopilot新功能:似马里奥赛车彩虹赛道功能

    当汽车处于自动驾驶状态中只能看到比较灰色沉闷的特斯拉行走画面,而这项功能添加之后能够将汽车当前行进路线会变成类似于马里奥赛车里面的彩虹赛道,标记传感器所感知的路线和前方障碍物。
    发表于 04-12 15:18 2324次阅读

    iPhone7发布会上提到的游戏 马里奥大叔15日可以在iOS平台试玩了!

    App Store了。这款名为《超级马里奥Run》的游戏是一款跑酷游戏,该游戏将于下月15日正式登陆App Store,售价9.99美元。
    发表于 11-16 11:14 890次阅读

    超级马里奥Run安卓版即将上市,国内玩家先别激动

    12 月 29 日,任天堂官方在国外社交网站推特上宣布,超级马里奥Run已经登录了Google Play 并开启预约注册,现在注册的用户,未来可以第一时间获知安卓版超级马里奥Run
    发表于 12-30 17:29 787次阅读

    利用视频游戏语料库,训练一个GAN模型为超级马里奥兄弟生成游戏级别

    在视频游戏中,马里奥游戏级别有不同的表征Level Corpus (VGLC) 和Mario AI 框架,这两种都是基于tile的表征形式。具体地说,以VGLC 表征的马里奥级别使用特定的字符符号来
    的头像 发表于 07-25 17:59 4053次阅读
    利用视频游戏语料库,训练一个GAN模型为<b class='flag-5'>超级</b><b class='flag-5'>马里奥</b>兄弟生成游戏级别

    PIR运动传感器的简介

    一个简单的房间迎宾员,当被入侵的airwick清新剂单元中的PIR触发时,播放超级马里奥兄弟主题音乐。/em》
    的头像 发表于 11-27 10:24 3.2w次阅读
    PIR运动传感器的简介

    马里奥忠实粉丝称其自制的渲染图被超级任天堂世界官网盗用

    ,但它最近却被发现盗用了粉丝制作的渲染图。 推特用户“uJIdow”是一位马里奥的忠实粉丝,他致力于制作各种马里奥的渲染图。昨日(1.7),“uJIdow”发表推文表示,超级任天堂世界官网使用了其制作的
    的头像 发表于 01-08 12:52 1864次阅读

    Labview编的超级马里奥8.0源码

    Labview编的超级马里奥8.0源码
    发表于 11-02 16:35 27次下载

    创建一个动画马里奥时钟的教程分享

    本文将指导您以非常简单的步骤创建一个动画马里奥时钟,它可以成为任何环境的复古装饰物。
    发表于 07-25 16:32 2339次阅读
    创建一个动画<b class='flag-5'>马里奥</b><b class='flag-5'>时钟</b>的教程分享

    带有压电蜂鸣器和Arduino的超级马里奥主题

    电子发烧友网站提供《带有压电蜂鸣器和Arduino的超级马里奥主题曲.zip》资料免费下载
    发表于 11-01 09:32 1次下载
    带有压电蜂鸣器和Arduino的<b class='flag-5'>超级</b><b class='flag-5'>马里奥</b><b class='flag-5'>主题</b>曲

    ESP32 Feather实时时钟开源分享

    电子发烧友网站提供《ESP32 Feather实时时钟开源分享.zip》资料免费下载
    发表于 12-09 10:05 1次下载
    <b class='flag-5'>ESP32</b> Feather实时<b class='flag-5'>时钟</b>开源分享

    带有ESP32 CAM的超级简单安全摄像机

    电子发烧友网站提供《带有ESP32 CAM的超级简单安全摄像机.zip》资料免费下载
    发表于 06-30 14:46 0次下载
    带有<b class='flag-5'>ESP32</b> CAM的<b class='flag-5'>超级</b>简单安全摄像机

    基于Microchip 8位微控制器制作超级马里奥的蘑菇徽章

    今天给大家带来一期致敬经典的超级马里奥的徽章。可爱的蘑菇徽章,经典的红黄配色,立马把我们拉回到儿时的快乐的时光里(不小心暴露了年龄)。
    的头像 发表于 09-11 10:16 889次阅读
    基于Microchip 8位微控制器制作<b class='flag-5'>超级</b><b class='flag-5'>马里奥</b>的蘑菇徽章