【项目背景】
二哈识图据说是个功能强大的视觉传感器,我想跟麦昆结合,做一个无人驾驶小车。我希望麦昆在哈士奇的加持下能够识别不同的交通标志,实现自动驾驶。
【原理分析】
因为交通标志实际上有很多,所以需要选择一种能够学习多个物体的模式。首先考虑【物体追踪】,然而尝试后发现只能学习一个标志,不能学习多个。那就换成【物体识别】吧。结果交通标志识别成瓶子之类的其他物品。额,难道没有一个能学习自定义物体的模式吗?希望二哈识图的产品经理看到了请考虑一下我们的用户需求。
我画了三个交通标志:左转、禁止通行、右转。想来想去我估计只能用【颜色识别】来实现我的项目了。然后这样的话就浪费了一个标志,白画了╮(╯▽╰)╭
步骤1 器材组装
因为用到的东西少,组装起来很简单。把二哈识图装到麦昆上就好了。但有个问题,哈士奇随机附带的支架好像装不上去呀!后来我想了个办法,用铜柱固定到麦昆屁股的金手指开孔处。
可是这样电源管理模组上的开关就被挡住了,很难开关了。不过样子看上去还可以。
将二哈识图的连接线接到麦昆超声波传感器后面的 IIC 接口就好了,注意线的颜色,不要插错了。
步骤2 加载扩展
首先打开 Mind+,加载麦昆和二哈识图。
步骤3 编写代码
整体思路是:二哈识图一直检测摄像头前方的颜色。如果看到了红色(禁止通行),那么立刻停止。如果看到了蓝色(左转弯),那么立刻左转。其他情况下直行。
这里 ID1 代表红色,ID2 代表蓝色。有人可能会问了,蓝色不是左转吗?为什么代码里是前进?这说来话长。我买的麦昆左右轮子转速不一致,直行的时候会自己左转!!!我先联系了售后,已经返厂维修了。寄回来之前还给我发了调试视频,可以走直线,还可以在地图上巡线。然而,当我拿回来以后,发现还是会左转。额,我只好凑合用了。这里通过等待时间控制转弯角度。
特别提醒:千万不要忘了高亮的【请求一次数据存入结果】。一开始我没有这句代码,然后下面代码通通无法执行。我还以为我的二哈坏了。但仔细一想,不对啊,为啥 micro:bit 可以用,麦昆不能用呢?仔细调试,检查代码后,才发现忘了这句话。
步骤4 测试运行
首先利用二哈识图学习交通标志的颜色。先学习红色,再学习蓝色。具体过程很简单,就不说了。但是需要注意光线,不然换了个位置,反光或者逆光的情况下,就算学习过,也认不出来。
学习好后架设场地。这里就放两个标志,一个左转,一个停止。
运行效果请看视频:
麦昆能很好的识别出交通标志的颜色,执行对应的指令。
可能是因祸得福吧。用了颜色识别后,只要发现交通标志的颜色就可以执行对应操作了,响应速度很快。如果真的可以识别交通标志的话,那就需要好好调整摄像头角度和交通标志的高度了。
附件
大漠孤烟hua2022.06.08
将固件版本升级到5.1的版本,就会有“物体分类”,物体分类功能可以实现你想要的效果,或者直接换成二哈教育版的
DFHJM_IpFmV2020.05.03
你难道不能用标签识别吗?
汤果2020.06.10
但是用标签就有点不直观,可以考虑在标志旁边打印一个二维码。