电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>带陀螺仪传感器的钻孔深度显示

带陀螺仪传感器的钻孔深度显示

2022-11-17 | zip | 0.06 MB | 次下载 | 免费

资料介绍

描述

如果您必须为项目钻孔一定深度,则需要带有深度显示的台钻。大多数台钻都有一个带箭头的尺子用于阅读。钻孔的成功取决于您读取所需位置的准确度。在这个 Arduino 项目中,我提出了一个替代方案:带有陀螺仪传感器的钻孔深度显示器和带有 Arduino 支持的 7 段显示器。

我在车间最常使用的机器不是锯或磨床。到目前为止,这是台钻。无论项目如何,它实际上总是被使用。如果我需要一定的钻孔深度,我可以使用机器上的内置尺子。记住我必须钻到的深度。它实际上运作良好。

但是随着年龄的增长——是的,是的,是的——对我来说,以毫米精度读取深度变得越来越困难。而如果光线不够亮,则几乎无法阅读。但是只是为此戴上眼镜?钻孔后,眼镜存放在哪里?我还没有那么远。

忠实于“2 Secon Lean”中 Paul Akers 的座右铭:

修复你的问题!

必须有一个更好的解决方案,你只需思考并做到。

测量可能性

我当然可以在刻度前放一个放大镜,使尺子更容易阅读。它会改善读数,但我必须记住每种情况下的测量值也无济于事。如果你在做手工艺品,那也应该很有趣。

这就是为什么电子解决方案要好得多的原因。最好在一个小空间里,以便所有东西都放在钻头的开/关开关旁边。对于这种情况,我喜欢使用 Arduino Nano。它有足够的引脚来控制几乎所有东西,并且相应地很小。

但是如何测量钻孔深度?长度测量有多种可能性。安装超声波测量?可以工作,但只需要一点机械装置,它与钻头一起移动作为反射表面。还是使用拉线编码器如果您自己构建它是可能的,但非常复杂:带有转盘、叉形光栅和弹簧复位。最好马上带一个旋转编码器?这将意味着更少的组件 - 是的,但它太粗糙了,你必须安装齿轮才能翻译。

好吧,那就多想想吧。

我的钻头和大多数钻头一样,侧面有一个手轮来调节深度。它可以旋转大约。270°。所以甚至没有一个完整的回合。

这非常适合使用陀螺仪传感器进行角度测量。电缆连接不能扭曲,只需要一个便宜的组件。陀螺仪传感器也可以很容易地直接连接到手轮的旋转轴上。

概念

在指定钻孔深度时,我总是以相同的方式进行:用钻头刮擦表面,记下坐标,然后添加所需的钻孔深度,最后钻孔直到达到深度。

我想保留基本流程。为了不钻得太深,我想收到有关何时达到钻孔深度的信息

 
 
 
poYBAGN1H8mAMu3RAAA6Szgj8tw135.jpg
 
1 / 2
 

一个按钮接管了这个功能。当您按下它时,Arduino 会将当前钻孔位置保存为停止值,并在以后到达时随时提醒我。

其余组件占用更多空间且重量明显更大。幸运的是,我的机器外壳是金属制成的。这就是为什么我使用钕磁铁来固定它。

问题仍然存在,传感器应该如何连接到机器上?

钻头的轴上有一个 SW17 六角螺母。所以我只需要一个可以接受传感器并且可以插入六角螺母的 3D 打印组件。

pYYBAGN1H8uARwZYAABkF7-lRik837.jpg
 

所需组件

  • Arduino纳米
  • 陀螺仪传感器 GY-521
  • 8位7段模块(带MAX7219 IC的SPI版本)
  • 按钮
  • 开/关
  • 电源:用于 AA 或 AAA 电池或移动电源的电池夹
  • 3D打印外壳
  • 钕磁铁

陀螺仪传感器的连接

陀螺仪传感器通过 I2C 连接。所以我们必须为 Nano 使用 A5 和 A4。

  • VCC -> 5V
  • 接地 -> 接地
  • SCL -> A5
  • SDA -> A4
  • XDA -> 未连接
  • XCL -> 未连接
  • ADO -> 未连接
  • INT -> 未连接

7段模块

连接 7 段模块时可以使用任何数字引脚。使用 Arduino 草图设置引脚。

  • VCC -> 3.3V
  • 接地 -> 接地
  • DIN -> D12
  • CS -> D10
  • 时钟-> D11

按钮

按钮的输入引脚也可以自由选择。我正在使用引脚 D9。

电源

对于电源,我使用 6 节 AA 电池。在开/关开关后,它们为整个系统供电

套管

我使用 Autodesk Fusion 360 设计了外壳。我使用 Anycubic i3 Mega 创建了 3D 打印。

用于连接机器的钕磁铁被粘在里面。如果整个钻孔深度显示受到阻碍,所有东西都会很快被移除。

阿杜诺素描

我使用LedControl.h库来控制 7 段显示。如果您还没有安装这些,您必须首先使用库管理器安装它们。

陀螺仪传感器通过 I2C 总线连接。在为传感器寻找可能的库时,我决定不使用任何库。通信是通过Wire.h 进行的

在文章的末尾,您会找到一些帮助我理解的链接。

7 段显示器的控制与LedControl配合得非常好

用引脚初始化后,设置过程只需要一些准备工作即可唤醒显示器并调整亮度。

在循环部分,显示屏仅以数字显示当前钻孔深度和停止位置(如果已设置)。

显示器需要每个数字作为字符类型。我想使用小数位作为准确性。函数 dtostrf 将浮点数转换为字符数组。然后变成一个字符串以在显示屏上按字符显示。

dtostrf ( currentPos, 4,1, txt ) ;
s = '' + String ( txt ) ;
lc. setChar ( 0,4, see charAt ( see length () -1 ) , false ) ;
lc. setChar ( 0.5, see charAt ( see length () -3 ) , true ) ;
lc. setChar ( 0.6, see charAt ( see length () -4 ) , false ) ;
lc. setChar ( 0.7, see charAt ( see length () -5 ) , false ) ;

到达停止位置时,显示屏上会出现“StOP”。可以使用setRow过程和适当的位模式 B00001111 生成小“t”。

读取陀螺仪传感器通过线库的功能工作。我只使用加速度计来确定角位置。

使用 USB 连接到 Arduino IDE 时,一切正常。拔下并连接外部电源后,传感器没有提供任何数据。它仅在重置 Arduino 后再次起作用。

这让我在整个项目中最头疼。你可以说钻孔深度指示器可能救了我的眼睛,但这就是我拔掉几乎所有头发的原因!

经过长时间的搜索,在唤醒传感器后设置等待时间是解决方案。这使得延迟(1000)成为整个源代码中最重要的命令。

//prepare GY-521 sensor
//we use only accelerator data
Wire.begin();
Wire.beginTransmission(MPU);
Wire.write(0x6B);
Wire.write(0x00); // wake up MPU
Wire.endTransmission(true);

//this delay was very necessary in my case!
delay(1000);

Wire.beginTransmission(MPU);
Wire.write(0x1C); //register ACCEL_CONFIG
Wire.write(0x10); //Set as 00010000 for +/- 8g full scale range
Wire.endTransmission(true);

偏移值必须在一开始就为传感器确定好,否则数值会出现波动。在设置部分,测量了 100 个值并对偏差进行平均。

从传感器数据计算角度并不容易。但是有很多关于如何进行计算的说明。

使用以下公式计算以度为单位的 X 角:

AccAngleX = (atan ((AccY) / sqrt (pow ((AccX), 2) + pow ((AccZ), 2))) * rad_to_deg);

但是,加速度传感器的数值波动很大。因此,当前计算的值与之前的值各取 50% 的平均值。

TotalAngleX = 0.5 * TotalAngleX + 0.5 * AccAngleX;

角度值由传感器从-90°到+90°输出。但我需要一个从 0° 到 360° 的角度来转换为钻孔深度。

我还没有找到一个简单的解决方案。然而,对于我的应用程序,查看传感器数据 Z 和 Y 是正数还是负数就足够了。并相应地转换角度。

delta=0;
if ((AccZ<0)) { 
  delta=180.0-TotalAngleX*2.0;
}
if ((AccZ>0)&&(AccY<0)) {
  delta=360.0;
}
DrillingMachineAngle=TotalAngleX+delta;

//if near 360°, display better 0°
if (DrillingMachineAngle>350) {DrillingMachineAngle=0;}

仍然缺少的是手轮能够实现的最大可能旋转角度。最简单的方法是通过 Serial.print 输出确定的角度并记下最大值。

对我来说是316°。最大钻孔深度为 50 mm 时,当前位置计算如下:

currentPos=50.0/316.0*DrillingMachineAngle;

如果按下按钮,Arduino 会保存当前钻孔位置。显示屏上显示 8888,等待 1 秒。

如果设置了停止位置,则直到停止的剩余钻孔深度显示在右侧显示屏上。

组装和测试

陀螺传感器最好用一点热胶固定。引导连接电缆穿过盖板。这就是这部分。

在第一次测试中,陀螺传感器必须首先对齐。我是水平安装的。由于支架设计为可旋转,因此可以轻松调整,直到显示屏上显示 0.0。

 
 
 
poYBAGN1H82AOlf0AABbNrtdafw624.jpg
 
1 / 6
 

然后可以开始第一个测试。总的来说,我对解决方案非常满意。传感器反应非常迅速,计算值与钻孔深度完全匹配。

得益于大型 LED 显示屏,我不必担心 85 岁以下的眼镜可以读取准确的钻孔深度。

所以永远记住保罗的话:修复你的问题!

玩得开心!

 


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费