网站建设项目进展情况汇报,360搜索怎么做网站优化,网站建设中网站制作包括哪些内容,合肥网站制作需今日开始学习K210视觉识别模块:
LED三色灯的操作_按键操作_定时器的配置使用_内存卡写入拍摄图片 亚博智能的K210视觉识别模块...... 固件库版本: canmv_yahboom_v2.1.1.bin 本文最终目的是编写一个按键拍照的例程序#xff1a; 为以后的专用场景的模型训练做准备#xf…今日开始学习K210视觉识别模块:
LED三色灯的操作_按键操作_定时器的配置使用_内存卡写入拍摄图片 亚博智能的K210视觉识别模块...... 固件库版本: canmv_yahboom_v2.1.1.bin 本文最终目的是编写一个按键拍照的例程序 为以后的专用场景的模型训练做准备因为训练自己的模型需要大量的图片并人工标注 图片的来源最好是K210自己拍摄的(其他设备拍也行) 我个人认为这样训练出的模型会更贴合K210自身的实际识别场景并且基础像素不会太高现在手机像素动不动就破一亿会给简单的识别运算增加负担 文章提供测试代码讲解、完整代码贴出、测试效果图 目录 LED三色灯的操作使用 代码测试效果 按键的操作使用 代码测试效果 定时器定时中断的配置使用 定时器配置相关函数介绍 编写例程序 代码测试效果 按键写入照片到TF内存卡 本部分实现功能 代码编写 代码测试结果 LED三色灯的操作使用 本段实验目的 开启LED三色显示 使用系统延时...... LED每隔一秒切换颜色点亮并用串口打印当前点亮颜色情况 该例程序告诉我们如何import RGB三色灯的库头文件以及每个颜色灯的设置参数 time.sleep(1)表示 系统延时一秒: from modules import ybrgb
import time
RGB ybrgb() #RGB ybrgb()能够成功创建一个RGB LED控制对象while True:
#RGB.set(r, g, b)函数能够正确接收三个参数红色、绿色、蓝色的亮度值范围通常是0-255并控制RGB LED灯的颜色。RGB.set(1, 0, 0)print(RED)time.sleep(1)RGB.set(0, 1, 0)print(GREEN)time.sleep(1)RGB.set(0, 0, 1)print(BLUE)time.sleep(1)RGB.set(1, 1, 1)print(WHITE)time.sleep(1)RGB.set(0, 0, 0)print(BLack)time.sleep(1) 代码测试效果 该段代码可以直接放在IDE中进行测试效果就是每个一秒进行LED循环切换显示颜色 红、绿、蓝、白、灭并且串口同步发送当前颜色显示情况 按键的操作使用 本段实验目的 按下一次按键后串口就打印一次提示 以下代码展示了如何调用KEY的使用方法 (与官方例程略有不同添加了等待按键松开的循环) from modules import ybkey
import timeKEY ybkey()while True:state KEY.is_press()if state ! 0:print(key pressed)while KEY.is_press(): #等待按键松开time.sleep(0.01) time.sleep_ms(100) #消抖 代码测试效果 按键按下后串口会打印 key pressed 定时器定时中断的配置使用 定时器配置相关函数介绍 1、先要import相关的库 from machine import Timer
import time2、再创建Timer对象并命名为timer,这里调用初始化的函数与解释如下 timer machine.Timer(id, channel, modeTimer.MODE_ONE_SHOT, period1000,
unitTimer.UNIT_MS, callbackNone, argNone, startTrue, priority1, div0) id : Timer ID, [0~2] (Timer.TIMER0~TIMER2) channel : Timer 通道 , [Timer.CHANNEL0~Timer.CHANNEL3] mode : Timer 模式 , MODE_ONE_SHOT 或者 MODE_PERIODIC 或者 MODE_PWM period : Timer 周期 , 在启动定时器后 period 时间 回调函数将会被调用 (0,~) unit : 设置周期的单位默认位毫秒 ms Timer.UNIT_S 或者 Timer.UNIT_MS 或者 Timer.UNIT_US 或者 Timer.UNIT_NS callback : 定时器回调函数 定义了两个参数 一个是定时 器对象 Timer 第二个是在定义对象是希望传的参数 arg 更多请看 arg 参数解释 3、定时器回调函数
#该函数是被Timer对象用作定时器到期时的回调当定时器触发时该函数会被自动调用
def on_timer(timer): 编写例程序 from machine import Timer
import time#该函数是被Timer对象用作定时器到期时的回调当定时器触发时该函数会被自动调用
def on_timer(timer):print(This is on_timer callback)# 创建一个周期为200毫秒的定时器
timer Timer(Timer.TIMER0, Timer.CHANNEL0,modeTimer.MODE_PERIODIC, period100,unitTimer.UNIT_MS, callbackon_timer, argNone)# 获取当前的时间戳以毫秒为单位并存储在last_time变量中
last_time time.ticks_ms()
try:while True:# 检查从上一次记录的时间到现在是否过去了至少200毫秒 if time.ticks_ms() - last_time 200:# 如果时间差大于等于200毫秒则更新last_time为当前时间戳 last_time time.ticks_ms()# 打印一条消息表示主循环被执行print(This is main loop)# 捕获所有异常这是一个不推荐的做法因为会捕获所有的异常包括意外的和未处理的异常
except:timer.deinit()# 删除timer对象释放其占用的资源 del timer# 删除timer对象释放其占用的资源 代码测试效果 串口测试效果展示 定时器每打印俩次主程序即打印一次 符合程序指定的 定时器每100ms打印一次主函数大于等于200ms打印一次的规律 按键写入照片到TF内存卡 有了之前的函数学习积累我们现在可以尝试编写python代码来使得按键操作K210拍摄一张照片并写入到TF内存卡 本部分实现功能 1、LCD循环播放当前采集到的图像并在左上角显示帧率 2、按下按键不动 1将当前拍摄的一张照片存到TF卡 2点亮LED闪白光提示提取了当前的照片 3停止画面在当前采集到的照片 3、成功采集到一张照片还会有串口反馈 代码编写
import time,sensor,lcd,image
from modules import ybkey
from modules import ybrgbRGB ybrgb() #RGB ybrgb()能够成功创建一个RGB LED控制对象
KEY ybkey() #按键控制对象
clock time.clock() #用于计算摄像头的帧率。lcd.init() # 初始化LCD显示屏
sensor.reset() # 重置摄像头传感器
sensor.set_pixformat(sensor.RGB565) # 设置摄像头的像素格式为RGB565 # RGB565表示红色使用5位绿色使用6位蓝色使用5位来表示颜色
sensor.set_framesize(sensor.QVGA) # 设置摄像头捕获的图像大小为QVGA320x240像素
sensor.run(1) #用于启动摄像头传感器并设置其工作模式
sensor.skip_frames(10) # 跳过摄像头的前10帧以便让摄像头稳定下来避免初始化时的噪点
print(init ok) #打印提示初始化完成base_path /sd/image- # 设置图片保存的基础路径和文件名前缀
sequence_number 1 # 初始序列号 while True:clock.tick()state KEY.is_press()img sensor.snapshot() # 使用sensor模块的snapshot方法捕获一帧图像并将其存储在变量img中 fps clock.fps() #计算摄像头的帧率img.draw_string(0, 0, %2.1ffps %(fps), color(0, 0, 255), scale2.0)lcd.display(img) #显示最新捕获的图像在LCD上 if state ! 0:img_path base_path str(sequence_number) .jpg # 生成文件名如 image-001.jpg img sensor.snapshot() # 使用sensor模块的snapshot方法捕获一帧图像并将其存储在变量img中 img.save(img_path) #使用img对象的save方法将图像保存到指定的文件路径 print(Saving image: {img_path})sequence_number 1 # 更新序列号while KEY.is_press(): #等待按键松开lcd.display(img) #显示最新捕获的图像在LCD上RGB.set(1, 1, 1)time.sleep(0.01) time.sleep_ms(50) #消抖RGB.set(0, 0, 0) 代码测试结果 拔出TF卡插入读卡器插入电脑查看文件夹发现成功拍摄一系列照片并存入TF卡 打开一张观察发现像素不是很高 IDE预览镜头使用提示 关闭IDE预览镜头可以提升帧率