遥控机器人制作教程(这样制作简单又好玩)
如果有更好的建议或者想看更多关于技术大全及相关资讯,可以多多关注茶馆百科网。

11年前,专门研究电影和电视动画控制系统的马特丹顿(也是《星球大战》中BB-8的联合创作者和运营商)制作了Bug:
2014年,麦克斯。K看了这些机器人的视频,非常喜欢。很少有机器人能做出这种有机的、类似昆虫的动作。他试图找到一些流传的文件,并决定制作自己的文件。
Max在建造行走模拟器时遇到了一些障碍,由于反复遇到障碍,该项目被搁置了。
今年早些时候,波士顿动力公司(Boston Dynamics)的机器人着火后,这位痴迷于腿部机器人的作者挖掘了这个项目,终于在上个月完成了机器人的制造。
六足机器人比四足机器人有很大的优势。
它可以举起三条腿,而让其余三条形成一个稳定的三脚架,在某种程度上消除了不断移动重量和平衡的需要。
ZeroBug是一个3D打印的微伺服六足机器人,由树莓派Zero和STM32F103驱动。
Pi Zero负责输入和前端处理,允许机器人通过鼠标、键盘、多点触控或简单的蓝牙手柄进行控制。
为了让机器人行走,STM32被用来处理腿部运动,反运动学和控制18个舵机。所有的计算都以50Hz的频率运行,这使得Hexapod能够以高精度平稳地移动。
框架的外部部分全部是3D打印的。
定制运动引擎紧凑的CAD设计和3D打印部件通过websocket提供网络接口,用于键盘,鼠标和多点触摸输入支持蓝牙游戏控制器有爪子,可以使用标准的业余舵机操纵对象(至少在全球芯片短缺的情况下),基于低成本制作PCB布局,源代码和stl:https://github.com/CoretechR/Zerobug
简单介绍
1 - STM32F103C8T61 -树莓派零W20 - EMAX ES08A II微型舵机1 -定制电路板1 - NXP PCA9685 PWM驱动器1 - MPU60501 - 2600mAh 6V镍氢电池(目前未使用)
主要特点
实际上,我在2014年做了一个四足机器人,但在不知道软件如何工作的情况下设计和组装硬件部件犯了错误。
在这个项目中,我想确保在投入时间和金钱制作物理原型之前,我能让机器人正常行走,而最好的方法就是使用模拟。
我没有使用专门的机器人模拟器,而是决定再次使用Processing,之前我曾使用Processing为四足机器人创建了一个模拟器。Processing是一种与Arduino非常相似的编程语言和IDE,不同之处在于它是基于Java而不是c++。对我来说,最大的好处之一是这两种语言非常相似,为Processing桌面应用程序开发的代码可以很容易地移植到Arduino上,只需稍加修改。
我从一个非常简单的机器人腿运动的动画开始,它变得越来越复杂,直到所有六条腿都能正常运动。
这是开发过程的一个小动图:
整个模拟中最难的部分是计算出运动。
由于运动的速度、方向和旋转都是可变的,六足机器人必须决定在给定的时间将哪条腿移动到什么位置。
现在我实现的运动引擎是这样工作的:
每条腿都有树坐标、默认位置、起始位置和当前位置。
默认位置是腿部试图恢复的坐标。当每条腿处于默认位置时,机器人处于中立位置。当六足动物开始行走时,它的腿首先与身体相反移动,这意味着当它着地时,它的起始位置会从当前位置移动。很明显,如果腿不迈步,它们很快就会超出它们的活动范围。为了确定要抬起哪条腿,这里使用了一个步态序列,这只是一个查找表,其中显示了在序列中的哪个时间哪条腿可以迈出一步。如果轮到一条腿迈步,则起始坐标被冻结,并且该腿现在沿着起始坐标和默认位置之间的路径移动,直到到达目标。
步幅的高度由沿着这条路径的进度决定,使腿以倒抛物线形状移动。当代码在步态序列中循环时,每条腿都试图跟上身体的运动,以达到它们的默认位置。
这是我能想到的最简单的方法,而且足以使机器人平稳地移动。
在开发了这个运动功能之后,其余的就相对容易实现了。
为了使六足机器人静态地移动和旋转,腿的坐标围绕身体的中心点进行平移/旋转。为了确定腿关节的角度,需要计算反运动学。虽然这听起来很复杂,但这只是每条腿必须执行的基本数学方程。
对于模拟器,Processing的3D渲染用于显示六足体,无论是作为钢丝网还是作为它们后来的CAD文件。机器人的控制是通过鼠标和键盘来完成的,可以很方便的让我们在没有任何硬件的情况下感受机器人的行走。
硬件部分
仿真完成后,是时候开始构建硬件部分了。
我开始设计单个的腿部件,并寻找合适的马达。
由于六足机器人需要18个电动机,它们决定了机器人的总成本。所以,我选择了一些便宜的Emax ES08A II微型伺服电机。
就它们的尺寸而言,它们相当强大,到目前为止,塑料齿轮似乎表现良好。
虽然他们是“微型”,这些舵机也消耗了很多电流。
我本来打算从锂电池开始,但换成了镍氢电池。一个明显的好处是,六块1.2V镍氢电池可以很好地提升到6V,这正是舵机所需要的。锂离子电池需要一个电压调节器,而对高电流的需求使项目不必要地复杂化。
为了驱动舵机,需要18个PWM输出。
起初,我试图找到一个微控制器有足够的IO直接连接到舵机。小4.0可能是一个不错的选择。然而,机器人的空间非常有限,而小板似乎不太合适。
STM32F103是下一个不错的选择,因为它与Arduino兼容,我已经有了一些宏键盘的经验。
由于IO和定时器有限,单个PCA9685 PWM驱动器用于控制16个舵机,而其余4个舵机可以由STM32本身处理。
这是运行在宏键盘原型上的六脚软件,
0
为了给它添加无线连接功能,我决定将Raspberry PI Zero W结合起来。
对于基于Pi Zero的Zerobot机器人,我已经做了网络接口的软件,我认为添加一个蓝牙游戏控制器应该没有问题。在选择了最重要的部分之后,我会继续制作PCB。
在ZeroBug板上,微控制器和树莓派通过UART连接。我用了一个带底部入口的别针夹。这允许更紧密的组装,而不必焊接树莓派;STM32可以使用其USB接口编程,而树莓派使用其WIFI连接,通过SSH或VNC浏览器访问。
给组件供电也很麻烦,因为我希望能够通过USB连接或电池为电路板供电。这可以通过创建一个二极管或电路来实现(见下图)。
在只有USB连接的情况下,Pi提供(几乎)5V电压,但内部电压会下降到3.3V。此外,STM32还有自己的3.3V稳压器。当连接到电池时,它通过简单的反极性保护直接向舵机供电。一个额外的5V LDO为树莓派和微控制器供电。
在实践中,效果非常好。只有在电池电量非常低的情况下,树莓派才有可能在快速运动期间重置,因此我正在使用STM32测量电池电压。
在确定部件的方位时,必须考虑以下几个方面:
USB插座必须易于访问。伺服连接器必须定位到最小的电线长度。我不得不把树莓派的天线指向地面,以防止它受到电机和电池的影响。
最后,摄像机连接器面向机器人的前部,以便稍后安装摄像机。我忽略了舵机针有多长,还有舵机插头,它们太大了,不能装进机器人,这就是为什么伺服电缆后来要焊接的原因。
我设法将所有组件安装在两层中,甚至为MPU6050运动传感器和I2C OLED显示器的连接器腾出了空间。
这个连接器在测试时很方便,因为OLED屏幕显示腿的状态,而不需要为舵机供电。
在等待PCB到达的同时,我继续设计腿和六足体的3d打印部分。
以马特丹顿(Matt Denton)的uBug体重秤为参照,我发现我几乎不能在不影响腿部活动范围的情况下减掉几毫米。
所有机械部件都是在Fusion360中设计的,并且可以在最小的支撑下打印。
为了防止机器人滑倒,它们还被制成了柔性TPU“袜子”,可以扣在它们的腿上。
一个可选的爪子也被添加到机器人的前面。这本来是一个放摄像机的地方,但感觉用爪子移动物体比摇晃的相机更有趣。
将运动代码从Processing仿真移植到STM32相对简单,但必须添加一些安全检查,以防止机器人意外缠绕其腿。
微控制器在不到20毫秒的时间内管理运动,旋转,IK和其他一切的计算。
当然,为了使其运行得更顺畅,仍有大量的优化空间。
我编写了一个简单的协议,通过UART控制STM32。该协议可用于接收来自USB或Raspberry PI Zero的命令。
树莓派运行一个python脚本,处理Websocket通信、UART和pygame,一旦客户端连接到树莓派上,它就会加载一个网站,六脚机可以用键盘、鼠标或触摸输入来控制。
Pygame允许蓝牙连接到游戏控制器。树莓派翻译命令并通过串行端口将它们发送到STM32。树莓派也发送周期性心跳信号,所以STM32可以停止舵机,如果树莓派冻结。
树莓派和微控制器的组合工作得很好。控制一个六足机是非常有趣的,特别是如果你使用的是Xbox控制器。
总的来说,我对这个项目的完成很满意。六足机器人可以按照我想要的方式行走,而且控制得非常精确。
开发过程并不总是像阅读本文档时所看到的那样顺利。实际上,我从2014年开始制作模拟部分,并因为受挫而搁置了整个项目,直到几年后才将其挖掘出来。直到今年年初,我才有动力完成这个项目。回想起来,ESP32可能是树莓派和STM32的替代品。然而,性能和与游戏控制器的兼容性可能也是一个问题。
本文主要介绍了关于遥控机器人制作教程(这样制作简单又好玩)的相关养殖或种植技术,栏目还介绍了该行业生产经营方式及经营管理,关注发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解技术怎么管理的要点,是您致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://23.234.50.4:8411/article/1569834.html