ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

maixpy 常用例程整理

2022-07-30 09:32:03  阅读:148  来源: 互联网

标签:常用 img 例程 import lcd time GPIO sensor maixpy


基础控制K210例程

1.1 使用屏幕和摄像头

  • 例程
import sensor, lcd

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
sensor.skip_frames()

lcd.init(freq=15000000)

while(True):
    lcd.display(sensor.snapshot())
  • 代码讲解
  • import sensor, lcd: 首先导入内置的sensor(摄像头)库和lcd(屏幕)库
  • sensor.reset(): 初始化摄像头,这里失败需要检查硬件
  • sensor.set_pixformat(sensor.RGB565): 设置摄像头为RGB565格式,默认都是用RGB565即可
  • sensor.set_framesize(sensor.QVGA): 分辨率为QVGA,即320x240
  • sensor.run(1): 开始运行,在现在的版本中也可以不调用,在上面设置完成后,摄像头会自动开始运行
  • sensor.skip_frames(): 摄像头刚启动时,图像质量还没稳定,所以跳过一些图像
  • lcd.init(freq=15000000): 初始化 LCD, 这里传了一个参数叫freq即频率, 是指定驱动 LCD 的时钟频率,这里是15MHz,可以根据硬件性能调整
  • while(True): 这是一个循环,循环里面的代码会被不停地运行
  • sensor.snapshot():从摄像头取一帧图像数据,返回值是一张图像的对象
  • lcd.display(): 显示图像到 LCD
  • lcd.display(sensor.snapshot()): 这里就是先执行括号里的获取图像,返回值直接作为参数给 LCD 进行显示

1.2 点亮LED

  • 例程
from fpioa_manager import fm
from Maix import GPIO
import time

io_led_red = 6          # 对应管脚号6
fm.register(io_led_red, fm.fpioa.GPIO0)
led_r=GPIO(GPIO.GPIO0, GPIO.OUT)
led_r.value(0)
time.sleep(1)
led_r.value(0)
  • 代码讲解
  • fpioa_manager 包导入fm 对象,主要用于引脚和外设的映射
  • 从包 Maix 导入了 GPIO 这个类, GPIO 外设相关操作
  • 定义一个变量io_led_red,值为6,即Pin6/IO6, 具体 LED 的引脚连接到了芯片的哪个引脚,请在前面的开发板介绍中看原理图
  • 使用fm(fpioa manager 的缩写)这个内置的对象来注册芯片的外设和引脚的对应关系, 这里 fm.fpioa.GPIO0 是 K210 的一个 GPIO 外设(注意区分 GPIO(外设) 和引脚(实实在在的硬件引脚)的区别 ), 所以把 fm.fpioa.GPIO0 注册到了 引脚 IO6
  • 然后定义一个 GPIO 对象led_r, 具体参数看 GPIO API 文档, 在左边侧边栏查找。
  • 使用 led_r.value(1) 或者 led_r.value(0) 来设置高低电平即可, 因为这里设置了低电平, 根据上面的原理图可知低电平导通,LED 灯亮

1.3 硬件加速图像处理

  • 例程
import sensor
import image
import lcd
import time

lcd.init(freq=15000000)
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
origin = (0,0,0, 0,1,0, 0,0,0)
edge = (-1,-1,-1,-1,8,-1,-1,-1,-1)
sharp = (-1,-1,-1,-1,9,-1,-1,-1,-1)
relievo = (2,0,0,0,-1,0,0,0,-1)

tim = time.time()
while True:
    img=sensor.snapshot()
    img.conv3(edge)
    lcd.display(img)
    if time.time() -tim >10:
        break
tim = time.time()
while True:
    img=sensor.snapshot()
    img.conv3(sharp)
    lcd.display(img)
    if time.time() -tim >10:
        break
tim = time.time()
while True:
    img=sensor.snapshot()
    img.conv3(relievo)
    lcd.display(img)
    if time.time() -tim >10:
        break

lcd.clear()
  • 代码讲解

分别对图像进行了边缘查找锐化浮雕化, 利用了卷积计算快速得到结果。

标签:常用,img,例程,import,lcd,time,GPIO,sensor,maixpy
来源: https://www.cnblogs.com/hnu-hua/p/16534340.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有