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


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

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

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

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

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

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

组装篇

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

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

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

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

组装车架

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

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

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

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

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

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

安装麦轮

安装完车架之后,开始安装麦轮。这里需要注意的是,麦轮是不能随意安装的,它们的位置是有对应关系的的。最常见的安装方式为 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 形

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

安装水弹枪

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

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

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

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

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

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

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

安装电池盒

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

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

成品欣赏

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

电路篇

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

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

原理篇

麦轮车的运动方式千变万化,以 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/

控制篇

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

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

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

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

Blynk 遥控器设计

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

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

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

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

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

底层运动控制

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

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

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

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

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

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

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

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

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

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

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

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

总结

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

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

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

最后再提醒一下:

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

全文完!

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

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

知识星球创客教育能量站

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

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

  1. 用Arduino玩转掌控板(ESP32):蓝牙翻页笔(PPT 控制器)

    众所周知,掌控板在创客教育中用的非常广泛,它是一块基于 ESP32 的学习开发板.大家对掌控板编程,用的比较多的都是图形化编程的方式,比如 mPython.Mind+ 等.但是,既然掌控板是基于 ES ...

  2. 掌控板+Mixly+MixIO 初试物联网-摇杆篇

    掌控板+Mixly+MixIO(物联网小试) 在了解掌控板和Arduino一些硬件之后想了解一下物联网. 准备: 掌控板: 基于esp32的主控,支持mpython,兼容米思齐mixly IDE mi ...

  3. 掌控板教程 | 让掌控板像 Mixly 串口监视器一样绘图

    全文约1500字,阅读时间5分钟 起因 事情的缘由是这样的,早上掌控板群里有老师讨论到掌控板能不能像 Mixly 串口监视器一样绘图,如下图所示: 解决方案 感觉是个蛮有意思的挑战,而且最近又在学习掌 ...

  4. 掌控板教程 | 搞定 Siri 语音控制,只要半小时!

    话不多说,先上效果演示视频: 本教程适用于掌控板及其他 ESP32 开发板. # 前言 # 前段时间,我在公众号上面发了一篇文章:掌控板 V1.1 语音识别初体验 在这篇文章中,我使用了还处于测试阶段 ...

  5. 掌控板教程 | 想要掌控超声波传感器?可能没你想的那么简单!

    全文约1000字,阅读时间3分钟 # 问题来源 在创客教育教学过程中,超声波传感器是最常用的元器件.但是一不小心也容易出现一些问题,甚至某些问题还比较隐蔽,没有经验的话可能要查很久才能查到问题所在. ...

  6. arduino nano 蓝牙_用Arduino玩转掌控板(ESP32):ESP32概述与Arduino软件准备

    前言 近年来,掌控板(英文名:mPython)在创客教育中应用越来越广泛.掌控板集成了 ESP32 高性能双核芯片,具备 WiFi 和蓝牙连接功能,同时在板子上又配置了丰富的传感器,最重要的是它是专门 ...

  7. mpython掌控板作品_第1课 Arduino micro:bit 掌控板 创客教育常用的3类主控板

    有很多朋友想学习创客,问我怎么学习.我建议他先百度一下"创客",看看有什么感觉.结果还是很懵,五花八门,什么都有,找不到核心.简单理解,就是以前讲的DIY,自己动手,制作一个东西. ...

  8. 物联网 掌控板抢答器实验

    一.实验目的及要求 实现掌控板抢答器功能. 二.实验原理与内容 基于TinywebDB实现云数据库出题 基于掌控板实现按键抢答 基于MQTT实现多端同步通讯 三.实验软硬件环境 硬件:掌控板 软件:M ...

  9. 掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!

    话不多说,先看效果演示视频: B 站视频链接:https://www.bilibili.com/video/av63856715/ 腾讯视频链接:https://v.qq.com/x/page/i09 ...

最新文章

  1. 机器视觉应用软件开发步骤及流程
  2. SQL 内置排名函数 DENSE_RANK
  3. python 类 探索
  4. 客厅计算机笔记本cpu,我的家庭娱乐中心,适合客厅的 HTPC(家庭影院电脑)
  5. Photoshop CS6 破解
  6. 171-辽宁移动魔百盒CM211-1-YS-S905L3B-RTL8822C线刷包
  7. htmlcss笔记(更新版)
  8. 炫酷的动态粒子背景效果(vue专属)
  9. 代码管理 阿里云 云效 设置云效 SSH 公钥 下载代码到本地配置SSH
  10. 直接在浏览器运行Python代码
  11. 上了学这么久,我才知道他们为什么可以这么爽
  12. 机器翻译与编码-解码模型 Machine Translation and Encoder-Decoder Models
  13. Quectel EC20 R2.1 AT指令集(TCP/部分)
  14. 关于DIY电池均衡器--被动均衡---蓄电池--电瓶车电池组电压均衡的经历
  15. C++ Primer Plus(第六版)第4章 编程练习答案详解
  16. Android性能优化之网络优化
  17. 【MCU】STM32F107VC单片机驱动DP83848以太网PHY芯片,移植LWIP 2.1.2协议栈,并加入网线热插拔检测的功能(HAL库)
  18. 关于解决电脑有网络但是浏览器却打不开的解决方法
  19. 双线机房双网卡双ip 路由设置
  20. date 显示日期与时间

热门文章

  1. 【网络安全】嘴对嘴教你利用XSS攻击,体验一次当黑客的感觉
  2. 产生频率或者占空比可调的PWM波【汇编语言】
  3. weka 连接oracle 命令,Weka连接Oracle数据库
  4. 让工作快乐的6大秘诀(工作重要,好的心情更重要哟,要做开心的自己)
  5. 最近学习dp的阶段小结(一)
  6. 使用 Linux 工具进行计算机取证
  7. 基于ESP32搭建物联网服务器十三(自已搭建一个MQTT服务器)
  8. CentOS 7.6无损调整分区大小
  9. python计算iris数据集的均值_模糊C均值聚类算法及python实现
  10. Adb interface驱动无法安装解决方法!