第三章 CanMV简介

1)实验平台:正点原子DNK210开发板

2) 章节摘自【正点原子】DNK210使用指南 - CanMV版 V1.0

3)购买链接:https://detail.tmall.com/item.htm?&id=782801398750

4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.html

5)正点原子官方B站:https://space.bilibili.com/394620890

6)正点原子K210技术交流企鹅群:605557868

本章将对CanMV进行简单介绍

本章分为如下几个小节:

3.1 初识CanMV

3.2 CanMV的应用开发方式

3.1 初识CanMV

CanMV是嘉楠科技针对AIOT编程的独立开源项目,其源代码在GitHub上开源(https://github.com/kendryte/canmv.git),可在例如Kendryte K210等强大的嵌入式AI SoC上运行,CanMV提供了基于MicroPython语法的应用开发方式,但同时也支持使用基于C语言和FreeRTOS的应用开发方式。

3.2 CanMV的应用开发方式

CanMV提供了基于C语言和FreeRTOS的应用开发方式和基于MicroPython语法的应用开发方式。

当使用CanMV提供的基于C语言和FreeRTOS的方式进行应用开发时,开发过程使用C或C++语言进行开发,与使用裸机SDK的裸机开发方式一样,这种开发方式要求开发者了解目标芯片的各种参数信息和特性,但相较于使用裸机SDK的裸机开发方式,CanMV提供了移植好的FreeRTOS操作系统,以便开发者能够完成更加复杂多任务应用的开发。

虽然使用C语言的裸机或操作系统的开发方式往往能使应用具有较高的运行效率和性能,但需涉及目标芯片底层寄存器的配置并同时对开发者的嵌入式开发能力有一定要求,但如果是为了初步了解目标芯片的功能、快速地进行一些功能验证或是完成一些相对简单的功能开发,那CanMV提供的基于MicroPython语法的开发方式就是再合适不过的选择了。使用CanMV提供的基于MicroPython语法的应用开发方式,开发者可以快速且便捷地完成应用开发,以下是两个基于MicroPython语法的简单应用示例:

寻找I2C设备示例:

from machine import I2C

i2c = I2C(I2C.I2C0, freq=100000, scl=28, sda=29)
devices = i2c.scan()
print(devices)

拍照示例:

import sensor
import image
import lcd lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA) while True:
img = sensor.snapshot()
lcd.display(img)

AI人脸检测示例:

import sensor
import image
import lcd
from maix import KPU lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA) anchor = (
0.1075, 0.126875, 0.126875, 0.175, 0.1465625, 0.2246875,
0.1953125, 0.25375, 0.2440625, 0.351875, 0.341875, 0.4721875,
0.5078125, 0.6696875, 0.8984375, 1.099687, 2.129062, 2.425937
) face_detecter = KPU()
face_detecter.load_kmodel('/sd/face_detect_320x240.kmodel')
face_detecter.init_yolo2(
anchor, anchor_num=9,
img_w=320, img_h=240,
net_w=320, net_h=240,
layer_w=10, layer_h=8,
threshold=0.5, nms_value=0.2, classes=1
) while True:
img = sensor.snapshot()
face_detecter.run_with_output(img)
faces = face_detecter.regionlayer_yolo2()
for face in faces:
img.draw_rectangle(face[0], face[1], face[2], face[3], color=(0, 255, 0))

可以看到,使用CanMV提供的基于MicroPython语法的开发方式,仅需少量的几行代码便可实现一些简单的功能。

CanMV的源码本质上是一套基于C的软件开发框架,CanMV可谓是站在巨人的肩膀上实现的一套软件框架,为什么这么说呢?这是因为CanMV集成了许多现成的软件库,例如裸机SDK、FreeRTOS、MicroPython、OpenMV的图像处理库等一系列软件库,其中裸机SDK提供了CanMV驱动Kendryte K210底层硬件的能力,FreeRTOS为CanMV实现多核多任务的任务调度以及移植MicroPython成为可能,MicroPython让CanMV的应用可以以类似Python脚本的方式进行开发,OpenMV的图像处理库让CanMV的应用程序可以快速地对图像进行各种包括但不限于元素绘制、图像滤波、特征检测、色块追踪、图像对比和码识别的处理。

《DNK210使用指南 -CanMV版 V1.0》第三章 CanMV简介的更多相关文章

  1. MySQL与MariaDB核心特性比较详细版v1.0(覆盖mysql 8.0/mariadb 10.3,包括优化、功能及维护)

    注:本文严禁任何形式的转载,原文使用word编写,为了大家阅读方便,提供pdf版下载. MySQL与MariaDB主要特性比较详细版v1.0(不含HA).pdf 链接:https://pan.baid ...

  2. J20航模遥控器开源项目系列教程(一)制作教程 | 基础版V1.0发布,从0到1

    我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/C ...

  3. [原创] RestartPC64-中文版v1.0.0.9

    原来发布的RestartPC-中文版和英文版v1.0.0.5,在PE64下无效.所以重新编译了64位版的RestartPC64-中文版v1.0.0.9,可以在PE64下面.正常Win64系统下面重启关 ...

  4. Python黑帽编程3.0 第三章 网络接口层攻击基础知识

    3.0 第三章 网络接口层攻击基础知识 首先还是要提醒各位同学,在学习本章之前,请认真的学习TCP/IP体系结构的相关知识,本系列教程在这方面只会浅尝辄止. 本节简单概述下OSI七层模型和TCP/IP ...

  5. 《C++Primer》第五版习题答案--第三章【学习笔记】

    [C++Primer]第五版[学习笔记]习题解答第三章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/10 第三章:字符串,向量和数组 ...

  6. Windows程序设计(第五版)学习:第三章 窗口与消息

        第三章 窗口与消息 1,windows窗口过程:应用程序所创建的每一个窗口都有一个与之关联的窗口过程,用于处理传递给窗口的消息. 2,窗口依据窗口类来创建.窗口类标识了用于处理传递给窗口的消息 ...

  7. WPF 自定义 MessageBox (相对完善版 v1.0.0.6)

    基于WPF的自定义 MessageBox. 众所周知WPF界面美观.大多数WPF元素都可以简单的修改其样式,从而达到程序的风格统一.可是当你不得不弹出一个消息框通知用户消息时(虽然很不建议在程序中频繁 ...

  8. 网盘直链工具 winform版 V1.0

    软件需要.net2.0支持 win7及以上版本用户无需安装 xp用户需要安装 支持网盘:好盘 坚果云 百度云 乐视云 华为网盘 微云 新浪网盘 126disk 速度盘 乐齐盘 天空网盘 千脑网盘 可乐 ...

  9. 保卫萝卜官方PC版——含绿色版 V1.0.6Beta

    官方网站 | 安装版 | 绿色版

  10. 免费了 -- EXCEL插件 智表ZCELL 普及版V1.0 发布了!!!

    智表(zcell)是一款浏览器仿excel表格jquery插件.智表可以为你提供excel般的智能体验,支持双击编辑.设置公式.设置显示小数精度.下拉框.自定义单元格.复制粘贴.不连续选定.合并单元格 ...

随机推荐

  1. 16、数据库加固-mysql 加固

    1.修改 DBA 登录密码 shell 下执行: mysqladmin -u root password 非首次修改:mysqladmin -u root password -p原密码 在 mysql ...

  2. Typora+免费图床,构建随处可用的Markdown文档

    Typora+PicGo+Gitee自动上传图片 视频教程: https://www.bilibili.com/video/BV1hT4y1f7Mf?from=search&seid=1546 ...

  3. windows10安装ruby

    下载ruby 下载地址: ruby各版本下载地址 https://rubyinstaller.org/downloads/ 2.3.3版本 https://www.cr173.com/soft/142 ...

  4. docker-compose 安装redis

    一. docker 拉去最新版本的redis `docker pull redis:6.0.6` #后面可以带上tag号, 默认拉取最新版本 二. docker安装redis 执行命令: mkdir ...

  5. JavaScript算法---基础排序类

    <html> <script> //正序排序,把大的放到最后,arr[j]>arr[j+1] let fz=(arr)=>{ for(let len=arr.len ...

  6. Linux(三):Linux的目录及相关作用

    使用 Linux,不仅限于学习各种命令,了解整个 Linux 文件系统的目录结构以及各个目录的功能同样至关重要.使用 Linux 时,通过命令行输入 ls -l / 可以看到,在 Linux 根目录( ...

  7. [数字华容道] Html+css+js 实现小游戏

    [数字华容道] Html+css+js 实现小游戏 效果图 代码预览 在线预览地址 代码示例 <!DOCTYPE html> <html> <head> <m ...

  8. Linux之kill命令

    1.kill命令的使用格式 kill [参数] [进程号] 2.kill命令的功能 发送指定的信号到相应进程.不指定型号将发送SIGTERM(15)终止指定进程.如果任然无法终止该程序可用" ...

  9. 逆向WeChat(四)

    本篇在博客园地址https://www.cnblogs.com/bbqzsl/p/18209439 mars 先回顾一下,在上两篇我对wechat如何使用chrome::base框架的分析中存有错漏. ...

  10. nginx获取后端真实IP,添加后端服务器响应时间并记录日志

    nginx获取后端真实IP,添加后端服务器响应时间并记录日志 1.日志定义 log_format nginx '$remote_addr - $remote_user [$time_local] &q ...