当前位置:   article > 正文

视觉开发板—K210自学笔记(二)--hello world_k210视觉频率例程

k210视觉频率例程

视觉开发板—K210

一、开发之前的准备

工欲善其事必先利其器。各位同学先下载下面的手册:

1.Sipeed-Maix-Bit 资料下载:https://dl.sipeed.com/shareURL/MAIX/HDK/Sipeed-Maix-Bit/Maix-Bit_V2.0_with_MEMS_microphone

2.Sipeed-Maix-Bit 规格书下载:https://dl.sipeed.com/fileList/MAIX/HDK/Sipeed-Maix-Bit/Specifications/Sipeed%20Maix-Bit%20%E8%A7%84%E6%A0%BC%E4%B9%A6%20V2.0.pdf

3.Sipeed-Maix-Bit 原理图下载:https://dl.sipeed.com/fileList/MAIX/HDK/Sipeed-Maix-Bit/Maix-Bit_V2.0_with_MEMS_microphone/Maix-Bit_V2.0_Schematic.pdf

开发板参数

板载资源

按键*2

RGB灯*1

MEMS Microphone*1

USB to UART

128Mbit Flash*1

板载接口

USB Type-C接口

24PIN DVP摄像头接口

24PIN LCD接口

MicroSD卡槽

所有IO排针引脚引出

尺寸

53.3*25.4mm

供电电压

5.0V @ 300mA(供电电流需大于300mA)

工作温度

-30℃ ~85C

二、MaixPy

按照先硬后软的顺序,我们再来看看开发环境。MaixPy 是将 Micropython 移植到 K210(一款 64 位双核带硬件 FPU、卷积加速器、FFT、Sha256 的 RISC-V CPU ) 的一个项目; MaixPy 不但支持 MCU 常规操作, 还集成了硬件加速的 AI 机器视觉和麦克风阵列相关的算法。相应的高达 1TOPS 算力核心模块却不到¥50, 凭借着快速开发和较低成本与其较小的体积很适合 AIOT 领域智能应用

MicroPython 是基于 Python3 的语法做的一款解析器,包含了 Python3 的大多数基础语法, 主要运行在性能和内存有限的嵌入式芯片上。(注意 Micropython 不包含 Python3 的所有语法)。总之MaixPy 让我们在 K210 上编程更加简单快捷高效。

使用 MaixPy 的入门教程,包括基础知识,一定要看,才能避免遇到很多问题,会给后面开发节省很多时间。

K210的开发提供了各个功能模块的 API 手册,方便编程时查阅

1.标准库:micropython 的标准库,很多 API 兼容 python3 的 API

2.machine:机器相关,重启控制,机器 UID,以及各种外设控制

3.Maix: 一些特殊的模块,比如 FPIOA,KPU,FFT等

4.内置类:内置的用 mpy(micropython 的缩写)编写的类,可以在源码项目中找到

5.机器视觉: 一些机器视觉相关的模块,image sensor lcd大致上兼容 OpenMV 的 API,但是后期不会实时跟着OpenMV 更新

6.附加外设模块:一些外设模块的使用,比如触摸屏,超声波,LED 灯等

7.内置应用: 内置的应用,比如 NES 游戏机(FC 红白机,也就是小时候的小霸王游戏机),pye(内置的文档编辑器)

三、编程快速入门

K210和OPENMV一样是可以使用MicroPython编程的开发板,甚至有些openmv的例程都可以直接拿过来直接使用。所以说教程上可以参考openmv的相关教程学习,两者支持的语言是一样的。又或者你有Python的基础也是可以直接上手的。

程序结构上类似arduino,分为三个部分:

import ...

...

一次设置 ...

...

while(True): # Loop

    ...

K210代码的第一部分应该包含一些头部注释,将模块引入到代码,最后是代码中的常量和全局变量。

接下来,你将要做一次性的设置代码。这包括创建I / O引脚对象,设置摄像头,定义辅助函数等。

最后,你将创建一个 while(True): 循环,在这个循环之下,你放进去的全部代码将会在循环中重复调用,直到关闭电源。

让我们看看K210的第一个例程。

如图,左键单击【文件】—【示例】—【01-Basics】—【helloworld.py】,hellworld我相信是学任何语言写的第一个程序,这里K210我们依然是最开始呈现这个最经典的程序。

  1. ### 头部注释,导入语句等
  2. # Hello World Example
  3. #
  4. # Welcome to the MaixPy IDE!
  5. # 1. Conenct board to computer
  6. # 2. Select board at the top of MaixPy IDE: `tools->Select Board`
  7. # 3. Click the connect buttion below to connect board
  8. # 4. Click on the green run arrow button below to run the script!
  9. import sensor, image, time, lcd
  10. lcd.init(freq=15000000)
  11. sensor.reset()                      # Reset and initialize the sensor. It will
  12.                                  # run automatically, call sensor.run(0) to stop
  13. sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
  14. sensor.set_framesize(sensor.QVGA)   # Set frame size to QVGA (320x240)
  15. sensor.skip_frames(time = 2000)     # Wait for settings take effect.
  16. clock = time.clock()                # Create a clock object to track the FPS.
  17. while(True):
  18.     clock.tick()                   # Update the FPS clock.
  19.     img = sensor.snapshot()        # Take a picture and return the image.
  20.     lcd.display(img)               # Display on LCD
  21.     print(clock.fps())              # Note: MaixPy's Cam runs about half as fast when connected
  22.                                 # to the IDE. The FPS should increase once disconnected.

程序的逻辑跟单片机是一样的,如果您的代码中没有无限的while循环,那么一旦您的K210完成运行脚本,它将停在那里,什么都不做。

现在再用中文翻译下上面的程序:

import sensor, image, time, lcd: 首先导入内置的sensor(摄像头)库,image图像库, time时间库和lcd(屏幕)库

lcd.init(freq=15000000): 初始化 LCD,这里传了一个参数叫freq即频率,是指定驱动 LCD 的时钟频率,这里是15MHz,可以根据硬件性能调整

sensor.reset(): 初始化摄像头,这里失败需要检查硬件

sensor.set_pixformat(sensor.RGB565): 设置摄像头为RGB565格式,默认都是用RGB565即可

sensor.set_framesize(sensor.QVGA): 分辨率为QVGA,即320x240

sensor.skip_frames(time = 2000): 摄像头刚启动时,图像质量还没稳定,所以跳过一些图像

clock = time.clock() 初始化时钟

while(True): 这是一个循环,循环里面的代码会被不停地运行

sensor.snapshot():从摄像头取一帧图像数据,返回值是一张图像的对象

lcd.display(): 显示图像到LCD

lcd.display(sensor.snapshot()): 这里就是先执行括号里的获取图像,返回值直接作为参数给 LCD 进行显示

程序运行后会得到下面的画面,这段程序在LCD上的使用效果会更明显一些。尽管这个程序名称叫hello world,但是貌似好像跟hello world没什么关系。但是作为K210的入门程序,给出了基本的编程开发框架,可以供给大家进一步开发。

同时,K210提供了大量的SDK共大家使用。下载链接在github上,这里搬运过来:

GitHub - sipeed/MaixPy-v1_scripts: micropython scripts for MaixPy

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/683322
推荐阅读
相关标签
  

闽ICP备14008679号