亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

便携式测距仪

组件和用品

Arduino Nano R3
× 1
超声波传感器 - HC-SR04(通用)
× 1
18650 Cell
× 1
TP4056 锂离子充电器
× 1
DC-DC 5V 升压转换器
× 1
蜂鸣器
× 1
旋转电位器(通用)
× 1
滑动开关
× 1
LED(通用)
红色 (2)、绿色 (1)、蓝色 (1)
× 4
电阻 330 ohm
× 2
OpenBuilds M3 有头螺钉
10mm M3 螺栓 (4)
× 1
电线
18 AWG
× 1
3D 打印部件
外壳的 3 个部分
× 1
线程适配器
× 1

必要的工具和机器

3D 打印机(通用)
我使用了 Anet A8
烙铁(通用)
热胶枪(通用)
Dremel
或任何旋转工具

应用和在线服务

Arduino IDE
需要下载NewPing库
Simplify3D
或任何选择的切片器

关于这个项目

简介

雷曼学院运动科学系正在进行有关重量训练的研究。重复的运动范围不一致,这可能会显着影响数据。我被要求创建一种设备,该设备可以识别使用机器或更大重量的锻炼的全方位运动。

设备需要满足以下条件 :

  • 可调距离
  • 不是永久固定在机器上。
  • 兼容三脚架
  • 没有电线

视频

零件

大多数零件如下所示,但有关完整列表,请参阅上面的物料清单。选择使用的零件不是因为它们是最佳的;这就是我必须使用的。使用定制 PCB、SMT 组件或 LiPo 电池可以大大减少占地面积。

代码

代码(在底部提供)编译需要NewPing库。

蜂鸣器频率和上限/下限是可以更改的全局变量。上限/下限是指传感器读取的最小和最大距离,映射到电位计的模拟值 [0,5]V。

int 频率 =700; //以Hz为单位的频率
int lower_bound =60; //以毫米为单位的距离
int upper_bound =200; //以毫米为单位的距离

开机时发出 3 声蜂鸣声表示启动成功(请参阅 setup() 环形)。接下来,loop() 不断向超声波传感器请求数据,并与电位器设置的阈值进行比较。

3D打印

所有文件都已上传到thingiverse,或者可以在页面底部找到一个压缩文件。 CAD的使用方法这里不做介绍。该模型的制作考虑了 3D 打印的局限性。通过使用 45 度倒角最大限度地减少了悬垂,从而减少了支撑材料。间隙很大,因此尽管零件是在不同校准的打印机上打印的,但仍应适合。

打印时间会有所不同,但我的打印时间 如下:

  • 最佳影片:2 小时 40 分钟
  • 最后部分:2 小时 20 分钟
  • 旋钮:20 分钟

组装

底部提供了电路原理图 的页面。无需接线即可插入零件以确认配合。

打捞的 IDE 电缆提供了所有电线。电线组可以在保持相互连接的同时剥离,这提供了一些顺序。

大多数电子设备都安装在其中一个印刷部件上,因此必须考虑布线和管理。

TP4056 板上的 SMD 指示灯 LED 被拆焊。延长线和 3 毫米 THT LED 焊接到位。限流电阻仍与板集成。有一段视频显示有人执行此次搬迁。

arduino nano 只有 2 个可访问的接地垫,因此使用条板来扩大接地垫的数量。 5V 线也是如此,如下图所示。

断开带上的连接是必要的,这样 5V 就不会对地短路。红色的“X”表示断裂的位置。只需要破坏顶部的铜,而不是整个玻璃纤维板。

组件在外壳外接线。它们偶尔安装在外壳中以测量电线长度并检查电线干扰。

电位器被修剪了 6 毫米,这样它就不会突出那么多。

与 18650 的连接是直接焊接的,这是不好的做法。电池过热会损坏它并且随着时间的推移可能会失效。点焊铝条是18650s的正确连接方式。

热胶被可耻地用于固定电子设备。尽可能避免使用热胶。正确的机械设计和紧固件将比热胶更耐用。随着时间的推移,它必然会失败。原型是可以理解的,但生产零件永远不会使用热胶。

总结

回想起来,我更喜欢使用 IR 传感器而不是超声波,但在我开始试验超声波传感器之前,我不可能知道这一点。 IR 传感器的 FOV 更窄,但最大距离要小得多(~3 英尺)。

如果有第二个版本,LiPo 将取代 18650。大滚花适配器螺母很重,占用空间。三脚架安装的标准螺纹是 1/4",所以从五金店买一个简单的 1/4" 螺母就足够了。定制 PCB 将使体积减少一半。

对于一个从概念构思到两周内交付的原型,我很满意。

项目的未来

当我试验超声波传感器时,我对它的局限性有了更多的了解。首先是其 FOV 的角度为 ~±15°(总共 30°)。这意味着物体可以在传感器正上方之前触发蜂鸣器。这会产生不准确和不良读数。此外,如果物体的平面与传输的声波不垂直(或在容差角度内),传感器将不会接收到反射波,也无法处理距离值。

我最初的计划是将设备放在地面上,并让重量训练杆上的盘子在低于阈值时触发蜂鸣器。该系统由一个固定传感器和一个移动触发器组成。我的工程伙伴提出了一个替代解决方案,其中包括反转系统。他建议将传感器安装到移动杆上,同时将其指向地面。这样,地面就成了触发器。它还消除了由于前面提到的宽 FOV 导致的不准确。

该提案不仅是对给定问题的一个很好的解决方案,而且也很容易实施。 1/4" 三脚架螺母适配器的订单随附一个 1/4" -> 3/8" 适配器和一个 3/8" -> 1/4" 适配器。第二个将实际投入使用!

由于我第一次开始制作 3D 模型时无法使用我的 Dremel,这迫使我考虑整个三脚架适配器。这与 18650 电池相结合,显着增加了重量。我不想增加超过我需要的重量,因此我将在为安装座建模之前减少第二个三脚架适配器。我将在一周内返回该项目以完成此替代安装解决方案。在那之前,它仍然有效!

代码

  • RangeDetectionDevice.ino
RangeDetectionDevice.inoArduino
/** Viktor Silivanov 3/22/2018 使用 HC-SR04 超声波传感器的便携式距离检测设备,可调节距离以触发蜂鸣器。**///************* ******* 图书馆 ******************************************** ****************************************************** ****************************************************** ****************************************************** ****************#include //******************** 引脚 **** ****************************************************** ****************************************************** ****************************************************** ****************************************************** ********//模拟引脚#definewiper A5//数字引脚#define echo 2#define trig 3#define ON_LED 7#define buzzer 8#define buzzer_LED 9//******** ************ 全局变量 ************************************ ****************************************************** ****************************************************** ******************************************** **************************//用户修改允许int频率=700; //频率在Hzint lower_bound =60; //以mmint为单位的距离upper_bound =200; //以毫米为单位的距离//不要修改int buzz_time =250; //启动时蜂鸣器的时间(以毫秒为单位)int buzz_delay =280; //启动时蜂鸣器延迟的时间(以毫秒为单位)int max_distance =400; //NewPing库中对象的参数int i =0;int distance;int threshold; NewPing声纳(触发,回声,max_distance); //对象“声纳”的实例化//******************** 设置 ******************* ****************************************************** ****************************************************** ****************************************************** ********************************************//该函数只运行一次void设置(){ Serial.begin(9600); //允许使用波特率为 9600 的串行监视器 //引脚 I/O 类型声明 pinMode(trig, OUTPUT); pinMode(回声,输入); pinMode(蜂鸣器,输出); pinMode(蜂鸣器_LED,输出); pinMode(ON_LED,输出);数字写入(ON_LED,高); //打开绿色LED;设备开启时保持开启 //打开设备时蜂鸣器发出 3 次哔声 while(i <3){ digitalWrite(buzzer_LED, HIGH);音调(蜂鸣器,频率,buzz_time);延迟(嗡嗡声延迟);我++; } digitalWrite(buzzer_LED, LOW);}//******************** 无休止地运行******************** ****************************************************** ****************************************************** ****************************************************** ****************************************void loop() { distance =sonar.ping_cm(); //对象“声纳”利用库中的 ping_cm() 函数,它返回一个以厘米为单位的值。距离然后取那个值阈值 =模拟读取(雨刷); //从电位器的游标中获取模拟值 threshold =map(threshold, 0, 1023, lower_bound, upper_bound); //将模拟读数转换为触发范围。更新阈值 if(distance !=0 &&distance  

定制零件和外壳

所有 3 个部分都保存到一个文件中

示意图


制造工艺

  1. TinyML-Language Detector-基于 Edge Impulse &Arduino
  2. Arduino Gyroscope Game with MPU-6050
  3. Arduino 数字骰子
  4. DIY 37 LED 轮盘游戏
  5. ATtiny85 迷你街机:贪吃蛇
  6. Arduino Audio Reactive Desk Light
  7. 智能人脸追踪机器人车
  8. 铜电镀
  9. NeoMatrix Arduino Pong
  10. 便携式温度站
  11. 光序列创建器
  12. 智能插头