一,项目背景
随着计算机和人工智能技术的日益发展,青少年机器人编程教育也越来越流行,相关的教学设备逐渐成为研究热点。视觉传感器是相关教学设备的核心部件,也是影响机器人智能化表现的关键模块。现有视觉传感器实现的功能单一,且识别准确率较低,同时价格较高,难以在教育市场推广普及,因而无法满足市场需求。
二,设计思路
以低成本全志H5芯片为基础搭建的系统,使用Tengine框架(安装教程:https://blog.csdn.net/Bluesyxx/article/details/85255634),该视觉传感器不仅可以运行数字图像处理算法,还可以搭建轻量级神经网络框架,适合用于机器人编程教育视觉传感器的设计。
母板总体功能框架如下图,一共设计有5大功能。
其中,五大模块,颜色识别、目标跟踪和条形码识别使用了OpenCV库,使用自定义算法进行处理。数字识别和简单物体识别使用了开源的项目Tengine框架(详情可咨询:http://www.openailab.com/)
三,使用流程
配合微处理器(如单片机、stm32等)使用,通过串口的方式通信,使用的流程如下图所示;
在微型控制器上编写简单的控制代码,通过串口与视觉传感器之间进行交互,视觉传感器采集图像信息后,将处理结果发送到微型控制器。具体实物如下图所示:
在理想情况下测试得到的电气参数如下,温度的变化会严重影响系统的性能:
参数 | 具体指标 | 备注 |
工作电压 | 4.7~5.6V | 外接电压大于核心板时,向电路板供电,反之则相反 |
工作电流 | 300~1500MA | 待机电流为300MA,4核全速运行时电流峰值1500MA |
保护电流 | 2000MA | 避免短路导致电路板损毁 |
管脚电平 | 3.3V | 管脚输出电平为3.3v |
管脚电流 | 5MA | 管脚输出电流为5 MA,只能驱动小负荷负载 |
接口类型 | MicroUSB | 测试和通信 |
通信协议 | UART串口 | 波特率为115200bps |
图像像素 | 30万像素 |
|
图像分辨率 | 640*480 |
|
图像输出格式 | YUV | 4:4:4全采样 |
图像视角 | 60度 |
|
摄像头视距 | 2m | 颜色识别功能设计是可以2m内识别10*10cm球体 |
更新方式 | SD卡 | 使用SD卡更新 |
工作温度 | -5℃~80℃ | 温度高会影响性能 |
工作湿度 | 40—90% RH9 | 不能结露,不能有水珠 |
主板尺寸 | 10cm*10cm*6cm | 分别对应长宽高参数 |
四,使用范例
指示灯和按键结合使用,指示灯主要用来显示视觉传感器状态,按键用来改变传感器状态,这部分代码可以根据范例进行修改。
LED指示灯含义如下:
LED | 功能 | 测试结果 |
绿色(LED1) | 功能:跟踪状态显示 常亮:跟踪成功 熄灭:跟踪失败,其他模式 闪烁:目标跟踪模式开始采集特征 | 成功 |
黄色(LED2) | 功能:系统状态显示 常亮:系统休眠 熄灭:系统正常 闪烁:系统故障,无法输出,或者无法采集图像数据等 | 成功 |
蓝色(LED3) | 功能:系统功能显示 常亮:运行神经网络(运行数字识别、分类网络时) 熄灭:运行普通功能(颜色识别、目标跟踪、颜色识别) 闪烁:灯闪烁表示正在切换状态 | 成功 |
按键使用如下:
按键 | 长按功能 | 测试结果 |
按键一(key1)短按 | 睡眠唤醒 | 成功 |
按键一(key1)长按 | 关闭设备 | 成功 |
按键二(key2)短按 | 颜色跟踪模式 | 成功 |
按键二(key2)长按 | 采集图像特征 | 成功 |
按键三(key3)短按 | 切换模式 | 成功 |
按键三(key3)长按 | 进入网络分类功能 | 成功 |
五,相关代码和视觉传感器开发板
具体视觉传感器测试、购买可以咨询:火星人俱乐部官网(https://www.imarsclub.com/web/index),电话或邮件联系即可。传感器已经申请专利,商业使用需要授权。
火星人视觉传感器是一个开放平台,相关电路版图、代码对外开放,可以自行下载,代码地址:https://github.com/BluesYu/MarStech_Vision_Sensor,欢迎star和fork,有问题可以再github上交流。
本项目为开源项目,不以盈利为目的,开源社区需要大家一起努力,欢迎大家一起来开发!