【CanMV K230】外接传感器

embedded/2024/9/23 23:33:05/

【CanMV K230】外接传感器

  • 外接LED灯

B站视频链接
抖音链接


我们后面主要做是机器视觉。K230能帮我们捕捉到图像信息。更多小功能需要我们自己来做。

在这里插入图片描述
比如舵机抬杆,测温报警等
在这里插入图片描述

都需要我们外接传感器。

本篇就来分享一下如何使用K230外接传感器

首先需要知道K230插座(排针)都是什么功能。

可以看到官方给我们提供了插座功能图。记住位置。
在这里插入图片描述
知道了怎么对应引脚图,我们看下边的就行。
请添加图片描述
实战一下

外接LED灯

我们知道了K230的引脚功能,那么如何连接?

下面是连接方式

首先确认使用的传感器。

比如我从某地买的8MM发光LED模块。
在这里插入图片描述

首先确认传感器所需电压,可以从基本信息(参数)看到,电压是5V。
在这里插入图片描述

有3个(插座)引脚。分别是OUT,VCC,GND

在这里插入图片描述
我们知道大部分LED都是输出设备,参照板载LED。

VCC连接电压,GND接GND,OUT就是所谓的信号引脚52号。

当然了,板载LED已经使用了52号,我们不能接了。在引脚图上选个2号我们来试试。
在这里插入图片描述

我做成了表格,方便大家观看。
此表格我后面会常用,能看懂这个就可以接线。

开发板LED
2OUT
5VVCC
GNDGND

说明一下这张图怎么看。
开发板2号引脚连接发光模块的OUT引脚
开发板5V引脚连接发光模块的VCC引脚
依次类推(后面可能接很多传感器。)
在这里插入图片描述
现在我们连好线了,输入代码运行试试,此发光模块和板载LED使用方式相似

from machine import Pin #导入Pin模块
from machine import FPIOA
import time#将GPIO2配置为普通GPIO
fpioa = FPIOA()
fpioa.set_function(2,FPIOA.GPIO2)LED=Pin(2,Pin.OUT) #构建led对象,GPIO2,输出
LED.value(1) #点亮LED,也可以使用led.on()

可能有的小伙伴会问,你不说和板载LED相似吗?代码怎么是这样的。

由于K230功能多,所以大部分GPIO引脚会复用多个功能,因此CanMV K230 提供FPIOA库(Field Programmable Input and Output Array 现场可编程IO阵列),以便实现不同引脚功能选择。

在这里插入图片描述
点灯!如果成功了请扣1 并领取下面的卡。
请添加图片描述

from machine import Pin #导入Pin模块
from machine import FPIOA
import time#将GPIO52配置为普通GPIO
fpioa = FPIOA()
fpioa.set_function(2,FPIOA.GPIO2)LED=Pin(2,Pin.OUT) #构建led对象,GPIO2,输出
LED.value(1) #点亮LED,也可以使用led.on()

相信小伙伴成功了。那么来试试板载按键控制外接LED发光模块吧。

rom machine import Pin
from machine import FPIOA
import time#将GPIO2、GPIO21配置为普通GPIO模式
fpioa = FPIOA()
fpioa.set_function(52,FPIOA.GPIO52)
fpioa.set_function(21,FPIOA.GPIO21)LED=Pin(2,Pin.OUT) #构建LED对象,开始熄灭
KEY=Pin(21,Pin.IN,Pin.PULL_UP) #构建KEY对象state=0 #LED引脚状态while True:if KEY.value()==0:   #按键被按下time.sleep_ms(10) #消除抖动if KEY.value()==0: #确认按键被按下state=not state  #使用not语句而非~语句LED.value(state) #LED状态翻转print('KEY')while not KEY.value(): #检测按键是否松开pass

http://www.ppmy.cn/embedded/102140.html

相关文章

特殊类设计(5个)与类型转换

引子:在生活中我们经常有不同类的需求,因此我们有了特殊类的设计(有很多种模式等)。由于类型需求不同我们有了类型转换。今天我们就来略讲略讲一下这方面的知识。 特殊类设计(5个) 注意:关键字…

上半篇·总结

一、古老的机械计算时代 在电子计算机出现之前,人们使用各种机械装置进行数学计算。例如,17世纪的法国数学家帕斯卡发明了第一台机械计算器——帕斯卡计算器。这台计算器可以执行简单的加减运算,为当时的科学研究提供了极大的便利。虽然与现…

okhttp的WebSocket心跳实现原理

okhttp的WebSocket实现心跳包需要服务端新增协议吗 ‌不需要。‌ OkHttp的WebSocket实现已经内置了心跳包机制,通过PING/PONG帧来维持连接保活。这意味着,OkHttp的WebSocket客户端和服务端在通信过程中,会自动发送PING/PONG帧来检测连接的活…

深入理解Node.js:不只是JavaScript的后端环境

目录 摘要 1. Node.js 简介 2. Node.js 与 JavaScript 的关系 3. Node.js 的核心特性 4. Node.js 在后端开发中的应用 5. Node.js 的生态系统 6. Node.js 的性能优势 7. Node.js 的挑战与解决方案 8. 结合 Docker 和微服务 9. 实例:构建一个简单的 REST AP…

关于数据处理的思路·一点实践

一、如何设计适合的方案 不同的数据场景,切入角度不同,设计出来的方案也会很不一样,始终有更好的,我们只要在有限的资源下,设计出适合的方案即可。 下面贴出一份,批量处理数据的大致思路: 二、参…

【LLM之Data】SKYSCRIPT-100M论文阅读笔记

研究背景 随着短视频和短剧的兴起,自动化的剧本生成和短剧制作在影视行业中的需求逐渐增加。传统的剧本生成过程需要大量的人工干预,限制了其在规模和效率上的扩展性。当前的大型语言模型(LLM)在剧本生成方面展现出一定潜力&…

【计算阶乘求和】计算1!+3!+5!+...+n!/(n+1)!

输入一个正整数n&#xff1a; n为奇数&#xff0c;输出1&#xff01;3&#xff01;5&#xff01;...n&#xff01; n为偶数&#xff0c;输出1&#xff01;3&#xff01;5&#xff01;...&#xff08;n1&#xff09;&#xff01; 具体代码&#xff1a; #include<stdio.h>…

JVM 在GC 时的根对象都有那些

在 Java 的垃圾回收&#xff08;Garbage Collection&#xff0c;GC&#xff09;过程中&#xff0c;根对象&#xff08;Roots&#xff09;是用于判断哪些对象是可达的基础。根对象通常是一组特定的对象引用&#xff0c;从这些对象出发&#xff0c;GC 可以判断哪些对象仍然存活&a…