点球大战

来自Microduino Wikipedia
Zhangfengfeng讨论 | 贡献2017年6月13日 (二) 03:46的版本 模块
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

概述

Anywhere game ball.jpg

做一个双人对战的点球大战游戏机,检测是否有球通过球门并计分。
适合套件:mCookie302


模块清单

模块

模块 数量 功能
mCookie-Core 1 核心板
电池盒 1 程序下载和供电模块
mCookie-Hub 1 传感器转接板
彩灯 2 发光
灰度传感器 2 检测物体

其他设备

  • USB数据线*1
  • 传感器连接线*4
  • 传感器外壳
  • 积木或其它固定结构
Anywhere game ball-module.jpg

模块搭建

搭建

Anywhere game ball-step.jpg
  • 将模块和传感器组装起来:
    • 将红色的核心模块,电池底座与绿色的扩展模块吸在一起;
    • 将2盏全彩LED灯连接在Hub的6/7管脚;
    • 将红外反射传感器连接在Hub的A0/A1、A2/A3管脚。
    • 将USB连接线一端插入电池底座,另一端连接电脑;

编程

使用的程序块


编程思路

如果1号门发现有球,且上一刻记忆没有球,则判断为进球(记忆有球),如果1号门发现无球,且上一刻记忆有球,则判断为球通过(加分并清除记忆);2号球门同理。

Mixly-ctrl-game ball.jpg

开始编程

1、彩灯准备,变量声明赋值
彩灯准备:6号管脚上接2个彩灯。
声明一个名叫score1的变量,用来记录1号选手分数。
声明一个名叫player1的变量,用来记录1号球门状态。
声明一个名叫score2的变量,用来记录2号选手分数。
声明一个名叫player2的变量,用来记录2号球门状态。
将两位选手比分以“1号分数:2号分数”的格式显示在电脑屏幕上。

Mixly-ctrl-game ball-code.jpg

2、判断1号球门通过,加分数
如果1号球门状态为0(没进球),则执行内部程序。如果A0管脚红外反射传感器的距离值小于600(发现进球)。则1号球门状态设为1(进球),并且亮1号绿灯。
如果1号球门状态为1(进球),则执行内部程序。如果A0管脚红外反射传感器的距离值大于650(发现球通过了球门)。则1号球门状态设为0(可以接受下一次射门了),变量score1加1,1号灯熄灭。

Mixly-ctrl-game ball-code1.jpg

3、判断2号球门通过,加分数
如果2号球门状态为0(没进球),则执行内部程序。如果A2管脚红外反射传感器的距离值小于600(发现进球)。则2号球门状态设为1(进球),并且亮2号绿灯。
如果2号球门状态为1(进球),则执行内部程序。如果A2管脚红外反射传感器的距离值大于650(发现通过了球门)。则2号球门状态设为0(可以接受下一次射门了),变量score2加1,2号灯熄灭。

Mixly-ctrl-game ball-code2.jpg



测试结果
上传成功后,用物体靠近红外反射传感器再拿开,可以看到绿灯闪一下,检测成功。

Anywhere game ball.jpg




技术规范


相关案例


Q&A