【标题】鸡毛信(心)
【介绍】接到粒子老师的通知,进入下一阶段的挑战,为麦昆设计一条独一无二的赛道,心中最美的赛道。看了示例蛋蛋君寻梦记,真的是脑洞全开,非常的棒。两个星期的不断思考,设计一条怎样的赛道呢,给我的麦昆赋予更好的本领和能量?我突然想到我小时候看的电影《鸡毛信》,儿童团的团长海娃接受了送鸡毛信的紧急任务以后,经过几番曲折和跋涉,克服了重重困难,发挥自己的聪明才智,终于把信送到了八路军张连长手中。 我决定用麦昆来再现海娃送信的艰难曲折,设计一条送鸡毛信的智慧道路。同时也是科技之路,麦昆将把鸡毛信变成鸡毛心, 用5*5点阵屏显示一颗“爱国心”,最终将鸡毛心的信息传递给张连长手中。(张连长的bit板上会接受到这颗心的信息)。麦昆海娃会用超声波传感器走出鬼子的森林迷宫,用巡线传感穿越鬼子哨兵的封锁,机智通过鬼子岗楼的跷跷板桥,偷偷推开机关,打开通往山区的暗道,胜利的把信息交给张连长(两块bit板之间用无线发送和无线接收,传递鸡毛心)。
材料清单
- 麦昆小车 X1
- micro:bit和扩展板 X1
- 硬板纸 X1
- 乐高零件 X1
- 电工胶带 X1
- 一次性纸杯 X1
- 热熔胶枪 X1
- Mind+ X1
步骤1 拿起热熔胶枪,硬板纸,开始制作迷宫、赛道、跷跷板桥、高山等。
步骤2 用废旧的一次性杯子粘上鬼子的图片
步骤3 制作鬼子把守的桥梁。
步骤4 麦昆送信的赛道完成
步骤5 开始编程序:巡线、超声波、遥控、无线发送、无线接收等。不断的调试中,最后整合在一起。
步骤6 拍摄视频、编辑视频。
代码
#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();
}
}
}
}
}
}
评论