25905| 10
|
[项目] 智能小助手 |
本帖最后由 怀若谷 于 2023-10-7 22:37 编辑 ![]() 创作背景 进入初中学习后,科目增多,所需的教材及教辅资料相应增加。初中生们通常会根据当天的课程来选择把哪些书放进书包带到学校。然而,初中生一般要早起,有时睡眼朦胧,难免会有记错日子的时候,那书也就带错了。很多孩子是独自去上学的,或乘坐公共交通工具,或自己骑自行车,他们需要对天气更加关注。除了家人的提醒外,小创客们还可以制作一个智能设备来帮助自己。 功能介绍 ![]() 本作品聚焦于初中生的早起时需要关注的几个重要信息,主要设计了三个功能模块:(1)日期时间显示及闹钟功能;(2)显示当日的课程;(3)显示当日的天气。其中后两个功能,采用了拟辉光管方式呈现,也就是通过LED灯照射刻有文字的透明亚克力板实现信息显示。这是本作品的亮点,这样的设计不仅可以省去使用大屏幕显示模块的成本,还具有较强的趣味性,呈现的视觉效果也很炫酷。容纳主控板的盒子,还可以兼做笔筒。 ↑演示视频↑ ![]() 1.主控板: 掌控板 1块 2.IO扩展板:掌控宝 1块 3.显示模块: RGB全彩LED点阵屏 制作过程 一、硬件连接 1. 将主控板安装到IO扩展板上。 ![]() 2. 将RGB点阵屏连接到扩展板的P15引脚(也可连接到其他引脚)。 ![]() 本项目程序使用mPytho0.7.6软件在硬件编程模式下编写,采用了模块化设计方式,主要分为六个部分:主程序、显示日期时间闹铃子程序、显示课程表子程序、显示天气子程序、灯光控制子程序、闹铃控制子程序。 ![]() 编写程序前,需要在【扩展】中添加相关的指令积木模块,它们是:【网络应用】心知天气、【执行器】Neopixel。 ![]() 要获取心知天气的相关信息,需要到心知天气官网(https://www.seniverse.com)进行注册,申请一个免费的API私钥,在相关程序初始化时需要用到。 ![]() 主程序主要分为初始化部分和主循环部分。初始化部分,完成连接Wi-Fi网络、同步网络时间、灯带初始化、变量初始化、设定新知天气API参数、初始化时钟等任务。主循环部分,循环执行显示日期时间闹铃、显示课程表、显示天气、闹铃控制四个子程序。 ![]() (二)显示日期时间闹铃子程序 该子程序功能是在掌控板的屏幕上显示一些时间信息:左半部分显示一个时钟,右半部分分四行显示当前日期和闹铃等信息。 ![]() (三)显示课程表子程序 该子程序的功能是根据获取到的“星期数”来控制对应RGB灯的开启,以实现对应的亚克力板上的课程信息被呈现出来。RGB点阵屏上的64颗LED灯被划分为16组,编号为0~15。变量“light”用来存储当前应亮起的LED灯组编号。因为显示天气时也需要进行相同的操作,所以定义了一个“灯光控制”子程序,方便共同调用。“灯光控制”子程序,能根据变量“light”的值来控制相应的LED灯组的开启。由于此类灯带具有记忆功能,设置了每隔5分钟进行一次刷新。 ![]() (四)显示天气子程序 该子程序的功能是根据获取到的天气现象来控制对应RGB灯的开启,以实现对应的亚克力板上的天气信息被呈现出来。其实现原理同显示课程表功能是一样的。下面的示例程序展示了少数几种天气现象,实际制作时可以根据当地常见的天气现象来设计。 ![]() 该子程序的功能是侦测当前时间是否与设定的闹铃时间相同,如果相同则响起铃声,会持续一分钟。 ![]() 三、结构设计 ![]() 本作品使用激光切割技术来制作结构和造型,图纸绘制使用了LaserMaker软件。主要结构可分为底座、左边和右边三部分,除了用于雕刻课程和天气信息的亚克力板外,其他部分均使用3毫米椴木板材料。图纸中采用了三种加工工艺:黑色线为切割,橙色线为描线,红色线为浅雕。 四、加工制件 图纸绘制好后,传输至激光切割机,进行切割加工。 ![]() 五、组装成型 1. 组装RGB点阵屏的底板 ![]() 2. 嵌入RGB点阵屏 ![]() 3. 装上RGB点阵屏固定板 ![]() 4. 装上两块透光板 ![]() 5. 再装上一块固定板 ![]() 6. 插入两块亚克力件(左为课程,右为天气) ![]() 7. 插上一个M型固定件 ![]() 8. 依次插上所有的板件 ![]() 9. 拼装笔筒盒体(顶板暂不装) ![]() 10. 装上主控板,使用三个螺栓固定 ![]() 11. 将RGB点阵屏的数据线穿过预留孔连接到扩展板上 ![]() 12. 装上笔筒的顶板 ![]() 13. 拼装底座 ![]() 14. 将上面装好的两个部分放进底座中 ![]() 六、调试优化 安装完成后,打开扩展板上的电源开关,对各个预设功能进行逐项测试。及时记录发现的问题,分析其原因,通过修改程序、修改图纸等方式来改进优化,以达到比较理想的效果。 测试闹钟功能时,可以设置比当前时间晚几分钟的时间,这样可以更快地完成测试工作。 ![]() 拓展建议 掌控板的功能很强大,自带的传感器也不少。在制作本作品时,聚焦于几个主要功能,并没有充分发挥掌控板的潜能。如小创客们想动手制作这个作品,我建议进行一些拓展。比如增加数字按钮(或者使用姿态侦测),来实现闹钟时间的灵活设置,而不是靠编程修改参数来实现;还可以增加光控、声控功能,甚至利用物联网技术进行远程控制。造型上也可以进行创新设计,如果使用线性排列的灯带,亚克力板之间就不会出现遮挡,文字呈现效果就更好。 ![]() 本项目的源程序及图纸可在附件中下载 |
108.4 KB, 下载次数: 3926
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed