# 还在羡慕大疆 RoboMaster S1?技术宅教你自制全向麦克纳姆轮战车!

538 阅读7分钟

在这里插入图片描述

先来看一下成品照片:

成品图

再来看一下演示视频(点击链接查看演示视频):

www.bilibili.com/video/BV1nW…

世界万物,皆有源起,一个事物没有外力的情况下,它会始终保持原状,但是当它和另一个事物相结合后,就会有一个全新的事物诞生。比如:

  • 当奇点遇上大爆炸便诞生了宇宙

1

  • 当大黄鸭遇上平底锅便诞生了烧鸭

2

  • 当蝙蝠遇到土豪便诞生了蝙蝠侠

3

  • 当小鲜肉遇到高卡路里快餐便诞生了肥宅

4

  • 当照片遇到 PS 便成了“照骗”

5

接下来我们来感受一个场景:当你深夜回家,在小区的转了一圈又一圈,好不容易找到一个车位,但是发现前面的车乱停,剩下的空档大小正好只能停放你的车,连一点空隙都不给你,你说怎么办?

6

但是,眼睁睁的看着一个车位 就是停不进,是不是很不爽?是不是很火?是不是感到整个世界对你深深的恶意?甚至开始怀疑人生?

于是,新的组合开始了,你有没有想过,当横行霸道的螃蟹遇到了汽车 会发生什么?

7

这就是神奇的麦克纳姆轮,确认过眼神,遇见对的轮,感受一波神奇的操作:横向入库。

8

麦克纳姆轮(下文简称“麦轮”)的神奇全向行动能力,一直是众多机器人的首选方案,例如 RoboMaster 机甲大师比赛中,各种机器人车轮便采用的就是麦克纳姆轮。

机甲大师:图片来自RoboMaster官网:https://www.robomaster.com/zh-CN/resource/image

但麦轮动戈几百的价格,让热爱它的小伙伴们望而却步。那是否麦轮就与我们普通创客爱好者没有关系、太遥远了呢?当然不是,本教程就教你自制麦轮,并用麦轮设计出一辆麦轮战车。只要你身边有 3D 打印机和激光切割机(可选),那么就跟我一起制作出一辆麦克纳姆轮全向小车吧!

是不是很心动了呢?别犹豫了,拿起你的工具,准备好你的 3D 打印机,准备开干吧!

自制麦轮

首先你要准备好如下材料和工具:

材料:

  • 26mm 长标准大头针,每个轮子需要 9 枚,共 36 枚
  • 3D 打印麦轮零件(包含大轮和从动轮)
  • 9mm 热缩管

工具:

  • 热风枪
  • 502 胶水
  • 美工刀
  • 镊子

1、将麦轮模型用 3D 打印机打印出来,每个轮子由 1 个大轮与 9 个从动轮组成。左旋与右旋模型各打印两个,从动轮左右通用打印 4×9=36 个,如下图所示。

10

2、① 将热缩管裁剪至适当长度套在小从动轮上,② 用镊子夹住使用热风枪加热热缩管,使热缩管受热缩紧,③ 最后使用美工刀将边缘多余部分热缩管割掉。如下图所示。

11

3、用大头针穿过从动轮并固定在大轮上,确保足够顺滑即可,如下图所示。

12

5、重复上述步骤,如下图所示,麦克纳姆轮就制作完成啦!

13

6、接下来是制作麦轮战车底盘。用塑料销钉和电机固定座将 4 个 N20 减速电机分别固定在激光切割的木板底盘上,将麦轮安装在电机轴上,如下图所示,底盘就完成啦。

14

制作车体

接下来就要开始制作麦轮战车了。你要准备好如下材料和工具,如下图所示:

材料:

  • Arduino 核心控制板 Athena×1
  • 电机驱动 ×2
  • 超声波模块 ×1
  • 3.7V 锂电池 ×1
  • 麦轮战车底盘
  • 激光切割木板结构件
  • 杜邦线导线若干
  • 铜柱螺丝若干
  • 塑料销钉若干

工具:

  • 电烙铁

15

1、首先将电机与电机驱动之间焊接好导线,并将各电机信号线以及电源线用杜邦线母头引出待用,如下图所示。

16

2、准备好前挡板与电池仓挡板以及固定件,如下图所示。

图:前挡板与固定件

图:电池仓挡板与固定件

3、安装好电池仓与前挡板,如下图所示。

19

20

21

4、将 Arduino 核心板固定好后,将底板引出信号线与电源线接好。共 8 根信号线控制 4 个电机的正反转,如下图所示。

22

5、将超声波模块和固定座固定好后装在小车上。适当移动电池与零件位置,将小车重心保持在小车中间位置,至此,麦克纳姆轮小车就完成啦!完成后的麦轮战车如下图,是不是还有点萌呢?

23

其实他还能换头像呢,分分钟换个酷炫的麦熊头像,如下图所示。

24

电路设计

此小车采用的是 Athena 核心控制板,此主控板兼容 Arduino Uno 主控板,如下图所示,自带传感器接口与蓝牙接口,可以满足大部分项目需求。

图25 Athena核心控制板

我们知道 Arduino 不管是 UNO 还是 Nano,都只有 6 个 PWM 口(3、5、6、9、10、11),没法实现 8 个电机的调速,MEGA2560 有 8 个以上的 PWM 口,但是体积过大,不适合该项目,我在引脚分配上做出了调整,使用 4 个 PWM 与 4 个数字口就可以实现 4 个电机的调速,我们知道 PWM 简而言之就是数字口的占空比,当一个引脚为低电平,一个输出 PWM 信号时,可以调节速度为 0-255,255 为最快。经过试验,一个引脚为高电平时,一个输出 PWM 信号时,调节速度也是 0-255,区别就是 255 是停止,PWM 输出 0 时为最快。这样,只需要在程序中调节 PWM 的参数与数字口的输出,就可以控制电机的速度与旋转方向了。调速说明如表 1 所示。

表:调速说明

有了 Athena 核心控制板的介绍和 PWM 调速说明,整个麦轮战车的电路原理图就很简单啦,具体如下图所示。

26

程序设计

麦克纳姆轮与普通轮子的区别在于麦克纳姆轮旋转时,由于存在斜向的从动轮,会同时产生一个斜向的力,当我们控制轮子旋转的速度与方向时,将斜向的力增强或抵消,从而实现小车的全向移动。可以完成横移、斜方向移动等普通小车无法完成的高难度动作,如下图所示。

27-wheel-rotations

图 27(来自网络:www.roboteq.com/index.php/c…

麦轮战车采用手机 App 遥控的方式来进行操作,手机端控制采用的是“可控 Ctrl”App(App 作者个人网站:www.pengzhihui.xyz/),可在腾讯应用宝下载…

麦轮战车下位机端的编程思路是:摇杆通过蓝牙返回 Joy_x 与 Joy_y 两个变量,最大为 1,最小为-1,两坐标遍历半径为 1 的圆内,程序中有 8 个方向移动的子程序,程序思路是摇杆半径大于 0.5 以后,开始判断属于哪个范围内,并执行相对应的子程序。最开始采用的是判断坐标范围,发现效果并不理想。最终采用通过 Y/X 计算 tan 值大小与 Joy_x 与 Joy_y 构成坐标的象限,计算出所在的区域,这样的方法在内圆内不作执行指令,方便操作。另外可以将整周的圆八等分,算法简洁可靠。摇杆部分算法如下图所示,完整程序详见附件。

28

至此,完整的麦轮战车就完成啦!