如何根据API的输出数据控制秤的倾斜角度
扫描二维码
随时随地手机看文章
“光明兴旺”这一短语有一种解释,意为光明与成功。我将其理解为一种更为复杂的意义,即当聚光灯从他们身上移开时,为那些失去发声机会的人带来光明。
每当我想起这个项目构想时,总会浮现出两件事:一是乔治·奥威尔的《动物农庄》,二是古埃及的“马阿特”天平。在小说中,猪群通过一场突如其来的革命掌控了局面,最终所有人都忘记了旧秩序;而马阿特天平则象征着完全相反的现实——一种古老的埃及方式,用公共称量来衡量统治阶级的道德,将一个人的心与一根羽毛相比较,以此判断其品行。
工作原理
一个名为Particle Photon 2的装置每十分钟连接两次API。一次是新闻自由API,用于记录针对记者的攻击;另一次是GDELT项目,用于监控全球抗议活动。这两个系统的输出数据通过安装在支点处的28BYJ-48步进电机,控制一个自制的埃及秤的倾斜角度。当记者暴力事件增多时,秤的“猪”侧会向下倾斜;更多抗议活动则使另一侧发生反应。尽管如此,秤始终无法完全平衡。
Webhook 问题
这正是我花费最多时间的地方。Particle 的回调系统没有给我提供一个清晰整洁的响应,而是以分块形式返回数据,这一点我是通过不断尝试才弄明白的。我创建了一个对象来收集这些分块响应,然后等待一段时间,确保整个响应被完整获取后再进行任何处理。这里最复杂的问题是确保这个过程不会阻止第二个回调独立于第一个执行。两个流程都必须在正确的时间点、按正确的顺序运行,同时不相互干扰,而这需要比预期多得多的调试和迭代。
电机
与28BYJ-48不同,电机本身并不知道自身的当前位置。它只是根据指令进行步进,并假设用户已经清楚其当前位置。因此,我必须负责跟踪——一个不断更新的计数器,每当电机执行一步时,计数器都会随之递增或递减,使电机在每次振荡后都能回到中立位置。这看似简单,但如果计数器出现任何问题,整个作品的概念就会变得毫无意义。
面包板转覆板
代码终于能正常运行了,接下来就是把所有东西从面包板转移到PCB板上。这时,整个搭建过程却开始让我头疼。无论我怎么调整,量程臂始终无法正确安装进电机外壳。我花了至少一个小时尝试,结果不到三十秒就用强力胶完成了。有些事情,真的没办法反驳。
LED
我使用一个5V 2A的电源,为137个WS2812B LED和微控制器供电。最初的想法是根据秤盘哪一侧更重来改变颜色:当人类站在较重的一侧时,猪的一侧会显示红色,而另一侧则显示其他颜色。我进行了计算后发现,所有这些LED以及微控制器所需的动态电流过大,会导致整个系统烧毁。因此,我决定让LED一直保持白色模式运行。出乎意料的是,这个决定非常成功,因为LED完全没有表现出任何偏爱行为。
本文编译自hackster.io





