|
本帖最后由 丿灬幸灬 于 2018-11-5 11:27 编辑 功能:提供电源,PWM电平转换,和Wii Nunchuck连接器。 用于与EEZYbotARM MK2一起工作。 这个STM32扩展板有一个开关调节器可控制3到6个舵机。它还将一个3.3 V PWM信号从单片机转换为5 V电平,并具有电源启动信号。 一个独特的功能是它的Wii Nunchuck连接器。通过I2C让它成为控制机械臂(如EEZYbotARM MK2)的理想设备,。我使用Nunchuck,通过固件在线Mbed编译器来直观的控制EEZYbotARM MK2。 更人性化的固件 修订后的pcb已经发货,但预计将于周二到达,所以不幸的是他们无法赶上Hackaday奖机器人技术竞赛的截止日期。同时,我一直在调整固件。固件在Mbed上,所以您也可以为其他支持的微控制器编译它。我一直在使用STM32L073和STM32L476 MCUs,所以它们至少在正确的引脚上具有所需的PWM功能。 EEZYBot手臂MK2使用三个伺服器控制手臂和第四伺服器的末端执行器。Wii Nunchuck控制器有一个操纵杆和两个按钮。这实际上允许控制三个“轴”。其中两个来自操纵杆(上/下和左/右),第三个来自两个按钮。最初,我的固件使用这三个直接控制三个主要的伺服,例如,移动操纵杆上下移动一个伺服。这很容易实现,但它不是很直观的使用,因为手臂的末端不只是水平或垂直移动,而是沿着一个更复杂的轨迹。 我想最好是能向上/向下,手臂的末端能垂直移动。这是一个有点复杂的实现,因为它涉及到移动多个伺服器和做一些数学计算,以找出他们需要如何移动。数学只是高中的三角学,如下面的草图所示。从本质上讲,我需要计算角度α(α的总和₁和α₂)和γ,可以用来计算主臂的角度(l₁)和小胳膊贴上(l₂)。
这个数学计算是在pos_to_angle函数中实现的:
我做了一个加快的机械臂运行视频演示 固件首先允许你校准,这涉及到定位手臂,使主臂是垂直的,另一个是水平的。按下开关2执行校准,节省了每个伺服电机的偏移量。注意,固件的编写是为了与EEZYBot ARM MK2一起工作。使用其他机器手臂,你需要调整常量(如l₁)和可能是数学,如果手臂有不同的运动的联系。 实际上操作手臂是非常直观的。操纵杆上的上/下水平移动末端执行器。背面的两个按钮垂直移动,操纵杆上的左/右旋转手臂围绕底座旋转。要打开/关闭末端执行器,同时按下两个按钮会激活另一个“模式”,其中操纵杆上的上/下现在打开/关闭末端执行器。 我对这个项目的进展非常满意。假设正在交付的修订2 pcb修复了电源启用信号的问题,这个项目将被完成! Gerbers2完成 Gerbers2完成了。第一次修订版的改动如下: 将POW_EN信号改为STM32单片机上的5V容忍度引脚,这样保护二极管就不会夹紧电压,防止PFET关闭(在前面的日志中讨论过)。 使接头稍微宽一点。第一个版本太窄了,我不得不把它归档。 将一些PWM信号移动到不同的引脚。STM32 MCUs不是完全与pin兼容的,所以我选择了在更多MCUs上有PWM可用的引脚。 为提供标头添加了一些丝网标签(主要用于调试)。 PCB在GitHub上。 尝试第一个PCB 这周我收到了PCB,我焊接了一个。 到目前为止,它基本是起作用的。我到目前为止遇到的主要问题是电源启动信号,它被拉到5v,它的门在应该很高的时候太低了几百毫伏,所以它控制的PFET不会关闭。
当POW_EN被拉低时,PFET就会打开马达。 我在STM32L476上使用pin PA4在开漏模式来控制它。我认为这应该是工作的,但不幸的是,这个大头针不是一个5v容忍大头针。查看数据表,我认为是pin上的保护二极管导致了这个问题。这意味着电源启动信号不幸地不能工作在这个修改的PCB。它应该连接到一个5v的容忍度引脚,也称为数据表中的“TT”引脚,例如PA2。 从更积极的方面来看,平移电路正在工作。在调试完上面的问题后,我损坏了顶部的铜层,所以我做了一个混乱的焊接修复如下所示重新连接5V引体向上。NFETs将3.3V PWM从微控制器转换为5V用于伺服系统。注意,由于FETs是反向的,PWM信号的占空比也需要反转。我成功地移动了一个伺服电机,并且开始使用在线Mbed编译器组装一些固件。项目在这里。
一个丑陋的修复短针R7到Q2到R13。这是在5v网络上。Q2是没用的,因为它永远不会关闭。
nfts将3.3 V PWM信号转换为5V。您可以控制多达6个伺服器。 最后,我还检查了Nunchuck接口。不幸的是,连接器有点太窄了,所以我不得不把它打磨一下。但是在Mbed上使用wiflood chuck库可以很好地实现I2C通信。 用于控制舵机的Nucleo扩展板
我想要控制的EEZYbotARM MK2。 我决定使用我的Prusa i3mk2,并且已经为EEZYbotARM MK2机器人手臂的部件进行了3d打印。它使用了三个更大的MG995或MG946伺服电机,以及一个更小的塑料SG90伺服电机,用于“抓取器”(正式称为“末端执行器”FYI)。我没有给电路布线,也没有买现成的东西,而是决定做一个PCB来驱动伺服电机。这让我有机会添加一些现有解决方案中不可用的东西:Wii Nunchuck连接器。 伺服电机采用PWM信号控制,厂家指定工作电压为4.8 V - 6.6 V。STM32核板在3.3 V下工作,我读到过3.3 V PWM可能用于驱动伺服电机。但是,为了安全起见,我添加了一些FETs来将3.3V PWM转换为5v。
另一台伺服电机的PWM信号(此电压为7.2 V,而非6.6 V)
6伺服电机连接器 最后,我添加了一个Wii Nunchuck连接器。这基本上是一个PCB卡边缘连接器我从这里复制的。我使用一个简单的I2C接口,打算用它来控制机械手臂
Wii Nunchuck连接器(J2)。 这个PCB是一个STM32扩展板,所以它使用了与主板一起工作的Morpho板。 第一个版本的第一个布局已经完成,并且已经被发送去制作。 相关资源见GitHub代码见mbed 原文请见hackaday |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版
啊,谢谢,我是想问一下你是找谁打印的,质量还不错~推荐一下