智能停车场
userHead 汤和果 2020-09-21 17:00:24
projectImage

2019 年暑假,我们学校新增了车牌识别系统,大大提升了车辆进出校门口的效率,也减轻了门卫的工作量。Mind+ 软件中最近更新了 AI 图像识别功能,我们可以利用这个功能来制作一个智能停车场。


projectImage

外观搞好以后的成品图如上所示。


亮点 

- 停车收费系统全流程模拟 

- AI 图像识别智能识别车牌号


来看看视频,一睹为快吧!

硬件清单
1x
掌控板编程入门学习主控板 含 USB 线
1x
micro:bit 掌控 I/O 扩展板
1x
URM09-I²C 超声波测距传感器
1x
DMS-MG90 金属9g舵机 (1.8Kg)
1x
USB 电脑摄像头


使用到的软件

Mind+


原理分析

一般的智能停车场管理系统由控制室、出入口自动道闸、电子显示屏、高清车牌识别摄像机、补光灯、地感线圈等组成。当车辆经过出入口时,车牌识别摄像机会拍摄识别进出车辆的车牌号并将其显示在电子显示屏上。验证通过后抬杆放行。车辆行驶过去以后会自动落杆。

projectImage

这里可能比较陌生的是地感线圈,也就是车辆检测线圈。具体的功能下图有介绍。

projectImage

因此当车辆经过第一个地感线圈并停车时,摄像机会捕获车牌信息进行识别。 

以我校校门口为例,最上面的图片是入口,这里有两个车牌识别摄像机。这是因为我校门卫传达室处在一个 Y 型路口交叉处,两个方向都有可能有车驶入。具体使用情景如下:  

当教职工车辆驶入,捕获车牌号,显示在侧边 LED 显示屏上,语音播报车牌号,显示屏第二行显示“授权车辆”,抬杆放行;(教职工车牌号已录入系统) 。

当外来车辆驶入,捕获车牌号,显示在侧边 LED 显示屏上,语音播报车牌号,并提示“此车未授权,显示屏第二行显示“此车未授权”,须人工确认后手动抬杆放行。

projectImage

可以看到,我们的校门口共用一个出入口,因此共用了一个道闸。  


方案构思

经过原理分析,可以理清具体的操作逻辑。首先检测是否有车辆经过,如果有车辆,则拍照识别车牌号,视情况是否放行。这里我们可以使用超声波传感器检测出入口是否有车辆经过。因为要拍照识别,所以还需要一个电脑摄像头。道闸抬杆我们要用到 180° 舵机。关于主控,我们选择掌控板,因为自带 OLED 显示屏,可以直接显示车牌号,相对而言比较方便。

我们假设要制作的智能停车场是这样的运行方式: 

1. 停车场对外开放,但是车位有限。所有外来车辆必须按指定车位停车,不得随意乱停。  

2. 半小时(30 秒)内停车免费,超过半小时(30 秒)部分每小时(分钟)收费 2 元,不足 1 小时(分钟)按 1 小时(分钟)计算。  

为了简化操作(其实因为我只有一个摄像头 ^_^),我们假设出入口为同一个,车辆都从同一个出入口,相同方向驶入、驶出(好像现实中不存在这种情况 O__O"…)。


功能设计

projectImage


制作过程

projectImage
步骤1
器材连线

将掌控板插入扩展板中,然后将舵机接到 P9 引脚,超声波传感器的 Trig 接到 P0,Echo 接到 P1。


projectImage

完成接线后是这样子的。

projectImage
步骤2
加载扩展

因为要用到 AI 图像识别,所以需要将项目切换到“实时模式”。 

接着到“扩展”-->“主控板”下选择“掌控板”作为主控。

projectImage

选择“扩展”-->“传感器”下面的“超声波测距传感器”。

projectImage

选择“扩展”-->“执行器”下的“舵机模块”。

projectImage

因为要用到语音播报,所以需要选中“功能模块”下的“文字朗读”功能。  

projectImage

最后还需要选中“网络服务”下的“MQTT”和“AI 图像识别”两个模块。MQTT 用于在物联网平台记录车辆的出入信息。

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

Mind+ 内置了一个公用账户,但是公用账户有同时访问限制,因此最好还是使用自己注册的账户。首先登录百度 AI 开放平台,点击页面右上角“控制台”,然后“登录”自己的百度账号。录成功后进入控制台页面,点击左边栏“人脸识别”。

projectImage

在“人脸识别 - 概览”页面中点击“创建应用”。

projectImage

填写应用名称,勾选需要使用的接口。这里必选的是语音合成、车牌识别。建议把所有的都勾选上。

projectImage

创建好以后会有 AppID、API Key、Secret Key 三个信息,记录下来,后续编程会用到。

projectImage
步骤4
设置背景

在背景库中选择“School”作为舞台背景,假设地点就在学校门口。

projectImage
步骤5
创建变量与列表

依据需求,需要创建“车牌”和“时间”两个列表。“车牌”列表用于记录驶入的车牌号,车辆驶出的时候需要将列表中的车牌号清理掉,以便空出车位。“时间”列表用于记录对应车牌的驶入时间。除此以外还需要创建“车位”、“临时车牌号”、“停车费”与“停车时间”四个变量。

projectImage
步骤6
编写主程序

依据流程图,在 Mind+ 角色中编写主程序。首先设置百度智能云和 MQTT 的初始化参数。将前面创建百度智能云应用获得的 AppID、API Key、Secret Key 都填入空白处。MQTT 使用 SIoT,运行 SIot 程序后将服务器地址等填入空白处。

projectImage

当绿旗被点击时,需要初始化一些信息,比如设置空车位数量,清空列表,舵机复位,设置朗读语言等。之后循环检测超声波传感器前面是否有遮挡。如果有遮挡就识别车牌号。若没有车牌号或者没有文字,则跳过,继续检测。依据是否有空位与车牌的出现次数,对驶入和驶出的车辆分别进行不同的操作。如果有车位,则记录车牌信息、车牌时间,语音播报车牌号,将车牌驶入信息发送给 SIoT。然后放行,更新车位数。若没有车位,则语音播报“没车位了”,OLED 显示车位数为 0,指示灯变红色。若车辆驶出,则计算停车时长与停车费,然后将列表中该车牌的信息和驶入时间清理掉,向 SIot 发送驶出信息,接着放行,更新车位数。

projectImage
步骤7
编写自定义函数

程序里调用了两个自定义函数:“车位显示”与“停车费用计算”。“车位显示”函数执行的功能是在 OLED 上显示剩余车位数。依据是否有空位,指示灯显示不同的效果。绿灯有空位,红灯没空位。

projectImage

“停车费用计算”计算停车费用。计算规则是半小时(30 秒)内停车免费,超过半小时(30 秒)部分每小时(分钟)收费 2 元,不足 1 小时(分钟)按 1 小时(分钟)计算。如果按照现实情况,半小时太长了,没法测试。所以我把时间按照秒为单位,方便测试。需要注意的是,停车时间的单位是毫秒(ms),所以要注意转换单位。

projectImage
步骤8
设计外观

找一个尺寸合适的纸盒,把所有元器件都放进去,然后挖空塞舵机和超声波。前面还要开窗看屏幕。

projectImage

最终效果是这样的。道闸直接用纸条固定在舵机上。  

projectImage
步骤9
测试运行

外观搞好以后就开始综合测试了。运行效果还不错。

projectImage

SIoT 上也能实时记录车辆出入信息,便于统计查询。

projectImage


后记

1. 关于器材选取。我一开始想用红外避障开关的。原先我在 Arduino 上用过,效果还不错。可是拿掌控板和 Micro:bit 测试了一下,貌似都没法用,指示灯常亮。后来发现可能是电压的问题。红外避障开关电压要求 5V。遂放弃该方案,改为超声波传感器。

projectImage

2. 舵机问题。实时模式下竟然没有舵机!!!我甚至研究了半天自己通过引脚控制舵机,但最终失败了。好在后来去下载了测试版 Mind+ 1.6.2,里面三大主控实时模式均添加了舵机。PS,百度网盘下载真慢。新版本 Mind+ 更新了一大波功能,期待正式版早日上线。 

3. 外观设计问题。我好像挖孔的时候操之过急了,后来显示屏的窗口好像对不上。另外实时模式要接线,摄像头放在上面的话会遮挡视线。这次超声波和摄像头没有在同一垂直方向上,所以检测的时候有些不灵敏。有机会可以用 3D 打印一个专属外壳。  

4. 关于车牌识别。一开始我用的是文字识别功能。文字识别读出来的车牌号是“浙J一万两千三百四十五”这种形式的,而且还会识别出车牌中间的点“·”。改成车牌识别后准确度就高很多了,而且朗读出来才像真正报车牌号的。  

5. 超声波测距判定条件。超声波距离判断要加一个不为 0 的条件。不然没有检测到障碍物的时候读数都是 0,然后就一直在识别车牌……


关于作者 

汤和果是台州市新桥中学的一名信息技术教师,同时也是学校的创客空间负责人。有 4 年创客经验,热爱三维建模、影像创作。目前主要方向为 3D 打印、开源硬件,擅长 SketchUP 建模与 Mind+ 图形化编程。 


关于台州市新桥中学创客教室  

台州市新桥中学创客教室筹建于 2017 年,占地面积 50 平方米,位于行政楼五楼机房隔壁。2018 年完成教室简易装修,采购了 4 台 3D 打印机,组合桌椅,希沃 65 寸一体机,打印机等设备,于 2019 年正式投入使用。目前运营方式以社团活动形式开展,共有 6 名学生参与,活动时间为每周二、三、四中午,内容为图形化编程与开源硬件,后期结合 3D 打印。

联系我们
联系邮箱:makercarnival@hotmail.com
官方微信公众号:创客嘉年华
官方微博:上海创客嘉年华
© Copyright Zhiwei Robotics Corp. All Rights Reserved
code 上海创客嘉年华