概述
完成游戏机基础显示功能:在屏幕第1行显示随机数;第二行显示数字1-6,通过电位计可控制1-6数字滚动;第三行显示分数。
规则
模块清单
模块
其他设备
- USB数据线*1
- 传感器连接线*1
- 传感器外壳
- 乐高或其它固定结构
模块搭建
搭建
- 将模块和传感器组装起来:
- 将红色的核心模块,电池底座、OLED与绿色的扩展模块吸在一起;
- 将旋转电位计连接在Hub的A0管脚;
- 将USB连接线一端插入电池底座,另一端连接电脑。
编程
使用的程序块
编程思路
声明变量存数据,编写生成随机数的start函数,每次生成一个随机数;编写屏幕显示的display函数,在屏幕上显示游戏界面。最后运行所有函数。
开始编程
1、声明变量存储随机数和分数
a变量用来存储随机数,score变量用来储存分数。
2、编写生成随机数的start函数
生成一个1-6的随机数,存入a。
3、编写屏幕显示的display函数
OLED第一行显示a随机数。
第二行显示“1 2 3 4 5 6”横坐标为旋转电位计的值。
第三行显示SCORE:score(分数变量)。
4、执行函数
执行“start”和“display”两个函数。注意函数要放在声明下面。
测试结果
上传成功后,OLED第一行显示随机数一直在变,第二行显示“1 2 3 4 5 6”, 第三行显示SCORE:0。旋转电位计“1 2 3 4 5 6”飞快移动。
Q:“1 2 3 4 5 6”的宽度只有90个像素,旋转电位计的值为0-1023,在对准数字的过程中很难控制,如何解决呢?
A:可以用映射限制移动的范围。
- 将旋转电位计的值从1023-0映射到0-90(向左拧到头为90,向右拧到头为0),将结果存入b。
- 第二行数字横坐标设为60-b(因为第一行随机数的横坐标为60,所以当旋转电位计左拧到头时第二行数字6对齐随机数,右拧到头时第二行数字的横坐标也为60,正好对齐数字1)。
b变量用来存储随机数。
start函数无更改。
更改display函数内容。
将旋转电位计的值从1023-0映射到0-90(向左拧到头为0,向右拧到头为90),将结果存入b。
第二行数字横坐标设为60-b(因为第一行随机数的横坐标为60,当b为0时,第二行数字的横坐标也为60,正好对齐数字1)。
技术规范
相关案例
Bingo游戏机02
Bingo游戏机03
Bingo游戏机04
Bingo游戏机05
Q&A
|