×

使用TLV493D、操纵杆和Arduino控制机器人

消耗积分:2 | 格式:zip | 大小:0.11 MB | 2022-10-20

张秀兰

分享资料个

描述

带有 TLV493D 传感器的机器人替代控制器,具有 3 个自由度(x、y、z)的磁性传感器,您可以通过微控制器和电子板上的 I2C 通信控制新项目,Bast Pro Mini M0 带有Arduino IDE 上的 SAMD21 微控制器。

目标是有一个替代的操纵杆来控制您的项目,在这种情况下,一个具有 3 自由度的机械臂。我使用了 MeArm 机器人手臂,这是一个开源项目,你可以让它变得简单,你可以在这里找到它。

可以使用我很高兴与您分享的知识来制作您自己的控制器臂或其他应用程序。

所有电子元件都有在商店中获取的链接、3d 打印机的文件和 Arduino IDE 的代码。

TLV493D 可以是操纵杆

3D 磁传感器 TLV493D-A1B6 在小型 6 引脚封装中提供精确的 3D 感测和极低的功耗。通过在 x、y 和 z 方向上的磁场检测,该传感器可以可靠地测量三维、线性和旋转运动。应用包括操纵杆、控制元件(白色家电、多功能旋钮)或电表(防篡改),以及任何其他需要精确角度测量或低功耗的应用。此外,集成的温度传感器还可用于合理性检查。

主要特点是 3D 磁感应,在运行期间具有极低的功耗。该传感器通过基于 2 线的标准 I2C 接口提供高达 1 MBit/sec 的数字输出,每个测量方向的数据分辨率为 12 位(Bx、By 和 Bz 线性场测量高达 +-130mT)。

TLV493D-A1B6 3DMagnetic 是一款独立的外接舷外机。您可以轻松地将其连接到您选择的任何与 Arduino IDE 兼容且具有 3.3V 逻辑电平的微控制器。

在这个项目中,我们使用了电子猫分线器和一个开发板,我将在后面解释。

使用 TLV493D 传感器的优点是只使用两条带 I2C 的电缆来接收信息,因此当卡上可用的引脚很少时,这是一个非常好的选择,而且由于 I2C 的好处,我们可以连接更多传感器。

您可以在此处找到该项目的存储库

对于这个项目,我们将使用一个操纵杆,您可以在 3D 打印机上打印或在离您最近的 3D 打印店打印。

 
操纵杆体 3D 打印机
 

.STL 文件附加在项目的末尾。

它的组装非常简单,您可以在以下视频中看到它:

打造自己的机器人

这是一个易于制造和控制的机器人,因为它具有 5 伏的伺服电机。

您可以构建或使用您选择的任何机器人,该项目将专注于使用 TLV493D 传感器进行控制。

将传感器与 Bast Pro Mini M0 连接

为了控制机械臂,使用了一个 Electronic Cats 开发板,一个带有 SAMD21E ARM Cortex-M0 微控制器的 Bast Pro Mini M0。

该芯片工作频率为 48MHz,具有 256KB 编程存储器、32KB SRAM,工作电压为 1.6v 至 3.6v。由于它的规格,我们可以将它用于低功耗和良好的性能,还可以使用 CircuitPython 或其他一些允许微控制器的语言对其进行编程。

如果您有兴趣了解有关此卡的更多信息,我会给您留下其存储库的链接

为了控制伺服电机的运动,使用了磁传感器TLV493D,它将发送信号以将伺服电机定位到相应的度数。

使用单个传感器,我们可以移动两个伺服电机,在此示例中,我们将仅使用单个传感器和一个按钮来控制夹具。

您可以提出的另一个建议是添加另一个 TLV493D 传感器并移动第三个伺服电机和夹具。如果你这样做,请在评论中留下你的经验,我邀请你分享这个项目。

下图显示了原型板上的武装电路。

poYBAGNPQSKAR-RBAALUdABsP-Y832.jpg
原型板上的电子电路
 
  • 第一个伺服电机用于夹持器并连接到引脚 2
  • 第二个伺服电机用于机器人底座并连接到引脚 3
  • 第三个伺服电机用于机器人肩部并连接到引脚 4
  • 第四个伺服电机用于机器人肘部并连接到引脚 5
  • 第一个按钮是停止机器人的任何运动,并连接到具有 2.2Kohms 电阻的下拉引脚 8。
  • 第二个按钮用于夹持器的打开和关闭运动,并连接到下拉引脚 9,电阻为 2.2Kohms。

在电路图中,没有出现 TLV493D 传感器,因为它没有添加到 Fritzing 中,而是添加了一个 4 针连接器来模拟其 VCC、GND、SCL、SDA 连接器。在图像中,它们以相同的顺序放置。

  • 第一个引脚连接到板上的 3.3 伏电压
  • 第二个引脚连接到 GND
  • 第三个 SCL 引脚连接到板上的引脚 A5
  • 第四个 SDA 引脚连接到板子的 A4 引脚

由于 SAMD21 芯片的优势,我们可以使用它的任何数字引脚作为 PWM 输出,这将有助于我们发送正确的脉冲宽度来移动伺服电机。

另一个必须考虑的重要信息是伺服电机的外部电源,在电路中,您可以看到一个插头连接器连接到 2Amp 的 5V 电源,以避免电路板过载并损坏它。

也不要忘记连接卡的公共信号 GND 和外部源,否则,您将无法控制伺服电机,因为它们没有相同的参考。

将 Arduino IDE 编码为 Bast Pro Mini M0

首先是在 Arduino IDE 中安装 Bast Pro Mini M0 卡,这些步骤可以在Electronic Cats存储库中找到,它们对其操作很重要。

准备好 Arduino IDE 后,需要安装 TLV493D 传感器的官方库,进入 https://github.com/Infineon/TLV493D-A1B6-3DMagnetic-Sensor并转到Releases。

pYYBAGNPQSWAdd9nAAC8b5jl4K4791.png
 

在代码的第一部分,声明了使用的库,在本例中,Servo.h用于伺服电机,TLV493D.h用于传感器。

使用Servo.h库时,声明伺服电机的数量很重要,尽管此时机器人有 4 个,但只使用了 3 个。

为按钮声明引脚,这些按钮将停止机器人的任何运动以及夹具的打开和关闭。

声明了一些全局变量,用于了解夹具的状态以及是否有运动。

pYYBAGNPQSeAOc6GAADEdDpxf3c877.png
 

在这部分代码中,我们将在串行监视器中显示电机的程度值。

另一个重要的一点是确定伺服电机的度数限制,为此,使用map ()函数将 TLV493D 传感器的运动值转换为伺服电机的 0 到 180 度范围。

pYYBAGNPQSqAcnWZAACCOh_M2RY947.png
 

对于代码的最后一部分,建立了通过按钮激活伺服电机运动的条件,并在按下第二个按钮时知道夹具处于什么状态以进行下一次运动。

正如您在前面的图片中看到的那样,代码并不难实现和理解,在项目结束时您可以找到代码。

你在学习使用 Circuit Python 吗?

如果您有兴趣学习如何使用此 IDE,您可以在以下链接中找到 Bast Pro Mini M0 卡以下载引导加载程序并开始使用 Python 对其进行编程。

在项目结束时,将代码添加到.py中


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !