概述
优化检测位置程序,防止“乱拧瞎蒙”的方法刷分。
模块清单
模块
其他设备
- USB数据线*1
- 传感器连接线*3
- 传感器外壳
- 乐高或其它固定结构
模块搭建
搭建
- 将模块和传感器组装起来:
- 将红色的核心模块,电池底座、OLED与绿色的扩展模块吸在一起;
- 将蜂鸣器连接在Hub的8/9管脚;
- 将旋转电位计连接在Hub的A0管脚;
- 将全彩LED连接在Hub的6/7管脚。
- 将USB连接线一端插入电池底座,另一端连接电脑。
编程
编程思路
其他程序思路与上堂课一样,需要加上分数条件判断,当得分等于15时,绿灯亮1秒后熄灭,分数归零。
使用的程序块
开始编程
1、声明变量,存储数据
'2、 胜利判断
win函数内容:如果score等于15(得够15分)。
则绿灯点亮1秒,score变量清零。
3、start函数无更改。
4、display函数无更改。
5、BINGO函数无更改。
6、time_out函数无更改。
测试结果
上传成功后,OLED第一行显示随机数(3秒没对齐则重新生成),第二行显示“1 2 3 4 5 6”, 第三行显示SCORE:0。旋转电位计“1 2 3 4 5 6”移动,当对齐一段时间后才得分,第三行的显示得分会改变,当得分超过15时,绿灯亮1秒后灭,游戏重新开始。
Q:检测摇杆按下,开始游戏,游戏结束显示游戏用时。
A:今天我们学习一个新的程序块,可以在程序初始时执行一次,之后再也不执行。
开始初始化函数,等待摇杆按下开始游戏,计时开始,得到15分后结束计时,再等待摇杆按下重新游戏。
1、time变量用来存储完成时间。
2、初始化函数编写
初始化函数等待摇杆按下(开始键),计时器timer2开始计时,用来存储记录完成时间。
3、win函数更改
如果到达15分,计时器timer2的值存入time变量, time变量除1000(因为时间原始值单位是毫秒)。OLED屏上显示time的值。绿灯亮1秒。等待摇杆按下(开始键)
score变量清零。计时器timer2重新开始。
4、start函数不用改。
5、BINGO函数无更改。
6、time_out函数无更改。
技术规范
相关案例
Q&A
|