一、项目名称
树莓派疲劳驾驶闹钟
二、项目概述
本项目是基于树莓派5的疲劳检测闹钟,当驾驶员出现闭眼,打哈欠等疲劳行为时,能够及时发出报警进行提醒制止。
本作品自行设计了3d外壳,使得外观造型更具美感,除了车上也可放置于任何其他需要疲劳检测的场所。
项目流程大致如下:
1.通过摄像头捕获画面然后基于mediapipe框架进行人脸3D关键点分析,得到眼睛轮廓和嘴巴轮廓的具体坐标,再通过欧拉距离公式计算得出眼睛和嘴巴的闭合程度,通过算法会转换成疲劳值并累积,当超过设定阈值后会触发报警。
2.为了保证报警效果,采取物理机械打铃的方式来确保叫醒。通过DC直流电机马达驱动板来由树莓派引脚控制电机带动偏心轮旋转。
3.为了实现机械打铃的结构,建模设计了模拟闹钟的3d结构,在内部安装了树莓派5、摄像头、DSI屏幕以及电机驱动板,并且实现偏心轮带动摆锤打铃的效果。
4.为了提升作品美感和效果,选用了微雪3.4寸DSI屏幕来作为显示屏幕,分辨率800x800,保证了显示精细度和流畅度,待机采用动画形式,能够适应任何车内环境不至于突兀。
项目重难点:
1.程序全部由纯python实现,由于树莓派5较新,譬如引脚控制、摄像头调用等在树莓派4很容易搜索到教程的方法都不再适用,因此参考了树莓派官方的文档和国外论坛的一些帖子,才最终得以实现。
2.闹钟的结构设计,参考资料不多,反复尝试最终才做出了现在的版本。
3.为了实现流畅的ui动画,使用pyside做为框架设计界面。
硬件清单:
-树莓派5(比赛官方提供报销)
-微雪3.4寸 800x800 DSI 屏幕
-微雪 IMX219 120视场角 DSI 摄像头
-直流电机及驱动板
-3d打印外壳 嘉立创面板(背板) 螺丝若干
-从实体闹钟拆下的铃铛和摆锤
软件重点使用的库:
-Pyside6
-mediapipe
三、作品实物图
1.整体外观
2.内部结构1
3.内部结构2
四、演示视频
五、项目文档
完整的源码、UI素材、3d模型可以在GITHUB或者通过本论坛的附件获得
GITHUB项目地址:jd3096-mpy/RP5-CLOCK