第一章 本书学习方法

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....,该在线文档主要介绍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年成立至今,已有十多年的时间,拥有数十万的注册用户和大量嵌入式相关的帖子,每天有数百人互动,是一个非常好的嵌入式学习交流平台。


正点原子
1 声望1 粉丝