本帖最后由 jinglixixi 于 2026-2-5 11:44 编辑
1.功能介绍 考场是一个公平进行测试考生学业水平场所,因此保障考场的环境及秩序是非常主要。 有鉴于此,标准化考试进程管控装置的设计将有助于这个问题的解决。 该装置可对考场进行标准化的管理,其主要功能是以字幕和语音的方式为考生和监考人员指示考场进程、当前时间、环境状态等。在RTC的作用下,它可自动控制屏蔽器的启停。 该装置以AT32F457为控制核心,以16×64点阵显示板为显示器件、以MP3语音模块进行提示播报。 此外,为解决考生识别问题,还借用K230开发板的AI人脸识别功能来辅助处理,并以此来标记考生的入考状态及缺考情况表的生成。
图1 器件构成
2.模块划分 为便于功能设计的实现,特分为点阵屏显示、AI身份识别、RTC电子时钟、多时段提示与语音播报、屏蔽器控制、环境检测与显示、缺考统计与报表生成等模块。
该装置的处理流程为: 开机--->AI身份识别与状态标记--->RTC电子时钟计时/环境检测与显示--->屏蔽器控制/多时段提示与语音播报--->缺考统计与报表生成 其中,缺考统计表是文件的形式存放到TF卡中。
3.显示效果设计 为便于远距离观察的需要,是采用点阵屏的方式来输出信息,其显示形式见图2至图7所示。 图2 入场提示
图3 操作提示
图4 时段提示1
图5 时段提示2
图6 时段提示3
图7 结束提示
4.考场进程管理的时段划分 以英语四六级考试为例,其进程管理的时段划分如图8所示。 图8 时段划分
为进行缺考统计表的生成与存放,是通过TF卡座的配合,其外观如图9所示。 图9 TF卡读写模块
该TF卡座所用引脚的连接关系如下:
5.功能代码实现 1)RTC计时与多时段提示
- uint8_t hh,mm,ss;
- uint8_t sd;
- uint8_t dsh[14] = {8,9, 9, 9,10,10, 11,14,15,15,15,16,16,17};
- uint8_t dsm[14] = {30, 0, 10, 40,5,10, 20, 40,0,10,40,10,15,25};
- sd=0;
- while(1)
- {
- ertc_calendar_get(&time);
- if(temp != time.sec)
- {
- temp = time.sec;
- DZP_Show();
- hh=time.hour;
- mm=time.min;
- ss=time.sec;
- if((hh==dsh[sd])&&(mm==dsm[sd])&&(ss==0))
- {
- DZP_Show();//字幕提示
- fszl(N+sd); // 语音提示
- PBQ_ctrl(); // 屏蔽器控制
- if(sd<14) sd=sd+1;
- }
- }
- }
2)环境检测与显示 - BH1750_Init();
- BMP085_Init();
- Init_BMP085();
- while(1)
- {
- Get_Sunlight_Value();
- bmp085Convert();
- k=pressure/100;
- k=temperature/10;
- DZP_hj();
- delay_ms(500);
- }
3)考生身份识别 图11 识别对象
通过变换处理,即可以指定的形式来输出识别结果,见图12所示。
借助串口通讯功能,即可将识别结果传递给AT32F457开发板来进行统计分析和报表生成。 4)缺考统计及报表生成 对于英语四六级考试来讲,其考号构成如图13所示。 图13 考号构成
为此,存储考生基本信息的数据结构为: - typedef struct
- {
- uint8_t no; /*序号*/
- Uint32_t kaohao; /*考号*/
- Uint32_t name; /*姓名*/
- uint16_t sex; /*性别*/
- uint8_t zhuangtai; /*状态*/
- } kaosheng_time_type;
数据示例:
序号 准考号 姓名 性别 状态 ... ...
为便于生成缺考情况报表,是通过数组ZT[30]来存放入考状态,并在完成考试后依此来生成统计表。
图14 基本信息表
6 ) 功能测试 在测试传感器检测值显示效果时,其效果如图16至图18所示。
图16 显示光强
图17 显示温度
图18 显示压强
测试视频:
|