抢答器(4级)
题目说明
器件:Atmega328P 主控板 1 块,按键模块 2 个(A 键和 B 键)、LED 模块 2 个(LED_A 和 LED_B),舵机 1 个及相应辅件。以上模块也可使用分立器件结合面包板搭建。
功能实现
抢答器由 A、B 双方组成,分别位于左右两侧,A 方包含 1 个按键模块(A 键)和 1 个 LED 模块(LED_A),B 方包含 1 个按键模块(B 键)和 1 个 LED 模块(LED_B),舵机位于双方的中间位置,用于指向抢答获胜选手。具体任务说明及要求如下:
-
初始状态:当 A 键和 B 键没有按下时,LED_A 和 LED_B 均处于熄灭状态,舵机舵盘指向 90 度位置;
-
抢答开始后,率先按下按键一方的 LED 灯闪烁,另一方 LED 灯保持熄灭状态,舵机舵盘指向抢答获胜一方;
-
当 A 键和 B 键再次释放时,LED 灯和舵机回到初始状态;
-
控制程序采用 Arduino C/C++ 代码编写,不得使用图形化软件编写;
-
未作规定处可自行处理,无明显与事实违背即可。
提交要求
-
将程序放在一个文件夹中,压缩为 1 个“rar 或 zip”格式文件,并命名为
DJKS4_身份证号,大小 5M 以下; -
将程序文件通过“上传附件”按钮进行上传;
-
程序编写过程中不得打开其它示例程序,如发现,实操成绩按照 0 分处理。
参考资料
舵机类库及常用成员函数如下,供参考。
-
头文件:
Servo.h -
类库对象:
Servo -
成员函数:
attach(Pin) //指定引脚的关联引脚
write(angle) //让舵机转动到指定的角度 子题 填空题
电路搭设
元器件
-
装置中包含 2 个 LED 灯模块或 LED 灯;(4 分)
-
装置中包含 2 个按键模块或按键开关;(4 分)
-
装置中包含舵机。(2 分)
电路搭设
-
LED 灯模块或 LED 灯与主控板正确连接;(4 分)
-
按键模块或按键开关与主控板正确连接;(4 分)
-
舵机和主控板正确连接。(2 分)
子题 填空题
功能实现
-
当 A 键和 B 键没有按下时,LED_A 和 LED_B 处于熄灭状态;(5 分)
-
当 A 键和 B 键没有按下时,舵机处于 90 度位置。(5 分)
以下功能请测评老师通知考生将抢答动作分解为先后两个动作进行评测。
-
当先按下 A 键时,LED_A 闪烁,LED_B 熄灭;(10 分)
-
当先按下 A 键时,舵机指向 A 键方向;(5 分)
-
当先按下 A 键后,再按下 B 键,LED 和舵机均保持不变(LED_A 一直保持闪烁,LED_B 保持熄灭,舵机指向 A 键方向);(15 分)
-
当 A 键和 B 键均释放时,LED_A 和 LED_B 均熄灭,舵机指向 90 度位置;(10 分)
-
当先按下 B 键时,LED_B 闪烁,LED_A 熄灭;(10 分)
-
当先按下 B 键时,舵机指向 B 键方向;(5 分)
-
当先按下 B 键后,再按下 A 键,LED 和舵机均保持不变(LED_B 一直保持闪烁,LED_A 保持熄灭,舵机指向 B 键方向)。(15 分)