所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开
小麦昆也玩麦克纳姆轮
肥罗-阿勇 肥罗-阿勇 2019-11-23 15:38:34
2
7
简单
今年是建国70周年,DFROBOT很有前瞻性的举办了创意花车的比赛

我也参加了,为祖国献礼。

运气不错,获得了三等奖,得到了一台麦昆小车。

projectImage

想想第一次参加DFROBOT的活动也是参加麦昆挑战赛

但是最近一直忙着比赛,很久没和小麦昆一起玩了

最近在网上也很少见到大家玩小麦昆了,为什么呢?

因为最近大家都流行玩麦克纳姆轮,玩四驱了

小麦只有两驱,装不了麦克纳姆轮,所以暂时被大家冷落了

今年在逛MFSZ的时候突然发现一种很小的麦克纳姆轮

立马觉得这个和小麦昆很配,于是买了两套

projectImage

一开始想法很简单,加一个支架把轮子装上就好

可是忘记了,麦昆只有两个驱动

难道要再加两个驱动?

想来想去,灵光一现,我可以用两个小麦昆连起来啊

说干就干,用3D打印机做了两个连接板

(如下图绿色那块就是我自己做的连接板,那个位置麦昆本身就留有孔洞,看来一开始麦昆就预想了这种连接方式,实在是太牛了,赞)

projectImage

我这上面用一块大点的板子连起来,其实不必一定要这样,我这样是为了装18650电池

这个可以忽略

projectImage

装好之后就是程序了,在这里我是用一块MICROBIT板来控制这辆小麦昆

要注意的是:连接的小麦昆,一个是前车,一个是后车

前车比较容易控制,后车要注意整体前进的时候,后车实际是往后走,整体左转的时候,后车是右转

记住了这个程序就很简单了

前车程序如下:

(特别表扬一下mind+1.6.0版本的截图功能,按一下 CTRL+G就截了下面的图,发帖非常方便,赞)

projectImage
代码 代码
	                    					/*!
 * MindPlus
 * maqueen
 *
 */
#include <Maqueen_Motor.h>
#include <Microbit_Matrix.h>
#include <DFMicrobit_Radio.h>
// 函数声明
void onRadioReceive(String message);
void goahead();
void goleft();
void goright();
void gostop();
// 静态常量
const uint8_t bbcBitmap[][5] = {
	{B00000,B11011,B00000,B01010,B00100}
};
// 创建对象
Maqueen_Motor motor;


// 主程序开始
void setup() {
	Radio.setCallback(onRadioReceive);
	Radio.setGroup(7);
	Radio.turnOn();
	MMatrix.show(bbcBitmap[0]);
	digitalWrite(8,HIGH);
	digitalWrite(12,HIGH);
	goahead();
}
void loop() {

}

// 自定义函数
void goahead() {
	motor.motorRun(motor.LEFT,motor.CW,200);
	motor.motorRun(motor.RIGHT,motor.CW,200);
}
void goleft() {
	motor.motorRun(motor.LEFT,motor.CCW,200);
	motor.motorRun(motor.RIGHT,motor.CW,200);
}
void goright() {
	motor.motorRun(motor.LEFT,motor.CW,200);
	motor.motorRun(motor.RIGHT,motor.CCW,200);
}
void gostop() {
	motor.motorRun(motor.LEFT,motor.CW,0);
	motor.motorRun(motor.RIGHT,motor.CW,0);
}

// 事件回调函数
void onRadioReceive(String message) {
	if ((message=="goleft")) {
		goleft();
		delay(1000);
	}
	if ((message=="goright")) {
		goright();
		delay(1000);
	}
	if ((message=="goahead")) {
		goahead();
		delay(1000);
	}
	if ((message=="gostop")) {
		gostop();
		delay(1000);
	}
}


	                    				

后车程序如下:


projectImage
代码 代码
	                    					/*!
 * MindPlus
 * maqueen
 *
 */
#include <Maqueen_Motor.h>
#include <Microbit_Matrix.h>
#include <DFMicrobit_Radio.h>
// 函数声明
void onRadioReceive(String message);
void goahead();
void goleft();
void goright();
void gostop();
// 静态常量
const uint8_t bbcBitmap[][5] = {
	{B00000,B01010,B00000,B11011,B00100}
};
// 创建对象
Maqueen_Motor motor;


// 主程序开始
void setup() {
	Radio.setCallback(onRadioReceive);
	Radio.setGroup(7);
	Radio.turnOn();
	MMatrix.show(bbcBitmap[0]);
	goahead();
}
void loop() {

}

// 自定义函数
void goahead() {
	motor.motorRun(motor.LEFT,motor.CCW,200);
	motor.motorRun(motor.RIGHT,motor.CCW,200);
}
void goleft() {
	motor.motorRun(motor.LEFT,motor.CW,200);
	motor.motorRun(motor.RIGHT,motor.CCW,200);
}
void goright() {
	motor.motorRun(motor.LEFT,motor.CCW,200);
	motor.motorRun(motor.RIGHT,motor.CW,200);
}
void gostop() {
	motor.motorRun(motor.LEFT,motor.CCW,0);
	motor.motorRun(motor.RIGHT,motor.CW,0);
}

// 事件回调函数
void onRadioReceive(String message) {
	if ((message=="goleft")) {
		goleft();
		delay(1000);
	}
	if ((message=="goright")) {
		goright();
		delay(1000);
	}
	if ((message=="goahead")) {
		goahead();
		delay(1000);
	}
	if ((message=="gostop")) {
		gostop();
		delay(1000);
	}
}

	                    				

控制板程序如下:

projectImage
代码 代码
	                    					/*!
 * MindPlus
 * microbit
 *
 */
#include <Microbit_Matrix.h>
#include <DFMicrobit_Radio.h>
#include <Microbit_Sensors.h>
// 函数声明
void TiltLeftEvent();
void TiltRightEvent();
void LogoUpEvent();
void LogoDownEvent();
// 静态常量
const uint8_t bbcBitmap[][5] = {
	{B00100,B01000,B11111,B01000,B00100},
	{B00100,B00010,B11111,B00010,B00100},
	{B00100,B01110,B10101,B00100,B00100},
	{B10001,B01010,B00100,B01010,B10001}
};


// 主程序开始
void setup() {
	Sensors.onGesture(Sensors.TiltLeft,TiltLeftEvent);
	Sensors.onGesture(Sensors.TiltRight,TiltRightEvent);
	Sensors.onGesture(Sensors.LogoUp,LogoUpEvent);
	Sensors.onGesture(Sensors.LogoDown,LogoDownEvent);
	Radio.setGroup(7);
	Radio.turnOn();
}
void loop() {

}

// 事件回调函数
void TiltLeftEvent() {
	Radio.send("goleft");
	MMatrix.show(bbcBitmap[0]);
}
void TiltRightEvent() {
	Radio.send("goright");
	MMatrix.show(bbcBitmap[1]);
}
void LogoUpEvent() {
	Radio.send("goahead");
	MMatrix.show(bbcBitmap[2]);
}
void LogoDownEvent() {
	Radio.send("gostop");
	MMatrix.show(bbcBitmap[3]);
}

	                    				

先把小麦昆吊起来看看效果

还不错,符合预期

再下地实际测试

运行的很好,因为只用了一个18650电池,跑起来还是有点慢。

后期再慢慢改进。

这个只是抛砖引玉,给大家提供一种小麦昆装麦昆的思路

至于可以做什么,嘿嘿

小麦昆在两驱世界里无所不能,现在可以去四驱麦轮世界里再次展现其强大的能力了

最后建议dfrobot尽快推出四驱的小麦昆

Makelog作者原创文章,未经授权禁止转载。
2
7
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
[[c.comment_content]]
肥罗-阿勇
注册日期: 2019-04-30
来自佛山的一名普通信息技术老师,热爱计算机技术和创客,希望得到大家的指导。
创造力 5378
项目文章 26