当前位置: 首页 > article >正文

树莓派PICO的‘Hello World’:用MicroPython和Thonny让板载LED闪起来(含代码详解)

树莓派PICO的‘Hello World’用MicroPython和Thonny让板载LED闪起来含代码详解当你第一次拿到树莓派PICO这块小巧的开发板时最令人兴奋的莫过于让它活起来——而让板载LED闪烁就是嵌入式世界的Hello World。这看似简单的操作背后却蕴含着MicroPython与硬件交互的核心原理。本文将带你从零开始不仅实现LED的点亮与闪烁更深入理解每一行代码背后的硬件控制逻辑。1. 环境准备与基础概念在开始编写代码前我们需要确保开发环境正确配置。树莓派PICO支持多种编程语言而MicroPython因其简洁性成为入门首选。以下是准备工作清单硬件准备树莓派PICO开发板Micro USB数据线用于供电和编程已安装操作系统的电脑Windows/macOS/Linux均可软件准备Thonny IDE最新版本已内置PICO支持MicroPython固件UF2格式提示Thonny的简洁界面和内置REPL交互式解释器使其成为MicroPython开发的理想选择特别适合初学者快速验证代码片段。GPIO通用输入输出是嵌入式开发的基础概念。PICO上的GPIO引脚可以配置为输入或输出模式输出模式用于控制外部设备如点亮LED输入模式用于读取传感器信号等板载LED默认连接在GPIO25这为我们省去了外接LED和电阻的麻烦。理解这个硬件映射关系对后续编程至关重要。2. 点亮LED从导入到硬件控制让我们从最简单的点亮LED开始。打开Thonny新建文件并输入以下代码from machine import Pin led Pin(25, Pin.OUT) led.value(1)这段简洁的代码完成了从软件到硬件的完整控制链。我们来逐行解析模块导入from machine import PinMicroPython的machine模块包含与硬件交互的核心功能。Pin类专门用于GPIO控制是硬件编程的入口点。引脚初始化led Pin(25, Pin.OUT)这行代码创建了一个Pin对象关键参数包括第一个参数25指定GPIO编号板载LED对应GPIO25Pin.OUT设置引脚为输出模式电平控制led.value(1)这里1代表高电平3.3V使LED导通发光。若改为0低电平则会熄灭LED。注意PICO的GPIO工作电压为3.3V直接连接5V设备可能损坏芯片。深入理解Pin对象的完整初始化参数有助于更复杂的项目开发Pin(id, mode, pull, value)参数可选值说明id0-29GPIO编号PICO共有30个可用GPIOmodePin.IN/Pin.OUT输入/输出模式pullNone/Pin.PULL_UP/Pin.PULL_DOWN上下拉电阻配置value0/1初始输出电平仅输出模式有效3. 实现LED闪烁引入时间控制静态点亮LED只是第一步让LED有规律地闪烁才更能体现程序对硬件的动态控制。以下是完整的闪烁代码from machine import Pin import time led Pin(25, Pin.OUT) while True: led.toggle() time.sleep(1)新引入的关键元素解析time模块import time提供时间相关功能特别是sleep()函数用于程序暂停。无限循环while True:嵌入式系统常采用无限循环保持持续运行这是与桌面程序的重要区别。状态切换led.toggle()比直接设置value更高效自动反转当前状态。延时控制time.sleep(1)参数单位为秒支持小数如0.5表示500ms。下表比较了三种LED控制方式的区别方法代码示例特点适用场景直接设置valueled.value(1)最基础需手动管理状态简单开关控制使用toggleled.toggle()自动反转状态代码简洁状态切换场景PWM调光led.freq(1000)led.duty_u16(32768)可调节亮度需要渐变效果时4. 深入GPIO输入模式与上下拉电阻虽然LED项目只用到输出模式但理解输入模式对后续开发传感器项目至关重要。GPIO输入模式的典型应用读取按钮状态接收传感器信号检测中断事件以下示例展示如何配置输入引脚并读取按钮状态from machine import Pin button Pin(15, Pin.IN, Pin.PULL_UP) while True: if button.value() 0: print(Button pressed!)关键参数说明Pin.IN设置为输入模式Pin.PULL_UP启用内部上拉电阻上下拉电阻配置对比配置电路示意图适用场景无(None)浮空输入需要外部电路保证稳定状态上拉(PULL_UP)电阻连接3.3V按钮接地时使用下拉(PULL_DOWN)电阻接地按钮接电源时使用5. 项目优化与调试技巧当基础功能实现后我们可以进一步优化代码结构和添加实用功能函数封装def blink_led(pin, interval, times): led Pin(pin, Pin.OUT) for _ in range(times): led.toggle() time.sleep(interval)异常处理try: while True: led.toggle() time.sleep(1) except KeyboardInterrupt: led.value(0) print(Program stopped)REPL实时调试 Thonny的REPL界面允许直接输入命令与PICO交互非常适合快速测试 from machine import Pin led Pin(25, Pin.OUT) led.toggle() # 立即看到LED状态变化常见问题解决方案无法识别设备检查USB连接是否牢固尝试按住BOOTSEL按钮重新上电确认已正确安装驱动程序不执行确保文件保存为main.py或手动运行检查Thonny解释器设置为MicroPython (Raspberry Pi Pico)查看是否有语法错误LED不亮确认GPIO编号正确板载LED是25检查是否设置了输出模式尝试直接连接外部LED测试6. 扩展应用从闪烁到物联网掌握了基础GPIO控制后你可以将这些知识扩展到更复杂的项目多LED控制leds [Pin(pin, Pin.OUT) for pin in [25, 15, 14]] for i, led in enumerate(leds): led.value(i % 2)呼吸灯效果使用PWMfrom machine import PWM pwm PWM(Pin(25)) pwm.freq(1000) # 设置频率 while True: for duty in range(0, 65535, 1000): pwm.duty_u16(duty) time.sleep(0.01)结合传感器from machine import ADC sensor ADC(Pin(26)) # 配置ADC输入 while True: value sensor.read_u16() print(fSensor value: {value}) time.sleep(1)硬件编程的魅力在于看得见摸得着的反馈。当第一个LED按照你的代码闪烁时你已经打开了嵌入式开发的大门。

相关文章:

树莓派PICO的‘Hello World’:用MicroPython和Thonny让板载LED闪起来(含代码详解)

树莓派PICO的‘Hello World’:用MicroPython和Thonny让板载LED闪起来(含代码详解) 当你第一次拿到树莓派PICO这块小巧的开发板时,最令人兴奋的莫过于让它"活"起来——而让板载LED闪烁就是嵌入式世界的"Hello World…...

Dify企业权限配置避坑指南(2024最新LTS版实测):92%团队踩过的5个ACL配置陷阱全复盘

第一章:Dify企业级权限管控配置概览Dify 作为开源大模型应用开发平台,其企业版提供了细粒度、可扩展的权限管控体系,覆盖组织、团队、应用、数据集及知识库等多个维度。权限模型基于 RBAC(基于角色的访问控制)设计&…...

深入理解传输中二层PW和三层BFD之间的关系

这段输出已经把 PW BFD 的关系展示得比较典型了,可以直接帮你把结构“还原出来”。一、先看 PW(业务层) 命令: show mpls l2transport vc vl1关键结果: DestAddress: 3.13.77.14 VCID: 32008578 Status: up S VCI…...

通过dis dev pic看板卡的门道

这个命令: display device pic-status是查看设备 PIC 板卡(接口子卡)运行状态 的,用来确认板卡是否识别正常、初始化是否成功、端口逻辑状态是否正常。一、命令作用 display device pic-status查看内容: 设备各槽位接口…...

EF Core 10 + ChromaDB/Weaviate双模式接入方案(轻量嵌入式vs分布式向量库),企业级选型决策树首次披露

第一章:EF Core 10 向量搜索扩展的核心定位与演进脉络EF Core 10 向量搜索扩展并非孤立的功能补丁,而是微软在 .NET 生态中构建 AI 原生数据访问层的关键落子。它将传统关系型查询能力与现代向量相似性检索深度融合,使开发者能在同一 ORM 抽象…...

PolarloTS个人挑战赛第一季 个人WP

简单locke-treasure逆向狂喜void __fastcall decrypt_flag_to_buf(const unsigned __int8 *enc,int enc_len,const char *key,char *out_buf,int out_buf_len) {int key_len; // [rsp24h] [rbp4h]int i; // [rsp44h] [rbp24h]j___CheckForDebuggerJustMyCode(&_68090DB3_ca…...

别再只盯着压差了!手把手教你从PSRR、噪声到环路补偿,全面评估一颗LDO芯片

从PSRR到环路稳定性:LDO芯片的深度评估指南 在电子系统设计中,低压差稳压器(LDO)的选择往往被简化为"压差越低越好"的单一标准。这种认知偏差导致许多工程师在电源设计上踩坑——噪声干扰、系统振荡、效率低下等问题频发。本文将打破常规认知框…...

WGLOG日志审计系统可以支持数据库日志审计吗

支持的 WGLOG从v2.0开始支持数据库日志审计功能 下载地址:www.wgstart.com...

别再搞混了!一文讲透GIS中.tfw、GDAL、ArcMap的仿射变换六参数对应关系

地理空间数据处理中的仿射变换六参数全解析 当你在处理遥感影像或地图数据时,是否曾被不同GIS工具中的六参数搞得晕头转向?今天我们就来彻底理清.tfw文件、GDAL库和ArcMap中这些神秘数字的对应关系。无论你是GIS开发工程师还是空间数据分析师&#xff0c…...

从FPGA转岗数字IC SOC设计,我踩过的那些坑和必备技能清单(附学习路线)

从FPGA到数字IC SOC设计:一位工程师的转型实战指南 当我在FPGA领域深耕五年后,突然意识到自己站在了一个职业发展的十字路口。那些曾经让我兴奋的Verilog模块设计和时序优化,如今已变成日常的重复劳动。直到一次偶然的机会,我接触…...

企业媒体发布技术化转型:Infoseek舆情系统架构分析与应用实践

摘要在信息碎片化与网络舆论复杂化的背景下,传统媒体发布模式面临渠道不透明、内容适配效率低、舆情响应滞后三大技术性难题。本文从系统架构与应用实践角度,分析Infoseek字节探索推出的数字公关AI中台PaaS系统,重点探讨其融媒体发布模块如何…...

别再只当下载器了!手把手教你用Keil+STLink/JLink玩转STM32在线调试与变量监视

从烧录到调试:解锁STM32开发中仿真器的完整潜力 当你第一次拿到STM32开发板时,可能只把STLink或JLink当作一个简单的程序下载工具。但事实上,这些仿真器隐藏着强大的调试能力,能够彻底改变你的开发体验。想象一下,你可…...

OpCore-Simplify:10分钟自动化完成黑苹果配置的智能解决方案

OpCore-Simplify:10分钟自动化完成黑苹果配置的智能解决方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的OpenCore配置而头…...

python codefresh

# 关于 Python Codefresh 的一些理解 最近在和一些做 DevOps 的朋友聊天时,发现不少人开始关注 Codefresh 这个工具,特别是它在 Python 项目中的应用。作为一个在 Python 领域摸爬滚打多年的开发者,也花时间研究了一下这个东西,有…...

Ryzen SDT 1.37:深度解析AMD处理器底层调试与性能调优工具

Ryzen SDT 1.37:深度解析AMD处理器底层调试与性能调优工具 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:…...

Python提高:条件断点的详解-由Deepseek产生

条件断点详解 条件断点(Conditional Breakpoint)是调试器中的一项高级功能:只有当用户指定的条件表达式为真(True)时,程序才会在该断点处暂停。 它解决了“普通断点会每次中断,导致大量无意义停…...

在博客的第一遍文章

大家好,我是一名信息安全专业的大学生,很高兴认识大家,这是我的第一篇博客。1.编程的目标我希望学完编程之后,我能够随心所欲的用编程实现脑中的想法,把编程当成一个得心应手的工具2.如何去学习编程我觉得编程最重要的…...

OZON运营全场景导入,Captain AI系统功能适配效果

OZON运营涵盖新品选品、新品启动、合规申报、物流规划、核算复盘等多个核心场景,每个场景都有其独特的运营痛点与需求。Captain AI系统针对各核心场景,打造了专属功能适配方案,有效解决场景痛点,提升运营效果。一、OZON运营核心场…...

Captain AI系统核心功能解析,分层应用指南及注意事项

在OZON跨境电商运营中,商家的运营场景多样、需求差异化明显,一款贴合实际运营场景、适配不同层次卖家的智能工具,能有效提升运营效率、降低运营门槛。Captain AI系统精准立足OZON运营实际,围绕全流程运营需求构建功能体系&#xf…...

Captain AI系统核心优势及功能支撑,对比凸显价值

在OZON跨境电商运营过程中,运营工具的选择直接影响运营效率、决策质量与成本控制。传统运营工具多存在功能单一、操作繁琐、适配性不足等问题,难以满足商家全流程运营需求。而Captain AI系统凭借其全链路整合、智能化赋能、场景化适配的独特优势&#xf…...

C#调用Phi-3/Mistral模型加速方案(Intel AMX+ML.NET 11.0.2私有编译版大曝光)

第一章:C#调用Phi-3/Mistral模型加速方案概览在.NET生态中实现轻量级大语言模型(LLM)推理,需兼顾跨平台兼容性、内存效率与低延迟响应。Phi-3(3.8B参数,ONNX格式支持)与Mistral-7B(可…...

仅限前200名智能座舱开发者:Dify车载问答系统性能调优Checklist(含JTAG级推理耗时分析、车规MCU内存占用压缩至≤18.3MB)

第一章:Dify车载问答系统开发案例在智能座舱持续演进的背景下,基于大模型的车载问答系统正成为提升人车交互体验的关键能力。本案例以 Dify 为低代码 AI 应用开发平台,构建面向车内场景的轻量化问答服务,支持自然语言提问、上下文…...

{{主题名称}}主题研究

{{主题名称}}主题研究 【免费下载链接】obsidian-weread-plugin Obsidian Weread Plugin is a plugin to sync Weread(微信读书) hightlights and annotations into your Obsidian Vault. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-weread-plugin 核心问题…...

OpenClaw如何集成?2026年华为云1分钟云端新手保姆级搭建及百炼Coding Plan步骤

OpenClaw如何集成?2026年华为云1分钟云端新手保姆级搭建及百炼Coding Plan步骤。OpenClaw(前身为Clawdbot/Moltbot)作为开源、本地优先的AI助理框架,凭借724小时在线响应、多任务自动化执行、跨平台协同等核心能力,成为…...

从零构建B站数据生态:Python异步API架构深度解析

从零构建B站数据生态:Python异步API架构深度解析 【免费下载链接】bilibili-api 哔哩哔哩常用API调用。支持视频、番剧、用户、频道、音频等功能。原仓库地址:https://github.com/MoyuScript/bilibili-api 项目地址: https://gitcode.com/gh_mirrors/b…...

M9A:基于视觉感知的《重返未来:1999》智能自动化框架技术解析

M9A:基于视觉感知的《重返未来:1999》智能自动化框架技术解析 【免费下载链接】M9A 重返未来:1999 小助手 | Assistant For Reverse: 1999 项目地址: https://gitcode.com/gh_mirrors/m9/M9A 在现代策略游戏领域,玩家面临的…...

【2026年版|必收藏】从0到1!AI大模型保姆级学习路线(小白/程序员专属)

2026年,大模型已从实验室走向规模化落地,AI Agent(智能体)、多模态、世界模型成为行业核心热点,无论是零基础小白想入门AI赛道,还是程序员想转型大模型领域,一套系统、不踩坑的学习路线都至关重…...

YOLOv11涨点改进| CVPR 2026 | 独家创新首发、Conv改进篇| 全新TMConv三角掩码卷积模块,轻量化涨点改进,增强特征的空间感知能力,助力目标检测,图像去噪,图像分割有效涨点

一、本文介绍 🔥本文给大家介绍使用 TMConv三角掩码卷积模块 改进YOLOv11网络模型,在特征提取阶段通过限制卷积感受野,有效避免局部冗余信息和噪声干扰,使网络更加专注于来自有效上下文的特征表达,从而提升特征的判别能力。通过其非对称卷积结构和方向性信息建模能力,T…...

从博弈论到广告归因:手把手拆解Shapley Value的Python代码与业务陷阱

从博弈论到广告归因:手把手拆解Shapley Value的Python代码与业务陷阱 在数字营销领域,广告主常常面临一个核心难题:如何公平评估各渠道对最终转化的贡献?传统"最后点击"归因模型简单粗暴,往往低估了用户旅程…...

微博超话自动签到工具:终极懒人指南,3分钟掌握高效自动化管理

微博超话自动签到工具:终极懒人指南,3分钟掌握高效自动化管理 【免费下载链接】weibo_supertopic_sign 基于Python/Nodejs的微博超话签到脚本,支持云函数运行或青龙面板运行 项目地址: https://gitcode.com/gh_mirrors/we/weibo_supertopic…...