掌控板+麦轮,Mixly + Blynk,让你的麦轮战甲嗨炸全场!

掌控板+麦轮,Mixly + Blynk,让你的麦轮战甲嗨炸全场!

微信封面
原文首发于“铁熊玩创客”公众号,链接:https://mp.weixin.qq.com/s/BbKvrtddJMv4vyldfYR2ww

话不多说,先上演示视频:https://www.bilibili.com/video/av67246057

随着大疆 RoboMaster S1 麦克纳姆轮(下文简称"麦轮")战车的推出,在创客教育圈掀起了一股麦克纳姆轮战车 DIY 飙车的浪潮。在这之前我也 DIY 设计过的一辆萌宠版的麦轮小车麦熊战车,也得到了比较高的阅读量,可以点击下方图片,查看制作教程。

麦熊战车

麦熊虽萌,可惜没有战斗力,对于麦轮战车来说好像缺了点什么。幸好这次有创客朋友的公司推出了一辆火力全开的"狄仁杰"麦轮战车,而且价格也很公道,相比大疆 S1 动辄快 3500 元的价格,简直良心多了。于是趁着手痒劲,赶紧入手一辆来试玩。为避免广告嫌疑,就不放购买链接和价格了,感兴趣的可以私戳或者留言。

跟大疆 S1 一样,"狄仁杰"战车也是需要你自己动手组装的,而且扩展性更高,可以说是相当硬核了!这篇文章主要记录我初次上手的组装和试玩的过程,并编写了一个简单的控制程序试玩一下。后面如果有时间,我会给大家分享更多的玩法。

这篇文章主要分为组装、电路、原理、控制四个部分,如果已经玩过的朋友,可以直接跳到自己感兴趣的章节,下面开始正式介绍。

图片1

组装篇

在玩麦轮战车之前,肯定要组装起来,因此首先是组装篇。

这里介绍的主要是我根据自己的摸索写的安装过程,与官方安装视频上介绍的教程稍有差异,大家以官方教程为准,然后可以适当参考我这边的图文教程。主要差异体现在电池的安装位置,其他结构的安装,虽然顺序不一样(为了写文章有一个关系逻辑),但是最终装完后结果是一样的。

这里放上官方安装视频供大家查阅。

https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_978099775776145408

组装车架

先来组装机身。包装里材料很多,基本已经给大家分好类了,不要搞混。首先取出包装里的如下材料,这些材料主要是用来制作车身的。注意车架分上下两片,这两片车架外形结构上是完全一样并且对称的。如下图所示,由于车架是亚克力激光切割制作的,所以外面的保护膜还没有撕掉。黑色那个车架我已经撕掉了保护膜,另一片车架上的保护膜也需要撕掉,图中只撕了一片是为了方便各位对照。当然你也可以不撕,但是黑色的亚克力镜面车架会不会更帅呢?撕了膜是帅气的 Tony,不撕可能就是土根了~

IMG_9412

首先将 4 个 L 形电机支架用 M3×10mm 的螺丝和螺母固定到下层车架上,每个 L 形支架至少需要 2 颗螺丝固定在对角线上,如下图所示。当然为了更加牢固,也可以固定 4 颗螺丝。

安装电机支架

然后在 L 形支架上安装电机,我们使用 M3×25mm 的螺丝与螺母将电机拧紧在 L 形支架上即可,注意电机安装的方向,有转轴的一边朝外,如下图所示。

安装电机

然后在下层车架上安装支撑铜柱,我们使用 M3×27mm 规格双通铜柱配合 M3×10mm 螺丝安装,安装位置如下图所示,注意找好孔位,前后对称的位置共 4 根铜柱。

IMG_9424

接着在上层板上安装盘古斧(掌控板扩展板)支撑铜柱,我们使用 M3×24mm 规格双通铜柱配合 M3×10mm 螺丝安装,安装位置如下图所示,共 4 根铜柱。同样需要注意找好孔位,不然跟盘古斧安装孔位会不匹配。

IMG_9425

最后将上下两层车架对接安装到一起,使用 M3×10mm 螺丝在铜柱上拧紧即可,如下图所示。

IMG_9428

安装麦轮

安装完车架之后,开始安装麦轮。这里需要注意的是,麦轮是不能随意安装的,它们的位置是有对应关系的的。最常见的安装方式为 X 形 或者 O 形,本文以 O 形 为例(X 型在 yaw 方向不具有主动移动的能力)。我们只需按照下图所示位置,将车架与麦轮摆放好,然后分别用联轴器和自攻螺钉将麦轮固定到 4 个电机上即可。

安装麦轮

这里稍微介绍一下麦轮安装的位置关系。麦克纳姆轮由轮毂和辊子组成,轮毂是整个轮子的主体支架,辊子则是安装在轮毂上的鼓状物。麦轮的轮毂轴与辊子转轴呈 45° 角。理论上,这个夹角可以是任意值,但最常用的还是 45° 角。

麦克纳姆轮

麦轮一般是四个一组使用,两个左旋轮,两个右旋轮。左旋轮和右旋轮呈手性对称(意思是说像手一样,左右对称)。安装方式有多种,主要分为:X-正方形(X-square)、X-长方形(X-rectangle)、O-正方形(O-square)、O-长方形(O-rectangle)。正方形与长方形指的是四个轮子与地面接触点所围成的形状。这里要注意的是:

X 和 O 表示的是与 4 个轮子与地面接触的辊子所形成的图形,并不是从正上方看到的棍子形成的图形的形状!

X 和 O 表示的是与 4 个轮子与地面接触的辊子所形成的图形,并不是从正上方看到的棍子形成的图形的形状!

X 和 O 表示的是与 4 个轮子与地面接触的辊子所形成的图形,并不是从正上方看到的棍子形成的图形的形状!

  • X-正方形:轮子转动产生的力矩会经过同一个点,所以 yaw 轴无法主动旋转,也无法主动保持 yaw 轴的角度。一般几乎不会使用这种安装方式。
  • X-长方形:轮子转动可以产生 yaw 轴转动力矩,但转动力矩的力臂一般会比较短。这种安装方式也不多见。
  • O-正方形:四个轮子位于正方形的四个顶点,平移和旋转都没有任何问题。受限于机器人底盘的形状、尺寸等因素,这种安装方式虽然理想,但可遇而不可求。
  • O-长方形:轮子转动可以产生 yaw 轴转动力矩,而且转动力矩的力臂也比较长。是最常见的安装方式

不管是 O-square 还是 O-rectangle,都属于 O 形,如下图所示即为 O 形,对这里没有写错,下图是 O 形。虽然从正上方来看,可以看到 4 个麦轮辊子的转轴朝向呈一个 X 形状,但是由于对称关系,实际上与地面接触的棍子所形成的的图形是 O 形

o形

组装完车架和麦轮之后,就可以装上主控掌控板和扩展板盘古斧了,完成后效果如下图所示。

安装主控

安装水弹枪

组装完车架与麦轮之后,我们就可以开始安装它的武器系统(水弹枪)了。

首先将舵机固定在舵机支架上,使用舵机包装袋内含的自攻螺丝拧紧在支架上即可完成安装,接着将舵机舵盘与齿轮安装到如下位置,使用舵机包装袋内 M2×5mm 螺丝拧紧,如下图所示。

固定舵机

然后在弹夹上安装固定器和齿臂,两个侧面均需要安装齿臂,安装位置如图所示。

3

固定支架与齿臂安装时,需要加入 2 片垫圈以减少摩擦力,使用 M3×14mm 螺丝安装,安装后以固定支架可以旋转活动为标准。两个侧面均需要安装固定支架,但只需要安装一个舵机即可,如下图所示。

连接支架与水弹枪

然后在车架上安装水弹枪连接底座,注意调整好位置,避免水弹枪与后面的盘古斧碰到一起。

安装水弹枪固定底座

将水弹枪用 M3×8mm 螺丝与水弹枪底座连接,固定到车架上,如下图所示。

固定水弹枪

在水弹枪上安装储弹箱,注意安装的方向,使储弹箱下方的出弹口与水弹枪上的进弹口位置对准,如下图所示。

安装储弹箱

安装电池盒

在电池盒背面贴上魔术贴。

在电池盒上固定魔术贴

然后将电池盒推入盘古斧扩展板与上层车架支架的空间。有了魔术贴之后,就可以依靠摩擦力将电池盒固定紧了。

固定电池盒

成品欣赏

最后我们来欣赏一下狄仁杰战车组装完成的霸气帅照!

IMG_9503

IMG_9510

图片2

电路篇

狄仁杰麦轮战车的主控采用了大家所熟知的掌控板,以及特别为掌控板和狄仁杰战车设计的盘古斧扩展板。盘古斧扩展板分 A、B 两板。A 板含内置锂电池、掌控板插槽。掌控板可直接插在盘古斧 A 板上,可以采用主板的 USB 电源口或者内置的锂电池进行供电。盘古斧 B 板含外接电源接口、电机接口。B 板需与 A 板结合才能使用,使用外接 6-18V 电压供电,此时最大电流可达 3A,最大电机驱动电流达 800mA,可同时接入 6 个 9g 舵机或 4 个直流电机。

盘古斧

由于盘古斧上专门设计了 4 个电机和水弹枪的接口,而且还用了 PH2.0 防呆接口,所以接线特别简单,只要按照安装位置关系进行对应接线即可,这里不再赘述。

图片3

原理篇

麦轮车的运动方式千变万化,以 O 形结构为例,最常见的运动方式就至少包括以下 18 种。而以下 18 种运动方式中,又以第一排的 6 种方式最为常见。

麦轮车运动方式

(图片来自安卓机器人的文章"麦轮走法初探":https://makelog.dfrobot.com.cn/m_article-1705.html)

既然运动方式有那么多种,难道每种方式我们都要单独编写一个控制程序么?这样当然可以,我们需要对每一种运动方式都编写相应的程序,然后每种运动方式都要对应一个按键去控制,那么就至少需要 18 个按键。或者简化一些,我们只编写最常见的 6 种运动方式,那么至少也需要 6 个按键。但是这种编程方式在麦轮战车不同运动形式之间进行切换时,我们都要先松开之前的按键,在去按下后面运动方式对应的按键,在操作上就会有卡顿感,变化不够流畅,而且很容易记混按键的位置。

那么有没有其他方式进行控制呢?

当然有!我们只要理解麦轮运动之间的关系,推导出相应的计算公式,就可以将这些运动统统搞定了!

等等,还要推导公式?还能不能愉快的玩耍了!由于麦轮具体的运动计算公式推导稍微有点复杂,限于篇幅,所以这里就不展开了,这里只放结论。

O 形结构为例的,首先我们规定一下运动方向的座标定义,我们规定麦轮战车运动时的座标原点 O 为 4 个轮子围成图案的轴心,正前方方向为 y 轴正方向,向左为 x 轴正方向,转动方向规定逆时针方向转动为正方向,如下图所示。

狄仁杰运动方向规定

根据这个座标规定,可以分别将 4 个麦轮的运动进行分解,分解成沿辊子轴向的速度分量和垂直辊子轴向的速度分量,其中垂直辊子轴向的速度分量是可以忽略的,如下图所示。下图中的 ab 分别代表每个轮子到车架轴心的 x 轴方向和 y 轴方向的长度。

麦轮运动图解-狄仁杰版

根据这些规定,当麦轮战车想要沿任一方向运动和转动时,我们可以得出 4 个麦轮控制速度的计算公式如下:

麦轮运动公式-狄仁杰版

上面的计算公式,分别对应狄仁杰麦轮战车 M1、M2、M3、M4 这 4 个轮子的速度。这个公式中,既包含了平行移动,也包含了转动,只要设置参数合理,理论上可以实现麦轮战车所有的运动方式。

公式中每个参数的意义如下图所示:

公式参数说明

有了这个公式以后,我们就可以控制麦轮战车沿着任意方向移动了。

具体公式推导可以参考知乎上的这篇文章:麦克纳姆轮浅谈:https://zhuanlan.zhihu.com/p/20282234

麦轮的原理也可以看一下 RoboMaster 机甲大师官方推出的这个视频:https://www.bilibili.com/video/av17229132/

图片4

控制篇

有了运动公式以后,就可以进行控制了。控制主要分为两个部分,一个是麦轮战车底层的运动控制,一个是遥控端的程序编写。

根据上面的公式,我们可以知道,每辆战车组装好造型之后,ab 都是固定不变的,因此要想控制一辆麦轮战车疯狂漂移,我们需要知道 3 个参数,分别是控制移动的 x 轴方向的速度分量 vx、y 轴方向的速度分量 vy控制转动的速度 w,所以我们只需要两个摇杆就够了,一个摇杆用来控制移动,一个摇杆用来控制转动。是不是比一堆按钮要简化多了?

等等,还要加两个摇杆?好像狄仁杰战车也没配遥控器啊?

还记得狄仁杰战车的主控板是什么?对,掌控板!掌控板是不是具备蓝牙和 Wi-Fi 连接功能?那是不是可以用手机蓝牙连接控制了呢?那难道还要做个手机遥控的 App?也不是不可以啦,但是这里呢,我们用更简单的方法,我们可以用 Blynk 快速设计一个 App,来实现对狄仁杰战甲的控制。

Blynk 遥控器设计

首先来看看下图,这是我用 Blynk 设计的狄仁杰战甲的控制器。你没有看错,图片没有反,我是故意设计成横屏的,这样可以用一只手来控制移动(右边的遥控),用另一只手控制转动(左边的遥控)和武器(按钮)。手机与狄仁杰战甲之间通过 BLE 蓝牙连接。

手机控制端界面

接下来就讲一下如何设计这个 Blynk 控制器。首先在手机上打开 Blynk 软件 ,选择新建项目,项目名字随你喜欢,设备选择 ESP32 Dev Board,连接方式选择 BLE 蓝牙,如下图所示。

新建blynk项目

然后分别拖出一个 BLE 模块、一个 Button 模块和两个 Joystick 模块,摆放位置如下图所示,当然你也可以根据自己的喜欢随意摆放。

blynk界面设计

然后分别对这几个模块进行设置,如下图所示,具体的数值范围,实际上也是需要计算的,但是呢这里也不展开了,你可以自己随意调试,我这边也是随意设了几个参数作为示例,如下图所示。

组件设置

设置完以后,当你想要控制狄仁杰战甲的时候,只需要点击蓝牙标志,连接蓝牙后,就可以运行遥控程序了。注意这里的蓝牙名称,是下文中程序自定义的,我这边设置的蓝牙名称为 Blynk

连接蓝牙

底层运动控制

设计完 Blynk 控制器之后,开始编写底层运动控制程序。

底层控制程序我采用 Mixly 进行编写,原因是目前支持掌控板的软件中,只有 Mixly 支持掌控板的蓝牙,而且 Mixly 中 Blynk 功能更丰富。为什么用本地蓝牙而不用 Wi-Fi 呢?因为 Wi-Fi 控制会有延迟,而本地蓝牙几乎没有延迟。

打开 Mixly 软件,在主控板中选择 Arduino HandBit,即掌控板,就可以开始编程了。

Mixly中选择掌控板

首先在初始化里面定义几个参数,maxNumber 是用来存储 4 个电机中速度的最大值,后面会用到;alength 代表速度分析图中 a 的长度,blength 代表 b 的长度;m1speedm2speedm3speedm4speed 分别代表 4 个麦轮(电机)的速度。注意,为了后面计算时不被取整影响,所以这里所有的变量参数都设置成了小数,后面其他函数中用到的参数也都是小数。

初始化速度参数

然后编写 4 个麦轮单独控制的函数,规定速度参数 speed 为正时,表示向前进方向运动;speed 为负时,表示向后退方向运动。4 个麦轮单独控制的函数如下图所示:

单轮基础运动控制函数

然后在定义一个取最大值函数 maxNumberAbs(),它是作用是获取 4 个值中的最大值,后面会用来比较 4 个速度值,并将最大的速度值存储在 maxNumber 变量中。

maxNumberAbs

接着就可以根据上面的计算公式,编写整车运动控制函数了。定义这个函数的名称为 move(),这个函数里面有 3 个变量:vx 代表 x 轴方向的运动速度;vy 代表 y 轴方向的运动速度;w 代表转动速度。这几个速度值都可正可负。这个函数中还有两个常量:alengthblength,这两个数值的意义上文已经说明。另外由于每个电机转动速度最大为 255,而在 Blynk 中我是随意设置的数值(最好计算一下,其实我也是懒得计算想快点玩了),所以这里要将每个轮子计算后的速度值归一化,并约束到 -255~255 之间。这里就用到了上面定义 maxNumberAbs() 的函数。

四轮复合控制函数

有了这几个函数以后,我们只要在 Blynk 上给它传输 vxvyw 这 3 个变量就可以控制每个轮子的运动了。首先初始化 Blynk BLE 蓝牙连接,其中 Blynk 授权码填写你自己手机端产生的授权码,BLE 名称随意,取一个你自己喜欢的名字即可,这里我保持了默认的 Blynk 没改。

初始化blynk-ble

然后用从App获取数据模块分别从两个摇杆获取速度参数,其中控制移动的摇杆,连接在 Blynk 的V0 虚拟管脚,控制转动的摇杆,连接在 Blynk 的 V1 虚拟管脚 ,获取相应速度后,直接用 move 函数控制移动即可。

blynk运动控制

然后再编写水弹枪武器控制程序,如下图所示

武器控制函数 blynk武器控制

至此,狄仁杰战甲的基本控制程序就编写好了,当然你也可以添加更多功能,比如武器角度控制,灯光控制系统等,由于这篇文章只是简单的试玩,就暂时不展开了。完整的程序如下图所示。

完整程序

上传程序,连接蓝牙,开始战斗吧!

图片5

总结

体验篇就到这里啦,这篇文章只是简单分享了一种麦轮控制的玩法,实际上基于麦轮战车,我们还能拓展出更多玩法,比如漂移巡线、目标识别、图传跟踪、击打竞技等,后面有时间再慢慢跟大家分享。

最后来简单总结一下,麦轮战车的运动方式虽然比一般的小车要复杂一些,但是它的玩法也更多,硬核指数也更高,绝对是玩创客的朋友必玩的一个项目,而且 DIY 会更好玩哦。

这篇文章用到的狄仁杰麦轮战车不仅可以 DIY,还配备了掌控板做控制,加装了武器系统,后期更是可以加上图像识别、人工智能等更多酷炫狂拽的技能,不仅仅适合入门麦轮战车,更是后期玩进阶改装的绝佳选择!如果再配备 Blynk 控制系统,控制的灵活性就更高了,遥控端几乎可以不受硬件的限制,而且还不用增加任何材料成本,通过简单的拖拽,就能搞定一个复杂的 App,甚至还能加上类似大疆的图传系统,有空的朋友可以先去试试看哦。

最后再提醒一下:

提醒1

提醒2

(这两句话,上一句出自汝州一中朱现伟老师,下一句出自穷玩猫牛老师)

全文完!

对了,Mixly 程序请到知识星球创客教育能量站下载:https://t.zsxq.com/yrFeAIm

Mixly1.0_Win_Beta(9.10)教师节特别版下载地址链接: https://pan.baidu.com/s/198c7eg-OGFKhSoEudkDbrw 提取码: cwc5

知识星球创客教育能量站

激活课程制作分享,实现知识变现!能量站是一个付费知识社群,聚集了一大批优秀的老师,几乎每天都有优质的创客教育内容分享。可以扫描下方二维码付费加入,这是我的推荐码,你可以获得一定的优惠,当然我也会有一定的回报。

知识星球推荐码

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章