一、项目思路
随着社会的迅速发展,课堂设备也是越来越发达,我们这次研究的项目是学生课表应用程序,这是一款旨在帮助学生更有效地管理他们的学术日程的移动应用程序。这个应用程序将提供课程表管理、上课时间提醒、作业和考试提醒等功能,以确保学生能够及时准备和参与课程。它的主要特点是:
1. 添加课程: 用户可以添加他们的课程,包括课程名称、教师、上课时间和地点。
查看课程表: 用户可以查看他们的整个学期的课程表,以了解上课时间和地点。
2 .提醒通知: 应用程序会根据用户的课程表生成提醒通知,以确保他们不会错过上课。
自定义提醒: 用户可以自定义提醒的时间,例如提前15分钟或30分钟提醒。
3. 添加作业和考试: 用户可以为每门课程添加作业和考试,并设置截止日期。
提醒通知: 应用程序会生成作业和考试的提醒通知,以帮助用户按时完成任务。
二、方案框图
本阶段要求,这次使用得捷的Scheme-it来设计框图,快捷了许多,后续继续努力!
本项目的主要框图,得捷网站链接如下:
https://www.digikey.cn/schemeit/project/detail/a3f2cb25f5af4ccfb7cc9c3d4509a98e
框图介绍:用ESP32控制OLED屏幕对课表进行显示并采用语音模块对课表进行读取
三、原理图和PCB介绍
使用Scheme-it设计了流程图后,使用了KiCad绘制原理图和PCB
本次原理图绘制都是本人绘制,这次是选择模块化PCB,其中的元件也都是在KiCad中找到的,每个板块都已经归类,也是很好辨认的。
本次PCB绘制中各个元件的封装大多数是在其中找到,也有没有找到元件封装,自己画的封装也有可能与实际的元件不匹配,也是遇到的一些问题,后面查找每个元件的参数,设置尺寸,把引脚的距离设置好,也是解决了问题;板子的排版相对比较美观,但后期还是得继续努力。
四、成品展示:
上电测试
课表开机状态
课表显示课程内容并读取
以上就是成品展示
五、代码展示:
这段代码表示写一个数组
extern void (*function_class[5])(void);
extern const uint16_t *monday[4];
extern const uint16_t PROGMEM tuesday[];
extern const uint16_t PROGMEM *wensday[2];
extern const uint16_t PROGMEM *thursday[3];
extern const uint16_t PROGMEM friday[];
星期一到星期五的课程状态,并显示相应课程内容
for(int i=0;i<5;i++){
pinMode(pin_arrary[i],INPUT);
attachInterrupt(pin_arrary[i],function_class[i],FALLING);
}
tft.begin();
tft.setRotation(1);
tft.fillScreen(TFT_BLACK);
showstarting();
delay(500);
tft.fillScreen(TFT_BLACK);
以上就是代码核心部分
六、心得体会:
通过这次FastBond2阶段2,我想到了这样的一个创新项目,可以将学生的课表通过OLED12864进行显示,再通过按键进行对当天的课表调出查看,最后在通过语音模块对当天事情进行提醒。