2020-1-13 14:35:27 [显示全部楼层]
2849浏览
查看: 2849|回复: 4

[项目] 闯红灯拍照系统

[复制链接]
【项目背景】
交通陋习不但直接威胁着出行安全,扰乱了正常的交通秩序,也破坏了城市的整体形象。随着文明城市创建的深入人心,文明交通必将受到全社会的推崇。借助“闯红灯拍照系统”可以宣传文明交通、安全交通法规,引导大家告别交通陋习,倡导文明出行,提升人民素质,为城市的文明建设出一份力量,人民的出行也更有安全感。
【原理分析】
当红灯亮并且有车越线行驶时,拍照识别闯红灯车辆车牌号。我们可以利用红外避障开关来检测过往车辆是否越线闯红灯。具体的流程图如下所示。左侧是红绿灯系统的流程图,右侧是抓拍系统的流程图。闯红灯拍照系统图11


材料清单
1x  DFRduino UNO R3   链接
1x  IO 传感器扩展板 V7.1   链接
1x  数字食人鱼红色LED发光模块   链接
1x  数字食人鱼绿色LED发光模块   链接
1x  数字食人鱼黄色LED发光模块   链接
1x  3-80cm红外数字避障传感器   链接
1x  A-B 方口USB线   链接
1x  罗技C270电脑摄像头   链接
因为我们用到了麦昆来模拟行驶的车辆,所以还需要以下硬件:
材料清单
1x  麦昆: micro:bit教育机器人 V4.0 麦昆+锂电池   链接
1x  掌控板   链接
1x  IR kit红外遥控套件   链接
1x  高品质 micro USB数据线   链接
步骤1 连接器材

我们需要用到红、黄、绿三色LED以及红外避障开关。将数字食人鱼红色LED发光模块连接到扩展板的4号引脚,将数字食人鱼黄色LED发光模块连接到扩展板的5号引脚,将数字食人鱼绿色LED发光模块连接到扩展板的6号引脚。红外避障开关我们连接到扩展板的2号引脚即可。具体接线可以参考下图。

连线完成后的效果如下:


步骤2 编写主程序

打开Mind+,切换到实时模式。选择左下角的“扩展”按钮,接着选择“主控板”选项卡下的“Arduino UNO”作为主控。闯红灯拍照系统图10
将“网络服务”下的“AI图像识别”加入扩展。闯红灯拍照系统图9
在舞台背景库中选择“Colorful City”作为舞台背景。闯红灯拍照系统图8
参考流程图,开始编写代码。这里遇到了一个问题。本来按照原先的设想,应该使用多线程来编写的。一个线程模拟红绿灯系统,一个线程用来抓拍闯红灯的车牌。但是老师提醒我,由于UNO性能不够,不支持多线程。后来我看到论坛里的帖子“在UNO上如何实现同时控制多个延时程序?系统运行时间”,于是有了灵感。最终代码完成如下:

由于红绿灯系统要始终运行,如果用等待几秒这样的语句,会使系统阻塞。在此期间无法执行任何其他操作。所以改用记录当前系统运行时间的方法来控制红绿灯的持续时间。红灯亮的时候打开摄像头,如果红外避障开关检测到有车辆经过,就开始拍照识别。

步骤3 创建百度智能云应用

首先打开百度AI开放平台http://ai.baidu.com,点击右上角的控制台。用百度账号登录后选择页面左侧的“文字识别”。闯红灯拍照系统图7
在新页面中选择“创建应用”按钮。闯红灯拍照系统图6
完善应用信息。默认已经帮我们勾选了文字识别的相关服务,其中包含车牌识别。闯红灯拍照系统图5
创建完后在应用列表中能看到刚才创建的应用。我们需要记录列表中的AppID、API Key和Secret Key。

回到Mind+,将上述AppID、API Key和Secret Key的值填入“切换至独立账户”指令中。

至此,闯红灯抓拍系统的代码部分已经全部完成,接下来可以设计外观了。

步骤4 制作外观

首先制作红绿灯的外观。选择一张瓦楞纸,中间折两下。在上面挖三个孔用来安放LED。背面将LED和线材用透明胶带固定。

原本想将红绿灯做成L型的,但考虑到要挂摄像头上去,估计很难固定,所以将红绿灯做成直立型。由于做好的红绿灯是三棱柱的形状,底部受力面积太小,立不住,我们要设计一个底座。在瓦楞纸中间开了一个梯形的孔,用于放置信号柱。

放上去之后是这样子的。

看上去效果还可以。但是还有一个笨重的摄像头要放上去。结果一放上去就翻了!没办法,只好想办法解决。我们的杀手锏是用泡沫板做了一个很大的底座。

最终效果就是这样。

步骤5 编写测试车辆代码

为了更好的控制车辆,我们使用遥控板来控制麦昆的前进与后退。因此先要测试得出遥控各个按键的码值。我们将获取到的遥控信息输出到串口中。
闯红灯拍照系统图4
经过测试,得到要用到的几个按键的码值如下表所示。闯红灯拍照系统图3
编写程序控制麦昆前进、后退、左转、右转与停止。
闯红灯拍照系统图2

步骤6 测试运行

我们在麦昆身上放一张模拟车牌。

测试场景是这样的。由于前方到达桌子边缘,为防止小车坠落,特意放了两个盒子作为阻挡。




经过测试,基本能够实现闯红灯拍照效果。小车停下来是因为如果开过去就撞翻纸盒掉地上了,所以暂时只能这样处理。
闯红灯拍照系统图1


附件

闯红灯拍照系统.sb3
遥控麦昆.sb3

Randy-  见习技师

发表于 2020-1-13 18:52:53

有趣
回复

使用道具 举报

rzyzzxw  版主

发表于 2020-1-13 19:59:07

优秀
回复

使用道具 举报

gada888  版主

发表于 2020-1-19 08:39:11

纯顶
回复

使用道具 举报

kylinpoet  初级技神

发表于 2020-2-18 11:51:52

这个好,必须支持。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
关于楼主

楼主的其它帖子

上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail