第一章 本书学习方法

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

为了让读者更好地学习和使用本书,本章将为读者介绍本书的学习方法,包括:本书的学习顺序、编写规范、代码规范、资料查找和学习建议等内容。

本章分为如下几个小节:

1.1 本书学习顺序

1.2 本书参考资料

1.3 本书编写规范

1.4 本书代码规范

1.5 例程资源说明

1.6 学习资料查找

1.7 给初学者的建议

1.1 本书学习顺序

为了让读者更好地学习和使用本书,我们做了以下几点考虑:

1, 坚持循序渐进的思路讲解,从基础到入门,从简单到复杂;

2, 将知识进行分类介绍,简化学习过程;

3, 将板卡硬件资源介绍独立成一个文档《DNK210硬件参考手册.pdf》。

因此,读者在学习本书的时候,我们建议:先通读一遍《DNK210硬件参考手册.pdf》,对板卡的硬件资源有个大概的了解,然后从本书的基础篇开始,再到实验篇,循序渐进,逐一攻克。

对于初学者,更是要按照以上建议的学习路线进行学习,不要跳跃式学习,因为本书中的知识是环环相扣的,如果没有掌握前面的知识,就去学习后面的知识,就会学的非常吃力。

对于已经有了一定单片机基础的读者,就可以跳跃式地学习,学习效率,当然了,若是遇到不懂的知识点,也得查阅前面的知识点进行巩固。

1.2 本书参考资料

本书主要参考的资料有如下两份文档:

《Kendryte 规格书》(https://github.com/kendryte/kendryte-doc-datasheet.git)

《CanMV 文档》(https://github.com/kendryte/canmv_docs.git)

这两份文档均是嘉楠科技针对Kendryte K210提供的文档,前者是Kendryte K210的技术规格书,该规格书主要向硬件设计者提供Kendryte K210的硬件参数信息,当然,软件开发者也是有必要了解这些参数信息的。

后者是嘉楠科技针对CanMV项目提供的文档,该文档非常详细地对CanMV的应用开发进行介绍和讲解,并提供了丰富的例程以及API介绍,是CanMV应用开发者入门必看的文档之一。

以上提及的两份文档也是读者在学习本书的过程中必不可少的参考资料,读者可以在A盘Kendryte K210参考资料中找到这两份文档。

1.3 本书编写规范

本书通过数十个例程,为读者详细介绍了Kendryte K210和CanMV的绝大多数功能,按照知识结构,本书分为两大篇章:基础篇和实验篇。

基础篇,共八章,主要是一下基础知识介绍,包括芯片、软件库介绍以及开发环境搭建等,这些章节在结构上没有共性,但相互有关联,即:必须先学习前面的知识,才能更好地学习后面的知识。

实验篇,共三十九章,主要介绍了在CanMV环境下如何在Kendryte K210上各种功能的使用和应用的开发。这些章节在结构上比较有共性,一般分为四个部分,如下:

1,功能介绍

2,硬件设计

3,程序设计

4,运行验证

功能介绍,简单介绍具体实验章节使用到的硬件外设或CanMV中的软件模块,让读者对实验章节中涉及的软硬件原理有一个基本的了解,便于后面的程序设计。

硬件设计,包括实验例程实现的功能说明、使用的硬件资源及其原理图。读者可以清晰地了解实验章节中的实验例程要实现什么功能、用到的哪些硬件资源、各个硬件资源之间的连接原理图如何。这样有利于程序的设计与实现。

程序设计,主要介绍本章实验例程中的程序部分,包含了例程程序用到的关键软件模块介绍、例程程序的程序流程图和主要的代码讲解,让读者深入了解整个程序代码。

运行验证,是实验章节中的实践部分,在完成程序设计之后,运行设计的程序,并观察是否能够按照预期的现象进行功能,形成一个闭环。

1.4 本书代码规范

本书提供的试验例程代码均为Python脚本,因此代码也是严格遵循Python的语法要求进行编写的。

总结几个规范的关键点:

1,使用有意义的变量名和函数名;

2,使用简洁明了的注释介绍代代码的功能和目的;

3,每个代码块都需要以4个空格为一个缩进等级进行缩进,以表达明确的代码层级关系并且方便代码的阅读;

4, 方法、函数和代码块两两之间有且只有一个空行;

5, 必须严格遵循Python语法进行脚本程序的设计和编写。

1.5 例程资源说明

DNK210开发板的配套资料中提供的CanMV版实验例程多达39个,这些实验例程均是基于CanMV进行编写的,因此也只能在CanMV环境下运行。这些例程大部分都是原创,并且有着非常详细的注释,代码风格统一、内容循序渐进,非常适合初学者入门学习。

DNK210开发板的CanMV版实验例程如下表所示:

编号 实验名称 编号 实验名称

1 打印输出实验 21 音频录制实验

2 板卡信息实验 22 照片拍摄实验

3 FPIOA管理器实验 23 视频播放实验

4 跑马灯实验 24 音频FFT实验

5 蜂鸣器实验 25 image元素绘制实验

6 按键输入实验 26 image图像滤波实验

7 按键中断实验 27 image图像特征加测实验

8 machine模块实验 28 image图像色块追踪实验

9 machine.WDT实验 29 image图像对比实验

10 machine.Timer实验 30 image码识别实验

11 machine.PWM实验 31 YOLO2人脸检测实验

12 machine.I2C实验 32 YOLO2人手检测实验

13 machine.UART实验 33 YOLO2物体检测实验

14 六轴传感器——原始数据读取实验 34 人脸口罩佩戴检测实验

15 六轴传感器——姿态解算实验 35 人脸属性分析实验

16 LCD显示实验 36 人脸68关键点检测实验

17 LCD图片显示实验 37 人脸识别实验

18 摄像头图像捕获实验 38 车牌识别实验

19 摄像头图像调整实验 39 MNIST实验

20 音频播放实验



表1.5.1 DNK210 CanMV版例程表

从上表中可以看出,正点原子DNK210开发板的CanMV版例程基本上涵盖了CanMV环境下Kendryte K210上能实现的大部分基础功能。

并且按照上表中的实验名称可以看出,实验例程的安排都是循序渐进的,从简单且基础的功能开始,一步一步地深入,从简单到复杂,这样更有利于读者学习和掌握,也正因此,正点原子的DNK210开发板是非常适合初学者的。

1.6 学习资料查找

有关Kendryte K210和CanMV的相关学习资料,可以尝试从以下五个途径进行获取:

1,嘉楠开发者社区资料下载页面的资料

在嘉楠开发者社区中的资料下载中心,提供了Kednryte K210的部分相关资料,其网页链接为https://developer.canaan-creative.com/resource,在该链接里提供了Kendrryte K210的软件SDK、硬件设计参考、编程指南、编译工具链和IDE等资料,如下图所示:



图1.6.1 嘉楠开发者社区的资料下载页面

2,嘉楠开发者社区文档页面的资料

嘉楠开发者社区中也针对Kendryte K210提供了CanMV的在线文档,其网页链接为https://developer.canaan-creative.com/canmv/main/canmv/index.html,该在线文档主要介绍CanMV在Kendryte K210上的使用,文档中也提供了一些简单的示例,并且有着对CanMV中API详细的介绍等,如下如所示:



图1.6.2 嘉楠开发者社区的CanMV文档页面

3,Kendryte GitHub主页的资料

Kendryte K210官方的很多软件、文档等资料都在Github上开源,其网页链接为https://github.com/kendryte,在Kendryte的GitHub主页里可以找到许多Kendryte K210相关的软件、文档等相关的开源仓库,如下图所示:



图1.6.3 Kendryte的GitHub主页

4,正点原子的学习资料

正点原子提供了大量的学习资料,为方便读者下载所有正点原子最新最全的学习资料,这些资料都放在正点原子文档中心(http://www.openedv.com/docs/index.html),如下图所示(正点原子文档中心会不时地更新,以保证为读者提供最新的学习资料):



图1.6.4 正点原子文档中心(部分截图)

在正点原子文档中心中,可以找到正点原子所有开发板、模块、产品等的详细资料下载链接。

5,正点原子论坛

正点原子论坛(http://www.openedv.com/forum.php),即开源电子网,该论坛从2010年成立至今,已有十多年的时间,拥有数十万的注册用户和大量嵌入式相关的帖子,每天有数百人互动,是一个非常好的嵌入式学习交流平台。

《DNK210使用指南 -CanMV版 V1.0》第一章 本书学习方法的更多相关文章

  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. 《C++Primer》第五版习题答案--第一章【学习笔记】

    C++Primer第五版习题解答---第一章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2022/1/7 第一章:开始 练习1.3 #includ ...

  5. C++PRIMER第五版练习题答案第一章

    C++PRIMER第五版练习题答案第一章 应该有很多小伙伴和我一样,闲来无事买了本C++的书自己啃,课后的练习题做的很揪心,这里我分享下我写的答案,希望能帮助到你,提供源码,就不跑了哈,毕竟现在是第一 ...

  6. Canvas绘制不规则图形,实现可拖动,编辑--V1.0第一篇

    目前的工作在做在线的标注工具,接触canvas一年了,各种绘制,基本上图像的交互canvas都可以完成,也写了几篇关于canvas的文章,遇到的问题也写博客上了,对于canvas有问题的朋友可以去看看 ...

  7. c#高级编程第七版 学习笔记 第一章 .NET体系结构

    第一章      .NET体系结构 本章内容: 编译和运行面向.NET的代码 Microsoft中间语言(Microsoft Intermediate Language,MSIL或简称IL)的优点 值 ...

  8. 【vue.js权威指南】读书笔记(第一章)

    最近在读新书<vue.js权威指南>,一边读,一边把笔记整理下来,方便自己以后温故知新,也希望能把自己的读书心得分享给大家. [第1章:遇见vue.js] vue.js是什么? vue.j ...

  9. Windows程序设计(第五版)学习:第一章 起步

    第一章 起步 1,windows主要的三个动态库: kernel32.dll负责操作系统的传统工作,包括内存管理.文件输入以及任务管理等. user32.dll负责用户界面的操作,即所有窗口的管理 g ...

  10. 重读金典------高质量C编程指南(林锐)-------第一章 文件结构

    第一章  文件结构       C/C++程序通常由两个文件组成,一个文件保存程序的声明,称为头文件,.h 文件.一个保存程序的实现,称为定义文件.c文件. 1.1 版权与版本的声明 版权和版本的声明 ...

随机推荐

  1. CF620E New Year Tree (线段树维护 dfs 序)

    CF620E New Year Tree 题意:给出一棵 n 个节点的树,根节点为 1.每个节点上有一种颜色 ci​.m 次操作.操作有两种: 1 u c:将以 u 为根的子树上的所有节点的颜色改为 ...

  2. spring-boot集成Quartz-job存储方式二RAM

    简单区分: RAM:程序启动从数据库中读取原始job配置(也可以从配置文件中读取),job中间运行过程在RAM内存中,程序停止或重启后,RAM中数据丢失,再次启动的时候会重新读取job配置.适合于单机 ...

  3. ETSI GS MEC 015,MEP 带宽管理 API

    目录 文章目录 目录 版本 ETSI MEC 对 MEP 带宽管理功能的定义 功能理解 Bandwidth Management Service BWMS UML ME APP registers t ...

  4. 使用 JS 实现在浏览器控制台打印图片 console.image()

    在前端开发过程中,调试的时候,我门会使用 console.log 等方式查看数据.但对于图片来说,仅靠展示的数据与结构,是无法想象出图片最终呈现的样子的. 虽然我们可以把图片数据通过 img 标签展示 ...

  5. ssl协议存在弱加密算法修复,禁用低版本的TLS

    验证用网站:https://www.ssleye.com/ssltool/cipher_suites.html https://www.site24x7.com/zhcn/tools/tls-chec ...

  6. lvs之DR模式的实操演练

    理论 我是内部服务,代替我访问外部网络,这是正向代理:代替外部网络访问我,这是反向代理 槽位 sh根据源地址.调度到某个节点,dh,根据目标地址,调度到某个节点, 实战演练 默认策略以及修改策略 查看 ...

  7. kubernets之了解Qos等级

    一  Qos的种类 BestEffort(优先级最低) Burstable(中等优先级) Guaranteed(最高优先级) 二  Qos的作用 众所周知,节点上面的limits允许超卖,当节点上面的 ...

  8. 面试题:两个UILabel横向排列,要求压缩其中一个Label,另外一个Label的内容保持完整

    一.题目 AutoLayout中,布局两个UILabel,竖直方向处于统一水平线上:水平方向,二者间隔一定距离,左边的label距离父容器一定间距,右边的label距离容器右侧一定间隔 要求,两个la ...

  9. 关于ICMP隧道一点理解(起于修改wien-qq的记住密码)

    起 使用linux半年多以来,一直有一个我很需要但我无法完美解决的东西困扰这我-----(linux QQ) 目前我的解决方案是GitHub上的一个第三方QQ(有关ICMP隧道的搭建见 承,转) 但是 ...

  10. centos os7 和redhat 7 安装yum源失败的解决办法

    首先看我的报错 [Errno 14] curl#6 - "Could not resolve host: mirrors.aliyun.com; Unknown error" yu ...