文章目录[隐藏]
简介:仓鼠车轮转速表
大约三年前,侄子养了他们的第一只宠物,一只叫做金块的仓鼠。对Nugget锻炼程序的好奇心启动了一个持续了Nugget(RIP)的项目。本说明概述了功能性健身轮光学转速表。仓鼠车轮转速表(HWT)显示仓鼠的最高速度(RPM)和总转数。Nugget的人类家庭希望安装和使用简单的东西,但不希望孩子有更多的屏幕时间。考虑到啮齿动物与世界互动的耐嚼方式,我认为独立的电池供电会很好。HWT将运行约10天,需付费。根据车轮直径,它最多可以记录120 RPM。
步骤1:零件清单
大约三年前,侄子们得到了他们的第一只宠物,一只名叫Nugget的仓鼠。对Nugget锻炼程序的好奇心开始了一个长期持续的Nugget(RIP)项目。这个指导性概述了一个功能性的运动轮光学转速计。仓鼠轮转速计(HWT)显示仓鼠的最高速度(RPM)和总转数。Nugget的人类家庭想要一些易于安装和使用的东西,但不希望孩子们有更多的屏幕时间。鉴于啮齿动物与世界互动的耐嚼方式,我认为自给自足的电池电量会很好。HWT将收费运行约10天。它可以记录高达120 RPM,具体取决于车轮直径。
步骤1:零件清单
Adafruit #2771 Feather 32u4 基本原型(带补充接线 - 请参阅步骤 4:组装电子设备)
Adafruit #3130 0.54" 四倍数字母羽毛翼显示屏 - 红色
Adafruit #2886 羽毛针座套件 - 12 针和 16 针母针座套件
Adafruit #3898 锂离子聚合物电池非常适合羽毛 - 3.7V 400mAh
Vishay TS4038 红外传感器模块 2.5-5.5v 38kHz
电阻器, 470, 1/4w
开关、按钮、单刀单掷、瞬时开启、0.25 英寸面板安装(Jameco P/N 26623 或同等型号)
(4) 带螺母的 2.5mm 尼龙机螺丝(或 4-40 机械螺丝 - 参见步骤 6:组装 HWT)
仓鼠轮转速计外壳 - 3D打印。(公共 TinkerCad 文件)
仓鼠轮转速表圈 - 3D打印。(公共 TinkerCad 文件)
仓鼠轮转速计传感器外壳 - 3D打印。(公共 TinkerCad 文件)
显示对比度滤镜。有三个选项:
- (54 毫米 x 34 毫米 x 3.1 毫米)1/8 英寸透明灰色烟熏聚碳酸酯(后缀塑料或同等产品)。
- 无对比度滤镜
- 使用薄的半透明PLA和这个公共TinkerCad文件3D打印滤镜。
暗物质:一些粘在非红外反射材料上。我用的是一家工艺品店的黑色毛毡。Creatology剥离和粘黑色聚酯毡或等效物。另请参阅步骤 7:校准 - 暗区注意事项。
注意: 在合理范围内,您可以替换部件。我倾向于支持Adafruit,因为它们的质量和对创客社区的支持。哦,我喜欢金色闪光焊盘。
第二步:操作原理
HWT使用红外光(IR)来计算旋转运动轮的转数。大多数塑料运动轮反射红外光相当好,太好了。即使是在可见光下半透明的塑料轮也可能反射出足够的红外来触发红外传感器。用户使用黑色粘性毛毡在车轮上创建一个黑暗区域(请参阅步骤 7:校准 - 黑暗区域注意事项)。当HWT检测到反射到暗跃迁时,计算出一转。
HWT 使用 Vishay 红外传感器模块和红外 LED 发射器。在典型应用中,Vishay TSS4038 红外传感器模块用于存在检测 - 是存在的东西(反射 IR)还是不存在的东西。这并不完全是HWT在这里所做的事情。塑料运动轮总是在那里。我们通过添加红外暗区来欺骗传感器,以使车轮在红外光中"消失"。此外,HWT 利用 Vishay TSS4038 红外传感器模块的设计来提供可变范围的工作距离。步骤3:代码部分和代码清单包含更多信息。应用笔记 Vishay 的 TSSP4056 快速接近感测传感器概述了基本前提。
Adafruit Feather具有Atmel MEGA32U4微控制器和通孔原型区域。
在原型设计区域焊接的是 Vishay TSAL4400 红外 LED,可产生 38 kHz 红外信号突发(在 32U4 微控制器的控制下)。
在原型设计领域还焊接了 Vishay TSS4038 红外传感器模块,用于反射传感器、光栅和快速接近应用。
如果一定时间内收到38kHz红外光的突发,则此IR传感器模块会产生信号。
32U4 微控制器每 32mS 产生一个 38kHz 突发。32mS的速率决定了可以测量的最大运动轮转速。32U4 还监视 IR 传感器模块。如果仓鼠轮具有足够的红外反射,每次爆发都应导致红外传感器模块响应。车轮的黑暗区域不会产生32U4注意到的红外传感器响应。当仓鼠轮移动以使其有足够的红外反射时,32U4代码会记录此变化并将其记录为轮子的一圈(从亮到暗的过渡= 1转)。
大约每分钟,32U4都会检查最后一分钟的转数是否超过了之前的最高转速计数,并在需要时更新此"个人最佳"分数。最后一分钟的 RPM 数也会添加到车轮总转数中。
按钮用于显示转数(参见步骤9:正常模式部分),并用于校准HWT(参见步骤7:校准模式部分)。
ON-OFF 滑动开关控制 HWT 的电源,并在校准中发挥作用(请参见步骤 7:校准部分)。
如果运动轮直径已知,则总距离运行的计算公式为(直径 * 车轮总转数 * π)。
第 3 步:代码
我假设用户知道Arduino IDE和Adafruit Feather 32U4板。我将标准的Arduino IDE(1.8.13)与RocketScream低功耗库一起使用。我努力对代码进行大量评论,也许是准确的。
我没有记录Arduino IDE和Adafruit Feather 32U4系统的怪癖和交互。例如,32U4处理与Arduino加载器的USB通信。让运行Arduino IDE的主机PC找到Feather 32U4 USB连接可能会很麻烦。有在线论坛线程详细说明了问题和修复。
特别是RocketScream低功耗库,Feather 32U4 USB操作被中断。因此,要将代码从Arduino IDE下载到32U4,用户可能必须按Feather 32U4重置按钮,直到IDE找到USB串行端口。在组装HWT之前,这要容易得多。
步骤4:组装电子设备
- 组装阿达果 #2771
- 如果需要最低的功耗,请切断R7和红色LED之间的走线。这将禁用羽化指示灯。
- 根据他们的教程在#2771 Feather上安装Adafruit #2886 Header Kit。请注意,标题样式有几个选项。HWT 3D 打印外壳的尺寸适用于此针座。
- 将光学元件安装在#2771 Feather上。请参阅图片和原理图。
- Vishay TSS4038 红外传感器模块
- Vishay TSAL4400 红外发射器
- 电阻器, 470, 1/4w
- 仓鼠轮转速计传感器外壳 - 3D打印。(公共 TinkerCad 文件)
- 将显示屏按钮开关焊接到羽毛32U4印刷电路板组件(PCBA)上,原理图。
- 按照他们的教程组装Adafruit #3130 0.54"四字母数字羽毛翼显示器。
- 根据图像和原理图组装电源开关/电池组件。注意:靠近开关的开关引线需要没有焊接,开关才能正确安装在 HWT 外壳中。
- 阿达果#3898锂聚合物电池。
- 阿达果 #805 SPDT 滑动开关。
- 连接线。
注意:您可以随意布线。这就是我为这个可指导的HWT组装的方式。其他原型的电线放置略有不同。只要您的布线符合原理图,并且 Vishay 传感器和 LED 外壳从 HWT 外壳的底部探出,您就没事。
第5步:3D打印部件
HWT 外壳由三个 3D 打印件组成:
- 仓鼠轮转速计外壳 - (公共 TinkerCad 文件)
- 仓鼠轮转速计挡板 - (公共 TinkerCad 文件)
- 仓鼠轮转速计传感器外壳 - (公共 TinkerCad 文件)
HWT外壳,HWT显示边框和HWT传感器外壳是在Tinkercad中创建的,并且是公共文件。一个人可以根据需要向下加载副本和修改。我相信设计可以优化。这些是使用Simplify3D控件打印在MakerGear M2上的。Adafruit有一个关于Adafruit Feather的3D打印案例的教程。我发现这些3D打印机设置是我的M2 MakerGear打印机的良好起点。
如果需要,可以使用薄的半透明PLA和此Public TinkerCad文件进行3D打印显示对比度滤镜。
步骤 6:组装 HWT
- 将电池/开关组件连接到羽毛 #2771 PCBA。现在这样做比将Feather #2771用螺栓固定在HWT外壳中要容易得多。
- 将滑动开关固定到其在 HWT 机箱中的位置。
- 将羽化 PCBA 放入存储模块时,将电线布设。
- 传感器外壳应伸出HWT外壳的背面。
- 2.5mm螺母很难连接到2.5mm螺钉上。您可能希望使用 4-40 个机器螺钉,如 Adafruit 教程中所述:https://learn.adafruit.com/3d-printed-case-for-adafruit-feather?view=all
- 将 #3130 显示屏 PCBA 按入羽型 #2771 PCBA。注意针脚是否弯曲或未对齐。
- 将开关连接到显示挡板。
- 将显示挡板卡入 HWT 机箱。
步骤 7:校准
在校准模式下,显示屏连续显示红外传感器的输出。校准有助于验证:
- 仓鼠轮反射了足够的红外光。
- 黑暗区域正在吸收红外光。
- 范围设置对于到运动轮的距离是正确的。
- 要进入校准模式:
- 使用电源滑动开关关闭 HWT。
- 按住"显示"按钮。
- 使用电源滑动开关打开 HWT。
- HWT 进入校准模式并显示 CAL。
- 释放"显示"按钮。HWT 现在显示一个字母,表示范围设置(L、M 或 S)和传感器读数。请注意,传感器读数不是从车轮到HWT的实际距离。它是反射质量的衡量标准。
- 如何检查车轮红外反射:如果反射充分,传感器显示屏应读数在28左右。如果车轮离HWT太远,则反射不足,传感器显示屏将变为空白。如果是这样,请将车轮移近HWT。旋转轮子;读数会随着车轮转动而波动。22 到 29 的范围是正常的。传感器读数不应为空。范围字母(L,M或S)将始终显示。
- 如何检查暗区响应:吸收 IR 的区域(暗区)将导致传感器读数变为空白。旋转滚轮,使黑暗区域呈现给HWT。显示屏应变为空白,表示没有反射。如果显示数字,则黑暗区域太靠近HWT,或者使用的深色材料不能吸收足够的红外光。关于黑暗区域的注意事项任何吸收红外光的东西都可以工作,例如扁平的黑色油漆或扁平的黑色胶带。平坦或哑光的表面很重要!闪亮的黑色材料在红外光下可能具有很强的反射性。黑暗区域可以在运动轮的周长或平坦的一侧。选择哪种方式取决于 HWT 的安装位置。暗区需要具有足够的尺寸,以便红外传感器只能看到暗区,而不是相邻的反光塑料。红外发射器投射出一个锥形的红外光。锥体尺寸与 HWT 和车轮之间的距离成正比。一比一的比例有效。如果 HWT 距离车轮 3 英寸,则黑暗区域的宽度应为 2-3 英寸。对不起英制单位。该图像显示TSAL4400红外LED从3英寸外照亮目标。该图像是使用NOIR Raspberry Pi相机拍摄的。材料选择提示:一旦我组装了HWT,我就把它用作红外反射计(就是这样)。在开发过程中,我把HWT带到了宠物店,五金店和面料店。许多物品都经过"测试"。我检查了塑料运动轮,深色材料以及对材料距离的影响。这样做,我了解了HWT的性能和局限性。这使我能够正确定位保持架中的塑料轮,并在校准模式下选择正确的范围设置。是的,不止一次,我确实不得不向困惑的商店员工解释我在做什么。
- 如何更改范围:
- 在校准模式下,第一个显示字符是范围设置(L,M,S):
- (L)电压范围 = 1.5 至 5"
- (M)钇范围 = 1.3 至 3.5"
- (S)hort 范围 = 0.5 到 2"(大写的 S 看起来像数字 5)
注意:这些范围取决于目标材料,并且非常近似。
- 要更改范围,请按"显示"按钮。第一个显示字符将更改为显示新范围。
- 要保持此新范围,请按住"显示"按钮 4 秒钟。操作完成后,显示屏将显示 Savd 两秒钟。
注意:HWT将在重置后以及即使电池电量耗尽时记住范围设置。
- 在校准模式下,第一个显示字符是范围设置(L,M,S):
- 成功? 如果运动轮反射(显示约为28)并且黑暗区域吸收(显示空白),则您就完成了。重启 HWT 以恢复正常模式(请参阅步骤 9:正常模式部分)。否则,请更改 HWT 和车轮之间的距离或更改 HWT 范围,直到成功为止。
注意:HWT安装在笼子上的位置与HWT的校准有关。您可能无法将车轮放在笼子中所需的位置,因为该保持架位置不在 HWT 的范围内。您选择的车轮材料和深色区域材料(黑色毛毡)也成为一个因素。
步骤 8:安装在笼子上
- 校准 HWT 并使用校准过程通知您将放置运动轮的位置以及 HWT 在保持架上的安装位置。
- HWT 可以使用 HWT 外壳的安装孔绑在保持架的侧面。我用了塑料涂层的铁丝面包扎带。扎带也有效。
- 安装HWT并放置运动轮后,验证运动轮是否反射红外光,黑暗区域吸收红外线。
- 如果需要,"校准"部分中介绍了更改范围。用户可以在HWT中选择一系列距离。有三个重叠的范围:
- (L)电压范围 = 1.5 至 5"
- (M)钇范围 = 1.3 至 3.5"
- (S)范围 = 0.5 至 2"
- HWT 传感器外壳(红外发射器/传感器)不得被笼状导线遮挡。您可能需要稍微展开笼状电线,以使组件戳穿笼状电线。
- 验证 HWT 是否正确记录了运动轮的旋转(请参见步骤 9:正常操作模式)。
步骤9:正常操作模式
- 在正常模式下,HWT 计算运动轮的转数。
- 要进入正常模式,请使用电源滑动开关打开 HWT。
- 显示屏将显示 nu41 一秒钟,然后显示范围设置一秒钟。
- Ra=L 长距离
- Ra=M 中量程
- Ra=S 短程(大写 S 看起来像数字 5)
- 在正常操作期间,单个显示LED段将每分钟非常短暂地闪烁。
- 每分钟,该分钟的计数都会与前几分钟的最大计数(仓鼠的个人最佳)进行比较。如果需要,将更新最大计数。每分钟计数都会添加到总计数中。
- 按下并释放"显示"按钮以查看车轮计数。显示屏显示以下内容:
- Now= 后跟自最后一分钟检查以来的车轮转数。 注意:此数字将在接下来的一分钟价格变动后添加到总数中。
- Max= 后跟最高转数。掘金自上次重启以来的个人最好成绩。
- Tot= 后跟自上次电源周期以来的总转数。
电源循环(电源滑动开关关闭)HWT 将清零所有计数。无法取回这些数字。
HWT一次充电后应运行约十天,然后LiPo单元将自动关闭。为避免失去运动轮数,请在LiPo电池自动关闭之前充电。
步骤10:锂聚合物电池注意事项:
- 锂聚合物电池使用挥发性化学物质储存大量能量。仅仅因为手机和笔记本电脑使用它们,就不应该谨慎和尊重它们。
- HWT 采用可充电锂聚合物 (LiPo) 3.7v 电池。Adafruit LiPo电池的顶部用琥珀色塑料包裹。这包括小型PCBA上的整体充电/放电安全电路。带有JST连接器的红色和黑色电池引线实际上焊接到PCBA上。LiPo与外界之间的监控电路是非常好的安全功能。
- 如果LiPo整体充电/放电安全电路确定LiPo电池过低,HWT将失去功率。运动轮计数将丢失!
- 如果HWT看起来"死了",它可能需要电池充电。使用微型 USB 电缆将 HWT 连接到标准 USB 电源。
- 充电时,HWT 塑料外壳中将出现黄色 LED。
- LiPo将在大约4-5小时内充满电。
- LiPo电池保护电路不允许LiPo过充电,但在黄色LED熄灭时断开微型USB电缆。
- 如Adafruit #3898文档中所述,我最初打算让LiPo单元适合Feather #2771 PCBA和#3130显示器PCBA之间。我发现我在Feather #2771原型区域的布线太高,LiPo电池无法安装而不会凹陷LiPo电池。这让我感到紧张。我求助于将电池放在PCBA旁边的一侧。
- LiPo整体充电/放电安全电路的那些红色和黑色电线不喜欢被弯曲。在开发过程中,我断了不止一组电线。为了提供更多的应力消除,我设计并3D打印了应力消除。这是LiPo单元顶部的灰色块。它不需要,但在这里它是(公共TinkerCad文件)。
第11步:发展历程:
在Nugget项目的三年生命周期中,产生了几个版本:
1.x概念和数据收集平台的可靠性。
Nugget的性能范围被表征(最大RPM,总计,活动时间)。在他的巅峰时期,Nugget达到了100 RPM,并且能够每晚运行0.3英里。连接的各种车轮的数据计算电子表格。还附加了一个文件,其中包含存储在SD卡上的实际Nugget RPM记录。
- Arduino Duemilanove
- Adafruit #1141 SD卡数据记录器屏蔽
- 阿达果 #714+#716 液晶屏蔽
- 欧姆龙E3F2-R2C4反射板光学传感器
- 交流壁式变压器(欧姆龙需要 12 伏)
2.x 探索传感器和硬件。
已建立微控制器并显示:
- 阿达果 #2771 羽毛 32U4
- Adafruit #3130 14段LED显示屏 Featherwing。
该组合适用于低功耗(32U4休眠模式)、电池管理(内置LiPo充电器)和成本(LED价格低廉且功耗低于LCD+背光)。
- 研究了霍尔效应磁性和分立光学对传感器(即QRD1114)。范围总是不够。被遗弃的。
- Adafruit #2821 Feather HUZZAH 搭配 ESP8266,向 Adafruit IO 仪表板报告。更多的屏幕时间不是客户想要的。被遗弃的。
3.x传感器工作:
该系列还研究了替代传感器,例如使用步进电机作为编码器,类似于此Instructable。可行,但适用于低 RPM 下的低信号强度。多做一些工作会把它变成一个可行的解决方案,但它不是对现有仓鼠环境的简单改造。被遗弃的。
4.1 本说明中描述的硬件/软件解决方案。
5.x 更多传感器工作:
检查了带有Pololu载体的夏普GP2Y0D810Z0F数字距离传感器,同时仍然使用Adafruit #2771 Feather 32U4和Adafruit #3130 14段LED显示屏Featherwing。效果很好。使代码变得微不足道。使用的功率比 Vishay TSSP4038 解决方案更大。被遗弃的。
6.x 未来?
- 将Adafruit #2771 Feather的一些HWT外壳安装凸台更换为安装柱。
- 将开/关开关更换为连接到羽化复位的按钮开关。
- ATSAMD21 Cortex M0微控制器,例如在Adafruit #2772 Feather M0 Basic Proto上发现的微控制器,具有许多吸引人的功能。我会在另一次修订时仔细研究这个问题。
- Vishay 有一个新的红外传感器模块 TSSP94038。它具有更低的电流需求和更明确的响应。
版权说明
本文遵循CC BY-SA版权协议,转载请附上原文出处链接及本声明。
链接:https://chandianzi.cn/hamster-wheel-tachometer.html
作者:bill96
版权协议:CC BY-NC-SA
分类名称:arduino-10
资源标识:Hamster-Wheel-Tachometer
暂无评论