探索espressif ESP32的功能,开展Dali Clock项目
Adafruit Huzzah23(上)与DFRobot Firebeetle(下)
使用ESP32与复合视频时钟
为了更具体地说明如何使用 ESP32(既易于实现又令人印象深刻),可以参考由 Marcio L. Teixeira 构建的 Dali Clock。这个设置使用带有复合输入的旧电视和一个 ESP 开发板来显示一个变形的屏幕时钟。 像任何推动边界的项目一样,这个项目站在了前人的肩膀上,将 Dali 时钟的概念(为 Xerox Alto 于 1979 年创建)与风格类似于 1980 年代流行艺术的滚动日落场景相结合。在技术层面上,多个硬件黑客被认可。当然,若没有 ESP32,这一切都是不可能的。最后,我们不能忽略萨尔瓦多·达利本人,他为这一原创艺术提供了灵感。 尽管它的背景令人印象深刻,但要设置这个时钟,您只需要以下设备:
- ESP32 开发板
- RCA 插头
- (2) 连接线
- USB 电源
- 具有复合能力的电视或显示器
视频显示
设置:加载代码并连接
要进行设置,从GitHub下载代码,并使用Arduino IDE将其传输到ESP32。更详细的说明在此处找到。 您需要在Arduino IDE中添加与ESP32板工作的功能,通过打开“Preferences”,并在“Additional Boards Manager URLs”部分输入“https://dl.espressif.com/dl/package_esp32_index.json”。 完成此操作后,选择您的开发板(在这种情况下为Adafruit ESP32 Feather或FireBeetle-ESP32),以及正确的串口,并将代码加载到您的ESP上。
视频显示
将Adafruit Huzzah32开发板的GND引脚连接到RCA插头的外部桶部。 然后,将另一根线从A1 DAC1引脚连接到插头的中心柱,以输入到电视的复合视频输入。您可以使用鳄鱼夹连接到标准的双头插头,或者使用可用的螺丝端子插头来使其更加安全。当然,您也可以改装一个RCA电缆以暴露其中的布线。 将RCA插头插入电视/显示器,连接电源到开发板,并将电视调到正确的输入源。 看,这就是一个屏幕上的融化数字Dali时钟,此时几乎可以肯定显示的是错误的时间。要解决这个问题,通过手机或电脑登录到ESP32生成的“ESP32 Dali Clock”WiFi网络,并通过浏览器界面配置设置。一旦正确设置好,它就可以通过家用网络访问。时间可以通过NTP/时区自动设置,或者如果您愿意,也可以手动输入。
设备连接
时钟还可以切换为显示日期而不是时间。在Huzzah板上连接导线到A5 4和A4 36,并用手指触摸这两点以激活此功能(我没有在FireBeetle上尝试过,但应该是可行的)。它也可以设置为一天中变换颜色,看起来很有趣。
ESP32 的功能特点
除了快速的处理速度(对于不久前的台式机来说已经令人印象深刻),这个构建很好地展示了ESP32的几个特性:
- WiFi连接 - 用于网页界面和时间设置
- RCA接口
- I2C/DAC/PLL - 支持电压水平输出和彩色复合视频所需的精确计时
- 电容触摸感应 - 感应电线触碰以暂时切换到日期显示
- 双核处理器 - 一个核心处理图形处理和视频信号输出,而WiFi/网页界面则运行在第二个核心上,以避免干扰计时。
突破界限
根据这段独立视频,该视频介绍了如何设置与此构建类似的装置,ESP32在其规格中实际上没有列出复合视频功能。然而,它可以进行数模转换(DAC)并利用I2S协议,这使其在进行复古未来视频黑客时非常强大和通用。 关于Marcio如何利用ESP32的PLL功能将其升级为彩色输出的更多信息,请访问这个GitHub页面。 在我极其有限的样本中,每块板各一个,在一台电视上显示,使用Adafruit Huzzah32效果相当好。FireBeetle,在相应的输出引脚排序后,也能工作,但有一些间歇性的同步问题。 稍微深入研究这两块板:Huzzah32使用ESP32-WROOM-32E WiFi模块,而DFRobot板使用ESP32-WROOM-32D。虽然基本相同,-32E在细节上有一些改进,包括它如何与晶体振荡器交互以决定CPU定时。 这可能意味着在我的电视上,-32D和-32E的显示有些许差异。也就是说,对于绝大多数没有以创造性方式挑战ESP极限的情况,任何一个模块都能很好地完成所需任务。然而,如果你有一个需要充分发挥ESP-32全部功能的生产应用程序,考虑将要使用的ESP-32是一个很好的提醒。
文章标签