先来看一下成品照片:
再来看一下演示视频:https://www.bilibili.com/video/av30268473/
世界万物,皆有源起,一个事物没有外力的情况下,它会始终保持原状,但是当它和另一个事物相结合后,就会有一个全新的事物诞生。比如:
-
当奇点遇上大爆炸便诞生了宇宙
-
当大黄鸭遇上平底锅便诞生了烧鸭
-
当蝙蝠遇到土豪便诞生了蝙蝠侠
-
当小鲜肉遇到高卡路里快餐便诞生了肥宅
-
当照片遇到PS便成了“照骗”
接下来我们来感受一个场景:当你深夜回家,在小区的转了一圈又一圈,好不容易找到一个车位,但是发现前面的车乱停,剩下的空档大小正好只能停放你的车,连一点空隙都不给你,你说怎么办?
但是,眼睁睁的看着一个车位 就是停不进,是不是很不爽?是不是很火?是不是感到整个世界对你深深的恶意?甚至开始怀疑人生?
于是,新的组合开始了,你有没有想过,当横行霸道的螃蟹遇到了汽车 会发生什么?
这就是神奇的麦克纳姆轮,确认过眼神,遇见对的轮,感受一波神奇的操作:横向入库。
麦克纳姆轮(下文简称“麦轮”)的神奇全向行动能力,一直是众多机器人的首选方案,例如RoboMaster机甲大师比赛中,各种机器人车轮便采用的就是麦克纳姆轮。
但麦轮动戈几百的价格,让热爱它的小伙伴们望而却步。那是否麦轮就与我们普通创客爱好者没有关系、太遥远了呢?当然不是,本教程就教你自制麦轮,并用麦轮设计出一辆麦轮战车。只要你身边有3D打印机和激光切割机(可选),那么就跟我一起制作出一辆麦克纳姆轮全向小车吧!
是不是很心动了呢?别犹豫了,拿起你的工具,准备好你的3D打印机,准备开干吧!
自制麦轮
首先你要准备好如下材料和工具:
材料:
- 26mm长标准大头针,每个轮子需要9枚,共36枚
- 3D打印麦轮零件(包含大轮和从动轮)
- 9mm热缩管
工具:
- 热风枪
- 502胶水
- 美工刀
- 镊子
1、将麦轮模型用3D打印机打印出来,每个轮子由1个大轮与9个从动轮组成。左旋与右旋模型各打印两个,从动轮左右通用打印4×9=36个,如下图所示。
2、①将热缩管裁剪至适当长度套在小从动轮上,②用镊子夹住使用热风枪加热热缩管,使热缩管受热缩紧,③最后使用美工刀将边缘多余部分热缩管割掉。如下图所示。
3、用大头针穿过从动轮并固定在大轮上,确保足够顺滑即可,如下图所示。
5、重复上述步骤,如下图所示,麦克纳姆轮就制作完成啦!
6、接下来是制作麦轮战车底盘。用塑料销钉和电机固定座将4个N20减速电机分别固定在激光切割的木板底盘上,将麦轮安装在电机轴上,如下图所示,底盘就完成啦。
制作车体
接下来就要开始制作麦轮战车了。你要准备好如下材料和工具,如下图所示:
材料:
- Arduino核心控制板Athena×1
- 电机驱动×2
- 超声波模块×1
- 3.7V锂电池×1
- 麦轮战车底盘
- 激光切割木板结构件
- 杜邦线导线若干
- 铜柱螺丝若干
- 塑料销钉若干
工具:
- 电烙铁
1、首先将电机与电机驱动之间焊接好导线,并将各电机信号线以及电源线用杜邦线母头引出待用,如下图所示。
2、准备好前挡板与电池仓挡板以及固定件,如下图所示。
3、安装好电池仓与前挡板,如下图所示。
4、将Arduino核心板固定好后,将底板引出信号线与电源线接好。共8根信号线控制4个电机的正反转,如下图所示。
5、将超声波模块和固定座固定好后装在小车上。适当移动电池与零件位置,将小车重心保持在小车中间位置,至此,麦克纳姆轮小车就完成啦!完成后的麦轮战车如下图,是不是还有点萌呢?
其实他还能换头像呢,分分钟换个酷炫的麦熊头像,如下图所示。
电路设计
此小车采用的是捣鼓车间出品的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调速说明,整个麦轮战车的电路原理图就很简单啦,具体如下图所示。
程序设计
麦克纳姆轮与普通轮子的区别在于麦克纳姆轮旋转时,由于存在斜向的从动轮,会同时产生一个斜向的力,当我们控制轮子旋转的速度与方向时,将斜向的力增强或抵消,从而实现小车的全向移动。可以完成横移、斜方向移动等普通小车无法完成的高难度动作,如下图所示。
(图片来自网络:https://www.roboteq.com/index.php/component/easyblog/entry/driving-mecanum-wheels-omnidirectional-robots?Itemid=1208)
麦轮战车采用手机App遥控的方式来进行操作,手机端控制采用的是“可控Ctrl”App(App作者个人网站:http://www.pengzhihui.xyz/),可在腾讯应用宝下载。手机与战车之间通过蓝牙通信,手机端通过摇杆控制小车的全向移动。
麦轮战车下位机端的编程思路是:摇杆通过蓝牙返回Joy_x与Joy_y两个变量,最大为1,最小为-1,两坐标遍历半径为1的圆内,程序中有8个方向移动的子程序,程序思路是摇杆半径大于0.5以后,开始判断属于哪个范围内,并执行相对应的子程序。最开始采用的是判断坐标范围,发现效果并不理想。最终采用通过Y/X计算tan值大小与Joy_x与Joy_y构成坐标的象限,计算出所在的区域,这样的方法在内圆内不作执行指令,方便操作。另外可以将整周的圆八等分,算法简洁可靠。摇杆部分算法如下图所示,完整程序详见附件。
至此,完整的麦轮战车就完成啦!