一、背景介绍:
硬件:
UnitV2是一款高颜值的AI相机,内核采用Sigmstar SSD202D(傻傻的202D)它有很快的运算速度,又大又快的内存,能跑Linux....总之懂的都懂,不懂得也记不住。相机模块的摄像头是1080P,上网是用usb的,也能用wifi吧,好像现在又用不了.....
串口,串口,以上都不重要,重要的是他能用串口来搞,可谓是软硬件双盲人士的福音。
ESP32 DEV kit 主要用来串口通讯,解析数据。
软件:
Microsofa Edg没错就是浏览器,Unitv2简单开发有浏览器就行了。
ESP32代码编写用的软件是arduino,方便又简单,一堆开发好的库能拿来用。
二、实现功能:
功能介绍:搭建了一个简易平台,对积木进行识别。定义全红的是良品,半红半蓝的是次品,检测结果并报警,计数结果通过串口打印在电脑端。
一开始就是奔着实用去的,想搞流水线异常品检测记录。但跟了一节M5大佬的直播课后,感觉脑子和知识点都是别人的,笔者除了握草(UnitV2)一无所有。
好在官方的技术文档(https://docs.m5stack.com/zh_CN/quick_start/unitv2/base_functions)是真的细,可以说是只带眼睛和手就能入门。实现这个功能也只是用了其中很小的一部分内容,在下文一一介绍。
三、实现思路:
实现过程:
(1). 连接好UnitV2,进入网页端,拍至少30张照片,挨个荡下来;
(2).上传到M5Stack家的训练平台标记训练后,再把获得的压缩包上传到UnitV2;
(3).调用UnitV2内置AI应用程序,加载自己训练的模型,就可以识别到自己要识别的东西了。
(4).以上都调通后,就是通讯与结果统计的问题了,我用的是ESP32 EDV kit 开发板,使用两路串口,一路接Unitv2上电切换程序,一路接电脑输出计数结果。
此外UnitV2还内置了多个即用型AI识别应用程序,例如:人脸识别、对象跟踪、颜色跟踪器、形状检测器、条形码检测器和其他常用功能。我们此处调用的是Object_Recognition这个程序,如果大家想要开发更多好玩的应用,可以自己试试其他程序。
四、遇到的问题:
问题1:直播课代码看不懂,妥妥的让我重温了一遍当年上学时的窘境。前一秒还是1+1,后一秒直接干到傅里叶级数展开,然后黑板被写满了,被擦掉了,被写满了......
问题2:官方教程说能用串口来调用内置程序,经过一夜的奋战,终于确定是Rx和Tx它接反了。怀疑同行群友嫌弃串口老土,直接放弃了串口。我一个拖延症患者竟然是第一个踩坑的。
问题3: 串口通讯是用的 json格式,码代码过程中不是把冒号写成点,就是多一个换行符。难道就没有一个有一定容错的高级编译器吗[笑哭]
五、未来的计划:
项目悄无声息的开始,转眼就只剩两天了。只能实现功能,还来不及打磨,并无实际应用意义。回顾项目还有两点不如意:
(1).在计数方面还有瑕疵:被检测物体被拿走后还会有数据发过来(一次数据发三次?搞不懂),造成计数不准。后续进行优化。
(2).网络上传功能还没试过,后续得再研究一下。
谈到接下来计划,就想起了我入手Unitv2的初衷。作为一个硬件工程师,不屯电子器件是不可能的。屯的多了就搞得乱七八糟的,电阻带一堆一堆的极难区分,所以想用摄像头给电阻拍照,自动识别电阻值大小输出结果。做着看吧,估计比较难实现。
六、建议:
以后整一个项目难度等级评定吧。这次项目,我这种楞头青一上来就被干懵了。
最后感谢电子森林,平台资料很棒!