Jeffrey Cross
Jeffrey Cross

构建笔记:计数框

我曾多次偷看过我的儿子躺在床上用一只手拿着一个计算器而另一只手拿着手电筒,按下“1 + = = =”并看着数字一直爬到他无法睡着之前就睡着了不要睁开眼睛。因此,在他四岁生日的时候,我决定为他建造一台专用机器,除了数不清楚并按照他的命令倒计时。

我最初的想法很简单:一个大型的多位七段LED显示屏,两个加大和减去的街机按钮,以及一个10位旋转开关。转动旋转开关选择1到10之间的值,然后按一个按钮增加LED上显示的数量。按下另一个按钮,它会下降。

电路

该电路在该项目中排名第一,因为外壳的尺寸取决于成品电子封装的尺寸。

其核心是ATmega328,这是最常见的Arduino处理器之一。一对4位LED时钟显示器显示数字,由Maxim MAX7219 LED显示驱动芯片驱动,只需使用ATmega上的3个输出引脚即可处理64个LED或8个7段数字。

在面包板上构建电路并编写基本测试程序之后,我第一次介绍了开关弹跳,电子噪音或毫秒级的喋喋不休,因为开关的触点打开或关闭。微处理器可以读取几个,几百个或更多的按钮。幸运的是,我订购的街机按钮碰巧是双掷开关。这些允许在硬件中使用相当简单的去抖解决方案,每个开关使用2个NAND逻辑门。 74HC00集成电路在一个芯片中提供了所有4个所需的门。

旋转开关是二进制编码的,因此只需将其4个引脚(每个需要计数到10位的一个)连接到ATmega的输入引脚,读取每个引脚并将它们组合,然后转换为十进制。

既然电路可以计数,我需要一种方法来存储显示器的当前值。你不想让你的计数盒达到一个惊人的高数字,只有当你关闭电源时才会失去它。对于ATmega的内部EEPROM来说,这应该是一件容易的事,但是当我查看规格时,它只被评为100,000次写入周期。显示器可能达到99,999,999,这似乎不够。相反,我发现24LC256 EEPROM存储器芯片具有1,000,000个写入周期 - 仍然没有计数盒可以达到的那么高,但更接近。但在实际使用中,ATmega的板载内存很可能就足够了。

我使用Arduino Duemilanove进行了原型设计和编程,但是对于最终版本,我使用相同的ATmega芯片在stripboard上构建独立电路。我更喜欢在我的项目中使用独立的微控制器,因为它比在整个Arduino板上使用的空间更少,成本更低,并且让我的Arduino免费用于下一个项目。

LED显示屏位于自己的板上,通过带状电缆连接到主处理器板。 8位数允许的99,999,999计数肯定是矫枉过正,但与使用个别数字相比,使用4位LED显示屏可节省大量布线和焊接。

对于电源,我计划使用可充电AA电池。

软件

该软件有3个主要功能:处理按钮按下以增加和减少所选数量的数量,显示数字,并将数字存储到存储器。

按钮按下来作为中断,它几乎听起来像它们会发生的 - 打断程序中发生的任何其他动作。替代方法是不断轮询按钮以查看它是否被按下,但与基本上要求按钮让您知道何时被按下相比,这是低效的。当按下一个按钮时,程序读取旋转开关的值,从变量中加上或减去该量,然后将其分成单个数字发送到MAX7219进行显示。在每个循环中,程序将变量的当前值与前一循环中的变量值进行比较。如果它们不同,则将新值存储到EEPROM存储器芯片中。

通过将数字选择器设置为8并在打开电源时按住减小按钮,可以将计数框归零。同样,将数字选择器设置为3并在通电期间按住增量按钮将显示统计数据,例如达到的最高和最低数字以及按钮的整个生命周期内按下的按钮总数。为节省电量,ATmega进入睡眠状态,如果没有按下按钮一分钟,LED显示屏会变暗。按任一按钮将唤醒系统。

建立框

完成电路和软件后,我将它们放在一边。他们肯定可以进行一些进一步的优化,但他们唯一真正的要求是他们的工作。不过,这个盒子每天都会被看到,并且必须看起来尽可能好。它必须对年轻人的手友好,并且足够有弹性以承受偶尔的跌落。木材是完美的材料,但我没有精确的木工技术或购买我想要的东西。激光切割救援!

为了在角落上布置关节图案,我使用了一个名为BoxMaker的在线工具(boxmaker.rahulbotics.com)。输入成品框的外部宽度,深度和高度,材料的厚度以及切口(切割所移除的材料的宽度),并生成所有必需部件的PDF。

我将此PDF导入Adobe Illustrator,对左右两侧的对称间距进行了一些小调整,并放置了窗口切口和钮孔等元素。

在上传切割之前,我打印了计划并将它们喷涂到1/4“泡沫芯板上,然后切割并组装好。泡沫板比激光切割便宜很多,所以这个阶段是一个更好的发现错误的地方(比如一个插槽应该是一个插槽,或一个盒子不够深,无法按住按钮)。

模型不仅适合在一起,而且所有组件都适合它。完成最后检查后,我将设计上传到Ponoko(ponoko.com),用竹胶合板激光切割。

两个星期后,一个包裹到达了切割的木材。这些作品很漂亮,但它们并不合适。我指定了太宽的切口(切割宽度),并且补偿了BoxMaker程序调整了切口的宽度以封闭不存在的间隙。通过文件和一些砂纸,我能够将槽口加宽到足以将盒子放在一起。

我粘合了关节,在所有角落上打磨了一个半径,然后用聚氨酯光泽完成木材保护,并给竹子一个温暖的琥珀色光芒。

覆盖LED的红色丙烯酸窗口与木材同时进行激光切割。我希望紧密贴合不需要任何胶水,所以我制作了6种不同版本的窗户,每个尺寸比上一个大几百分之一英寸,并使用最合适的一个。

当我开始把它们放在一起时,我意识到我对AA电池适合表壳的方式不满意。它们很丑陋,将它们带出来进行充电会很麻烦。为了更换它们,我使用了Adafruit(adafruit.com)的锂离子电池组和USB充电器。 3.7V电池输入升压电路,提供所需的5V电压。

像我们很多人一样,我的儿子喜欢看看里面的东西,看看它们是如何工作的。最后一刻的电源变化让我把电路朝向电池所在的位置,让背面的门可以作为一扇窗户让他看看里面的电子设备。为了保持脆弱的电线安全,我用一块透明的丙烯酸树脂切割了电路,并用支架固定。

盒子后面的门由四个3毫米的钕磁铁固定,这些磁铁环氧树脂粘在门板和框架上的孔中。磁铁的强度足以使门在常规使用中保持安全,但是当使用每侧的半月形切口进行撬开时它们会给出。

使用计数框

除了看到数字有多高的明显刺激之外,很容易想出用Counting Box玩游戏。提出一些问题,“你怎么能在最少的按钮中达到49?你可以在整个时间内将选择开关设置为相同的值吗?“计数框也可用于帮助引入数学概念,如跳过计数。当很明显它们只是重复加法或减法时,乘法和除法等更高级的思想就会很快出现。

我不确定是谁学到了更多,我建造它或者我的儿子玩它,但无论哪种方式,计数盒都会增加很多乐趣。

更多hahabird.com。

MAKE第33卷采用我们特殊的制造商软件部分,涵盖电路板设计,3D设计和打印,微控制器和儿童编程应用。此外,满足我们新的Arduino动力Rovera机器人并开始使用Raspberry Pi。像往常一样,你也会在里面找到迷人的制造商,比如封面上的疯子,Maker Faire上流行的Power Racing Series活动背后的黑客。

尝试22个伟大的DIY项目,如光学Tremolo吉他效果盒,“Panjolele”蛋糕盘ukelele,Wii Nunchuk鼠标,CNC细木工技巧,治疗分配猫抓痒,激光切割弯曲木书,清酒酿造,种植令人难以置信的热“鬼辣椒”辣椒等等。

现在可以在报摊上订阅,也可以在Maker Shed中找到

立即购买!

分享

发表评论