树莓派资料
显示屏资料
系统下载
树莓派Pico
首页 动态 发帖 版块 我的
 退出
游客  
等级:
金币:
经验值:

树莓派pico使用碰撞传感器 检测碰撞报警Python源代码

  5165 
 0
 0
豆豆   hghghg319 

一:土壤传感器AO模拟量信号介绍

碰撞传感器是一种能够检测物体之间碰撞或接触的电子元件,广泛应用于机器人、自动化设备、汽车安全系统等领域。它的核心功能是将物理碰撞信号转换为电信号,以便控制系统做出相应反应(如停止运动、改变方向等)。


工作逻辑:传感器的内部包含弹簧、金属触点等机械结构。当传感器未受到碰撞,弹簧触点处于断开的状态,此时传感器信号引脚默认输出高电平,每当受到碰撞力时弹簧触点会闭合,此时传感器信号引脚输出低电平(如:未碰撞高电平,碰撞后为低电平)。


Image

传感器电路原理图下载



二:硬件连接

树莓派Pico碰撞传感器模块
3.3VVCC
GNDGND
GPOOUT


Image

三:Python编程

已知传感器未受到碰撞输出高电平,受到碰撞后输出低电平。那么就可以写个程序来监测引脚是否有低电平输入。先将 GP0 引脚配置为输入模式启用内部上拉电阻,用来监测低电平的输入


from machine import Pin
import time

# 配置GP0引脚为输入并上拉电阻
gp0_pin = Pin(0, Pin.IN, Pin.PULL_UP)

# 循环检测
while True:
    # 读取引脚信号(1为高电平,0为低电平)
    pin_level = gp0_pin.value()
    
    # 根据电平打印相应信息
    if pin_level == 1:
        print("GP0引脚当前为:高电平 (HIGH)")
    else:
        print("GP0引脚当前为:低电平 (LOW)")
    
    # 延时1秒后再次检测
    time.sleep(1)
    
Image

四:Python编程(进阶)

1. 添加蜂鸣器

通过以上的程序我们实现了检测传感器信号。下面在添加功能,当受到碰撞传感器输出低电平时,控制蜂鸣器报警,并且板载WS2812灯亮红色。反之亮绿色。在前面的基础上把蜂鸣器按下图接好。


Image

2. Python编程源代码

碰撞传感器加报警Python源代码

下载源代码后,上传至树莓派Pico内,直接运行代码查看结果。 此时传感器受到碰撞后,蜂鸣器会报警,板载WS2812灯亮红色(如下)

Image

Image

五:总结

该代码实现了树莓派 Pico 对 GP0 引脚输入电平的实时监测,并根据检测结果联动控制 GP16 引脚输出状态和板载 WS2812 LED 的颜色。

1. 具体功能:

当 GP0 检测到低电平时:GP16 输出高电平,GP23 控制的 WS2812 LED 点亮红色

当 GP0 检测到高电平时:GP16 输出低电平,WS2812 LED 点亮绿色

仅在电平状态发生变化时执行操作,优化了系统资源占用

以 0.1 秒为间隔持续监测,兼顾响应速度和稳定性


2. 核心知识点

GPIO 引脚配置与控制

输入模式(Pin.IN):如 GP0 引脚用于读取外部信号,配合内部上拉电阻(Pin.PULL_UP)确保信号稳定

输出模式(Pin.OUT):如 GP16 和 GP23 引脚用于输出控制信号,通过value()方法设置高低电平

引脚编号规则:直接使用 GP 编号(如0代表 GP0,16代表 GP16)


WS2812 LED 驱动

neopixel库:MicroPython 中专门用于控制 WS2812 等 RGB LED 的库

初始化方法:NeoPixel(引脚, 数量)创建 LED 控制对象

颜色控制:通过 RGB 三元组(0-255 范围)定义颜色,np.write()更新 LED 状态


状态检测与优化

状态变化触发:通过对比当前电平与上一次电平(current_level),仅在状态改变时执行操作,减少无效运算

延时控制:time.sleep(0.1)设置检测间隔,平衡响应速度和系统负载


数字信号特性:

高低电平表示:1 代表高电平(3.3V),0 代表低电平(0V)

信号转换:通过 GPIO 引脚实现物理电平与数字信号的转换,是单片机与外部设备通信的基础


函数封装:

将 LED 颜色设置功能封装为set_led_color()函数,提高代码复用性和可读性

常量定义:使用RED、GREEN等常量统一管理颜色参数,便于维护

这些知识点覆盖了单片机的GPIO 控制、外设驱动、程序逻辑优化等核心内容,是树莓派 Pico 开发的基础技能,可扩展应用于各类传感器交互和智能控制场景。




技术支持(对本页存在疑难问题可联系我们工程师)

联系人:张工
电话:0755-32914578
QQ:2251000002
微信:扫下方二维码添加,请备注来意

提供:人工智能,IOT物联网,工控数显,嵌入式软硬件开发,科创教育,产品定制,生产,方案解决...



标签:
作者签名:    楼主  2025-08-27 22:48:52
回复列表
Powered by RASPI _VERSION
© 2017-2025 树莓派极客版权
您的IP: 18.97.9.174 , 2025-11-14 12:59:21
Powered by RASPI _VERSION
© 2017-2025 树莓派极客版权