《DNK210使用指南 -CanMV版 V1.0》第三章 CanMV简介
第三章 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简介的更多相关文章
- MySQL与MariaDB核心特性比较详细版v1.0(覆盖mysql 8.0/mariadb 10.3,包括优化、功能及维护)
注:本文严禁任何形式的转载,原文使用word编写,为了大家阅读方便,提供pdf版下载. MySQL与MariaDB主要特性比较详细版v1.0(不含HA).pdf 链接:https://pan.baid ...
- J20航模遥控器开源项目系列教程(一)制作教程 | 基础版V1.0发布,从0到1
我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/C ...
- [原创] RestartPC64-中文版v1.0.0.9
原来发布的RestartPC-中文版和英文版v1.0.0.5,在PE64下无效.所以重新编译了64位版的RestartPC64-中文版v1.0.0.9,可以在PE64下面.正常Win64系统下面重启关 ...
- Python黑帽编程3.0 第三章 网络接口层攻击基础知识
3.0 第三章 网络接口层攻击基础知识 首先还是要提醒各位同学,在学习本章之前,请认真的学习TCP/IP体系结构的相关知识,本系列教程在这方面只会浅尝辄止. 本节简单概述下OSI七层模型和TCP/IP ...
- 《C++Primer》第五版习题答案--第三章【学习笔记】
[C++Primer]第五版[学习笔记]习题解答第三章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/10 第三章:字符串,向量和数组 ...
- Windows程序设计(第五版)学习:第三章 窗口与消息
第三章 窗口与消息 1,windows窗口过程:应用程序所创建的每一个窗口都有一个与之关联的窗口过程,用于处理传递给窗口的消息. 2,窗口依据窗口类来创建.窗口类标识了用于处理传递给窗口的消息 ...
- WPF 自定义 MessageBox (相对完善版 v1.0.0.6)
基于WPF的自定义 MessageBox. 众所周知WPF界面美观.大多数WPF元素都可以简单的修改其样式,从而达到程序的风格统一.可是当你不得不弹出一个消息框通知用户消息时(虽然很不建议在程序中频繁 ...
- 网盘直链工具 winform版 V1.0
软件需要.net2.0支持 win7及以上版本用户无需安装 xp用户需要安装 支持网盘:好盘 坚果云 百度云 乐视云 华为网盘 微云 新浪网盘 126disk 速度盘 乐齐盘 天空网盘 千脑网盘 可乐 ...
- 保卫萝卜官方PC版——含绿色版 V1.0.6Beta
官方网站 | 安装版 | 绿色版
- 免费了 -- EXCEL插件 智表ZCELL 普及版V1.0 发布了!!!
智表(zcell)是一款浏览器仿excel表格jquery插件.智表可以为你提供excel般的智能体验,支持双击编辑.设置公式.设置显示小数精度.下拉框.自定义单元格.复制粘贴.不连续选定.合并单元格 ...
随机推荐
- arduino uno+LCD12864(ST7735S)+蓝牙模块实现贪吃蛇
1.前言: 1.1本实验实现的贪吃蛇能穿越边界,结束游戏的唯一条件是贪吃蛇到达指定长度 1.2本实验所用LCD可能不是LCD12864,LCD12864所用库为u8glib,笔者在词库中并没有找到型号 ...
- 02、Linux 排查
Linux 分析排查 1.敏感文件信息 1.1.tmp 目录 /tmp:临时目录文件,每个用户都可以对它进行读写操作.因此一个普通用户可以对 /tmp 目录执行读写操作(ls -alt) 筛查 /tm ...
- 国外anonfiles网盘大文件下载器
各位注意了,这个网站很久以前是可以国内直接访问的,后来被墙了,但仍然可以使用代理下载,现如今,6天前大概2023年8月10号左右这个网站已经挂了,就是彻底不能用了,所有与之有关的东西比如网页,都是假的 ...
- Docker使用docker compose部署zfile 实现在线浏览下载
需要先安装docker-compose curl -L https://get.daocloud.io/docker/compose/releases/download/v2.2.3/docker-c ...
- Splashtop Enterprise提供全面的远程访问和远程支持解决方案
全球领先的远程访问和远程支持解决方案领导者 Splashtop Inc. 发布了全新的 Splashtop Enterprise ,这是一个全面的远程访问和远程支持解决方案,满足企业的IT人员,服 ...
- C数据结构线性表:实现顺序表的增删改查&完整篇
文章目录 ①前言 顺序表结构体的定义 ②初始化顺序表 ③插入新的元素 插入的时候需要特别注意的几点 ④删除元素 第一个删除元素功能实现 第二个删除元素功能实现 对代码下面中**i- -**的说明(第二 ...
- 服务器电源管理(Power Management States)
目录 文章目录 目录 EIST(智能降频技术) 硬件 固件 操作系统 EIST(智能降频技术) EIST 能够根据不同的 OS(操作系统)工作量自动调节 CPU 的电压和频率,以减少耗电量和发热量.它 ...
- 【U8】 生产订单下bom 提示 “遇到以0做除数错误”错误
一个虚拟件子件的子件为无换算率存货,bom中对应的换算率.辅助基本用量为0,修改为null后正常. 对应 bom_opcomponent表的 ChangeRate 换算率 AuxBaseQtyN 辅助 ...
- pyinstaller 打包无窗口python http.server无法启动
最近在写一个简单的文件服务器用来访问静态文件,遇到在pyinstaller无窗口模式下无法启动的问题,记录一下解决方案. 原因:http.server需要将记录输出到窗口,而pyinstaller打包 ...
- .NET 将多个程序集合并成单一程序集的 4+3 种方法
将 .NET 程序集与依赖合并到一起的方法有下面四种: 使用 .NET Core 3.0 自带的 PublishSingleFile 属性合并依赖使用 Fody使用 SourceYard 源代码包使用 ...