×
模拟电子 > 模拟电路设计 > 详情

FiberGrid,机器人技术的传感器框架

发布时间:2020-06-28 发布时间:
|

FiberGrid是一种用于机器人技术的廉价3D打印光学传感器框架。 如果您不想花费数年时间学习电子产品,如何将传感器与微控制器和DSP接口,但您已准备好开始构建机器人行动,这个项目适合您! 忘记Raspberry PI,arduino,PIC和其他MCU。 有一种更简单,更便宜的方法可以为项目添加传感器。 以便宜的塑料光纤价格为您的机器人添加数百个3D打印机械传感器。 该项目的目标是将电子产品排除在外,让世界各地的十岁儿童和成年人在不购买昂贵组件和花时间学习电子产品的情况下制造复杂的设备。

这个怎么运作

光纤网格硬件由两部分组成:光源和带外壳的摄像头。它们通过廉价的塑料纤维连接到3D打印传感器。光源将光线照射在具有裸露光纤末端的网格上。光纤将光线传输到光阻传感器。剩下的光线被另一根光纤传送到相机外壳。在PC,笔记本电脑,平板电脑,手机,Raspberry PI上运行的相机软件或任何已经或可以与相机连接的相机软件都会将每个输入光纤的光线转换为一个值。

您可以根据阻挡光的原理设计传感器。或者,LED可以放置在各个传感器内。在任何一种情况下,FiberGrid都能够感知机械传感器阻挡多少光线并为您提供软件价值。

该软件如何工作

FiberGrid软件有两个部分。 FiberCal是一个校准程序,可以在摄像机的视野中查找光纤的中心和边界,并将它们保存到C ++头文件(fiberinit.h)。其次是FiberGrid“驱动程序”。它包含编译期间的头文件,并提供用于读取传感器的简单API。两个程序都依赖OpenCV库来读取光纤束中的传感器值。驱动器和校准软件分开有两个原因。通过人类交互可以更精确地检测纤维。您可以通过单击手动更改阈值,光纤可视大小以及手动添加或删除光纤。如果您正确地使用硬件设备,光纤的位置永远不会改变。第二个原因是便携性。驱动程序可能用50行python代码编写或用C ++重写而不使用OpenCV或用Basic或javascript编写,同时校准实用程序不需要更改。

这里光纤网格校准实用程序(fc)检测网格中的3根光纤。左边的图像是其中一根纤维的特写。

Git克隆。切换到目录并输入make。构建硬件并将其连接到您的计算机。运行fc(fiberCal)并按“s”生成fiberinit.h。使用fc滑块进行最佳光纤检测(光纤周围的绿色方块)。将fiberinit.h,fibergrid.h和fibergrid.cpp添加到项目中或运行ft(fibertest.cpp)。使用FiberGrid :: read()或FiberGrid :: readNormalized()来获取传感器值!运行项目以在调试屏幕上查看传感器值。注释掉FIBERGRID_DEBUG以禁用驱动程序调试屏幕。

传感器如何工作

您可以制作无数的传感器,以便与光纤网一起使用。纤维可以原样用作复眼。传感器可以3D打印,由纸板或吸管和口香糖制成。尝试将光纤模块中的一根光纤和相机中的另一根光纤放入空心咖啡搅拌器(吸管)或光纤包层的每一侧。在屏幕上观看凸轮时,将光纤推入或拉出或弯曲吸管。注意屏幕上一个点的亮度如何变化。你刚刚制作了第一个传感器。

可以使用来自一次性3D电影院眼镜或旧显示器的一片平面偏振塑料(胶片)来制作旋转传感器。制作一个带有两个相对于彼此旋转的小块的传感器。当片的偏振为90度时,它们将阻挡来自发射器光纤的大量光。这就是3D模型包中的fibergrid_sensor1的工作原理。

根据您的光纤,弯曲可能会散射光线并改变传感器值。为了弥补这一点,将两根光纤捆绑在一起传感器。一根光纤将通过一个使光线变暗的连接点连接到传感器,另一根光纤直接连接到发光光纤。该发射器光纤必须与发射器光纤捆绑到传感器。或者,LED可以直接放置在传感器内部,两个光纤由一个LED点亮。通过相对于第二光纤值变化调节传感器值,可以在软件中补偿由于光纤的物理变形引起的光强度的降低。

制作位置传感器很容易。测量力更难。以下是能想到的:

  • 找到坚固但柔顺的半透明matherial / 3D打印机灯丝。
  • 刚性反光材料,可在弯曲时改变以一定角度反射的光线量。
  • 液压/气动/机械称重传感器,间接改变光纤的位置。

目标是使其具有一定的线性,要求尽可能小的位移并在良好的温度范围内保持稳定。

16个连接器网格,插入3根光纤和13个分流器。

护罩安装在栅格和相机周围。相机向前滑动以防止其移动。

用螺栓将相机固定在“工作台”上。

看着网格的相机在顶行删除了4个插头


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
晶体管的工作状态判断和工作条件