前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开发者成长激励计划-基于TencentOS Tiny的芒果分拣机Demo

开发者成长激励计划-基于TencentOS Tiny的芒果分拣机Demo

原创
作者头像
JGMMS
发布2022-08-01 20:54:06
6210
发布2022-08-01 20:54:06
举报
文章被收录于专栏:tos活动tos活动

方案介绍

此作品使基于CH32V_EVB RISC-V开发套件以及TencentOS Tiny进行的开发。相对于传统手动分拣芒果,芒果分拣机可以快速高效的将成熟芒果和未成熟芒果进行分类,极大的减少了人力成本,农户或企业可以将资金重心转移至包装或销售上,从而提高利润。

整体外观
整体外观

硬件介绍

开发板

CH32V_EVB开发板
CH32V_EVB开发板
  • 开发板采用沁恒RISC-V MCU CH32V307VCT6芯片,CH32V305/7系列是基于沁恒自研RISC-V架构微处理器青稞V4系列设计的32位工业级互联型微控制器,配备了硬件堆栈区、快速中断入口,在标准RISC-V基础上大大提高了中断响应速度。加入单精度浮点指令集,扩充堆栈区,具有更高的运算性能。扩展串口UART数量到8组,定时器到10组,其中4组高级定时器。提供USB2.0高速接口(480Mbps)并内置了PHY收发器,以太网MAC升级到千兆并集成了10M-PHY模块。
  • 64KB SRAM,256KB Flash
  • 板载Type-C接口WCH-LINK仿真器
  • 板载esp8266 WiFi模组,支持腾讯云固件
  • 板载以太网接口
  • 板载物联网俱乐部WAN Interface接口,可支持NB-IoT、WiFi、4G cat1、LoRa等模组
  • 板载物联网俱乐部E53 Interface接口,可扩展全系E53传感器以及音频模块;
  • 板载标准24P DVP摄像头接口,可支持最高500万像素摄像头;
  • 板载1.54寸 IPS高清显示屏,支持240*240分辨率;
  • 预留SD卡、用户按键、SPI Flash,
  • 扩展IO口,方便开发者扩展硬件模块

E53扩展板

E53_IA1扩展板
E53_IA1扩展板

E53_IA1扩展板采用了E53标准接口,包含了一个补光灯,一个BH1750光照强度传感器,一个小的贴片电机,一个温湿度传感器SHT30,一个其中补光灯和贴片电机使用普通GPIO控制,BH1750和SHT30使用IIC接口通信。

OV2640摄像头

OV2640摄像头模块
OV2640摄像头模块
  • CMOS UXGA图像传感器
  • 支持自动曝光控制、自动增益控制
  • UXGA最高15帧/秒,SVGA最高30帧/秒
  • 支持输出JPEG图像数据
  • 200W像素

整体架构

项目架构
项目架构

CH32V307作为主控,使用EasyTrace算法通过OV2640进行芒果颜色检测。检测到绿色芒果时,传送带停止运行,当人工或机械臂去除绿色芒果后传送带继续运行,可以随时通过腾讯连连小程序查看机器运行状况。

算法使用

EasyTrace算法(作者ilovepp 原文在stm32上实现颜色跟踪 (amobbs.com 阿莫电子论坛))可以对单一颜色物体进行实时跟踪识别,算法特点如下:

  1. 代码只有300行,非常简单
  2. 识别一次只需要2至5毫秒,实时性强
  3. 只有1个API,使用方便
  4. 可配置”容错率“ ”迭代次数“等参数,可在”时间“实时性”“ ”准确度“ ”识别率“ ”误识率“ 之间寻找平衡点

芒果成熟与外表颜色有关,所以选择此算法进行检测,以下是颜色参数

代码语言:javascript
复制
TARGET_CONDITION_t condition[TRACE_NUM]={
        {
            80,        //目标色度,H_MIN,H_MAX 蓝色130-170  绿色80-120  红色200-270
            120,       
            50,        //目标饱和度,S_MIN,S_MAX
            230,       
            50,        //目标亮度,L_MIN,L_MAX
            240,       
            
            10,        //目标最小宽度,WIDTH_MIN
            10,        //目标最小高度,HEIGHT_MIN
            120,       //目标最大宽度,WIDTH_MAX
            120,       //目标最大高度,HEIGHT_MAX
        },
};

其他颜色可以使用HSL计算器进行查找(HSL 颜色 (w3schools.cn)

HSL计算器
HSL计算器
绿色芒果检测(一)
绿色芒果检测(一)
绿色芒果检测(二)
绿色芒果检测(二)

TencentOS Tiny运用

这次项目运用到TencentOS Tiny组件中提供的ESP8266腾讯云固件,以及基本的task、信号量、循环队列。

连接腾讯云要使用创建设备的三元组进行注册,然后定义数据发送格式:

代码语言:javascript
复制
#define PRODUCT_ID              "6WNFBKZBSC"
#define DEVICE_NAME             "dev001"
#define DEVICE_KEY              "JfCutCtSyN0+6vHwKG46iA=="
代码语言:javascript
复制
#define REPORT_DATA_TEMPLATE    "{\\\"method\\\":\\\"report\\\"\\,\\\"clientToken\\\":\\\"00000001\\\"\\,\\\"params\\\":{\\\"color\\\":\\\"%s\\\"}}"

通过队列中存储的字符串进行判断并赋值到物模型的对应的值:

代码语言:javascript
复制
tos_sem_pend(&status_change, TOS_TIME_FOREVER);
        err = tos_chr_fifo_pop(&status_fifo, &dev_status);
        if (err != K_ERR_NONE) {
            printf("status_fifo pop fail, err is %d\r\n", err);
            continue;
        }

        if (dev_status == 0) {
            snprintf(payload, sizeof(payload), REPORT_DATA_TEMPLATE, "null");
        } else if (dev_status == 1) {
            snprintf(payload, sizeof(payload), REPORT_DATA_TEMPLATE, "green");
        } else {
            printf("device status unknown!");
            continue;
        }

腾讯云物联网平台开发

物模型定义
物模型定义
腾讯连连交互开发
腾讯连连交互开发
在线调试
在线调试

视频演示

视频内容

PPT

芒果分拣机.pptx

工程代码

总结

通过此次活动,更加熟悉了TencentOS Tiny操作系统,也学到了新的视觉识别算法。另外这也是我第一次使用RISC-V的MCU,在使用方面与STM32很类似,CH32V307还拥有DVP这样的外设很方便使用摄像头设备,新手也可以快速上手。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方案介绍
  • 硬件介绍
    • 开发板
      • E53扩展板
        • OV2640摄像头
        • 整体架构
        • 算法使用
        • TencentOS Tiny运用
        • 腾讯云物联网平台开发
        • 视频演示
        • PPT
        • 工程代码
        • 总结
        相关产品与服务
        TencentOS Server
        TencentOS Server 是腾讯云推出的 Linux 操作系统,它旨在为云上运行的应用程序提供稳定、安全和高性能的执行环境。它可以运行在腾讯云 CVM 全规格实例上,包括黑石物理服务器2.0。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档