IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 【k210应用实例】检测口罩是否佩戴并控制舵机的运行 -> 正文阅读

[嵌入式]【k210应用实例】检测口罩是否佩戴并控制舵机的运行

【k210应用实例】检测口罩是否佩戴并控制舵机的运行



一、需求分析

需求:使用K210开发板,检测口罩是否佩戴并控制舵机的运行。
任务分解:

  1. 口罩检测
  2. 控制舵机

二、开发板选型

这里选用Maix Bit(K210),引脚资源如下图所示:
在这里插入图片描述

图片源自sipeed官网,开发板详情请见:https://wiki.sipeed.com/soft/maixpy/zh/develop_kit_board/maix_bit.html

三、口罩检测

进入maixhub官网

视觉模型中找到Mask_detect,点击下载

接下来,需要输入32位的机器码,关于如何查看开发板的机器码,这篇文章已经讲得很清楚了:获取MaixPy系列开发板机器码——MaixHub 机器码获取,我就不重复造轮子了。

最后获取的机器码大概是这样的:

将上面得到的32位机器码输入即可下载模型文件。
接下来,便是模型在K210开发板上的部署了,参见口罩模型对应的部署教程:https://www.maixhub.com/modelInfo?modelId=12
对于部署的细节如下:
在这里插入图片描述
这两个kmodelv4 支持固件,其中第一个是支持IDE的,第二个是不支持IDE的。如果想要不借助PC端显示的话,建议烧录第二个固件。

这里有个坑,如果按照教程来,下载上图两个固件,部署完模型后,上电k210不能自动运行boot.py脚本,神奇的是,点击maixpy IDE中的连接后,boot.py又开始运行了,且IDE无法连上开发板。捣鼓良久,把固件换成下面这个,方可实现上电自动运行。
在这里插入图片描述
magic!归结下来是固件版本的问题

简单运行了下载模型时附带py脚本,效果还不错。但是如果环境光线较暗,效果可能不太理想。

四、控制舵机

关于舵机的控制可以参见我之前的博文:【K210+micropython】PWM信号控制舵机


五、实验程序及效果

总程序如下:

import sensor, image, lcd, time
from machine import Timer,PWM
import KPU as kpu

color_R = (255, 0, 0)
color_G = (0, 255, 0)
color_B = (0, 0, 255)


class_IDs = ['no_mask', 'mask']


def drawConfidenceText(image, rol, classid, value):
    text = ""
    _confidence = int(value * 100)

    if classid == 1:
        text = 'mask: ' + str(_confidence) + '%'
        color_text=color_G
    else:
        text = 'no_mask: ' + str(_confidence) + '%'
        color_text=color_R
    image.draw_string(rol[0], rol[1], text, color=color_text, scale=2.5)

def Servo(servo,angle):
    S1.duty((angle+90)/180*10+2.5)


#PWM通过定时器配置,接到IO17引脚
tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PWM)
S1 = PWM(tim, freq=50, duty=0, pin=17)
#舵机初始化-0度
Servo(S1,0)
time.sleep(1)

lcd.init(freq=15000000)
lcd.rotation(2)
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
# sensor.set_hmirror(0)


task = kpu.load(0x300000)
# task = kpu.load("/sd/mask.smodel")


anchor = (0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823)
_ = kpu.init_yolo2(task, 0.5, 0.3, 5, anchor)
img_lcd = image.Image()

clock = time.clock()
while (True):
    clock.tick()
    img = sensor.snapshot()
    code = kpu.run_yolo2(task, img)
    if code:
        totalRes = len(code)

        for item in code:
            confidence = float(item.value())
            itemROL = item.rect()
            classID = int(item.classid())

            if confidence < 0.52:
                _ = img.draw_rectangle(itemROL, color=color_B, tickness=5)
                continue

            if classID == 1 and confidence > 0.65:
                _ = img.draw_rectangle(itemROL, color_G, tickness=5)
                if totalRes == 1:# mask
                    drawConfidenceText(img, (0, 0), 1, confidence)
                    #70度
                    Servo(S1,70)

            else:
                _ = img.draw_rectangle(itemROL, color=color_R, tickness=5)
                if totalRes == 1:# no_mask
                    drawConfidenceText(img, (0, 0), 0, confidence)
                    #0度
                    Servo(S1,0)

    _ = lcd.display(img)

    print(clock.fps())

_ = kpu.deinit(task)

程序运行现象:程序开始,舵机初始化到零度。当摄像头拍到戴口罩的人时,旋转70度;当拍到未带口罩的人时,返回零度。
在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:35:52  更:2022-05-05 11:39:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:43:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码