K210循迹-亚博基本参数设置及数字识别

 亚博K210基本参数设置

# 导入感光元件模块 sensor 机器视觉模块 image 跟踪运行时间模块 time 数学函数模块 math
import sensor,image,time,lcd ,math
# 从 fpioa_manager 模块中导入 引脚注册模块 fm
from fpioa_manager import fm 
# 从 machine 模块中导入 双向串行通信模块 UART
from machine import UART
# 从 Maix 模块中导入 引脚模块 GPIO

sensor.reset() # 重置和初始化相机传感器 默认设置为 摄像头频率24M 不开启双缓冲模式

sensor.set_pixformat(sensor.RGB565) # 设置图像格式为 RGB565 (彩色)
sensor.set_framesize(sensor.QVGA)   # 设置图像大小为 QVGA (320 x 240) 像素个数 76800

sensor.set_auto_exposure(1)                        # 设置自动曝光
sensor.set_auto_gain(0, gain_db = 17)              # 设置增益 17
sensor.set_auto_whitebal(0, rgb_gain_db = (0,0,0)) # 设置RGB增益 0 0 0

sensor.set_contrast(0)                             # 设置对比度 0
sensor.set_brightness(0)                           # 设置亮度 0
sensor.set_saturation(0)                           # 设置饱和度 0

sensor.set_vflip(1)                                # 打开垂直翻转
sensor.set_hmirror(1)                              # 打开水平镜像

sensor.skip_frames(time = 2000)                    # 延时跳过2s 等待感光元件稳定

#__________________________________________________________________
# 创建时钟对象
#clock = time.clock()                               # 创建一个时钟对象 clock



# binding UART2 IO:6->RX, 8->TX
fm.register(6, fm.fpioa.UART2_RX)# 配置 9 脚为 UART2_RX 强制注册
fm.register(8, fm.fpioa.UART2_TX)# 配置 6 脚为 UART1_TX 强制注册
#  波特率 115200 数据位 8位 校验位 0位 停止位 0位
uart_A = UART(UART.UART2, 115200, 8, 0, 0, timeout=1000, read_buf_len=4096)

def sending_data(x,y,z):
    FH = bytearray([0x2C,0x12,cx,cy,cz,0x5B])
    uart_A.write(FH);


green_threshold = ((60,255))           #黑色
roi1            = [0,100,320,16]       #巡线敏感区
roi2            = [0,180,320,8]        #关键点敏感区
expectedValue   = 160                  #巡线位置期望
err             = 012111               #本次误差
old_err         = 0                    #上次误差
Kp              = 0.046                #PID比例系数
Kd              = 0                    #PID微分系数
Speed           = 0                    #期望速度
Speed_left      = 0                    #左轮速度
Speed_right     = 0                    #右轮速度
Flag            = 0                    #用于关键点标志
 
 
lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.GRAYSCALE)
sensor.set_framesize(sensor.QVGA) # 320x240
sensor.skip_frames(time = 3000 )#跳过3000张图片
sensor.set_auto_gain(False) # must be turned off for color tracking
sensor.set_auto_whitebal(False) # must be turned off for color tracking
sensor.run(1)
clock = time.clock()

其中,K210模块的外置接口引脚已经固定为IO6和IO8,IO6对应接收引脚,IO8对应发送引脚;波特率 设置为115200。

sensor.set_auto_exposure(1)                        # 设置自动曝光
sensor.set_auto_gain(0, gain_db = 17)              # 设置增益 17
sensor.set_auto_whitebal(0, rgb_gain_db = (0,0,0)) # 设置RGB增益 0 0 0

sensor.set_contrast(0)                             # 设置对比度 0
sensor.set_brightness(0)                           # 设置亮度 0
sensor.set_saturation(0)                           # 设置饱和度 0

实际操作过程中,以上三个参数无效果。

sensor.set_vflip(1)                                # 打开垂直翻转
sensor.set_hmirror(1)                              # 打开水平镜像
如果用MaixHub训练模型,需要更新亚博固件,建议使用minin固件

单片机与亚博K210接线方式
STM32与OLED:B8-SCL;B9:SDA
STM32与K210:A2 - Tx;A3 - Rx

<think>嗯,用户想了解K210芯片在循迹数字识别方面的应用或教程。首先,我需要回顾一下K210芯片的基本信息。根据引用[1],K210是一款集成了机器学习处理器和传感器处理单元的芯片,适合低功耗、高性能的嵌入式AI应用。数字识别是其常见应用之一,引用[2]也提到了K210的颜色和数字识别,特别是KPU的使用。而引用[3]则提到了基于MaixPy-Dock开发板进行循迹识别,使用MicroPython语言。 用户的需求主要集中在循迹数字识别,可能需要具体的实现步骤和代码示例。首先,循迹通常涉及图像处理,比如识别路径线条,可能需要使用摄像头捕获图像,然后处理图像,比如二值化、边缘检测,或者使用机器学习模型。而数字识别可能需要训练一个模型,使用K210的KPU来加载和运行模型。 接下来,我需要整理步骤。对于循迹,可能需要准备硬件如摄像头、电机驱动,然后图像处理步骤,比如颜色阈值处理,找到路径中线,计算偏差,控制电机转向。代码方面可能需要初始化摄像头,设置颜色阈值,进行图像处理,然后输出控制信号。这部分引用[3]提到了使用MaixPy的MicroPython,所以可能需要参考其API。 数字识别部分,引用[1]和[2]都提到了KPU的使用。需要准备数据集,训练模型,转换为K210支持的格式,然后部署。代码部分可能包括初始化KPU,加载模型,捕获图像,预处理,推理,后处理得到数字结果。可能需要使用工具如nncase进行模型转换。 用户可能还需要教程资源,比如官方文档、GitHub仓库、视频教程。需要确保提到的资源是可靠的,比如Sipeed的官方资料,或者社区论坛。 要确保回答结构清晰,分步骤讲解,代码示例正确,符合LaTeX格式要求。例如,数学公式用$...$,独立公式用$$...$$。同时生成相关问题,比如如何优化循迹算法,如何提高数字识别准确率,或者硬件连接问题等。 需要检查是否有遗漏的信息,比如是否需要更多的硬件配置细节,或者模型训练的具体步骤。可能还需要提到实际应用中的注意事项,比如光照条件对图像处理的影响,模型量化的问题等。 最后,确保引用标记正确,引用[1]、[2]、[3]在适当的位置,比如在提到数字识别时引用[1][2],循迹时引用[3]。回答要使用中文,避免使用Markdown格式,代码块用三个反引号包裹,并注明语言。</think>### K210芯片循迹数字识别应用解析 #### 一、硬件准备 1. **核心硬件**:K210开发板(如MaixPy-Dock)、摄像头模块、电机驱动模块(循迹场景)[^3] 2. **外设配置**:通过`MaixPy`库控制GPIO引脚,连接红外传感器或摄像头实现数据采集 3. **开发环境**:使用基于Python3语法的MicroPython固件,安装`kflash_gui`烧录工具[^1] #### 二、循迹功能实现 **实现步骤**: 1. **图像采集**:初始化摄像头并设置分辨率 ```python import sensor sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) ``` 2. **路径识别**:通过颜色阈值识别轨迹线 ```python # 设定黑色轨迹阈值 BLACK_THRESHOLD = (0, 50, -10, 10, -10, 10) img = sensor.snapshot() blobs = img.find_blobs([BLACK_THRESHOLD], pixels_threshold=100) ``` 3. **中线计算**:通过质心计算路径偏差 $$ \Delta x = \frac{\sum_{i=1}^n (x_i \cdot w_i)}{\sum_{i=1}^n w_i} - \frac{img\_width}{2} $$ 4. **控制输出**:根据偏差值调整电机转向 #### 三、数字识别实现 **技术路线**: 1. **模型训练**:使用YOLOv3-Tiny训练数字识别模型,输出`.kmodel`格式 2. **模型部署**: ```python from KPU import KPU kpu = KPU() kpu.load(0x300000) # 加载flash中的模型 ``` 3. **实时推理**: ```python img = sensor.snapshot() fmap = kpu.forward(img) # 前向推理 result = kpu.sigmoid(fmap) # 后处理 print("识别结果:", max(result)) ``` #### 四、应用案例 1. **智能小车**:结合循迹数字识别实现仓库编号导航 2. **工业检测**:通过数字识别监控仪表盘读数(误差<$1\%$) 3. **教育机器人**:实现迷宫解算+数字密码验证系统 #### 五、学习资源 1. 官方教程:Sipeed Wiki(含20+个实战案例) 2. GitHub仓库:`maixduino-project`提供完整循迹代码库 3. 视频教程:B站搜索"K210数字识别从训练到部署"
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值