41616| 38
|
[项目] 掌控板+麦轮,Mixly + Blynk,让你的麦轮战甲嗨炸全场! |
话不多说,上来就是一个演示视频: 随着大疆 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 个轮子与地面接触的辊子所形成的图形,并不是从正上方看到的棍子形成的图形的形状!
不管是 **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 个麦轮的运动进行分解,分解成沿辊子轴向的速度分量和垂直辊子轴向的速度分量,其中垂直辊子轴向的速度分量是可以忽略的,如下图所示。下图中的 `a` 和 `b` 分别代表每个轮子到车架轴心的 `x` 轴方向和 `y` 轴方向的长度。 根据这些规定,当麦轮战车想要沿任一方向运动和转动时,我们可以得出 4 个麦轮控制速度的计算公式如下: 上面的计算公式,分别对应狄仁杰麦轮战车 M1、M2、M3、M4 这 4 个轮子的速度。这个公式中,既包含了平行移动,也包含了转动,只要设置参数合理,理论上可以实现麦轮战车所有的运动方式。 公式中每个参数的意义如下图所示: 有了这个公式以后,我们就可以控制麦轮战车沿着任意方向移动了。 具体公式推导可以参考知乎上的这篇文章:麦克纳姆轮浅谈:https://zhuanlan.zhihu.com/p/20282234 麦轮的原理也可以看一下 RoboMaster 机甲大师官方推出的这个视频:https://www.bilibili.com/video/av17229132/ # 控制篇 # 有了运动公式以后,就可以进行控制了。控制主要分为两个部分,一个是麦轮战车底层的运动控制,一个是遥控端的程序编写。 根据上面的公式,我们可以知道,每辆战车组装好造型之后,`a` 和 `b` 都是固定不变的,因此要想控制一辆麦轮战车疯狂漂移,我们需要知道 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` 的长度;`m1speed`、`m2speed`、`m3speed`、`m4speed` 分别代表 4 个麦轮(电机)的速度。注意,为了后面计算时不被取整影响,所以这里所有的变量参数都设置成了小数,后面其他函数中用到的参数也都是小数。 然后编写 4 个麦轮单独控制的函数,规定速度参数 `speed` 为正时,表示向前进方向运动;`speed` 为负时,表示向后退方向运动。4 个麦轮单独控制的函数如下图所示: 然后在定义一个取最大值函数 `maxNumberAbs()`,它是作用是获取 4 个值中的最大值,后面会用来比较 4 个速度值,并将最大的速度值存储在 `maxNumber` 变量中。 接着就可以根据上面的计算公式,编写整车运动控制函数了。定义这个函数的名称为 `move()`,这个函数里面有 3 个变量:`vx` 代表 x 轴方向的运动速度;`vy` 代表 y 轴方向的运动速度;`w` 代表转动速度。这几个速度值都可正可负。这个函数中还有两个常量:`alength` 和 `blength`,这两个数值的意义上文已经说明。另外由于每个电机转动速度最大为 255,而在 Blynk 中我是随意设置的数值(最好计算一下,其实我也是懒得计算想快点玩了),所以这里要将每个轮子计算后的速度值归一化,并约束到 -255~255 之间。这里就用到了上面定义 `maxNumberAbs()` 的函数。 有了这几个函数以后,我们只要在 Blynk 上给它传输 `vx`、`vy`、`w` 这 3 个变量就可以控制每个轮子的运动了。首先初始化 Blynk BLE 蓝牙连接,其中 Blynk 授权码填写你自己手机端产生的授权码,BLE 名称随意,取一个你自己喜欢的名字即可,这里我保持了默认的 `Blynk` 没改。 然后用`从App获取数据`模块分别从两个摇杆获取速度参数,其中控制移动的摇杆,连接在 Blynk 的` V0` 虚拟管脚,控制转动的摇杆,连接在 Blynk 的 `V1` 虚拟管脚 ,获取相应速度后,直接用 `move` 函数控制移动即可。 然后再编写水弹枪武器控制程序,如下图所示 至此,狄仁杰战甲的基本控制程序就编写好了,当然你也可以添加更多功能,比如武器角度控制,灯光控制系统等,由于这篇文章只是简单的试玩,就暂时不展开了。完整的程序如下图所示。 上传程序,连接蓝牙,开始战斗吧! # 总结 # 体验篇就到这里啦,这篇文章只是简单分享了一种麦轮控制的玩法,实际上基于麦轮战车,我们还能拓展出更多玩法,比如漂移巡线、目标识别、图传跟踪、击打竞技等,后面有时间再慢慢跟大家分享。 最后来简单总结一下,麦轮战车的运动方式虽然比一般的小车要复杂一些,但是它的玩法也更多,硬核指数也更高,绝对是玩创客的朋友必玩的一个项目,而且 DIY 会更好玩哦。 这篇文章用到的狄仁杰麦轮战车不仅可以 DIY,还配备了掌控板做控制,加装了武器系统,后期更是可以加上图像识别、人工智能等更多酷炫狂拽的技能,不仅仅适合入门麦轮战车,更是后期玩进阶改装的绝佳选择!如果再配备 Blynk 控制系统,控制的灵活性就更高了,遥控端几乎可以不受硬件的限制,而且还不用增加任何材料成本,通过简单的拖拽,就能搞定一个复杂的 App,甚至还能加上类似大疆的图传系统,有空的朋友可以先去试试看哦。 最后再提醒一下: (这两句话,上一句出自汝州一中朱现伟老师,下一句出自穷玩猫牛老师) 全文完! # 广告时间 # 最后再打个小广告:欢迎关注我的个人公众号“铁熊玩创客”,不 kan 定 xin 期 qing 更新创客制作、技术教程以及一些胡言乱语。 # 往期作品 # - 掌控超声波传感器,可能没你想的那么简单:https://mc.dfrobot.com.cn/thread-296500-1-1.html - 首发测评 | 掌控板 V1.1 测试版语音识别初体验:https://mc.dfrobot.com.cn/thread-296662-1-1.html- 学会掌控板 + Siri 语音控制,只要半小时:https://mc.dfrobot.com.cn/thread-297311-1-1.html ## 创客技巧 - 创客项目缺少高颜值电路图?看这里就对了:https://mc.dfrobot.com.cn/thread-289862-1-1.html - 小白也能学会的激光切割创意盒子设计方法:https://mc.dfrobot.com.cn/thread-276550-1-1.html ## 桌面机器人 - 桌面萌宠 Pando,这个机器人靠卖萌为生好多年:https://mc.dfrobot.com.cn/thread-35162-1-1.html - 桌面萌宠 Pandy,谁说智能车不能卖萌:https://mc.dfrobot.com.cn/thread-36721-1-1.html - 吃货战车:谁说泡面只能用来填肚子:https://mc.dfrobot.com.cn/thread-34679-1-1.html - 纯野生黑科技,分分钟教你自制全向麦熊车:https://mc.dfrobot.com.cn/thread-268968-1-1.html - 不会垃圾分类?教你制作一个瓦力机器人来帮你:https://mc.dfrobot.com.cn/thread-296340-1-1.html ## 智能家居 - Hey Siri, 打开 HAY 旋转灯:https://mc.dfrobot.com.cn/thread-26865-1-1.html - Hey Siri,请告诉我传感器数据:https://mc.dfrobot.com.cn/thread-28859-1-1.html ## 创意生活 - HAY,你好 ── DIY HAY旋转灯:https://mc.dfrobot.com.cn/thread-26212-1-1.html - DIY 你的专属酷炫照片投影灯:https://mc.dfrobot.com.cn/thread-26900-1-1.html - 好色灯:你们吸猫,我吸色:https://mc.dfrobot.com.cn/thread-34483-1-1.html - DIY 你的专属酷炫照片投影灯:https://mc.dfrobot.com.cn/thread-26900-1-1.html - 没有什么问题是猜拳不能解决的:https://mc.dfrobot.com.cn/thread-38060-1-1.html - 律动头饰皇冠:每个女孩心中都有一个公主梦:https://mc.dfrobot.com.cn/thread-267927-1-1.html ## 学生作品 - 戒烟帽:https://mc.dfrobot.com.cn/thread-280204-1-1.html - 体感骑行安全帽:https://mc.dfrobot.com.cn/thread-280093-1-1.html ## HCRbot 机器人(SLAM) - HCRbot 系列 1──HCRbot 机器人简介:https://mc.dfrobot.com.cn/thread-26938-1-1.html - HCRbot 系列 2──HCRbot 硬件介绍与设置:https://mc.dfrobot.com.cn/thread-26939-1-1.html - HCRbot 系列 3──HCRbot 上位机 PC 端软件设置:https://mc.dfrobot.com.cn/thread-26975-1-1.html - HCRbot 系列 4──HCRbot下位机设置(树莓派版):https://mc.dfrobot.com.cn/thread-27020-1-1.html - HCRbot 系列 5──HCRbot下位机设置(Odroid XU4版):https://mc.dfrobot.com.cn/thread-27161-1-1.html - HCRbot 系列 6──HCRbot 底层驱动 OpenCR 设置:https://mc.dfrobot.com.cn/thread-27296-1-1.html - HCRbot 系列 7──启动 HCRbot 机器人:https://mc.dfrobot.com.cn/thread-28248-1-1.html - HCRbot 系列 8──远程控制 HCRbot 机器人:https://mc.dfrobot.com.cn/thread-29354-1-1.html - HCRbot 系列 9──控制 HCRbot 机器人绘制平面地图(SLAM):https://mc.dfrobot.com.cn/thread-29936-1-1.html |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed