过年在网上逛的时候,看到一个叫Vestaboard的翻盖显示器,挺酷的一个翻盖展示,但价格贵得要死。我琢磨了一下,决定自己动手做一个,就当满足一下小兴趣。
我最初的计划很简单。我是做硬件的,所以我的DIY版本不会做得那么高端。控制器我觉得用ESP芯片做就行了,它可以连WiFi更新时间或者连网站。所以我的DIY版就主要集中在硬件方面,软件部分比较简单,以后可以慢慢改进。主要的设计用Fusion360画图,打印件我有3D打印机。一般人写这种成功项目的文章,但我这个有点不同。整个项目我忙活了将近7个月,结果还是不太满意。主要问题等下讨论。不过,我对我的构思和制作思路还是很满意的,就是一些结构需要重新设计。最后为了完成这个项目,我让显示部分勉强工作了。 非常感谢Seeedstudio赞助了XIAO ESP32和PCBA,我真的需要他们的帮助,因为这个项目成本比我平时DIY要高多了。与Seeed的沟通非常专业,他们也给了很大支持。大家可以看看:https://www.seeedstudio.com/fusion.html
材料清单
硬件:
XIAOESP32C3 * 1
28BYJ-48 步进电机 5V *36
PCB 28BYJ-48 步进电机驱动板 *3
A3144霍尔传感器 *36
软件:
Fusion 360
Arduino IDE
其他:
3D打印机
打印机耗材
杜邦线若干
3*1mm磁铁若干
自粘纸若干
第一步:结构设计
在开始这个项目之前结构部分最重要的设计就是翻页装置,这里需要保持翻页帘的流畅性同时还要保证滚轮转动不会卡死,因为是DIY 3D打印很难保证每个翻页装置的精度可以让其流畅运行。
Vestaboard的显示器的转轮使用了64个翻页帘,为了尽可能还原,因此也采用相同的数量,显示比例为22:6,翻页帘的制作数量为22*6*64,对于DIY来说确实是个天文数字,因此最终将翻页帘的数量控制在2304,显示比例为12:3。
第二步:控制功能验证
对于需要同时控制大量步进电机的项目而言,普通开发板和步进电机驱动板直连的方式肯定是不可取的,因为没有哪一款开发板可以有上百个IO口,因此这里需要使用移位寄存器,这种方式几乎杜绝了引脚不够用的问题。电机的齿轮减速比为64:1,步距角为5.625度(360/5.625 = 64步)。这意味着一个电机需要 64*64 = 4096 步才能让输出轴转上一圈,因此移位寄存器使用 64 位/字符是比较合适的。
关于归位——滚轮位置检测的问题,这里使用了A3144霍尔传感器通过检测滚轮上的磁铁的位置来判断当前滚轮是否归位。
第三步:制作翻页帘
翻页帘是整个设计中最脆弱的部分,需要有足够的平整度还要足够轻薄,否则整个设备的重量和功耗就会成倍增加,在这里使用3D打印完成该环节的制作。翻页帘上的文字使用贴纸粘贴(虽然每张纸都很薄但是几千张纸加起来还是很厚)
第四步:PCB制作
因为需要驱动多个步进电机传统的固定方式不太友好,包括线路整理,所以这里使用PCB打样,将电机的驱动、移位寄存器、霍尔传感器、供电全部集成在一块板子上,这里用到了Seeed Studio的Fusion业务,他们免费帮我制作了需要用到的PCB板。在使用A3144时一定需要正确安装,错误的安装方式会导致元件发热,严重时会让打印件发生形变,以至于转轮卡死。经过测试后将A3144与磁铁的距离控制在1.3毫米是比较合理的。
第五步:组装搭建
在整体组装值之前需要先对单独的转轮进行测试,看看它们是否可以流畅的转动
第六步:代码
为方便后期更新固件,代码可以使用OTA的方式升级(https://randomnerdtutorials.com/esp32-over-the-air-ota-programming/),目前代码运作逻辑是:
- 上电归位
- 显示完成后展示白色背景
- 翻转到指定页面
之后代码会陆续更新日历显示、天气状况、时钟等信息
关于XIAO开发板
Seeed Studio XIAO是一系列紧凑型开发板,拥有强大的微控制器和丰富的外设。所有XIAO开发板均采用SAMD21、nRF52840和ESP32C3等功能强大的流行芯片,特别适合应用于物联网、机器学习、可穿戴设备的原型开发。此外,它所有表面的电子元器件都放置在电路板的同一侧,邮票孔和贴片封装设计可以让用户轻松地将XIAO集成到自己的电路板中,以实现快速批量生产。
Fab Academy 是一个由麻省理工学院比特与原子中心的 NeilGershenfeld 主导的数字化制造项目,基于麻省理工的快速原型课程——MAS 863:如何制造(几乎)任何东西。它提供长达5个月的数字制造项目,可以在任意一个参与的实验室里开展。2023年,XIAO首次作为Fab Academy 学员学习课程中的指定教具,支持学员进行项目学习和创作,今年的毕业项目如果大家有兴趣,欢迎移步到https://fabacademy.org/2023/schedule.html 进行了解。