从零玩转CanMV-K230(5)- GPIO例程


前言

本章介绍基于MicroPython的外设开发案例,在开始之前请确认使用的MicroPython镜像,可以参考 从零玩转CanMV-K230(2)- 环境搭建

K230管脚分布图
在这里插入图片描述

K230内部包含64个GPIO Pin,每个Pin可配置为输入或输出,可配置上下拉,可配置驱动能力。

在介绍IO之前需要先了解FPIOA,FPIOA的主要作用是进行引脚复用的设置,IOMUX主要配置物理PAD(管脚)的功能,由于soc功能多管脚(pads)少,多个功能共享同一个I/O管脚(pads),但是一个pads同一时间只能使用其中一个功能,所以需要IOMUX进行功能选择。IOMUX也叫FPIOA,Pin multiplexing,管脚功能选择等。
在这里插入图片描述

一、API介绍

本文档主要介绍machine模块下的Pin类API。
pin = Pin(index, mode, pull=Pin.PULL_NONE, drive=7)

**【参数】**

index: 引脚号,取值:[0,63]

mode: 输入或输出模式

pull: 上下拉配置,可选参数,默认PULL_NONE

drive: 驱动能力配置,可选参数,默认7

Pin.init(mode, pull=Pin.PULL_NONE, drive=7)

配置引脚模式,上下拉,驱动能力

【参数】

mode: 输入或输出模式

pull: 上下拉配置,可选参数,默认PULL_NONE

drive: 驱动能力配置,可选参数,默认7

【返回值】

无

Pin.value([value])

获取引脚输入或设置引脚输出

【参数】

value: 输出值,可选参数,如果不传参数则返回输入值

【返回值】

返回空或当前引脚输入值

Pin.mode([mode])

获取或设置引脚输入输出模式

【参数】

mode: 输入输出模式,可选参数,如果不传参数则返回当前输入输出模式

【返回值】

返回空或当前引脚输入输出模式

Pin.pull([pull])

获取或设置引脚上下拉配置

【参数】

pull: 上下拉配置,可选参数,如果不传参数则返回当前上下拉配置

【返回值】

返回空或当前引脚上下拉配置

Pin.drive([drive])

获取或设置引脚驱动能力

【参数】

drive: 驱动能力,可选参数,如果不传参数则返回当前驱动能力

【返回值】

返回空或当前引脚驱动能力

Pin.on()

设置输出高

【参数】

无

【返回值】

无

Pin.off()

设置输出低

【参数】

无

【返回值】

无

Pin.high()

设置输出高

【参数】

无

【返回值】

无

Pin.low()

设置输出低

【参数】

无

【返回值】

无

二、示例代码

因为我这块CanMV上没有可以控制的led灯,这里使用按键进行测试;
在这里插入图片描述
在这里插入图片描述
这里我们使用Key0做测试,可以看到他对应的IO是52,示例代码如下:

from machine import Pin
from machine import FPIOA
import time
#将GPIO52配置为普通GPIO模式
fpioa = FPIOA()
fpioa.set_function(52,FPIOA.GPIO52)
KEY=Pin(52,Pin.IN,Pin.PULL_UP) #构建KEY对象

while True:
    if KEY.value()==0: #按键被按下
        time.sleep_ms(10) #消除抖动
        if KEY.value()==0: #确认按键被按下
            print('KEY down')
    while not KEY.value(): #检测按键是否松开
        pass

在这里插入图片描述


总结

本章节介绍了GPIO例程的使用方法,GPIO很常用,可以结合K210相关教程进行学习。

### CanMV-K210 模型训练方法与参数调优 #### 数据准备 为了成功完成CanMV-K210的模型训练,需先准备好高质量的数据集。这通常涉及收集大量标注过的图像样本,并将其划分为训练集和验证集两部分[^1]。 #### 使用MaixHub平台进行在线训练 对于初次使用者来说,推荐通过MaixHub这一官方支持的云端服务平台来进行初步尝试。该平台上提供了简易的操作界面以及预配置好的环境设置,使得开发者能够专注于调整超参数而非基础设施建设。用户只需上传自己的数据集并选择合适的算法即可启动训练流程。 #### 模型转换与优化 当获得满意的模型之后,下一步就是利用`ncc`工具将TensorFlow Lite格式(.tflite) 的模型转化为适用于K210硬件加速器运行的`.kmodel` 文件。此过程不仅实现了不同框架间的互操作性还进行了必要的量化处理来减小最终部署版本所占用的空间开销。命令如下所示: ```bash ncc_0.1_win\ncc input_model.tflite output_model.kmodel -i tflite -o k210model --dataset path_to_dataset ``` 上述指令中`path_to_dataset`应指向包含用于评估量化效果所需图片的实际路径[^2]。 #### 参数调优建议 - **批量大小(Batch Size)**:适当增大可以加快收敛速度但也会增加内存消耗;反之则有助于更稳定的学习曲线。 - **初始学习率(Initial Learning Rate)**:过高可能导致梯度爆炸无法正常迭代更新权重;过低又会使训练时间变得异常漫长难以忍受。 - **正则化系数(Regularization Factor)**:防止过拟合现象发生,在复杂网络结构下尤为重要。 - **动量(Momentum)** 或者其他形式的一阶矩估计机制可以帮助平滑损失函数表面从而提高泛化能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶与花语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值