回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

鸡毛信(心) 简单

头像 huangq1228 2019.06.10 1061 0
project-image

【标题】鸡毛信(心)

【介绍】接到粒子老师的通知,进入下一阶段的挑战,为麦昆设计一条独一无二的赛道,心中最美的赛道。看了示例蛋蛋君寻梦记,真的是脑洞全开,非常的棒。两个星期的不断思考,设计一条怎样的赛道呢,给我的麦昆赋予更好的本领和能量?我突然想到我小时候看的电影《鸡毛信》,儿童团的团长海娃接受了送鸡毛信的紧急任务以后,经过几番曲折和跋涉,克服了重重困难,发挥自己的聪明才智,终于把信送到了八路军张连长手中。 我决定用麦昆来再现海娃送信的艰难曲折,设计一条送鸡毛信的智慧道路。同时也是科技之路,麦昆将把鸡毛信变成鸡毛心, 用5*5点阵屏显示一颗“爱国心”,最终将鸡毛心的信息传递给张连长手中。(张连长的bit板上会接受到这颗心的信息)。麦昆海娃会用超声波传感器走出鬼子的森林迷宫,用巡线传感穿越鬼子哨兵的封锁,机智通过鬼子岗楼的跷跷板桥,偷偷推开机关,打开通往山区的暗道,胜利的把信息交给张连长(两块bit板之间用无线发送和无线接收,传递鸡毛心)。

材料清单

  • 麦昆小车 X1
  • micro:bit和扩展板 X1
  • 硬板纸 X1
  • 乐高零件 X1
  • 电工胶带 X1
  • 一次性纸杯 X1
  • 热熔胶枪 X1
  • Mind+ X1

步骤1 拿起热熔胶枪,硬板纸,开始制作迷宫、赛道、跷跷板桥、高山等。

project-image
project-image

步骤2 用废旧的一次性杯子粘上鬼子的图片

project-image

步骤3 制作鬼子把守的桥梁。

project-image
project-image

步骤4 麦昆送信的赛道完成

project-image
project-image
project-image
project-image
project-image
project-image

步骤5 开始编程序:巡线、超声波、遥控、无线发送、无线接收等。不断的调试中,最后整合在一起。

project-image
project-image
project-image

步骤6 拍摄视频、编辑视频。

project-image
代码
#include <DFRobot_NeoPixel.h>
#include <Microbit_Matrix.h>
#include <Maqueen_Motor.h>
#include <DFMicrobit_Radio.h>
#include <DFRobot_URM10.h>
#include <DFRobot_IRremote_dal.h>

double df_flag;
double df_moshizhi;

DFRobot_NeoPixel  rgb_display_15;
Maqueen_Motor motor;
DFRobot_URM10 urm10(1,2);
DFROBOT_IRremote_Receive remote(16);
void df_dengd();
void df_xunxian();
void df_xin();
void df_bizhang();
void df_jimaoxin();

void df_dengd()
{
	rgb_display_15.setRangeColor(-1, -1, 0xff0000);
	rgb_display_15.rotate(1);
}

void df_xunxian()
{
	MMatrix.show(MMatrix.SMILE);
	if (((String("0") + String("0")) == (String(digitalRead(13)) + String(digitalRead(14))))) {
		motor.motorStop(motor.LEFT);
		motor.motorStop(motor.RIGHT);
	}
	if (((String("1") + String("1")) == (String(digitalRead(13)) + String(digitalRead(14))))) {
		if ((df_flag == 1)) {
			motor.motorRun(motor.LEFT,motor.CCW,20);
			motor.motorRun(motor.RIGHT,motor.CW,50);
		}
		else {
			motor.motorRun(motor.RIGHT,motor.CCW,20);
			motor.motorRun(motor.LEFT,motor.CW,50);
		}
	}
	if (((String("0") + String("1")) == (String(digitalRead(13)) + String(digitalRead(14))))) {
		motor.motorRun(motor.LEFT,motor.CW,120);
		motor.motorRun(motor.RIGHT,motor.CW,120);
		df_flag = 1;
	}
	if (((String("1") + String("0")) == (String(digitalRead(13)) + String(digitalRead(14))))) {
		motor.motorRun(motor.LEFT,motor.CW,120);
		motor.motorRun(motor.RIGHT,motor.CW,120);
		df_flag = 2;
	}
}

void df_xin()
{
	Radio.turnOn();
	Radio.setGroup(7);
	Radio.send("O");
	MMatrix.show(MMatrix.HEART);
	delay(1000);
	MMatrix.show(MMatrix.HEART_SMALL);
	delay(1000);
	MMatrix.clear();
}

void df_bizhang()
{
	rgb_display_15.setRangeColor(-1, -1, 0x00ff00);
	MMatrix.show(MMatrix.COW);
	motor.motorRun(motor.RIGHT,motor.CW,150);
	motor.motorRun(motor.LEFT,motor.CW,20);
	if (((urm10.getDistanceCM()) <= 17)) {
		motor.motorRun(motor.LEFT,motor.CW,150);
		motor.motorRun(motor.RIGHT,motor.CW,0);
		delay(200);
	}
}

void df_jimaoxin()
{
	MMatrix.show(MMatrix.HEART);
}

void onIRReceive(uint8_t data_IR)
{
	if ((data_IR == 207)) {
		df_moshizhi = 1;
	}
	else {
		if ((data_IR == 231)) {
			df_moshizhi = 2;
		}
		else {
			if ((data_IR == 133)) {
				df_moshizhi = 3;
			}
			else {
				if ((data_IR == 239)) {
					df_moshizhi = 4;
				}
				else {
					if ((data_IR == 199)) {
						df_moshizhi = 5;
					}
				}
			}
		}
	}
	if ((data_IR == 253)) {
		motor.motorRun(motor.LEFT,motor.CW,150);
		motor.motorRun(motor.RIGHT,motor.CW,150);
	}
	else {
		if ((data_IR == 103)) {
			motor.motorRun(motor.LEFT,motor.CCW,150);
			motor.motorRun(motor.RIGHT,motor.CCW,150);
		}
		else {
			if ((data_IR == 31)) {
				motor.motorRun(motor.LEFT,motor.CW,0);
				motor.motorRun(motor.RIGHT,motor.CW,150);
			}
			else {
				if ((data_IR == 111)) {
					motor.motorRun(motor.LEFT,motor.CW,150);
					motor.motorRun(motor.RIGHT,motor.CW,0);
				}
				else {
					if ((data_IR == 87)) {
						motor.motorStop(motor.LEFT);
						motor.motorStop(motor.RIGHT);
						rgb_display_15.clear();
						df_moshizhi = 0;
					}
				}
			}
		}
	}
}


void setup() {
	rgb_display_15.begin(15, 4, 255);
	df_moshizhi = 0;
	df_flag = 0;
	remote.begin();
	remote.setCallback(onIRReceive);
}

void loop() {
	if ((df_moshizhi == 1)) {
		df_jimaoxin();
	}
	else {
		if ((df_moshizhi == 2)) {
			df_bizhang();
		}
		else {
			if ((df_moshizhi == 3)) {
				df_xunxian();
			}
			else {
				if ((df_moshizhi == 4)) {
					df_dengd();
				}
				else {
					if ((df_moshizhi == 5)) {
						df_xin();
					}
				}
			}
		}
	}
}

评论

user-avatar