树莓派pico入坑笔记,睡眠

news2025/2/4 19:44:27
关于树莓派pico和circuitpython的更多玩法,请看树莓派pico专栏

关于在 CircuitPython 中使用警报和浅/深度睡眠的更多信息,请参阅此学习指南。

树莓派pico支持浅睡眠和深度睡眠,其中深度睡眠唤醒后将从boot.py开始运行

支持按时间唤醒和引脚唤醒以及触摸唤醒,几种方式可以同时使用

参数

alarm.pin – 当引脚状态改变时触发警报。

  • PinAlarm


alarm.time – 当指定时间到达时触发警报。

  • TimeAlarm


alarm.touch – 检测到触摸时触发警报。

  • TouchAlarm

alarm.wake_alarm: circuitpython_typing.Alarm | None

最近触发的警报。如果 CircuitPython 处于睡眠状态,唤醒它的警报。如果自上次硬重置或软重启以来没有发生警报,则值为 None

方法

alarm.light_sleep_until_alarms(*alarms: circuitpython_typing.Alarm) → circuitpython_typing.Alarm
进入轻度睡眠,直到其中一个闹钟唤醒。返回引起醒来的闹钟,作为 alarm.wake_alarm 使用。

alarm.exit_and_deep_sleep_until_alarms(*alarms: circuitpython_typing.Alarmpreserve_dios: Sequence[digitalio.DigitalInOut] = ()) → None
退出程序并进入深度睡眠,直到被其中一个警报唤醒。此函数不返回。
当唤醒时,微控制器将重新启动并从头开始运行。 boot.py code.py
重启后,将可用与唤醒原因相同的警报作为 alarm.wake_alarm 。其类型和/或属性可能不完全对应原始警报。对于基于时间的警报,目前创建一个 alarm.time.TimeAlarm() 。
如果没有指定警报,微控制器将进入深度睡眠状态,直到复位。

示例代码

import alarm
import time
import board
import digitalio


# 创建引脚警报,当引脚状态从高到低变化时触发
pin_alarm = alarm.pin.PinAlarm(pin=board.BUTTON, value=False ,edge=True  , pull=True)
while True :

# 创建时间警报,5秒后触发
    time_alarm = alarm.time.TimeAlarm(monotonic_time=time.monotonic() + 5)
# 进入睡眠模式,等待警报触发
    alarm.light_sleep_until_alarms(time_alarm,pin_alarm)

# 警报触发后,设备被唤醒
    if alarm.wake_alarm:
        print("设备被警报唤醒")
        if isinstance(alarm.wake_alarm, alarm.time.TimeAlarm):
            print("时间警报触发,value:%s"%(alarm.wake_alarm))
        elif isinstance(alarm.wake_alarm, alarm.pin.PinAlarm):
            print("引脚警报触发,引脚状态:", digitalio.DigitalInOut(board.BUTTON).value)
    else:
        print("设备未被警报唤醒,可能是从硬重置或软重启启动的")
    print(time.monotonic())

效果

关于功耗

当使用 TimeAlarm 时,它实际上会损失一点深度睡眠性能。这是因为 RP2040 休眠模式实际上根本不支持外部时钟源下的 RTC,因此深度睡眠实际上是非常极端的浅睡眠版本,而不是一个独立模式。

当避免使用 TimeAlarm 时,Raspberry Pi Pico 开发板在深度睡眠状态下可以达到低于 2mA 的功耗

当添加时间闹钟时,电流上升至 7mA。

​RP2040 的轻睡眠模式,虽然效率不如深度睡眠水平,但仍然是一种有用的节能方式,功耗降低超过三分之一。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2291943.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库 - Sqlserver - SQLEXPRESS、由Windows认证改为SQL Server Express认证进行连接 (sa登录)

本文讲SqlServer Express版本在登录的时候, 如何由Windows认证,修改为Sql Server Express认证。 目录 1,SqlServer Express的Windows认证 2,修改为混合认证 3,启用sa 用户 4,用sa 用户登录 下面是详细…

中间件漏洞之CVE-2024-53677

目录 什么是struts?CVE-2024-53677简介影响版本复现环境搭建漏洞利用修复 什么是struts? 在早期的 Java Web 开发中,代码往往混乱不堪,难以维护和扩展。比如,一个简单的用户登录功能,可能在不同的 Java 类…

Python玄学

过年期间无聊的看了看DY直播,也是迷上玄学了。突然想着为啥要自己掐指算,我这🐷脑哪记得到那么多东西啊。然后,就捣鼓捣鼓了一些玩意儿。留个纪念。 注:就是一个玄学推动学习,部分内容不必当真,…

16.1.STM32F407ZGT6-CAN基础概念

参考: https://blog.csdn.net/sunlight_vip/article/details/128639144 前言: 学习总结CAN的知识点: 1.can是什么,历史由来和背景 2.can的物理层,链路层 3.初始化的流程和关键点 4.波特率怎么设置 5.can id怎么过滤 6…

【论文笔记】Fast3R:前向并行muti-view重建方法

众所周知,DUSt3R只适合做稀疏视角重建,与sapnn3r的目的类似,这篇文章以并行的方法,扩展了DUSt3R在多视图重建中的能力。 abstract 多视角三维重建仍然是计算机视觉领域的核心挑战,尤其是在需要跨不同视角实现精确且可…

使用VCS对Verilog/System Verilog进行单步调试的步骤

Verilog单步调试: System Verilog进行单步调试的步骤如下: 1. 编译设计 使用-debug_all或-debug_pp选项编译设计,生成调试信息。 我的4个文件: 1.led.v module led(input clk,input rst_n,output reg led );reg [7:0] cnt;alwa…

[ESP32:Vscode+PlatformIO]新建工程 常用配置与设置

2025-1-29 一、新建工程 选择一个要创建工程文件夹的地方,在空白处鼠标右键选择通过Code打开 打开Vscode,点击platformIO图标,选择PIO Home下的open,最后点击new project 按照下图进行设置 第一个是工程文件夹的名称 第二个是…

如何使用 DeepSeek API 结合 VSCode 提升开发效率

引言 在当今的软件开发领域,API 的使用已经成为不可或缺的一部分。DeepSeek 是一个强大的 API 平台,提供了丰富的功能和数据,可以帮助开发者快速构建和优化应用程序。而 Visual Studio Code(VSCode)作为一款轻量级但功…

Flutter使用Flavor实现切换环境和多渠道打包

在Android开发中通常我们使用flavor进行多渠道打包,flutter开发中同样有这种方式,不过需要在原生中配置 具体方案其实flutter官网个了相关示例(https://docs.flutter.dev/deployment/flavors),我这里记录一下自己的操作 Android …

OpenAI 实战进阶教程 - 第四节: 结合 Web 服务:构建 Flask API 网关

目标 学习将 OpenAI 接入 Web 应用,构建交互式 API 网关理解 Flask 框架的基本用法实现 GPT 模型的 API 集成并返回结果 内容与实操 一、环境准备 安装必要依赖: 打开终端或命令行,执行以下命令安装 Flask 和 OpenAI SDK: pip i…

Hot100之堆

我们的PriorityQueue默认为最小堆,堆顶总是为最小 215数组中的第K个最大元素 题目 思路解析 暴力解法(不符合时间复杂度) 题目要求我们找到「数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素」。「数组排序后的第 k …

KNIME:开源 AI 数据科学

KNIME(Konstanz Information Miner)是一款开源且功能强大的数据科学平台,由德国康斯坦茨大学的软件工程师团队开发,自2004年推出以来,广泛应用于数据分析、数据挖掘、机器学习和可视化等领域。以下是对KNIME的深度介绍…

Office / WPS 公式、Mathtype 公式输入花体字、空心字

注:引文主要看注意事项。 1、Office / WPS 公式中字体转换 花体字 字体选择 “Eulid Math One” 空心字 字体选择 “Eulid Math Two” 2、Mathtype 公式输入花体字、空心字 2.1 直接输入 花体字 在 mathtype 中直接输入 \mathcal{L} L \Large \mathcal{L} L…

建表注意事项(2):表约束,主键自增,序列[oracle]

没有明确写明数据库时,默认基于oracle 约束的分类 用于确保数据的完整性和一致性。约束可以分为 表级约束 和 列级约束,区别在于定义的位置和作用范围 复合主键约束: 主键约束中有2个或以上的字段 复合主键的列顺序会影响索引的使用,需谨慎设计 添加…

Ubuntu20.04 磁盘空间扩展教程

Ubuntu20.04 磁盘空间扩展教程_ubuntu20 gpart扩容-CSDN博客文章浏览阅读2w次,点赞38次,收藏119次。执行命令查看系统容量相关的数据:df -h当前容量为20G,已用18G(96%),可用844M,可用…

冯诺依曼体系架构和操作系统的概念

1.冯诺依曼体系架构 计算机的硬件大部分都遵循冯诺依曼体系架构,其图示如下 这里的存储器指的是内存,是一种断电易失的设备。 速度快 而磁盘,是一种永久存储的设备,其属于外设既是输出设备又是输入设备。速度慢 而运算器是一种…

OpenGL学习笔记(六):Transformations 变换(变换矩阵、坐标系统、GLM库应用)

文章目录 向量变换使用GLM变换(缩放、旋转、位移)将变换矩阵传递给着色器坐标系统与MVP矩阵三维变换绘制3D立方体 & 深度测试(Z-buffer)练习1——更多立方体 现在我们已经知道了如何创建一个物体、着色、加入纹理。但它们都还…

Linux第105步_基于SiI9022A芯片的RGB转HDMI实验

SiI9022A是一款HDMI传输芯片,可以将“音视频接口”转换为HDMI或者DVI格式,是一个视频转换芯片。本实验基于linux的驱动程序设计。 SiI9022A支持输入视频格式有:xvYCC、BTA-T1004、ITU-R.656,内置DE发生器,支持SYNC格式…

测试工程师的DS使用指南

目录 引言DeepSeek在测试设计中的应用 2.1 智能用例生成2.2 边界值分析2.3 异常场景设计DeepSeek在自动化测试中的应用 3.1 脚本智能转换3.2 日志智能分析3.3 测试数据生成DeepSeek在质量保障体系中的应用 4.1 测试策略优化4.2 缺陷模式预测4.3 技术方案验证DeepSeek在测试效能…

Qt常用控件 输入类控件

文章目录 1.QLineEdit1.1 常用属性1.2 常用信号1.3 例子1,录入用户信息1.4 例子2,正则验证手机号1.5 例子3,验证输入的密码1.6 例子4,显示密码 2. QTextEdit2.1 常用属性2.2 常用信号2.3 例子1,获取输入框的内容2.4 例…