回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页
best-icon

小麦昆也玩麦克纳姆轮 简单

头像 肥罗-阿勇 2019.11.11 4233 12

今年是建国70周年,DFROBOT很有前瞻性的举办了创意花车的比赛

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

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

project-image

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

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

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

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

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

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

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

project-image

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

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

难道要再加两个驱动?

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

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

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

project-image

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

这个可以忽略

project-image

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

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

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

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

前车程序如下:

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

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

后车程序如下:


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

控制板程序如下:

project-image
代码
/*!
 * 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尽快推出四驱的小麦昆

评论

user-avatar
  • 现在就想起来以前不

    现在就想起来以前不2023.08.11

    这个轮子好神奇

    0
    • 现在就想起来以前不

      现在就想起来以前不2023.08.11

      这个轮子好神奇

      0
      • DFrkmdYrty_

        DFrkmdYrty_2021.01.24

        国赛三等奖,勇哥牛逼!

        0
        • DFS1w2cb8o8

          DFS1w2cb8o82020.08.07

          厉害厉害

          0
          • 1775796946

            17757969462019.12.31

            看着很酷啊

            0
            • 肥罗-阿勇

              肥罗-阿勇2019.11.23

              麦昆那个位置本来就有孔洞的,不需要打洞,我是自己用3D打印机做了一块板。当然也可以用激光切割机切一块板,或者直接用一块板,自己钻几个孔都是可以的。

              0
              • Tarzen

                Tarzen2019.11.22

                直接麦昆身上打洞?然后两辆连起来?

                0
                • 肥罗-阿勇

                  肥罗-阿勇2019.11.22

                  淘宝有卖,85一套,还不错

                  0
                  • 肥罗-阿勇

                    肥罗-阿勇2019.11.22

                    淘宝有卖,85一套,还不错

                    0
                    • 肥罗-阿勇

                      肥罗-阿勇2019.11.22

                      淘宝有卖,85一套,还不错

                      0
                      • 铁熊

                        铁熊2019.11.22

                        那个小的麦轮哪里有卖?多少钱啊?

                        0
                        • laai

                          laai2019.11.17

                          抢勇哥沙发,一边忙比还不忘时刻分享,点赞。

                          0