视觉开发板—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我们依然是最开始呈现这个最经典的程序。

### 头部注释,导入语句等# Hello World Example## Welcome to the MaixPy IDE!# 1. Conenct board to computer# 2. Select board at the top of MaixPy IDE: `tools->Select Board`# 3. Click the connect buttion below to connect board# 4. Click on the green run arrow button below to run the script!import sensor, image, time, lcdlcd.init(freq=15000000)sensor.reset()                      # Reset and initialize the sensor. It will# run automatically, call sensor.run(0) to stopsensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)sensor.set_framesize(sensor.QVGA)   # Set frame size to QVGA (320x240)sensor.skip_frames(time = 2000)     # Wait for settings take effect.clock = time.clock()                # Create a clock object to track the FPS.while(True):clock.tick()                   # Update the FPS clock.img = sensor.snapshot()        # Take a picture and return the image.lcd.display(img)               # Display on LCDprint(clock.fps())              # Note: MaixPy's Cam runs about half as fast when connected# 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/462854.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++自幂数判断<GESP C++ 二级>

题目&#xff1a; 代码&#xff1a; #include <iostream> using namespace std; int main() {int m 0;cin >> m;for (int i 0; i < m; i) {int n 0;cin >> n;// 数一下 n 有多少位数&#xff0c;记为 lint t n, l 0;while (t > 0) {t / 10;l;}/…

【web前端开发】HTML及CSS简单页面布局练习

案例一 网页课程 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-wi…

Linux运用fork函数创建进程

fork函数&#xff1a; 函数原型&#xff1a; pid_t fork(void); 父进程调用fork函数创建一个子进程&#xff0c;子进程的用户区父进程的用户区完全一样&#xff0c;但是内核区不完全一样&#xff1b;如父进程的PID和子进程的PID不一样。 返回值&#xff1a; RETURN VALUEO…

编译器选择:VSCode安装MarkDown插件

目录 1.打开vscode2.点击扩展选项3.搜索 Markdown Preview Enhanced插件4.使用test示例5.然后右键鼠标选择打开侧边预览6.实时预览效果 注&#xff1a;本篇文章默认用户安装了vscode&#xff0c;未安装的可以自行查找教程安装。 注&#xff1a;看到后面的用户可以自己尝试尝试&…

SRS视频服务器使用记录

SRS是一个开源的&#xff08;MIT协议&#xff09;简单高效的实时视频服务器&#xff0c;支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等协议。 SRS媒体服务器和FFmpeg、OBS、VLC、 WebRTC等客户端配合使用&#xff0c;提供流的接收和分发的能力&#xff0c;是一个…

[office] Excel2019函数MAXIFS怎么使用?Excel2019函数MAXIFS使用教程 #知识分享#微信#经验分享

Excel2019函数MAXIFS怎么使用&#xff1f;Excel2019函数MAXIFS使用教程 Excel2019函数MAXIFS怎么使用&#xff1f;这篇文章主要介绍了Excel2019函数MAXIFS使用教程,需要的朋友可以参考下 在今年&#xff0c;Excel除了新版本Excel2019&#xff0c;其中有一个新功能MAXIFS函数&am…

有关网络安全的课程学习网页

1.思科网络学院 免费学习skillsforall的课程 课程链接&#xff1a;Introduction to Cybersecurity by Cisco: Free Online Course (skillsforall.com) 2.斯坦福大学计算机和网络安全基础 该证书对于初学者来说最有价值&#xff0c;它由最著名的大学之一斯坦福大学提供。您可…

codeforces 1400分

文章目录 1.[B. Phoenix and Beauty](https://codeforces.com/problemset/problem/1348/B)2.[C. Rotation Matching](https://codeforces.com/problemset/problem/1365/C)3.[C. Element Extermination](https://codeforces.com/problemset/problem/1375/C)4.[D. Epic Transform…

奇安信网神 SecGate3600-authManageSet.cgi登录绕过漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

JavaSE——数组(2/2)-数组在计算机中的执行原理、数组案例、Debug工具的使用

目录 数组在计算机中的执行原理 Java内存分配介绍 数组的执行原理 多变量指向同一数组 数组案例 求最大值 数组反转 随机排名 Debug工具的使用 数组在计算机中的执行原理 Java内存分配介绍 程序都是在内存中执行的&#xff0c;Java程序编译之后会产生一个class文件&…

Ps:直接从图层生成文件(图像资源)

通过Ps菜单&#xff1a;文件/导出/将图层导出到文件 Layers to Files命令&#xff0c;我们可以快速地将当前文档中的每个图层导出为同一类型、相同大小和选项的独立文件。 Photoshop 还提供了一个功能&#xff0c;可以基于文档中的图层或图层组的名称&#xff0c;自动生成指定大…

无心剑中译佚名《春回大地》

The Coming of Spring 春回大地 I am coming, little maiden, With the pleasant sunshine laden, With the honey for the bee, With the blossom for the tree. 我来啦&#xff0c;小姑娘 满载着欣悦的阳光 蜂儿有蜜酿 树儿有花绽放 Every little stream is bright, All …