查看: 224|回复: 0

AI分拣系统

[复制链接]

该用户从未签到

发表于 2019-11-13 16:26 | 显示全部楼层 |阅读模式
本帖最后由 是少翔啊 于 2019-11-13 16:41 编辑

人工智能分拣系统

应用简介

在日常生活中,人们经常需要对物体进行分类,”材料分类”,”垃圾分类”,各式各样的分类需求在日益剧增。相比传统的人工分拣,AI智能识别分拣能够减轻人们工作负担。但对于许多的小白用户来说,AI一词似乎显得十分“遥远陌生”,因此,我们决定用M5Stack硬件体系去构建一个智能分拣的应用模型,让更多人能够学习使用AI摄像头以及制作自己的应用。


b6490a1a3631c6267cf7e8b1bcd44c0 - 副本.jpg

物料清单

M5GO x1
BUS Module x1
M5StickV
RGB LED 50cm x2
RS485 Unit x1
6060模组 400mm x1
SG90舵机 x1
1515铝型材
LEGO积木
塑料拖链 x1
GROVE线  1m x1
16G SD卡 x1
12-24V电源适配器 x1


功能原理/具体实现

AI摄像头
使用标准的1515铝型材固定在6060模组上搭建结构顶部,采用了具备AI识别功能的M5StickV用作物体识别,
使用SD卡,参照官网V-Training服务教程(AI识别模型训练服务),构建物体识别模型,达到识别物体效果。

V-Training使用教程:
https://docs.m5stack.com/#/en/related_documents/v-training

完成模型训练后,修改启动程序文件“boot.py”,将M5StickV的拓展接口定义为串口使用。并将识别信息通过串口发送至Basic。

kittenblock中小学创客名师推荐的图形化编程软件

fm.register(board_info.CONNEXT_A,fm.fpioa.UART1_RX)
fm.register(board_info.CONNEXT_B,fm.fpioa.UART1_TX)

uart_A = UART(UART.UART1, 115200)

注:在进行素材拍摄时请尽可能接近实际使用环境的光线、背景条件。你可以根据实际模型培训结果的识别率对你的程序进行修改,如容易发生误识别的物体,能够设置较高的识别率判定条件,或设置一定的识别有效次数。以减少误识别情况的发生。

kittenblock中小学创客名师推荐的图形化编程软件

uart_A.write(labels[max_index])
uart_A.write('\r')


BASIC控制器
使用亚力克面板固定结构中部,在其上方放置了搭载ESP32的控制器BASIC,用于控制与内容显示。通过与M5StickV进行串口通信进行识别数据传输,处理,控制执行器做出相应动作。
主机上堆叠的BUS模块用于拓展总线外接RGB灯条。通过FastLED库,我们能够很简易的编程一些酷炫的灯光效果。

底部采用的M5GO底座通过积木结构稳定的安装在了亚克力面板上,底座上3个兼容Grove的拓展接口,用于两组串口通信与发送PWM信号控制分拣舵机。
注:你可以通过程序将串口映射为不同的引脚,如果你使用的主机为Fire,你需要注意避免使用GPIO16/17作为串口。   
  
步进电机模组

结构底部为定制化的6060步进电机运动模组,通过与BASIC进行串口通信,接收控制指令以及返回状态等信息。6060指令集下图所示。


电机运动部分搭配了由积木件组成的分拣托盘,运行过程中,舵机通过更改旋转角度,实现左右两侧的物体分拣。

当物体被成功识别后,作为执行部分运输物体前往相应的分拣位,进行分拣。


使用说明

1.   将模组、控制器、摄像头接通电源,等待设备启动,初始化完成(当灯条点亮且不断变换特效时,表示初始化完成)。
2.   将识别物体,放入识别区(积木托盘)上,即可进行识别、分拣。


演示视频:
https://m5stack.oss-cn-shenzhen.aliyuncs.com/video/Blog/twitter_video_20191115/sorting_system.mp4

注意事项
1.   识别系统十分依赖于颜色与形状,因此请尽可能使用形状区别较大的识别物。
2.   步进电机模组速度较为缓慢,程序上给定的速度较靠近临界值,若运行中途发生“卡顿”,请关闭电源,使其停止,并重新启动。

案例程序 Github Link:
https://github.com/Gitshaoxiang/Project_example/tree/master/sorting_system




您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

热门推荐

Blynk与m5stack basic以及uiflow的交互玩法
Blynk与m5stack basic以及
Blynk与m5stack basic以及uiflow的交互玩法 [准备工作我们假设玩家已经熟悉下面的准备
[Arduino物联网开发实战2]数据反馈
[Arduino物联网开发实战2]
[md]上一篇:(https://www.arduino.cn/thread-83177-1-1.html) 除了控制设备外,blin
用蓝牙串口模块传递的数据控制继电器开关的问题
用蓝牙串口模块传递的数据
我用hc08串口模块传进1(开)、0(关)。但每次按1的时候继电器指示灯只是闪烁一下,
DIY3D打印激光雕刻机
DIY3D打印激光雕刻机
说到激光雕刻机,有人可能会想到,大型机器肆意切削金属,或者木片的大型机器,它们无
【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
【原创】 drawbot平面关节
这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表