电赛系列:k210快速入门,机器飞升!

写在前面:参考教程:

Python背景知识 · OpenMV中文入门教程

openmv的官方文档

如何正确 阅读 本文 - Sipeed Wiki

k210官方文档

⭐⭐⭐⭐⭐【超实用】精品教程汇总贴⭐⭐⭐⭐⭐ (sipeed.com)

推荐新手入门跟学

image-20230723150802324

k210简介:

K210是由一家叫做嘉楠的公司推出的一款MCU,其特色在于芯片架构中包含了一个自研的神经网络硬件加速器KPU,可以高性能地进行卷积神经网络运算。

image-20230723100532961

图像处理背景知识:

摄像头:

那么什么是摄像头,说到底,就是一个将光学信号转变成电信号的一个装置。在计算机视觉中,最简单的相机模型是小孔成像模型:

image-20230723101728765

图像透过镜头,照在一个感光芯片上,感光芯片可以把光照的波长和强度等信息转成计算机(数字电路)可以识别的数字信号

image-20230723102208462

像素和分辨率:

感光元件是有很多个感光点构成的,比如有640*480个点,每个点就是一个像素

image-20230723103202273

帧率:

简单那来讲就是每秒钟处理的图片数量,如果超过20帧,人眼就基本分辨不出卡顿。

颜色:

物理上,颜色就是不同波长的电磁波。但是,根据人眼的视觉效果,可以通过RGB,CMYK,HSB,LAB色域,来将可见光的颜色描述出来。

image-20230723103646022

LAB:

Lab颜色空间中,L亮度;a的正数代表红色,负端代表绿色;b的正数代表黄色,负端代表兰色。不像RGB和CMYK色彩空间,Lab颜色被设计来接近人类视觉。

因此L分量可以调整亮度对,修改a和b分量的输出色阶来做精确的颜色平衡。

镜头焦距:

镜头焦距:是指镜头光学后主点到焦点的距离,当对同一距离远的同一个被摄目标拍摄时,镜头焦距长的所成的象大,镜头焦距短的所成的象小。注意焦距越长,视角越小。

串口终端:

我们直接在终端里面敲代码来一句一句执行,这样也简单方便,我们输入命令后会立即执行并及时得到返回的结果,这种交互方式称为 REPL(Read Eval Print Loop:交互式解释器), 这种方式的好处就是简单方便,使用起来和 Linux 终端十分相似,只是使用的语法换成了 MaixPy(Micropython)的语法。

连接上开发板后打开串口终端

image-20230723110733154

打开终端,选择相应的串口后进入编辑界面

image-20230723153847957

image-20230723110918759

image-20230723153910015

这样就是等待我们编辑代码的状态

按一下复位键可以查看当前固件版本:如果开发过程中一直莫名报错,比如摄像头代码用不了可以考虑更新到最新版本

image-20230723154119607

串口终端内粘贴代码需要先按ctrl E(ctrl E是为了按回车的时候是换行而不是运行代码)后再右键粘贴,之后再按ctrl D就可以运行了。

image-20230723154729734

如果直接粘贴的话代码是不会分行的,会报语法错误

当然如果数据量比较大,串口可能丢失数据,会导致提示语法错误,可以多试几次。

image-20230723154833199

python快速入门:

print语句:

image-20230723112733389

赋值:

python定义变量的时候不需要指定变量类型,属于动态语言,且同一变量可以多次被不同类型的数据赋值

image-20230723113214113

List列表:

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素,跟C的数组很像;-

  • 定义:

    image-20230723114043056

定义完了后输入list的名称即可打印出来

  • 求元素个数:

    image-20230723114231781

  • 索引:

    image-20230723114310330

  • 末尾添加元素:

    image-20230723114436110

  • 插入:

    image-20230723135537589

  • 删除末尾元素;

    image-20230723135718517

Tuple元组:

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,它也没有append(),insert()这样的方法。Tuple的语法表达是用小括号的,

image-20230723140139917

条件判断:

跟C类似,这里就不多讲了

age = 20
if age >= 6:
    print('teenager')
elif age >= 18:
    print('adult')
else:
    print('kid')

循环:

for循环:

for x in …循环就是把每个元素代入变量x,然后执行缩进块的语句。

names = ['Michael', 'Bob', 'Tracy']
for name in names:
    print(name)

image-20230723141311528

while循环:

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)

函数:

语法:def 函数名(位置参数)

def power(x, n):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s

切片:

L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']

L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素,也就是

['Michael', 'Sarah', 'Tracy']

如果第一个索引是0,还可以写成L[:3]

也可以从索引1开始,取出2个元素出来:

L[1:3]
['Sarah', 'Tracy']

image-20230723142947891

对象:

Python是面向对象编程的,比如点亮一个LED灯

from pyb import LED

    red_led = LED(1)
    red_led.on()

maixbit相关参数:

因为我用的是maixbit,所以就只介绍这块,其他板子资料可以在这个网址找:下载站 - Sipeed

image-20230723145438551

需要用的是这三个pdf

image-20230723150108071

image-20230723150254926

image-20230723150316780

image-20230723150725373

存储系统:

maixpy存储系统大致如下:

image-20230723161339168

MaixPy 中的存储介质主要由Flash和SD卡组成,大致分为3个区域:分别是 MaixPy.bin 固件区,xxx.kmodel 模型区(flash模型区不大,只能放小模型,大模型还是要放入SD卡中),文件系统区;

具体看这篇:【MaixPy快速上手】存储系统介绍 (sipeed.com)

脱机运行:

点击工具,再点击将打开的文件保存为boot.py,这样开发板一上电就会运行我们的脚本了(有可能需要按一下复位)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值