在固件中进行的最要紧的更改是将更多信息保存在“动画”和“帧”类中(例如,起点和屏幕上的当前位置),以便使编程游戏和动态动画更加容易。现在,只能展示预制动画。这些更改也会反映到文件类型中。
PWM 脉冲宽度调制因为显示器是完全垂直的,所以要处理重力作用下的表现。我们采用的方法是在软件中实现脉冲宽度调制,可以选择性的对某些磁体施加较小的力。再通过软件将施加过较小力磁体的上方磁体施加最大的力。但是,这有一定的局限性。最明显的是,开始使用的电磁体程度不大时,能够设置的最大和最小 Blob(指图像中的一块连通区域)之间的动态范围很小。
目前,由于没有任何用于更改像素占空比的专用硬件,所以需要在软件中编写 PWM 驱动。在原型制作期间,使用 Arduino Mega 来实现时遇到了挑战,但在优化后它工作得很好。
目前,正在开发下一版电路板,以适用于特定的 PWM 硬件控制的电磁体,获得 Teensy 带来的高速度。所以,必须要将微控制器升级到 Teensy 3.6 扩展板的水准,因为使用 Arduino 无法在系统中存储动画。Teensy 3.6 扩展板带有内置的 SD 卡插槽,它非常的实用。
实现时钟功能
为了在未接电源时保持时钟的时间,我们加入 DS3231 精度“实时时钟”RTC 模块。经过一些代码调整之后, https://github.com/appliedprocrastination/FerroFetchFirmware/commit/ecc45b621966666171e8ed8b57e48b67e5f96fff
可以在显示屏上使用“时钟模式”。

实现起来非常的简单,但还可以不断的优化。当前的工作方式是,当显示器在“时钟模式”下运行时,它将以一分钟的分辨率显示时间。每过一分钟,显示器就会从 SD 卡读取新动画并进行显示。

显示器采用几种不同的模式,它可以为生活提供方便,例如可以在会议上展示这款炫酷的显示器。目前为止,我们使用未标记的四向开关来更换模式,将来可能采用磁带和永久标记来替代。
项目中的“坑”项目之初,准备为容器设计两个玻璃窗。如果可行,这是一种简单而获得高精度和耐用的容器的方法。首先摸索窗口的正确尺寸,可以通过测试来检验它是否可行。
先在密封处上钻一个孔,然后加水。观察几天后,没有发生泄漏后,再将水换成醋。该技巧在如何选用容器的链接中可以详细了解。其中要求清洁玻璃表面,以使铁磁流体不会粘住。
