点击 蘑菇云创造 关注我们
原作者:章
布时间:2024年4月15日
原文链接:
https://mc.dfrobot.com.cn/thread-317519-1-1.html
视频演示
项目背景
现在我们许多家庭都有自己的车位,但有时我们的车位会被别人占领,这时就要联系物业或车主,十分的麻烦,假如车主有事来不了,我们就停不了车,为了解决这个问题,我们可以给车位安装上车位锁,但如果是普通的车位锁,上锁下锁也很不方便,所以就做了这个智能车位锁这个作品。
功能介绍
利用HuskyLens AI摄像头的学习功能可以事先学习自家的车牌号(由于HuskyLens AI摄像头不能进行车牌识别,我们可以在车牌边贴一个标签来代替)。
当红外避障模块检测到车位上没有汽车时,车位锁就会自动上锁。
当红外避障传感器检测到有汽车时,哈士奇摄像头就开始识别车牌(标签),如果是自家汽车时就自动开锁,否则不开锁。
如果有亲戚或朋友的汽车要停时,我们可以告诉他密码,输入正确密码后也会自动开锁。
硬件清单
|
序号 |
硬件 |
数量 |
功能 |
|
1 |
Arduino uno |
1 |
主控板,通过程序控制各个传感器。 |
|
2 |
矩阵键盘 |
1 |
密码输入 |
|
3 |
HuskyLens AI摄像头 |
1 |
识别车牌号 |
|
4 |
红外避障模块 |
1 |
检测有无汽车 |
|
5 |
蜂鸣器 |
1 |
按键提示音 |
6 |
舵机 |
1 |
控制车位锁的上升与下降。 |
7 |
结构件等 |
|
|
设计组装
外观结构设计与切割
外观结构的材料采用3MM的椴木板,根据硬件组装的需求及作品外观的设想,先利用LaserMaker软件在电脑上设计出其外壳图纸,再用激光切割机切割出来。外观结构设计图如图1所示:
图1 外观结构设计图
把红外避障感器、舵机分别利用热熔胶固定在相应位置,如图2所示:
图2 安装红外避障传感器和舵机
把Arduon主控板和矩阵键盘固定在相应位置。如图3所示:
图3 安装Arduino主控板和矩阵键盘
安装车锁结构部分。如图4所示:
图4 安装车锁结构部分
把主控板部分和矩阵键盘部分安装在上面板上。如图5所示:
图5 上面板组装
把HuskyLens AI摄像头安装到顶部面板上。如图6所示:
图6 安装HuskyLens AI摄像头
把各个传感器按照接线图所示与Arduino主控板连接好。如图7所示:
图7 电路接线图
最后再安装好底部盒子,再把顶面板安装上固定好,这样整个结构就组装完成了。如图8所示:
图8 完成组装
程序编写
程序的编写软件是Mind+,打开Mind+软件,切换到上传模式。如图9所示:
图9 切换到上传模式
作品使用的主控板是Arduino UNO,传感器执行器有红外避障模块、哈士奇摄像头、舵机、蜂鸣器等,我们先选择相应的主控板和传感器、执行器。点击左下角的“扩展”,在弹出窗口的“主控板”选项卡中选择“Arduino UNO”,在“传感器”选项卡中选择“HUSKYLENS AI摄像头”,在“执行器”选项卡中选择“舵机模块”。如图10、图11、图12、图13所示:
图10 添加“扩展”
图11 添加“Arduino Uno”主控板
图12 添加“HuskyLens AI 摄像头”传感器
图13 添加“舵机”
添加矩阵键盘传感器。由于矩阵键盘传感器在Mind+默认状态下是没加载的,需要在用户库里自行添加,切换到“用户库”选项卡,在下面的输入框内输入网址:https://gitee.com/hockel/keypad
回车确定,下面就会出现4*4矩阵键盘,点击它就会加载上,最后点击左上角的“返回”,返回到编程主界面。如图14、图15所示:
图14 添加“矩阵键盘”
图15 返回到编程主界面
传感器的初始化操作以及变量的定义
我们先选中左侧底部的“用户库”,再把有关矩阵键盘初始化的两个积木拖出来,在上面的接线中矩阵键盘是接在2—9接口的,所以根据实际情况修改两个积木中的接口,同样道理,我们选中左侧的传感器,把HuskyLers摄像头的初始化和算法切换积木块拖出来接上,并把算法改为“标签识别”。
新建一个“输入内容”的字符串类型变量并赋值为空,它是用来存放矩阵键盘输入的内容。再新建3个数字类型变量,变量“角度”用来确定舵机的角度,赋值为120;变量“密码状态”主要用来控制键盘输入程序是否执行,赋值为0表示输入无效;变量“密码”主要用来存放键盘输入结果,用于与预设密码进行比较,这里也先赋值为0。
选中左侧执行器,把设置舵机角度的积木拖出来接下变量的下面,舵机是接在A0针脚的,所以接口这里改为A0,把变量“角度”放在舵机角度处,上面变量“角度”是120,所以一开始我们让舵机转到120度,处于开锁状态。程序如图16所示:
图16 初始化程序
选中左侧“函数”,再新建3个处定义函数,分别为密码、锁降、锁升,“密码”函数中主要是放有关密码输入程序的积木,“锁降”函数中主要是放车位锁下降即开锁相关的程序,“锁升”函数中主要是放车位锁上升相关的程序。程序如图17所示:
图17 新建“密码”、“锁降”、“锁升”函数
车位锁的升降主要是由舵机控制的,当舵机转到30度时,表示上锁,当舵机转到120度时,表示下锁,为了使舵机转动平滑一点,我们可以采取每次转3度,直到转到相应角度。程序如图18所示:
图18 函数“锁升”、“锁降”程序
有关“密码”函数中的程序及说明如下图19:
图19 “密码”函数程序
在车位中间位置安装了一个红外壁障传感器,我们把它接在A1针脚上,它主要用来检测有没有车,所以在循环执行中先放一个如果否则条件执行积木,如果没有汽车时也就是“数字引脚A1”的值为“假”时,车位锁就会自动上锁。如果有车也就是“数字引脚A1”的值为真时,再读取哈士奇摄像头的数据(摄像头识别汽车上的标签的ID),再运行“密码”函数,接着再判断密码是否为528或者学习过的ID为1或2的标签是否在摄像头拍到的画面中,如有三者条件中只要满足一个就会开锁。
开锁后再次去判断红外避障模块上有没有汽车,如果有,再次判断,直到汽车开走,再把变量“密码”赋值为0,相当于密码消除,不然不管什么车开来,车锁都会下降。程序如图20所示:
图20 主程序
完整程序如图21所示:
图21 智能车位锁完整程序
结语
由于HuskyLens AI摄像头没有车牌识别的功能,但它有个标签识别功能,这个作品中是借助标签识别功能来实现的,把标签贴在车牌边。也试过HuskyLens AI摄像头的物体分类,先对车牌不同的角度进行学习,但实际效果不理想。在离线的情况下大家有没有更好的办法呢?
往期推荐
跨学科主题学习的设计理路——加拿大安大略省科学与技术课程变革审思
【比赛规则】全国青少年科技教育成果展示大赛之开源硬件应用设计挑战赛规则发布
【公告】第四届(2023-2024学年)全国青少年科技教育成果展示大赛省级区域赛公告!
【比赛规则解读】第四届“全国青少年科技教育成果展示大赛”区域赛通知发布!

