这次小编给大家带来的是来自瑞士的 Maker drtonis 博士的翻页显示器项目。
MAKER:Thomas Burns /译:柴火创客空间
去年圣诞节前后,drtonis 博士在互联网上闲逛,看到了一个 Vestaboard——一个翻盖展示。外观非常精致以至于看起来像艺术品,是一个非常不错的的翻页显示器,但非常昂贵。作为一名具有硬件知识的理工男,drtonis 博士决定自己做一个。
我最初的计划很简单。我是做硬件的,所以我的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
- Aeduino IDE
其他:
- 3D打印机
- 耗材
- 杜邦线若干M3螺丝3*1mm磁铁若干自贴纸
- 更多的时间、耐心
第一步:结构设计
在开始这个项目之前结构部分最重要的设计就是翻页装置,这里需要保持翻页帘的流畅性同时还要保证滚轮转动不会卡死,因为是DIY 3D打印很难保证每个翻页装置的精度可以让其流畅运行。
Vestaboard的显示器的转轮使用了64个翻页帘,为了尽可能还原,因此也采用相同的数量,显示比例为22:6,翻页帘的制作数量为22_6_64,对于DIY来说确实是个天文数字,因此最终将翻页帘的数量控制在2304,显示比例为12:3。
结构设计完成后就是漫长的3D打印制作环节
第二步:控制功能验证
对于需要同时控制大量步进电机的项目而言,普通开发板和步进电机驱动板直连的方式肯定是不可取的,因为没有哪一款开发板可以有上百个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毫米是比较合理的。
第五步:组装搭建
在整体组装值之前需要先对单独的转轮进行测试,看看它们是否可以流畅的转动。
总的打印零件包括
转轮架 36个
转轮 36个, 翻页帘 36*64个
第六步:代码
为方便后期更新固件,代码可以使用OTA的方式升级(https://randomnerdtutorials.com/esp32-over-the-air-ota-programming/)
目前代码运作逻辑是:
- 上电归位
- 显示完成后展示白色背景
- 翻转到指定页面
之后代码会陆续更新日历显示、天气状况、时钟等信息
代码下载链接:https://github.com/drtonis/FlapClock