在上一篇《小麦昆也玩麦克纳姆轮》发表之后,很多小伙伴问了我很多问题
一、哪里可以买到这种轮子?
上万能的某宝搜索 迷你麦克纳姆轮就可以找到,不过要注意联轴器选择N20的
二、如果不用另外一块板子控制,单独一个麦轮小麦昆该如何行动?
今天就这个问题做一个解答。
我们先来看一下图
从图可以看出,两个小车一个前车一个后车,互相之间通过microbit(或者掌控板)自带的无线广播通讯
但是要注意的是前车是前进,后车是往后退。切记!
还有要注意后车的左右轮位置进行了调换。
其运动的原理就是 前车每次运动前都通知后车同步。
首先我们来看看麦轮有多少种走法(借用铁熊大神的图片)
今天我们以前面六种为例来看看如何走
我们先来做前车程序,前车程序针对六种走法我做了六个函数
代码
/*!
* MindPlus
* maqueen
*
*/
#include <Maqueen_Motor.h>
#include <DFMicrobit_Radio.h>
// 函数声明
void go1();
void go2();
void go3();
void go4();
void go5();
void go6();
// 创建对象
Maqueen_Motor motor;
// 主程序开始
void setup() {
Radio.setGroup(7);
Radio.turnOn();
}
void loop() {
go1();
delay(2000);
go2();
delay(2000);
go3();
delay(2000);
go4();
delay(2000);
go5();
delay(1000);
go6();
delay(1000);
}
// 自定义函数
void go1() {
motor.motorRun(motor.LEFT,motor.CW,200);
motor.motorRun(motor.RIGHT,motor.CW,200);
Radio.send("go1");
}
void go2() {
motor.motorRun(motor.LEFT,motor.CCW,200);
motor.motorRun(motor.RIGHT,motor.CCW,200);
Radio.send("go2");
}
void go3() {
motor.motorRun(motor.LEFT,motor.CCW,200);
motor.motorRun(motor.RIGHT,motor.CW,200);
Radio.send("go3");
}
void go4() {
motor.motorRun(motor.LEFT,motor.CW,200);
motor.motorRun(motor.RIGHT,motor.CCW,200);
Radio.send("go4");
}
void go5() {
motor.motorRun(motor.LEFT,motor.CCW,200);
motor.motorRun(motor.RIGHT,motor.CW,200);
Radio.send("go5");
}
void go6() {
motor.motorRun(motor.LEFT,motor.CW,200);
motor.motorRun(motor.RIGHT,motor.CCW,200);
Radio.send("go6");
}
后车比较简单,接收信号,做出同步就可以了
代码
/*!
* MindPlus
* maqueen
*
*/
#include <Maqueen_Motor.h>
#include <DFMicrobit_Radio.h>
// 函数声明
void onRadioReceive(String message);
// 创建对象
Maqueen_Motor motor;
// 主程序开始
void setup() {
Radio.setCallback(onRadioReceive);
Radio.setGroup(7);
Radio.turnOn();
}
void loop() {
}
// 事件回调函数
void onRadioReceive(String message) {
if ((message=="go1")) {
motor.motorRun(motor.LEFT,motor.CCW,200);
motor.motorRun(motor.RIGHT,motor.CCW,200);
}
if ((message=="go2")) {
motor.motorRun(motor.LEFT,motor.CW,200);
motor.motorRun(motor.RIGHT,motor.CW,200);
}
if ((message=="go3")) {
motor.motorRun(motor.LEFT,motor.CW,200);
motor.motorRun(motor.RIGHT,motor.CCW,200);
}
if ((message=="go4")) {
motor.motorRun(motor.LEFT,motor.CCW,200);
motor.motorRun(motor.RIGHT,motor.CW,200);
}
if ((message=="go5")) {
motor.motorRun(motor.LEFT,motor.CCW,200);
motor.motorRun(motor.RIGHT,motor.CW,200);
}
if ((message=="go6")) {
motor.motorRun(motor.LEFT,motor.CW,200);
motor.motorRun(motor.RIGHT,motor.CCW,200);
}
}
来看看效果,这里只是简单的六种走路方式效果展示
包括前进,后腿,左移,右移,左转,右转
效果还是不错的。
有了这个之后,后车的代码无需更改,只要更改前车的主程序就可以了。
一台完整的麦轮小麦昆就做好了。
剩下的就看大家的创意了。
评论