滚动气泡显示
0
准备工作:
材料:
- 双层壁屋顶聚碳酸酯板
- 硅酮密封胶
- 端板(建议用亚克力激光切割,但3D打印或手工制作也可以)
- Arduino
- 喷笔压缩机——最好是带储气罐的那种,可以自动启停,避免压缩机空转。
- 常闭式电磁阀 - 每个通道 1 个(我用了 12 个)
- 用于切换电磁阀的方法(MOSFET 也可以,但我用了 3 个 Adafruit MotorShield*——它们可以堆叠起来,在一个 Arduino 上工作)
- 将压缩空气分配到阀门的方法(使用管道和 Y 型接头都可以,但使用歧管可以使布局更加整洁)
- 用于调节每个通道的螺丝端子电源母线(可能是可选的)
- 电烙铁和焊锡
- 金属丝
- 一台可以通过 USB 接口以串口方式发送文本的计算机
双层壁通道和喷嘴板









气泡发生器每个通道都需要空气注入点。我在公司清理杂物时发现了一袋各种流体接头,里面有一些尺寸从大到小(约 4 毫米到 2 毫米)的倒钩螺纹隔板接头。这些接头看起来非常适合用作气泡注入喷嘴。
我的第一个滚动气泡显示器原型安装在一个大型圆柱形花瓶的圆周上。然而,我发现上升的气泡会产生对流,这不仅会改变不同气泡的上升速度,导致字母变形,而且这些对流还会将相邻的气泡横向吸入,有时甚至在字母形成之前就将其破坏。我意识到,气泡需要沿着通道上升,才能将它们彼此分隔并加以控制。最初,我考虑过使用几个独立的管道,但这看起来成本太高了。
过了一段时间,我发现了双层聚碳酸酯屋顶板。双层板简直太理想了,因为它价格便宜、非常透明,而且不需要连接任何单独的管子。唯一的挑战是底部的密封……
为了实现这一点,我用激光在6毫米厚的亚克力板上雕刻出双层壁末端的形状,形成约3毫米深的凹槽,使其能够完美地套在双层壁的末端。安装时,我在凹槽内涂抹硅胶密封剂,并在外侧再涂抹一圈,从而形成完美的密封。但首先需要安装喷嘴……我在雕刻凹槽的同时,用激光切割出喷嘴孔,并用丝锥将这些孔扩大到1/8 BSP螺纹,以匹配接头上的螺纹。我还用激光切割了一些可激光切割的橡胶(专为制作印章而设计),用作喷嘴的密封垫圈。
我想,如果没有激光切割机,你可以用一块简单的塑料片……打磨正面,然后在双层壁边缘涂上硅胶密封剂,应该就能达到不错的密封效果。喷嘴可以用聚四氟乙烯螺纹密封圈、软木或橡胶密封垫圈,或者薄的O型圈来密封。只要能保证气密性,3D打印一个完全致密的零件也是可行的,你甚至可以打印一个Ninjaflex垫片。选择适合你的方法吧!
空气供应和电磁阀




我一开始用的是池塘气泵,但它的气量不够,供气不足。如果多个阀门同时打开,水就会涌入除一个阀门以外的所有阀门!后来我借了个小型压缩机,但它在不产生气泡的时候,大部分时间都在向一个死角供气,这对压缩机不好,所以我不得不加装一个泄压阀来确保气流顺畅。这样一来,它就很难保持稳定的压力来产生气泡。而且,它的噪音也很大。
为了解决这些问题,我买了一台带储气罐的喷笔压缩机。这台压缩机运行安静,会根据需要自动启停以维持储气罐内的压力。它还带有一个调压器,可以控制输出气压,从而为喷笔提供更稳定的气流。
高压空气需要并联供应给所有12个阀门。起初我用了一堆“Y”型倒钩接头,形成一个分支状的阀门网络,但当加上所有12个阀门的输出管路和线路后,网络变得非常混乱。更糟糕的是,我用的那些阀门是单位扔掉的,估计是因为压入式倒钩接口很容易脱落,这意味着这堆阀门连接不稳定,每次接口脱落,水就会漏到地板上……真是糟糕透了。幸运的是,我有个朋友有台数控铣床,他用一块聚乙烯边角料加工了一个歧管,用来给所有阀门供气。同样,他用激光切割的橡胶做了个垫圈。这个歧管大大简化了所有管道的布置,也使得阀门和喷嘴之间的管道长度更加一致、更加短。如果您想知道为什么 3 个阀门朝向相反的方向,那是因为它们是略有不同的阀门(2/2 而不是 3/2),所以它们的推荐端口配置也不同。
为了平衡不同阀门的流量,通往喷嘴的管道穿过一些大型螺钉端子电源母线,用于连接螺钉可调的限流器。这样可以进行精细调节,从而提高字母形状的一致性。
电子元件





为了驱动阀门,我们需要一个控制器来决定何时开启它们,我使用了 Arduino Uno。由于阀门的电流消耗超过了 Arduino 的输出能力,我们还需要一些电源开关电路来实际切换电流。阀门很小,所以几乎任何晶体管都可以搭配一个反激二极管来代替,以防止因切换感性负载而损坏。然而,我刚买了一盒次品的 I2C 电机控制板,它们看起来像是未标记的原型,或者是 Adafruit 优秀电机控制扩展板* 的克隆产品。这些扩展板很棒,因为它们可以单独寻址,所以你可以堆叠多个来控制几乎无限数量的负载,而且它们也包含了所有必要的反激保护功能。
如果你选择 Adafruit 电机驱动板,12 个通道需要 3 个。焊接地址跳线,使每个驱动板的地址都不同,然后将每个阀门连接到不同的电机输出端。现在将这些板子堆叠到 Arduino 板上,并将其连接到电脑。最好等到 Arduino 板编程完成后再连接电机电源,特别是如果你的阀门需要 3V 电压而驱动板需要 5V 电压(就像我一样)。
我建议按顺序将阀门连接到一对长接线端子上,这样如果哪个阀门松动或需要更换,就能轻松找到。我发现阀门线太细,总是松脱,所以我用压接端子固定了套管,使它们连接得更牢固。
与此同时,我还在顶部双层壁的备用槽内添加了一条 LED 灯带,这样气泡就能捕捉到光线。
*我强烈建议购买正品,一般情况下我会尽量避免购买仿制品,因为它们不支持设计者,但是这些仿制品每块板子不到 1 英镑,而且只需要焊接一个跳线就能工作,所以我忍不住买了一盒!
软件




我的代码在这里。如果您使用的是相同的电机驱动板,并且地址设置为 60-62,则无需修改即可正常工作。否则,请根据需要进行调整。
为了让你们感受一下我的写作风格:
我首先编写了使用电机驱动板驱动阀门的代码。我只使用略高于一半的速度,这样阀门在 5V 电源供电下获得的电压就不会超过其额定电压 3V。
我克服了对指针的恐惧,定义了一个阀门通道数组,以便更容易地通过编号引用不同的通道。
然后我制作了一个字符“字体”。这些字符以一系列双字节列的形式存储,字母中每一垂直列的每个像素都对应代表该列的两个字节中的一个比特。1 表示需要气泡,0 表示不需要气泡。最初我尝试使用 Matlab 手动创建“字体”,但后来我发现了一个程序,它几乎可以直接输出我创建的内容。MikroElectronica GLCD Font Creator是一款免费软件,专为 LCD 显示屏创建新字体而设计。它似乎会为每个字母增加一个额外的字节,但我考虑到了这一点,并忽略了它,直接复制了“字体”代码块。请注意,GLCD Font Creator 在现代 Windows 系统上运行时不会保存任何内容。但是,您可以从导出窗口中复制相关代码。
字体需要存储在程序存储器中,因为 Arduino 的动态存储器不足以容纳所有字体。
我不得不调整字符,尤其是带有水平线的字符,因为相邻气泡的可压缩性会导致注入的空气比预期更多,从而造成字母变形。我修改了字符,使其大致正确。使用调节螺丝增加阻力也对此有所帮助。
然后我编写了以下代码:
- 将两个字节拆分成比特,并控制相关阀门产生气泡。
- 取一个字符(与该字符相关的 ASCII 码),从字体中找到对应的两个字节,并将它们写入气泡中。
- 取一个字符串,依次写入每个字符。
- 通过串口接收文本并将字符串显示在气泡中。
- 我终于添加了屏幕保护程序,这样在没人打字的时候它就不会闲置在那里了。
测试和调优




现在该往通道里注水,开始冒泡了!注意不要注水过满,我发现如果注水超过一半,就会出现一长串错误的字母,导致溢出。虽然这意味着一次只能显示三个字母,但这其实无关紧要,因为后续字母冒出的气泡会扭曲之前的字母,所以你最终也只能看清最后两三个字母!
首先反复输入“|”。这些气泡应该会排成一排大小相对一致的气泡。如果不是,请调整限流螺丝。请注意,这种方法不太可能完美,因为同时打开所有阀门会扰乱压力供应。接下来,输入大量带空格的斜杠“/ / / / / /”;错开释放时间应该能获得更均匀的气泡。
希望你现在可以输入文字并在气泡中阅读了!
我们在德比创客嘉年华上展出了滚动气泡显示器,并受到了热烈欢迎。
我们设置了一台笔记本电脑,打开了 Arduino 串口窗口,连接了一个无线键盘,让人们随意输入内容*。绝大多数人要么输入了“你好”,要么输入了自己的名字。谁能想到,泰勒(Tyler)现在竟然是德比最流行的名字之一呢?
总之,它普遍受到孩子和成人的好评。如果您喜欢这篇教程,请在塑料制品比赛中为我投票!
当然,有些人会趁机发些冒犯性的信息,但他们的键盘连接断断续续的运气真是差得惊人——可能是因为我会把键盘的接收器拔掉吧 ;)
**内容五花八门,从完全谩骂到略带嘲讽的无礼都有,当然,我都一一作罢……尤其让我捧腹大笑的是那些故意写“poo”(便便)来激怒妈妈的小男孩们。一位妈妈甚至纠正了她7岁的儿子:“你想打的‘wee’里有两个E!”
视频地址:https://youtu.be/YOZJN9mwQyY
0
0
0
qq空间
微博
复制链接
分享