所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开

小麦昆也玩麦克纳姆轮2

肥罗-阿勇 肥罗-阿勇 2019-11-23 08:47:01

在上一篇《小麦昆也玩麦克纳姆轮》发表之后,很多小伙伴问了我很多问题

一、哪里可以买到这种轮子?

上万能的某宝搜索 迷你麦克纳姆轮就可以找到,不过要注意联轴器选择N20的


二、如果不用另外一块板子控制,单独一个麦轮小麦昆该如何行动?

今天就这个问题做一个解答。

我们先来看一下图

projectImage

从图可以看出,两个小车一个前车一个后车,互相之间通过microbit(或者掌控板)自带的无线广播通讯

但是要注意的是前车是前进,后车是往后退。切记!

还有要注意后车的左右轮位置进行了调换。


其运动的原理就是 前车每次运动前都通知后车同步。


首先我们来看看麦轮有多少种走法(借用铁熊大神的图片)

projectImage

今天我们以前面六种为例来看看如何走


我们先来做前车程序,前车程序针对六种走法我做了六个函数

projectImage
代码 代码
	                    					/*!
 * 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");
}

	                    				

后车比较简单,接收信号,做出同步就可以了

projectImage
代码 代码
	                    					/*!
 * 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);
	}
}

	                    				

来看看效果,这里只是简单的六种走路方式效果展示

包括前进,后腿,左移,右移,左转,右转

效果还是不错的。


有了这个之后,后车的代码无需更改,只要更改前车的主程序就可以了。

一台完整的麦轮小麦昆就做好了。

剩下的就看大家的创意了。

Makelog作者原创文章,未经授权禁止转载。
0
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
|
[[c.comment_content]]