青少年机器人技术等级考试 实操题(五级)及评分标准(2021-9月)
主题:串口交互心形图案显示
器件:ESP32主控、8x8LED点阵、74HC595串口寄存器芯片(或模块)及相关器件。
要求:
使用74HC595串口寄存器芯片控制8x8LED点阵循环显示大小心形图案,通过串口输入报文来设置大小心形图案各自的显示时长。
报文的格式示例为:B100S300
其中:B100表示显示大的心形图案时长100毫秒;S300表示显示小的心形图案时长300毫秒。显示时间范围在100~999毫秒之间。
具体要求如下:
1、程序启动后,8x8LED点阵最外侧四边的LED灯点亮,中间区域LED灯熄灭。
2、在串口监视器窗口输入框输入上述格式的报文后,在串口监视器窗口输出解析后相应的报文内容。以报文B100S300为例,串口监视器窗口输出的内容为B-100:S-300。
3、8x8LED根据报文的内容连续切换显示大小两个心形图案。以报文B100S300为例,先显示大的心形图案,时长100毫秒,然后显示小的心形图案,时长300毫秒,依次反复,直至输入新的报文数据。
4、程序采用C代码编写,不得使用外部库调用。
5、未作规定处可自行处理,无明显与事实违背即可。
6、编写程序文件命名规则为:DJKS5_身份证号,考试完毕拷贝上交备案。
7、程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按照0分处理。
说明:
1、数组heartB[]和heartS[]分别为大小心形的点阵数据。编程时可参考使用。
byte heartB[] = {0x99, 0x00, 0x00, 0x00, 0x81, 0xC3, 0xE7, 0xFF};
byte heartS[] = {0xFF, 0xDB, 0x81, 0x81, 0xC3, 0xE7, 0xFF, 0xFF};
2、String类库的成员函数及其功能描述如下:
indexOf(val); // 自左向右查找字符val在字符串对象实例中的位置。
substring(from,to) // 从字符串对象实例中截取指定位置的字符串。
toInt(); // 将字符串转换为整数。
3、Serial类库的成员函数及其功能描述如下:
avaiable(); // 返回UART接收缓冲区中的字节数。
read(); // 从UART接收缓冲区读取数据。
readString(); // 从UART接收缓冲区中读取字符串。
评分组成
实操题总分100分,由两部分组成,分别为:电路搭设和功能呈现。其中电路搭设分值20分,功能呈现80分。
电路搭设评分 -- 总分20分
本题可采用单块74HC595移位寄存器芯片、两块74HC595移位寄存器芯片或74HC595移位寄存器芯片模块进行电路搭设。如没有采用7474HC595移位寄存器芯片,电路搭设为0分。
原器件:
(1) 74HC595移位寄存器模块(或元器件) 5分
(2) 8x8LED点阵 5分
电路搭设:
(3) 8x8LED点阵与74HC595连接 5分
(4) 74HC595与主控板连接 5分
功能呈现评分 -- 总分80分
(1) 程序启动后,8x8LED点阵最外侧四边的LED灯点亮,中间区域LED灯熄灭,得10分;
(2) 实现在8x8LED显示大的心形图案,得10分;
(3) 实现在8x8LED显示小的心形图案,得10分;
(4) 通知学生输入“B200S600”报文信息后,8x8LED正确交替显示大小心形图案,得15分;
(5) 通知学生输入“B600S200”报文信息后,8x8LED正确交替显示大小心形图案,得15分;
(6) 实现当在串口监视器窗口输入框输入相应报文后,串口监视器窗口正确显示解析后的报文信息,得20分。