M-Design设计竞赛 基于PICO2实现了开关门物理安全检测
该项目使用了micropython、PICO2,实现了开关门物理安全检测的设计,它的主要功能为:通过读取霍尔传感器的输出来判断当前开关门状态,并通过OLED屏幕、蜂鸣器、LED做出对应的输出。
标签
MicroPython
RP2350
M-Design设计竞赛
PICO2
CX反C
更新2025-04-01
22

一、项目介绍及创意介绍

本项目是参加2025贸泽电子M-Design创意设计竞赛的方向二:安全监测中的系统安全


在系统物理安全中,开关门检测一直都是重要的一部分,常见的检测手段有:按键检测、LED红外检测、电极电压检测等。但这些检测方式通常需要在设备表面安装触发装置,对于物理安全检测来说,无法做到无感检测,而使用霍尔磁场检测,触发装置可以嵌入到设备中,做到无感触发,防止他人破坏触发装置导致检测装置失效。

image.png


二、硬件介绍

1.PICO2(PR2350)

Raspberry Pi Pico 2 是一款低成本,高性能的微控制器开发板,具有灵活数字接口。硬件上,采用 Raspberry Pi 官方自主研发的 RP2350 微控制器芯片,独特的双核、双架构,高达 150MHz 的运行频率,内置了 520KB 的 SRAM 和 4MB 的内存,还板载有多达 26 个多功能的 GPIO 引脚。

2.MH253EUA

MH253EUA 是一种霍尔效应传感器,为一种温度稳定、抗应力的开关。

image.png

3.树莓派Pico扩展板

基于树莓派Pico的嵌入式系统学习平台,完美适配PICO、PICO2

image.png 

板卡硬件

  • 2个按键输入
  • 4个单色LED
  • 12个WS2812B RGB三色灯
  • 1个姿态传感器
  • 1个128*64 OLED显示屏
  • 1个蜂鸣器
  • 1个可调电位计(用于电压表)
  • 1路音频信号输入(用于示波器)
  • 8位R-2R电阻网络构成的DAC(用于DDS信号发生器)


三、方案框图和项目设计思路介绍

image.png

【核心控制器】
主控芯片:Pico2 RP2350微控制器

【输入模块】
霍尔传感器:

  • 通过GPIO接口直连主控
  • 用于检测磁场变化进行位置检测场景

【输出模块】

  1. 显示单元:
  • 0.96英寸OLED显示屏
  • 接口:高速SPI协议
  • 特性:单色显示、低功耗、高对比度
  • 应用场景:实时数据显示/系统状态监控
  1. 声光提示系统:
    1. 蜂鸣器:
      • 连接方式:GPIO驱动
      • 功能:音频报警/操作反馈
      • 控制方式:简单开关控制

b. 双色LED:

      • 红绿双色发光二极管
      • GPIO独立控制引脚
      • 状态指示逻辑:
        红色 - 异常/警告状态
        绿色 - 正常运行状态

项目设计思路

  1. 信号采集
    霍尔传感器检测磁场变化→通过GPIO输入数字信号至主控
  2. 数据处理
    RP2350微控制器解析传感器数据,执行预设算法(如转速计算、阈值判断)
  3. 多模态输出
  • 通过SPI总线向OLED发送格式化数据包,更新屏幕显示
  • 根据逻辑判断结果驱动GPIO输出:
    ▫️ 触发蜂鸣器特定频率音频
    ▫️ 控制红/绿LED状态组合


四、软件流程图和关键代码介绍

image.png

from machine import Pin, SPI
from bsp.ssd1306 import SSD1306_SPI
from time import sleep
from bsp.board import pin_cfg

引入相关库文件


#SPI屏幕驱动
spi = SPI(1, 100000, mosi=Pin(pin_cfg.spi1_mosi), sck=Pin(pin_cfg.spi1_sck))
oled = SSD1306_SPI(128, 64, spi, Pin(pin_cfg.spi1_dc),Pin(pin_cfg.spi1_rstn), Pin(pin_cfg.spi1_cs))

设置SPI屏幕驱动


# 创建对象
# 蜂鸣器
buzzer = Pin(19, Pin.OUT)
# 开门检测
door = Pin(17, Pin.IN, Pin.PULL_UP)
# 安全指示灯
green_led = Pin(pin_cfg.green_led, Pin.OUT)
# 报警指示灯
red_led = Pin(pin_cfg.red_led, Pin.OUT)

创建相关输入输出设置


while True:
#当检测到磁铁远离,报警
if door.value() == 1:
oled.fill(0)# 清屏
oled.text("Warning!!!",20,20)
oled.text("Warning!!!",20,30)
oled.text("Warning!!!",20,40)
#输出告警到屏幕显示
oled.show()#屏幕输出
#点亮报警LED
green_led.value(0)
red_led.value(1)
#蜂鸣器报警
for i in range(7):
buzzer.value(1)
sleep(0.03)
buzzer.value(0)
sleep(0.03)
# 磁铁靠近,输出正常信号
else:
oled.fill(0)# 清屏
#输出正常到屏幕显示
oled.text("Normal",35,20)
oled.text("Normal",35,30)
oled.text("Normal",35,40)
oled.show()#屏幕输出

#点亮正常LED
green_led.value(1)
red_led.value(0)

对输入信号进行处理,并根据设计输出不同信号


五、实物展示及说明

1.磁铁靠近(门关)

输入:霍尔传感器检测磁铁靠近

输出:屏幕输出:Normal

蜂鸣器 :静止

LED :绿色

image.png

2.磁铁远离(门开)

输入:霍尔传感器检测磁铁靠近

输出:屏幕输出:Warning!!!

蜂鸣器 :鸣叫

LED :红色

image.png

六、设计中遇到的难题和解决方法

micropython的使用手册为英文,对于英语不好的我来说,看文档是一个比较吃力,但现在AI发展迅速,可以使用AI翻译来实现便捷的英专中的,更好的实现micropython的开发。

七、对本次竞赛的心得体会

第一次体验到PICO2的micropython的开发,了解了micropython的开发便捷性,对于小白来说,也能快速上手,创建属于自己的产品。

附件下载
M-Design设计竞赛 基于PICO2实现了开关门物理安全检测.zip
团队介绍
一个热爱嵌入式的个人爱好者
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号