【Freak嵌入式】MicroPython 实用知识库

用 Python/MicroPython 快速做电子 DIY 产品原型,从 0 基础入门到做出 “能帮到人的小工具”—— 让普通人也能用技术解决生活小问题

如何搭建 MicroPython 开发环境
树莓派Pico基础使用
5分钟做绿植补水提醒装置
你想做什么?比如 “自动喂猫器”“智能温湿度计”

FreakStudio 日常:一帮爱折腾技术的年轻工程师

FreakStudio 日常:一帮爱折腾技术的年轻工程师
我们是帮爱折腾技术的年轻工程师,日常边抢薯片边焊电路,顺手用开发板和电子模块搞定生活里的小麻烦事儿。
GraftSense 传感器模块:300 + 种任你搭
300 多种电子模块(输入 / 显示 / 通信 / 传感器全涵盖),不管是做智能小工具还是 DIY 项目,随手就能凑齐零件、搭出你想要的功能~
GraftPort 转接板
兼容 Pico 1/1W/2/2W/ETH 等 40Pin 核心板,自带多个 Grove 接口 —— 用树莓派 Pico 做 DIY 项目,接模块不用焊线,即插即用直接扩展硬件功能~
实用硬件装置模块教学案例
从智能闹钟、环境监测,到火灾报警、音乐灯,这些实用硬件装置都能用它搭出来 —— 跟着教程走,用 MicroPython 就能复刻这些功能原型~

风雅一号板-专为 MicroPython 教学打造的堆叠式开源开发板套件

✨ 低门槛上手
摒弃传统嵌入式开发 “编译慢、配环境、啃寄存器” 的痛点,依托 MicroPython 免编译特性,代码修改即时生效、REPL 交互式调试实时反馈,零基础也能 10 分钟点亮 LED、读取传感器数据,从 “写代码” 到 “看到效果” 无延迟,快速获得成就感,再也不用为底层配置耗半天。
🛠️ 全场景实战
- 硬件端:参考 OpenMV 设计的堆叠式扩展板,9 大扩展板覆盖 GPIO / 串口 / I2C/SPI/ADC/DAC/ 以太网等全外设场景,兼容树莓派 Pico 全系列核心板,一套满足 “入门→进阶” 所有实验需求; - 内容端:教程不搞 “纸上谈兵”,每个知识点都对应 “硬件实操 + 代码案例 + 项目落地”,从按键交互、温湿度采集到波形发生器、MQTT 物联网节点,学一个会一个,做一个成一个。
🎯 标准代码
- 代码层面:所有驱动 / 案例均采用面向对象设计,遵循 SOLID 原则,配套标准化注释 —— 不仅能跑通,更能学懂 “模块化、分层设计” 的核心逻辑; - 硬件层面:全开源设计文件适配手工焊接(核心阻容 0805 封装),从 “用硬件” 到 “做硬件”,培养完整的电子工程思维。
🔧开源可拓展
- 代码 100% 开源:可复用、可修改、可二次开发,支持发布自有库到专属 uPyPI 平台,打造个人嵌入式工具链; - 硬件 100% 开源:立创开源广场可下载全套原理图 / PCB/BOM,新手能复刻、老手能 DIY,从 “学现成” 到 “造专属”,折腾无上限。
📈 闭环式学习
- 构建 “原理拆解→代码实践→原型制作→迭代优化” 的完整学习闭环: - 基础阶段:学透 MicroPython 语法、硬件外设原理; - 进阶阶段:用快速原型扩展板做物联网监测、互动装置等实战项目; - 拔高阶段:通过开源代码 / 硬件改造,把作品升级为可演示的产品级原型,真正做到 “学即能用,用即能创”。
🚀 专属生态支撑
- 自研 uPyPI 包管理平台 + 100 + 传感器配套 Wiki / 图文 / 视频教程,驱动库一键安装、资料即查即用,还有专属社群答疑 —— 不用全网搜零散教程,一套资源搞定 MicroPython 嵌入式开发全链路。

upypi-类似 PyPI 的 MicroPython 包管理仓库

为Mpy打造的专属包管理平台
一站式分发、管理与发现,让嵌入式开发更高效
不断增加的驱动包,覆盖主流硬件模块
开箱即用,快速构建你的硬件应用
面向对象设计
遵循 SOLID 原则,标准化注释,易于维护
从入门到进阶
支持从简单 LED 到复杂矩阵的各类应用

零基础开始,MicroPython开始,玩转树莓派Pico

00 树莓派Pico简介——文档教程初稿

树莓派Pico是一款低成本高性能微控制器开发板,搭载RP2040芯片,支持MicroPython和C/C++编程。文档介绍其基本特性、硬件接口、开发环境搭建及编程示例,适合初学者入门。

MicroPython包与模块的概述和安装方法

该文档介绍MicroPython中包与模块的概念、安装方法及使用示例,包括pip和upip工具安装模块的步骤,以及导入和使用模块的代码示例,帮助开发者快速上手包管理。

01 MicroPython语言简介——文档教程初稿

MicroPython是Python 3的精简版,专为微控制器设计,支持硬件操作,适合嵌入式开发。文档介绍其特点、应用场景、与Python的区别,并提供快速入门指南。

02 MicroPython开发环境的搭建——文档教程初稿

该文档详细介绍了MicroPython开发环境的搭建流程,涵盖软件安装、环境配置和硬件连接等关键步骤,为开发者提供基础操作指南。

03 REPL 交互式解释器——文档教程初稿

该文档介绍了REPL交互式解释器的基本概念、启动方法、代码执行和结果查看,并提供了示例代码和操作步骤,帮助用户快速掌握交互式编程。

Linux下MicroPython开发环境的搭建

文档介绍了在Linux系统下搭建MicroPython开发环境的步骤,涵盖工具链安装、环境配置和示例代码运行。

快速了解基本外设的使用和工作原理

04 GPIO通用输入输出——文档教程初稿

该文档是GPIO通用输入输出的教程初稿,介绍GPIO基本概念、功能和使用方法,包含配置、输入输出模式及实际应用示例的图文说明。

05 UART串口——文档教程初稿

该文档是UART串口通信教程初稿,介绍了UART的基本概念、工作原理、配置方法、参数设置、数据传输流程及常见问题解决方案。

07 I2C集成电路总线-文档教程初稿

该文档介绍了I2C总线的基本概念、工作原理和应用场景,包括其作为串行通信总线连接微控制器与外围设备的特点,以及协议规范、数据传输方式和典型电路设计等内容。

08 SPI串行外设接口-文档教程初稿

该文档是SPI串行外设接口的教程初稿,涵盖SPI基本概念、工作原理、通信协议及嵌入式系统应用,可能包括时序图、引脚配置和实际示例。

09 定时器-文档教程初稿

该文档是定时器教程的初稿,含三张图片,内容需通过飞书链接查看完整版。

06 中断——文档教程初稿

该文档是中断教程的初稿,包含三张图片,但无法直接查看内容。建议访问原始链接获取完整信息。

10 PIO可编程输入输出端口-文档教程初稿

文档介绍了PIO(可编程输入输出端口)的基本概念、功能配置和使用方法,涵盖输入输出模式设置和中断处理,适用于硬件开发中的端口控制应用。

11 OneWire单总线通信协议-文档教程初稿

该文档介绍OneWire单总线通信协议,涵盖其基本原理、特点、硬件连接和数据传输时序,适用于嵌入式系统开发中的单总线设备通信。

12 USB通用串行总线-文档教程初稿 副本

该文档是USB通用串行总线的教程初稿,包含USB技术的基本介绍和操作指南,通过图文结合的方式详细讲解相关知识,完整内容需查看原始文档。

13 ETH以太网-文档教程初稿

该文档是以太网(ETH)教程初稿,包含多张图片,完整内容需通过飞书链接查看。

14 RTC实时时钟-文档教程初稿

RTC实时时钟教程初稿,包含详细知识和相关图片,完整文档见飞书链接。

15 WDT看门狗定时器-文档教程初稿

该文档介绍了WDT(看门狗定时器)的基本概念和工作原理,用于监控系统运行状态,防止程序异常,通过定时复位确保系统稳定。可能包含配置方法和使用示例。

16 低功耗模式-文档教程初稿

文档介绍了低功耗模式的工作原理、应用场景及配置方法,可能包含图片和详细说明,需查看原文获取完整信息。

17 ADC模数转换-文档教程初稿

该文档是ADC模数转换教程初稿,涵盖基本概念、工作原理、应用场景和配置方法,通过图文详细讲解转换过程及技术参数。

18 DAC数模转换-文档教程初稿

该文档是DAC数模转换的教程初稿,包含多张图片,具体内容需通过飞书链接查看完整版。

19 DMA直接内存访问-文档教程初稿

该文档是DMA(直接内存访问)教程初稿,介绍DMA的基本概念、工作原理及其应用,说明DMA如何绕过CPU直接访问内存以提高数据传输效率,可能包含图示和详细说明。

20 文件系统和存储结构 - 文档教程初稿

文档介绍了文件系统和存储结构的基本概念,包括组成、类型、特点及操作管理方法。

MicroPython使用小技巧和实战解析

MicroPython/Python发布第三方库

文档介绍了MicroPython/Python发布第三方库的完整流程,包括创建PyPI账户、准备项目文件、打包和发布步骤,并提供了相关命令和注意事项。

如何加快MicroPython的运行速度

文档总结了多种优化MicroPython运行速度的方法,包括使用Viper/Thumb指令集、本地代码、减少浮点运算、数组/内存视图、避免动态特性、预编译代码和硬件加速等。

如何最小化 MicroPython 占用内存

本文档提供多种方法最小化MicroPython内存占用,如冻结模块、优化代码结构、减少全局变量和使用字节码编译,以提高嵌入式设备运行效率。

MicroPython 嵌入式开发规范知识库

MicroPython传感器驱动代码编写规范(正式版)

该文档制定了MicroPython传感器驱动代码的编写规范,涵盖代码结构、命名规则、注释要求、接口设计和错误处理等方面,旨在提升代码的可读性、可维护性和兼容性,适用于所有MicroPython平台的传感器驱动开发。

MicroPython简单教学类产品级软件开发规范

该文档是MicroPython教学类产品的软件开发规范,规定了代码风格、命名规则、注释要求和文件组织等标准,旨在提升代码可读性和维护性,适用于教学类产品开发。

MicroPython可移植平台级软件开发规范

MicroPython平台级软件开发规范,涵盖代码结构、命名规则、注释要求等编程规范,以及模块化设计和硬件抽象层等架构原则,旨在提升代码可读性、可维护性和可移植性。

Bipes图形化开发教程

0 开始学习前的准备

本章节是图形化编程入门的核心实操部分,专为零基础学习者打造,聚焦从硬件准备到程序运行的全流程基础操作,无需提前掌握复杂理论,跟着步骤即可轻松上手。 我们整理了便捷的编程操作平台,清晰拆解硬件连接、固件烧录、设备配对与代码运行的关键步骤,同时为有进阶学习、教学拓展需求的使用者,准备了传感器模块的配套拓展资料。 完成本章实操学习,你将快速掌握图形化编程的基础硬件调试与程序运行方法,为后续趣味编程实践打好基础。

1 认识图形化编程与硬件系统

欢迎踏入图形化编程的奇妙世界!在这里,不用枯燥的代码和复杂的原理,只需拖动彩色积木,就能让灯亮起、让模块运转,用创意指挥硬件,感受亲手创造的快乐。 本章我们将从零起步,解锁图形化编程的核心认知:弄懂什么是图形化编程,认识硬件团队的核心成员,熟悉编程平台的基础操作,把抽象的编程知识变成易懂、好玩的趣味内容。 全程零基础可学,跟着讲解和互动思考一步步探索,就能掌握入门关键,为后续动手实操、打造属于自己的创意作品打下扎实基础,开启专属于你的编程创造之旅!

2 基本编程积木的用法

我们已经熟悉了图形化编程的「魔法工作台」,也找到了藏着无数指令的积木区。而真正让程序从简单变聪明的关键,就是这一章要学习的基本积木。 它们是编程世界里最基础、最核心的工具,就像写字要先学笔画、做手工要先会用工具一样。学会这些积木,我们的程序就能拥有判断、重复、计算、记录的能力,不再只是按部就班执行动作。 在这一章里,我们将逐一认识逻辑、循环、数学、变量等实用积木,用最简单的例子理解它们的用法。掌握好这些基础积木,就能组合出更有趣的程序,为后续创作智能小作品打下扎实的基本功。

2.1 逻辑(Logic):做 “判断” 的积木

我们已经知道,基本积木是让程序变灵活的关键,而在所有基础积木里,逻辑积木就是赋予程序 “思考能力” 的核心神器! 它就像给硬件和程序装上了一颗会判断的 “小脑袋”,让我们的作品不再只会机械地按顺序执行,而是能根据不同情况做出选择 —— 天黑自动亮灯、温度过高报警、按下按钮才执行动作,这些聪明的效果,全都要靠逻辑积木来实现。 在这一章里,我们将从最简单的判断开始,逐一认识条件判断、比较、组合、反向选择等各类逻辑积木,把生活里的 “如果… 就…” 变成程序能读懂的指令。学会它们,我们就能写出真正有逻辑、会思考的智能小程序,让创意作品更聪明、更有趣!

2.2 循环(Loops):让程序 “重复” 起来

我们刚给程序装上了会思考的 “小脑袋”(逻辑积木),今天要解锁让程序变身 “勤快小帮手” 的魔法 ——循环积木! 生活里总有很多要 “重复做” 的事:跳绳要数着跳 100 下、刷牙要反复刷每一颗牙、每天都要重复整理书包…… 如果让程序也一遍一遍拼相同的积木来做这些事,不仅费时间,拼出来的程序还乱糟糟的。 而循环积木就像给程序按下了 “自动重复键”:不用重复拼积木,只要告诉它 “要重复做什么”“重复到什么时候停”,程序就能自动、精准地反复执行操作 —— 想让 LED 灯闪 10 次?想让机器人一直前进直到碰到障碍物?想把列表里的数字一个个显示出来?靠循环积木都能轻松搞定! 在这一章里,我们会从最简单的 “固定次数循环” 开始,一步步认识条件循环、计数循环、列表遍历循环,还有能灵活控制循环的 “紧急开关”。学会这些,我们的程序就能告别繁琐的重复操作,变得高效又简洁,还能和逻辑积木搭配,做出更智能的自动控制作品~

2.3 数学(Math):给程序加 “计算力”

我们已经学会用逻辑积木让程序 “会思考”,用循环积木让程序 “重复干活”,而想要程序真正完成精准的数据处理与智能判断,就离不开今天要学习的数学积木! 数学积木就像程序的随身计算器和数据小管家,既能完成加减乘除、大小比较等基础计算,也能处理进阶函数、统计分析、随机生成和数值约束等复杂操作。有了它,程序就能算温度差值、统计传感器数据、模拟随机效果、规整各类数值,让我们的创意作品更精准、更实用。 在这一章里,我们将从基础的数字与运算开始,一步步认识数学函数、三角函数、统计积木、取整、取余、随机数等实用工具。学会这些数学积木,就能给程序装上强大的 “计算大脑”,轻松实现更多智能又有趣的编程任务!

2.4 文本(Text):让程序 “会说话”

我们之前学习的数字积木,帮程序拥有了计算力和逻辑力,却没法让程序 “说话”、传递文字信息。今天登场的文本积木,就是程序的 “语言表达小能手”,能把程序的运行状态、计算结果变成我们看得懂的文字。接下来,就让我们一起解锁它的神奇本领,开启文本积木的学习之旅吧!

2.5 列表(Lists):批量存数据的 “抽屉”

我们之前用变量只能存单个数据,遇到要保存一组数据时就会变得又乱又麻烦。今天要学习的列表,就是专门用来批量存放、有序管理数据的 “数据小抽屉”。接下来,我们就一起认识列表积木,学会轻松处理一组组数据吧!

2.6 变量(Variables):给数据 “起名字”

我们之前用列表批量管理一组数据,而能给单个数据 “起名、存放、随时修改” 的编程工具,就是变量。它就像程序里的专属小盒子,帮程序记住信息、复用数据,让程序更灵活好用。接下来,我们就一起认识变量,学会用它管理数据吧!

2.7 函数(Functions):把程序“打包”并重复使用

我们已经学会用循环、逻辑、数学积木做出能跑、能算的程序啦!但遇到反复要做的操作(比如算分数、让角色动),每次都重拼积木又麻烦又容易错。今天要认识的函数,就是能把重复操作打包好的 “编程小工具包”,喊一声名字就能复用,让程序更简洁、更好改~接下来,我们就一起解锁函数的使用吧!

3 模块接线说明

动手做硬件实验最担心的就是接线复杂、容易出错!咱们的套件采用了统一规范接口,接线不用记线路、不怕插错,这节课我们就来认识主控板各类接口,学会正确接线与引脚选择,还能掌握接口兼容小技巧,轻松搞定硬件连接,安心做实验~

4 基本外设的使用

我们学过的编程积木、接口规则,最终都是为了让开发板 “指挥” 各种硬件模块干活!这些能被开发板控制、或是给开发板传信号的硬件,就是外设 —— 它们就像开发板的 “眼睛、耳朵、嘴巴和手脚”。今天我们就跨进 “软硬件结合” 的大门,先学时间模块给程序定节奏,再认识开发板的核心部件,最后动手控制 LED、按键这些基础外设,解锁硬件控制的超能力~

4.1 时间(Timing):让程序 “有节奏”

做事要有节奏才不会乱 —— 跟着音乐跳舞踩不准节拍会慌,搭积木不等胶水干会倒,程序控制硬件也是一样!没有时间控制,灯刚亮就灭、数据乱成一团,按键一碰就重复触发,根本达不到我们想要的实验效果。而今天要解锁的时间类积木,就是给程序装的 “专属节拍器”,能精准控制程序的等待时长、重复间隔,让程序该停就停、该动就动,再也不手忙脚乱。接下来,我们就一起认识这些神奇的时间积木,学会给程序定好节奏,轻松搞定硬件控制吧!

4.2 设备(Machine):认识开发板“能做什么”

如果说时间积木是给程序找准 “节拍” 的指挥棒,那设备类积木就是让程序真正 “操控” 开发板的魔法遥控器!开发板就像一台迷你小机器人,藏着能思考的 “大脑”(CPU)、能动手脚的 “引脚”,而设备类积木就是我们和这台小机器人对话的语言 —— 它能把我们写的代码,翻译成开发板能听懂的指令,让 CPU 知道该算什么、让引脚知道该给哪个外设通电,让原本冰冷的电路板,能点亮 LED、读取传感器、控制小电机,真正 “活” 起来!

4.2.1 处理器(CPU):控制开发板“大脑”

你们知道吗?每一块开发板都藏着一颗 “超级大脑”——CPU(处理器)!它就像开发板的专属总指挥,我们写的每一段程序、每一次硬件操作(比如 LED 亮灯、传感器采集数据),都要靠它调度、指挥才能完成。而今天我们要解锁的CPU 相关积木,就是 “对话” 这颗大脑的神奇工具:既能测一测它的运行速度、查一查它的状态,也能在需要时调节它的节奏,还能排查重启原因、区分不同开发板,是程序稳定运行、我们读懂开发板的基础!这些积木大多用在开机检查或程序调试,新手不用急着进阶修改,跟着我们先从 “认识这颗大脑” 开始,一步步解锁新技能吧~

4.2.2 输入输出引脚(In/Out Pins ):控制开发板“手脚”

如果说 CPU 是开发板的 “大脑”,那输入输出引脚(I/O Pins)就是开发板和外界互动的 “专属手脚”!想让开发板点亮 LED、读取按键的按 / 松信号、感知光线明暗,甚至调节电机转速,全靠这些小小的金属触点 —— 而引脚类积木,就是我们指挥这些 “手脚” 干活的 “魔法指令”! 之前我们只知道引脚是开发板的 “手脚”,这节课就要把它的核心玩法逐个解锁:从最基础的 “选对引脚”“控制输出让灯亮灭”,到读取按键的数字信号、感知光线的模拟信号,再到用 PWM 让 LED 慢慢变亮、用中断精准捕捉快速按下的按键,每一个积木都能让开发板的 “手脚” 更灵活。不用怕复杂,我们从最简单的操作开始,一步步学会让开发板听懂你的指令,和 LED、按键、传感器这些外设轻松互动~

5 通信外设基础

我们已经能用引脚指挥 LED、读取传感器了,但开发板不能一直 “单打独斗”!这节课要认识的通信外设,就是开发板的 “嘴巴和耳朵”,是设备之间传递信息的隐形桥梁。有了它,开发板就能和屏幕、传感器、电脑互相 “聊天”。我们还会学到两种核心通信方式:一对一说悄悄话的 UART,和一个带多个的 I2C,轻松实现多设备联动,做出更有趣的创意作品!

5.1 串口通信(UART):一对一聊天

通信外设里藏着超简单的 “悄悄话神器”——UART 串口通信!它就像你和同桌传小纸条一样,是专属的 “一对一电话线”,只能两个设备悄悄聊天,简单又私密。这节课我们就把这根 “电话线” 的用法摸透:先搞懂波特率、TX/RX 引脚这些 “通话规则”,再解锁初始化、发送、读取等 UART 积木,让开发板既能把文字、传感器数据 “说” 给电脑 / 另一块开发板听,也能 “听” 到对方发来的消息,轻松实现设备间的一对一互动~

5.2 I2C通信:一个老师带很多学生

还记得咱们学的 UART 串口吗?它像你和同桌传小纸条,只能一对一悄悄聊天~但如果想让开发板同时连接 OLED 屏、温湿度传感器、光照传感器,难道要给每个设备都拉一根 “悄悄话电话线” 吗?当然不用!今天要解锁的 I2C 通信,就是开发板的 “高效课堂”—— 开发板当 “老师”,所有外设都是 “学生”,只用两根线就能搭建共享课堂,老师既能单独叫某个学生发言,也能给全班发通知,省线又高效,轻松实现多设备联动! 不管是想做 “环境监测站”(同时测温度、湿度、光照),还是 “智能小面板”(屏幕 + 按键 + 传感器),只要学会 I2C 的 “课堂规则” 和积木用法,开发板就能精准指挥多个外设分工干活,再也不用为 “外设多、接口少” 发愁啦~接下来咱们就从 “课堂纪律”(通信规则)到 “上课指令”(I2C 积木),一步步把这个超实用的通信方式学透!

6 显示(Displays):让程序 “会展示”

咱们刚搞定了 I2C 通信的 “高效课堂”,现在该给开发板配个 “发言的小嘴巴” 啦~想象一下:开发板能读取温湿度、能接收指令,但这些数据藏在 “肚子里”,我们根本看不见,多可惜!而 OLED 显示屏,就是开发板的 “迷你小电视”—— 通过 I2C 总线和开发板 “聊天”,能把文字、数字、图形甚至动态效果都清晰显示出来,让你的代码成果从 “隐形” 变 “看得见”! 不管是想让屏幕显示 “当前温度 25℃”,还是画个可爱的正方形,甚至做个像视频加载一样的动态进度条,这节课我们都能搞定~更棒的是,OLED 屏的使用逻辑,和 LCD 屏、数码管等显示模块基本相通,学会这一个,就能举一反三玩转所有显示类外设!接下来,咱们从 “开机初始化” 到 “画动态进度条”,一步步把这块小屏幕玩透,亲手让开发板 “开口说话”~

7 传感器(Sensors):让程序 “会感知”

还记得咱们之前写的程序吗?能算算数、能让灯亮灭、能让蜂鸣器响 —— 但这些程序都得按咱们写死的指令跑,就像一个只会照剧本演戏的小机器人,根本不知道外面的世界发生了什么:天黑了不会开灯,温度高了不会报警,有人靠近也毫无反应。 而这一章,我们要给开发板装上 “神奇五官”—— 传感器!它就像开发板的眼睛、鼻子、耳朵、皮肤: 火焰传感器是 “危险探测器”,能 “看到” 有没有火光; 温湿度传感器是 “体感温度计”,能 “感觉到” 冷热潮湿; 光强传感器是 “小眼睛”,能 “看到” 天黑还是天亮; 人体接近传感器是 “小雷达”,能 “察觉到” 有人靠近…… 这些传感器会把 “天黑了”“温度 35℃”“有煤气泄漏” 这些看不见摸不着的环境变化,变成开发板能看懂的数字信号,让程序从 “被动执行” 变成 “主动反应”:天黑自动开灯、温度太高自动响警报、闻到有害气体立刻提醒 —— 这才是真正的 “智能”! 咱们这章会从最简单的 “开关式传感器”(比如有没有火焰),学到能精准读数的 “旋钮式传感器”(比如光线多亮),再挑战能测距离、感知姿态的 “智能传感器”,一步步帮开发板解锁 “感知世界” 的能力。准备好让你的程序告别 “闭门造车”,和真实世界互动起来了吗?

7.1 按一下就开灯?用按键实现简单按压控制! —— 机械按键模块

咱们的开发板已经能点亮 LED、让 OLED 显示内容,但还只能 “被动执行指令”—— 想让它按你的想法切换动作,就得靠机械按键模块这个 “互动小帮手”!它就像开发板的 “专属小开关”,你轻轻一按,开发板就能立刻收到信号,做出对应反应(比如打印提示、切换灯的状态),瞬间拥有 “掌控开发板” 的快乐~ 机械按键的原理超简单:没按的时候,按键内部电路断开,引脚是高电平;按下时电路接通,引脚变成低电平。咱们只要用程序 “读取” 这个电平变化,再配合简单的判断逻辑,就能精准识别 “按没按按键”,还能通过加短延时解决 “按键抖动” 的小问题,让交互更稳定。接下来,咱们就手把手学会用按键和开发板 “对话” 吧!

7.2 不用按也能触发?解锁无接触触摸感应技巧! —— 基于 TTP223 的触摸按键模块

小创客们,在掌握了机械按键的基础交互后,这一章节我们将升级解锁更具科技感的触摸控制 —— 核心玩转 TTP223 电容式触摸按键模块!告别 “按下去” 的物理触感,我们将学会如何让开发板感知手指的轻轻触碰,实现 “一碰就响应” 的炫酷交互。 本章节你会循序渐进掌握这些核心内容:先搞懂 TTP223 模块的 “电容感应” 底层原理(为什么手指一碰就有信号?),再学会正确接线和图形化积木的搭配使用,最后完成 “触摸检测并打印提示” 的实操案例,还会了解触摸模块的避坑技巧(比如环境干扰、延时防抖)。对比机械按键,你会清晰知道触摸按键的优势和适用场景,掌握最基础的触摸交互逻辑,为后续做触摸开关、智能感应面板等项目打下关键基础!

7.3 想调亮灯光、调大音量?用滑动部件实现参数调节! —— 滑动变阻器模块

告别只有 “开 / 关” 两种状态的开关型模块,这一章节我们要解锁能 “连续调数值” 的百变神器 —— 滑动变阻器模块!它就像台灯的调光旋钮、音响的音量键,转动旋钮就能让数值从 0 到最大连续变化,让开发板精准 “读懂” 你的调节幅度。 本章节我们会从原理到实操一步步吃透:先搞懂 “模拟量” 的核心概念(为什么数值能连续变?),再学会滑动变阻器的正确接线和模拟输入积木的使用,完成 “实时读取数值并打印” 的基础案例,直观感受 “转旋钮→数值变” 的对应关系。还会掌握数值无变化、范围认知等避坑技巧,对比数字量模块的差异,吃透模拟量输入的核心逻辑,为后续做调光台灯、调速电机等进阶项目打下关键基础!

7.4 小车怕撞墙?教你检测物体是否碰到终点! —— 限位开关传感器

想知道电动窗帘怎么知道 “拉到头了”、抽屉怎么知道 “推到底了”?这一章我们要解锁超实用的限位开关模块!它就像开发板的 “位置探测器”,只有被物体碰到触发,才会给开发板发信号,精准判断 “是否到极限位置”。 在本章中,你会搞懂限位开关的数字信号原理(触发 = 低电平、未触发 = 高电平),学会正确接线和上拉电阻的使用,完成 “检测限位触发并打印提示” 的实操案例,还能掌握防误触、避免重复触发的小技巧。对比之前的按键模块,吃透位置检测的核心逻辑,为制作带安全保护、运动限位的创意项目(比如自动停的小推车)打下基础!

7.5 家里有火苗怎么及时发现?快速检测火焰并报警! —— 基于 PT334 的火焰传感器模块

这一章我们给开发板升级 “安全神器”—— 火焰传感器模块!它就像开发板的 “火眼金睛”,对火焰的红外光特别敏感,能精准判断 “有没有火焰”,还能测出火焰的远近。 在本章中,你会搞懂火焰传感器的核心原理(红外光感应、数字 / 模拟两种读取方式),学会正确接线和积木拼搭,完成 “火焰检测 + 终端提示” 的基础报警器案例,掌握防误触发、升级声光报警的小技巧,为制作火灾预警、强光检测等安全类创意项目打下核心基础!

7.6 有人靠近就亮灯?实现人体感应自动触发! —— 红外热释电人体接近传感器模块

这一章我们给开发板解锁 “感知生命” 的超能力 —— 红外热释电人体接近传感器!它就像开发板的 “第六感”,专认人体 / 动物的红外热辐射和移动,有人靠近立刻察觉,是做感应灯、防盗报警器等智能家居项目的核心神器。 在本章中,你会搞懂传感器 “只认动态热源” 的核心原理(对静态人体不敏感哦),学会正确接线和积木拼搭,完成 “检测人体靠近 + 终端提示” 的基础案例,掌握调节灵敏度、避免热源误触发的小技巧,还能吃透它和火焰传感器的电平判断差异(不用 not 取反),为制作 “有人就亮” 的感应灯、防盗报警器打下关键基础!

7.7 手机晃一下就亮屏?教你检测轻微震动! —— 基于 SW-520D 的滚珠式震动传感器模块

想让开发板感知摇晃、碰撞的瞬间吗?这一章我们解锁超有趣的 SW-520D 滚珠式震动传感器!它就像开发板的 “震动小开关”,内部金属滚珠一滚,就能精准判断 “有没有震动”,是做震动手环、碰撞报警玩具的核心神器。 在本章中,你会搞懂传感器 “滚珠触发” 的核心原理(静止高电平、震动低电平),学会正确接线和积木拼搭,完成 “检测震动 + 终端提示” 的基础案例,掌握调节延时防误触发的小技巧,对比模拟量传感器的差异,为制作震动报警灯、小车碰撞检测等趣味项目打下关键基础!

7.8 轻轻碰就有反应?打造高灵敏震动检测装置! —— 基于 SW-18010P 的弹簧式震动传感器模块

继滚珠式震动传感器后,这一章我们解锁更灵敏的 “震动捕捉神器”——SW-18010P 弹簧式震动传感器!它就像开发板的 “震动听诊器”,哪怕是轻敲桌面、轻微晃动,都能精准捕捉,比滚珠式传感器灵敏得多~ 在本章中,你会搞懂弹簧式传感器的核心原理(弹簧弯曲触发、高灵敏特性),对比它和滚珠式传感器的差异(一个听 “小声响”、一个听 “大动静”),学会正确接线和积木拼搭,完成 “检测轻微震动 + 终端提示” 的实操案例,还能掌握调节延时避免频繁触发的小技巧,为制作精密震动报警器、轻微碰撞检测装置打下关键基础!

7.9 小车怎么自己沿黑线跑?实现自动循迹不跑偏! —— 基于 TCR5000L 的单路循迹模块

想让智能小车不用手动控制,乖乖跟着黑线跑吗?这一章我们解锁超有趣的单路循迹模块!它就像小车的 “红外眼睛”,靠红外反射原理精准分辨黑白线(黑色吸光、白色反光),是让小车实现自动循迹的核心神器~ 在本章中,你会搞懂循迹模块的红外反射核心原理,学会关键的校准步骤(白底 / 黑线校准),掌握正确接线和图形化积木拼搭,完成 “检测黑白线 + 终端提示” 的基础案例,还能了解安装高度、环境光线对检测精度的影响,为制作能自动循迹的智能小车打下核心基础!

7.10 天黑了自动开灯?用简易模块检测光线强弱! —— 基于 GL5516 的光强度传感器模块

这一章我们玩转 GL5516 光强度传感器,它就像开发板的 “视觉细胞”,靠光敏电阻感知光线明暗,还能通过 ADC 把亮度转换成 0~65535 的数字(记住哦:越亮数值越小、越暗数值越大),轻松实现 “天黑自动开灯” 的智能效果~ 在本章中,你会搞懂光敏电阻 “光线和阻值反着来” 的核心原理,学会 ADC 模数转换的小知识(模拟电压转数字信号),掌握正确接线和图形化积木拼搭,完成 “实时读取亮度数值并打印” 的基础案例,还能掌握让数据更稳定的小技巧(比如延时、取平均值),为制作光控 LED、智能台灯等创意项目打下关键基础!

7.11 煤气泄漏怎么预警?教你检测有害气体! ——MQ 系列气体传感器模块

这一章我们给开发板解锁 “闻气味” 的超能力!玩转 MQ 系列气敏传感器(MQ-2/3/135),它们就像开发板的 “电子鼻子”,能精准嗅出烟雾、酒精、甲醛等气体,是做烟雾报警器、酒驾检测仪的核心神器~ 在本章中,你会搞懂半导体气敏的核心原理:气体改变半导体电阻→转换成电信号,记住关键的 “预热小规则”,首次用要预热 2-3 分钟,学会双输出模式的用法(数字判 “是否超标”、模拟测 “浓度高低”),完成 “气体检测 + 终端报警” 的实操案例,还能掌握阈值调节防误报的小技巧,为制作火灾预警、空气质量监测等实用项目打下关键基础!

7.12 晒太阳怕晒伤?一键检测紫外线强度! —— 基于 GUVA-S12SD 的 UV 紫外线传感器模块

想让开发板 “看见” 看不见的紫外线吗?这一章我们解锁 GUVA-S12SD 紫外线传感器模块!它就像开发板的 “防晒小管家”,能精准感知阳光中紫外线的强弱(不是 “有 / 无”,而是 “强 / 弱程度”),数值越大说明紫外线越强,轻松实现防晒提醒~ 在本章中,你会搞懂紫外线传感器的模拟量检测原理:紫外线越强,输出数值越大,学会正确接线到模拟接口 AIN0,完成 “实时读取紫外线数值并打印” 的基础案例,还能尝试设置阈值实现 “防晒提醒”,数值超标点亮 LED,为制作环境监测、户外安全提醒装置打下基础!

7.13 想知道室内温湿度?精准测量环境冷暖干湿! —— 温湿度传感器模块(DHT11/22 Sensor)

继 “眼睛”“鼻子” 后,这一章给开发板解锁 “体感能力”!我们要吃透 DHT 系列温湿度传感器(DHT11/DHT22),它就像开发板的 “皮肤感受器”,能精准捕捉环境的温度和湿度,而掌握 4 个核心积木(初始化、测量、读温度、读湿度)是玩转它的关键~ 在这部分内容里,你会搞懂 DHT 传感器 “模拟信号转数字信号” 的简单原理,记住核心引脚(VCC/GND/DIO)的作用,逐个吃透 4 个关键积木的用法(尤其是初始化不能少、测量要在读取前),还能完成 “每 2 秒检测并打印温湿度” 的实操案例,掌握避开 “数据乱码、引脚接错、未加 2 秒延时” 等新手坑的技巧,让开发板稳稳读出精准的温湿度数据!

7.14 光线强弱要精准?用芯片实现高精度光感检测! —— 基于 BH1750 芯片的光强度传感器模块

想让开发板精准 “看清” 光线有多亮吗?这一章我们解锁 BH1750 光强度传感器!它可不是只能分亮暗的简易光敏电阻,而是能直接输出勒克斯(lux)数值的 “专业测光仪”,靠 I2C 通信就能和开发板高效对话,超适合做自动台灯、智能亮度调节等精细化光线控制项目~ 在本章中,你会搞懂 I2C 通信协议的简单原理(开发板和传感器的 “悄悄话协议”),吃透两个核心积木初始化、读取亮度的用法,学会正确接线到 I2C0 接口,完成 “读取亮度数值 + 自动控制 LED 亮灭” 的智能台灯原型案例,还能掌握校准读数、避免强光损坏传感器的小技巧,对比出它比简易光敏传感器更精准、更易计算的优势!

7.15 不用碰就能测距离?非接触式精准测距技巧! —— 基于 VL53L0X 芯片的激光测距模块

想让开发板精准测出前方物体的距离吗?这一章我们解锁 VL53L0X 激光测距模块。它就像一把激光尺,靠飞行时间法发射激光并计算往返时间,能精准算出毫米级的距离,比普通红外测距更准,还不受物体颜色影响,是做避障小车、自动门的核心神器。 在本章中,你会弄懂飞行时间法的简单原理,吃透初始化和读取距离两个核心积木的用法,学会正确接线到 I2C0 接口,完成安装驱动库的准备步骤,实现实时测量距离并打印数值的迷你激光尺案例,还能掌握避免遮挡激光口、处理超量程数值的小技巧,了解它反应快、量程合适的优势,为制作避障类创意项目打下基础。

7.16 体感摇骰子怎么实现?感知设备姿态与运动! —— 基于 MPU6050 的六轴陀螺仪模块

想让开发板像体感游戏手柄、平衡车一样感知动作吗?这一章我们解锁 MPU6050 六轴陀螺仪模块。它集成三轴加速度计和三轴陀螺仪,能精准捕捉开发板倾斜、旋转的姿态变化,让开发板知道自己是往前倾还是往后仰、左转还是右转,是做体感控制、平衡小车的核心黑科技。 在本章中,你会弄懂六轴合一的简单原理,吃透初始化和各轴数据读取积木的用法,学会正确接线到 I2C0 接口,完成安装双驱动库的准备步骤,实现读取加速度数据并打印的动作感知器案例,还能掌握校准数值、防抖的小技巧,了解它反应灵敏、应用广泛的优势,为制作体感控制装置、平衡小车等创意项目打下基础。

8 执行器(Outputs / Actuators)

开发板有了感知环境的五官传感器还不够,这一章我们要给它装上能动手做事的手脚 —— 执行器。执行器是程序的手、嘴和工具,能把冰冷的指令变成看得见听得到摸得着的实际动作,比如数码管显示检测数值、扬声器发出提示音、电机带动小车跑动、继电器控制家电通断。 在本章中,你会分清传感器和执行器的核心分工,记住输入判断输出的万能学习思路,按看得见听得到到能控制真实设备的顺序,依次学会 4 位数码管、功放扬声器、WS2812 矩阵、继电器、I2C 16 路 PWM、红外接收模块的用法,每个模块都搭配有趣的小实验,亲手让开发板实现显示、发声、转动、控家电等动作,体验从感知环境到改变现实的完整智能系统逻辑。

8.1 想做会闪的小夜灯?点亮多彩指示灯! —— 食人鱼 LED 灯模块

这一章我们玩转入门电子实验的老朋友 —— 食人鱼 LED 灯模块。它亮度高、反应快,能轻松实现亮灭、闪烁、呼吸渐变等效果,是学习开发板输出控制的绝佳练手模块。 在本章中,你会记住食人鱼 LED 灯模块的接线方式,掌握数字输出、PWM 输出配置调节、延时三类核心积木的用法,依次完成控制 LED 亮灭、灯光闪烁、PWM 调节亮度三个实用示例,理解脉冲宽度调制技术实现亮度渐变的简单原理,学会用积木拼出不同的灯光控制逻辑,让 LED 按设定的节奏亮起来、闪起来、渐变起来。

8.2 开发板 “发烧” 怎么办?给它装个小风扇降温! —— 基于 MOS 管的散热风扇模块

这一章我们解锁给开发板降温的小帮手 —— 基于 MOS 管的散热风扇模块。它靠 MOS 管解决开发板引脚无法驱动大电流的问题,既能保护开发板不被烧坏,还能通过 PWM 技术精准调节风扇转速,实现从微风到强风的连续变化,专门给发热的硬件吹风降温。 在本章中,你会弄懂 MOS 管驱动风扇的简单原理,记住模块的接线方式,掌握 count with 循环、PWM 配置、print、delay 等核心积木的用法,完成 PWM 调节风扇转速从慢到快渐变的实操案例,直观感受占空比数值和风扇转速的对应关系,还能学会排查风扇不转、转速不够的小问题,了解搭配温度传感器制作温控散热系统的进阶玩法。

8.3 想要超亮小台灯?驱动大功率 LED 发光! —— 基于 OC7140 的大功率单灯珠 LED 模块

这一章我们解锁超亮的 LED 大灯泡 —— 基于 OC7140 的大功率单灯珠 LED 模块。它比普通食人鱼 LED 亮度高得多,靠 OC7140 驱动芯片解决大电流供电问题,既保护开发板又能让 LED 安全高亮工作,还能通过 PWM 技术实现从暗到亮的精准调光,超适合制作调光小台灯。 在本章中,你会弄懂 PWM 调光的简单原理,记住模块的接线方式,掌握 count with 循环、PWM 配置、print、delay 等核心积木的用法,完成 PWM 调节 LED 亮度从暗到亮渐变的实操案例,直观感受占空比数值和 LED 亮度的对应关系,还能学会排查 LED 不亮、亮度不够的小问题,了解搭配滑动变阻器制作手动调光台灯、结合光线传感器制作自动感光台灯的进阶玩法。

8.4 骰子点数怎么提示?做个震动反馈小装置! —— 基于 MOS 管的震动马达模块

在这一章中,我们将解锁一个让开发板与众不同的小模块 —— 基于 MOS 管的震动马达模块,为你的项目增添触感反馈!你是否想让开发板在收到某些信号时震动,或者像手机一样给出震动提示?通过这个模块,你可以让开发板发出明显的震动反馈,从而提升用户体验,让项目更具互动性。

8.5 想显示数字计数器?让 4 位数码管亮起来! —— 基于 TM1637 芯片的 4 位数码管驱动模块

这一章我们解锁能显示数字和文字的电子小屏幕 —— 基于 TM1637 芯片的 4 位数码管驱动模块。它靠 TM1637 驱动芯片把开发板的信号转换成数码管能识别的指令,可显示数字、字母甚至滚动文字,接线仅需两根通信线,是制作迷你电子钟、温度显示器、互动计分牌的绝佳选择。 在本章中,你会弄懂 4 位数码管的简单原理,记住模块的接线方式,完成安装 TM1637 驱动库的准备步骤,掌握初始化、显示单个字符、滚动文字等核心积木的用法,完成先显示字符 E 再滚动显示 HELLO WORLD 的实操案例,还能学会排查数码管不显示、滚动文字不全的小问题,了解搭配温湿度传感器制作实时数据显示器、做倒计时器的进阶玩法。

8.6 程序报警怎么出声?制作响亮提示音! —— 基于 LM386 芯片的功率放大扬声器模块

这一章我们解锁能让开发板开口说话的神奇模块 —— 基于 LM386 的功率放大扬声器模块。它能把开发板微弱的音频信号放大几十倍,让扬声器发出清晰响亮的声音,还能通过 PWM 频率模拟不同音调,占空比调节音量,超适合制作迷你电子琴、报警提示器等有声互动项目。 在本章中,你会弄懂 PWM 模拟声音的简单原理,记住模块的接线方式,掌握 PWM 配置、delay 等核心积木的用法,完成播放 800Hz 和 400Hz 不同音调提示音的实操案例,直观感受频率和音调的对应关系,还能学会排查声音小、有杂音的小问题,了解搭配触摸按键制作迷你电子琴、组合频率播放简单旋律的进阶玩法。

8.7 想玩彩色像素画?点亮炫酷 LED 矩阵! ——WS2812 矩阵模块

这一章我们解锁能变出彩虹的魔法屏幕 ——WS2812 RGB 灯珠矩阵模块。它的每颗灯珠都内置微型驱动芯片,可独立调出 1600 万种颜色,仅需一根数据线就能控制所有灯珠,像电子画布一样显示彩虹、笑脸、动画等丰富效果,是做创意互动项目的绝佳选择。 在本章中,你会弄懂 WS2812 灯珠单总线通信的简单原理,记住模块的接线方式,掌握初始化、控制单灯颜色、刷新显示、循环、延时等核心积木的用法,完成 64 颗灯珠逐个点亮红灯的流水灯实操案例,直观感受灯珠独立控制的特点,还能学会排查灯珠不亮、颜色显示错误的小问题,了解制作彩虹渐变流水灯、触摸触发图案显示的进阶玩法。

8.8 用开发板控制家电?安全开关台灯风扇! —— 基于 HF46F 的普通继电器模块

这一章我们解锁能控制大电流的安全开关 —— 基于 HF46F 的普通继电器模块。它就像大电流设备的遥控器,靠电磁吸合 / 释放触点实现 “小电流信号控制大电流电路”,彻底隔离开发板和电机、灯泡等大功率设备,既避免开发板被烧坏,又能安全驱动各类需要大电流的设备。 在本章中,你会弄懂电磁继电器的简单原理,记住模块的接线方式,掌握 set output pin、delay 等核心积木的用法,完成控制电机转动 5 秒后自动停止的实操案例,直观感受小信号控制大电流的安全效果;还能学会排查继电器不吸合、电机不转的小问题,了解搭配触摸按键、光线传感器制作智能开关的进阶玩法,同时牢记大电流操作的安全注意事项。

8.9 想让小车跑起来?驱动电机转圈圈! —— 光耦隔离 MOS 管单电机驱动模块

这一章我们解锁能安全驱动电机的小管家 —— 光耦隔离 MOS 管单电机驱动模块。它靠 “光耦隔离 + MOS 管” 的组合给开发板装上安全防火墙,既用光耦彻底隔离开发板和电机的大电流电路,避免电涌烧坏开发板,又能通过 MOS 管驱动电机稳定转动,还支持 PWM 调节转速,是做智能小车、机器人等动力项目的核心模块。 在本章中,你会弄懂光耦隔离的简单原理,记住模块的接线方式,掌握 PWM 配置、delay 等核心积木的用法,完成电机以中等转速转动 5 秒后自动停止的实操案例,直观感受安全隔离驱动的效果;还能学会排查电机不转、转速不稳的小问题,了解搭配滑动变阻器制作手动调速电机、结合循迹模块做循迹小车的进阶玩法。

8.10 想做紫外杀菌灯?控制紫外灯阵列开关! —— 基于 MOS 管的 UV 紫外灯矩阵模块

这一章我们解锁能发出隐形紫外线的魔法矩阵 —— 基于 MOS 管的 UV 紫外灯矩阵模块。它能发出人眼不可见的紫外线,靠 MOS 管实现小信号控制大电流,既保护开发板不被大电流烧坏,还能通过 PWM 精准调节紫外线强度,就像一块隐形光画布,超适合做荧光涂鸦、迷你消毒装置等有趣项目。 在本章中,你会弄懂 MOS 管驱动 UV 灯的简单原理,完成紫外线强度从 0 渐变到 36000 再自动关闭的实操案例,直观感受占空比和紫外线强度的对应关系;同时必须牢记紫外线的安全使用规范,避免直视灯珠、皮肤直接接触,学会排查 UV 灯不亮的小问题,了解用荧光纸制作隐藏图案、搭配光线传感器实现自动消毒场景的进阶玩法。

8.11 想做机械臂云台?精准控制多个舵机! ——I2C 总线 16 路 PWM 舵机驱动模块

这一章我们解锁能同时控制 16 个舵机的超级指挥官 —— 基于 PCA9685 芯片的 I2C 总线 16 路 PWM 舵机驱动模块。它仅靠 2 根 I2C 通信线就能驱动 16 个舵机,完美解决开发板引脚不足的问题,还能精准调节每路 PWM 信号控制舵机角度,让机器人手臂、智能小车转向等多关节项目实现灵活联动,是机械臂、仿生机器人等项目的核心神器!

8.12 想用遥控器控制设备?接收红外遥控信号! —— 基于 TSOP34138 的红外接收模块

这一章我们解锁能收发隐形光信号的秘密对讲机 —— 基于 TSOP34138 的红外接收模块 + 红外发射模块。它像开发板的红外通信神器,发射模块会把红外光用 38kHz 高频信号 “加密” 发射,接收模块专门解调这个频率的信号,实现短距离(1-10 米)无线通信,抗干扰能力强,超适合做红外遥控器、避障小车等无线控制项目!

9 工具与编程语言

这一章是我们从 “新手创客” 迈向 “熟练创客” 的关键过渡课!前面我们已经学会用传感器感知世界、用执行器做出反应、用通信让设备 “说话”,而这一章,我们要跳出单纯 “拼积木” 的层面,掌握 “工具 + 编程语言” 的组合技能,让你的项目能做得更复杂、更稳定、更有创意!

9.1 BIPES

这一节我们要深挖 BIPES 这个 “图形化中控台” 的隐藏技能!之前我们只用它拼积木写程序,而现在要学会用它的专属工具积木,给项目做 “规范化管理” 和 “数据可视化”,让你的项目不仅能跑起来,还能 “说得清、看得懂、留得下”!

9.2 Python

这一节我们要打开图形化编程的 “进阶通道”!当积木拼不出复杂逻辑、程序一出错就直接停摆时,Python 相关的积木就是你的 “救星”—— 不用死记硬背语法,就能让程序既 “抗错不崩溃”,又能实现积木做不到的功能! 在本节中,你会认识三类超实用的 Python 工具积木:一是异常捕获积木(try…except…),它就像程序的 “安全气囊”,能接住 “除以 0”“数据不存在” 这类会让程序崩溃的错误,让程序不中断,还能执行你预设的提示操作;二是Python 指令运行积木,可直接在积木里执行 Python 代码,搞定积木实现不了的高级计算、底层设备交互等操作;三是Python 代码输出积木,不仅能运行 Python 代码,还能把计算结果返回给其他积木用,比如算完两数之和,直接传给显示积木。

10 综合案例

这一节我们从简单的 “按键控 LED” 全面升级,挑战超实用的智能硬件综合案例 —— 制作温湿度环境监控显示器!这个案例完美还原家用温湿度计的核心功能,用 DHT11 感知环境温湿度,OLED 屏实时可视化展示数据,还能拓展 LED / 蜂鸣器实现极端温湿度预警,学会它就能彻底掌握智能硬件 “感知→处理→输出→预警” 的完整逻辑~

10.1 温湿度环境监控显示器

我们终于从单独玩转按键、LED、传感器,升级到 “组合出招” 啦!今天这个按键翻转 LED 提示系统,是智能硬件入门最经典的综合案例 —— 就像家里的电灯开关,按一次灯亮、再按一次灯灭,循环切换。学会它,你就能彻底搞懂 “按键检测 + 防抖处理 + 状态存储 + LED 控制” 的完整逻辑,为后续做复杂项目筑牢基础~

10.2 按键翻转 LED 提示系统

暂无摘要

10.3 红外人体感应灯

这一节我们动手做超实用的智能家居小装置 —— 红外人体感应灯!它完美复刻楼道感应灯的核心逻辑:有人靠近自动亮灯,还能加蜂鸣器提示,人离开后延迟灭灯,学会这个案例,你就能吃透 “人体检测 + 防抖处理 + 延时控制 + 输出反馈” 的核心逻辑,轻松复刻生活里的各类感应设备~

10.4 消防安全小哨兵

这一节我们动手打造超实用的 “消防安全小哨兵”,它就像家用火灾报警器,能精准检测明火和烟雾,触发后蜂鸣器发出响亮警报,还能通过按键手动解除警报,学会这个案例不仅能掌握多传感器协同使用的技巧,更能培养重要的消防安全意识~

10.5 智能教室环境小管家

这一节我们动手打造 “教室环境监测与舒适提醒系统”—— 它就像教室里的智能小管家,能实时采集温度、湿度、光线强度数据,在 OLED 屏上直观展示,一旦数据超出预设的 “舒适区间”,就会触发蜂鸣器 + LED 双重提醒,让教室始终保持舒服的环境,学会这个案例,你就能掌握智能硬件综合项目的核心开发逻辑~

10.6 体感控制小灯阵

还记得体感游戏里晃动手柄就能控制角色移动的乐趣吗?这一节我们用 MPU6050 六轴陀螺仪,打造超酷的 “体感控制小灯阵”!只要手持开发板向前后左右倾斜,2×2 的 LED 灯阵就会跟着联动亮灭,就像用身体 “指挥” 灯光跳舞,学会这个案例,你就能把 “身体动作” 转化为代码逻辑,掌握体感交互的核心玩法~

10.7 震动报警小卫士

想给心爱的书本、文具甚至小摆件装个专属 “防盗小保安” 吗?这一节我们就用 SW-18010P 震动传感器,打造超实用的 “震动报警小卫士”!只要有人偷偷移动你的物品,它会立刻触发蜂鸣器响铃 + 红灯亮起的双重警报,3 秒后自动复位继续 “站岗”,既不打扰日常使用,又能守护物品安全,学会这个案例,你就能掌握安防场景的核心编程逻辑~

10.8 体感趣味摇骰子

你玩骰子游戏还在手动摇晃、手动开点数吗?这一节我们用 MPU6050 六轴陀螺仪,打造超酷的 “体感趣味摇骰子”!只要握着开发板轻轻一晃,4 位数码管就会像真骰子一样快速滚动数字,停止摇晃后自动锁定 1-6 的点数,震动马达还会根据点数给出不一样的震动反馈,摆脱手动掷骰子的麻烦,好玩又充满科技感,学会这个案例,你就能掌握 “动作检测 + 动态显示 + 差异化反馈” 的趣味交互核心逻辑~

10.9 户外防晒提示仪

夏天出门最怕被毒辣的太阳晒伤啦!这一节我们动手做超实用的 “户外防晒提示仪”—— 它就像你的随身防晒小助手,能精准检测紫外线强度,4 位数码管实时显示数值,一旦紫外线超标,散热风扇就自动转动模拟 “遮阳降温”,一眼就能知道要不要涂防晒霜,学会这个案例,你就能掌握 “模拟信号检测 + 数值可视化 + 阈值智能控制” 的实用编程逻辑~

10.10 红外传声小玩具

你想拥有能 “隔空传声” 的魔法小玩具吗?不用电线,靠看不见的红外线就能把你的声音传到几米外,就像玩迷你对讲机一样有趣!这一节我们用红外发射 / 接收模块、麦克风和蜂鸣器,打造红外传声小玩具,让你的声音 “飞” 起来,学会这个案例,就能吃透 “声音采集→红外编码传输→信号解码→声音还原” 的无线通信核心逻辑~

10.11 简易血氧估算监测器

想拥有能 “看懂身体信号” 的随身健康小助手吗?这一节我们用 MAX30100 心率血氧传感器、4 位数码管和震动马达,打造简易血氧健康监测器!只要把手指轻贴传感器感应区,就能实时测算血液中的氧气含量,4 位数码管清晰显示血氧值,一旦血氧≤人体低血氧临界值,震动马达会立刻提醒,就像你的专属健康小管家,学会这个案例,就能掌握 “光信号采集→数值运算→可视化显示→异常提醒” 的健康监测核心逻辑~

0 元入门 Arduino!ESP32+Wokwi 仿真从零基础到实战全攻略

01 一场属于每个人的技术革命:你我皆创客

一场静默却充满力量的革命,正在全球各个角落悄然发生。在社区工坊里,在校园创客空间,甚至在家中的书房和阳台——普通人开始拿起工具,打开电脑,将想法变成蓝图,将代码注入硬件。这就是创客运动,它正以一种润物无声的方式,重塑着我们与技术的关系。 它拆除了实验室的高墙,让曾经遥不可及的智能技术,变成了每个人桌面上可触摸的元件、可编写的代码、可组装的结构。 Arduino让单片机变得简单易懂,3D打印让复杂构件唾手可得,开源社区让知识自由流动——创造的工具,从未像今天这样触手可及。 这不再是一场关于技术的狂欢,而是一场关于可能性的解放。它要传递的核心信息是:那个曾经觉得“我学不会”的你,身体里其实住着一个尚未被唤醒的创造者。

03 拆解ESP32单片机

在学习微控制器的过程中,掌握芯片内部的硬件资源与功能配置,是高效开发的基础。正所谓:“想攻略,先拆解!知己知彼,百战不殆。”只有深入理解一款单片机的资源结构,才能在实际应用中做到有的放矢。 本课程的学习对象是 ESP32 。这是一款功能丰富、应用广泛的系统级芯片,要想真正掌握它,首要任务是明确其内部资源与模块划分。 那么,ESP32单片机上具体具备哪些资源?各模块承担什么样的功能?它们又是如何协同工作的? 本节将围绕这些问题,从ESP32的整体结构入手,逐步剖析模组硬件、核心芯片及引脚功能布局,为后续深入学习与开发实践奠定坚实基础。

02 基于 Arduino 框架开发 ESP32:从 Wokwi 仿真开始

Arduino 降低了编程控制硬件的门槛,ESP32 提供了性能更高和外设更丰富的单片机平台,而 Wokwi 则为初学者打造了一个无需任何硬件、可快速上手和自由试错的在线学习平台。 那么,到底怎么开发 ESP32?Arduino 和 ESP32 是怎么搭配使用的?Wokwi 页面要怎么操作呢?本期内容我们就来把这些问题一一揭开。

04 初识Arduino编程语言

在开始Arduino编程之前,我们先了解几个基本概念。编程,就是用指令告诉计算机该做什么,是将人的想法转化为计算机可以理解的语言。 编程语言是人与计算机交流的工具,不同的编程语言就像世界上的不同自然语言,有各自的语法和规则,但目的都是让计算机按照人类的指令工作。常见的编程语言有C、C++、Python、Java等。 Arduino编程语言是基于C/C++的简化版,保留了强大的功能,同时大大简化了硬件控制,让我们可以快速实现创意,比如点亮一个LED、控制电机,甚至是实现智能家居。 在接下来的学习中,我们将从最基础的程序结构入手,逐步探索如何通过代码控制硬件,激活ESP32的无限潜力。

05 Arduino语言基本语法(上)

在Arduino编程中,理解基本的语法结构是编写有效代码的基础。 Arduino语言本质上是基于C/C++的简化版,在设计之初,它的目标就很明确:让非程序员也能快速上手控制硬件。

06 Arduino语言基本语法(下)

在本章节中,我们主要学习Arduino的基本语法: 我们通过变量和常量来存储和操作数据,变量的值可以根据程序运行过程变化,而常量则始终保持不变。通过运算符对这些数据进行数学或逻辑处理,将它们组合成表达式,我们可以实现各种计算和逻辑判断。通过函数的使用,我们能将代码模块化,避免重复,提高可维护性。而控制语句(如条件判断与循环)则决定了程序的执行流程,使得我们的代码能够灵活响应不同的场景和输入。在整个开发过程中,注释帮助我们记录思路,提升代码可读性与团队协作效率。 掌握这些语法基础,不仅是与硬件对话的第一步,更是实现创意项目的坚实起点。

07 GPIO的数字输入输出

在这一章,我将带你从代码走向现实—— 不管是点亮一个 LED,还是读取一个按键,要做的第一件事就是学会使用 GPIO。 GPIO 是单片机最基本、最常用的功能之一,也是我们控制硬件的起点。 接下来我们将从 GPIO 的“输出”和“输入”两个方向开始,动手让硬件真正“动”起来。

08 初识串口:ESP32如何与计算机进行交流

在前面的实验中,你或许已经发现了一个有趣的现象:每次运行程序时,我们总会在代码里写上 Serial.begin(115200);,也经常用到 Serial.print() 来输出一些信息。随后,在串口监视器,计算机屏幕上就会出现一行行来自 ESP32 的“提示”。 这就像是 ESP32 在和我们“说话”。那么问题来了:这个Serial究竟是什么?ESP32 又是如何通过它和计算机进行交流的?

09 再探GPIO输入:设置上下拉电阻

按键有时会失灵,明明松开按键了,但是串口监视器中输出结构不变,这是怎么回事呢 ? 这节课,我们就来搞清楚这个问题,并介绍一个关键概念:上下拉电阻。最后,我们会通过一个实际实验——“按键控制 LED 灯”,应用上下拉电阻来帮助大家巩固所学。

10 深入按键:按键抖动问题详解

我们平时按一个按钮,感觉就是“啪”一下,按下去,然后松开,整个过程干脆利落。但实际上,你以为“只按了一下”,在单片机眼中,却可能被识别成按了好几次。为什么会出现这种情况? 这就是我们今天要深入理解的一个常见却容易忽略的问题:按键抖动(Button Bounce)。它不仅关系到我们的程序是否稳定运行,还影响用户体验。 在接下来的内容中,我们将详细了解按键抖动是什么、它是如何产生的,又该如何解决它——也就是按键消抖。

11 GPIO的模拟输入输出

在之前的学习中,我们用 GPIO 控制 LED 的亮灭、读取按钮状态,这些操作都很简单:要么开、要么关,只有两个状态。这就叫做数字输入输出(Digital I/O)。 但在现实中,控制并不总是“开”或“关”这么简单,很多事物本就是连续变化的,比如: - 温度不会一下子从20°C跳到30°C,而是慢慢上升; - 光线也不是非黑即白,而是从暗到亮逐渐变化; - 音量不是只有大声或静音,而是可调的。 这些“中间状态”就需要我们用 GPIO 来处理模拟信号。这就是我们这章要学的内容。别担心,“模拟”这两个字听上去虽然复杂,但本质上就是——不是只有 0 和 1,而是可以在 0 到 1 之间有“中间值”,从而实现更平滑、更细腻的控制。

12 analogRead()的背后:ADC

我们之前说过:ESP32 是一个数字设备,它的 CPU、存储器、总线、逻辑运算单元,本质上都是 数字电路,只能处理二进制的 0 和 1,也就是说,它只能判断信号是“高电平”还是“低电平”。 但在上节课中,我们又是如何实现模拟输入输出的呢?这不和我们之前学到的数字逻辑矛盾了吗? 别急,这其实是一个非常有代表性的问题。 本节内容,我们就来揭开这个谜底。

13 PWM脉冲宽度调制与analogWrite()

讲完了模拟输入,那么模拟输出analogWrite()的背后又是什么呢? ESP32 的 analogWrite() 并不是真正意义上的模拟信号输出,而是通过快速切换数字信号的高低电平,来模拟出类似模拟信号的控制效果。 这种方法就叫 PWM(Pulse Width Modulation,脉冲宽度调制)。

14 给你一个舵机

在前面的章节中,我们探讨了如何通过PWM脉冲宽度调制来精确控制信号的强度,为各种电子设备的驱动打下了基础。现在,随着对信号控制的理解加深,我们将迎来一个全新的挑战:如何将这些信号转化为实际的机械运动? 舵机(Servo Motor)是一种通过电信号控制位置的电动机,在现代电子与机器人技术中扮演着至关重要的角色。无论是在遥控玩具、机器人手臂,还是自动化设备中,舵机都被广泛应用于精准位置控制。而它的秘密,就藏在我们前面学习的PWM调制中。 这一章节将带你深入了解舵机的工作原理,并引导你如何使用ESP32通过PWM信号来精确控制舵机的角度。通过这个实验,你不仅能够看到代码和电路如何协同工作,还能亲手实现让机械部件响应你的指令,完成实际任务。无论你是制作机器人,还是设计自动化系统,掌握舵机的控制将是你迈向更高级别电子项目的关键一步。 让我们从这一小步开始,将数字信号转化为物理运动,揭开智能设备控制的神奇面纱吧!

15 实验案例:电位器控制灯带

在嵌入式系统的世界里,我们常常面临将模拟信号转换为数字控制的挑战。这一过程不仅仅是技术上的掌握,更是实现与物理世界互动的一种方式。在这个实验中,我们将通过电位器来控制一个10段LED灯带,实现一个非常直观的进度条效果。 电位器作为一种模拟输入设备,可以提供一个连续变化的电压信号,而我们将这个信号转换为数字信号,通过ESP32控制多个LED的开关状态,展示出不同的亮度层次。这个项目不仅能帮助你理解模拟信号如何影响数字输出,还能让你体验到控制一个灯带的过程是多么简单而富有乐趣。 通过这个实验,你将深入了解如何读取电位器的电压值、如何进行数值映射,并将其转化为实际的LED控制。它不仅展示了简单的模拟信号读取,更为你提供了一个灵活的方式,帮助你更好地掌握数字与模拟信号之间的转换与控制,成为你学习嵌入式系统的一块坚实基石。

16 实验案例:摇杆控制LED点阵

在嵌入式系统中,运动控制和图形显示是两个常见但又充满挑战的应用领域。当这两者结合在一起时,便产生了许多有趣和富有创意的项目。在本实验中,我们将使用摇杆来控制一个LED点阵的显示内容,探索如何将物理运动转换为数字控制,从而在显示屏上呈现出直观的效果。 摇杆作为一种模拟输入设备,可以感知多个方向的变化,通过其水平和垂直的移动,产生与之对应的模拟信号。在本实验中,我们将利用摇杆控制一个8x8的LED点阵,借助ESP32对模拟信号的读取,将摇杆的位移转化为点阵中LED的点亮或熄灭,最终展示出与摇杆位置相关的动态图形。 通过这个实验,你不仅能够掌握如何读取摇杆的X轴和Y轴信号,还将学会如何通过简单的数学计算和映射,将这些模拟信号转换为直观的视觉输出。这不仅增强了你对模拟输入设备控制的理解,还让你对如何在嵌入式系统中实现图形显示和动态交互有了更深的认知。

17 实验案例:体验手动输入调节的乐趣

在嵌入式系统中,手动控制不仅可以增添互动性,更能帮助我们理解模拟信号如何与硬件设备进行交互。本章通过两个有趣的实验,带你体验手动调节的乐趣,探索电位器在不同应用场景中的控制能力。 第一个实验是“电位器调色实验”,它让你通过三个电位器调整RGB三色LED的亮度,亲手调配颜色。从红、绿、蓝三色的叠加中,你将体验到如何通过电位器的旋转改变LED的亮度,创造出丰富的颜色变化。这个实验不仅让你掌握了PWM调光的基本原理,还能通过实时反馈感受到颜色混合的乐趣。 紧接着,我们将进入第二个实验——“电位器控制舵机实验”。通过旋转电位器,你将直接控制舵机的角度变化。这不仅展示了如何将模拟输入转化为实际的机械运动,还让你了解了如何通过ADC读取电位器的电压信号,再通过数值映射控制舵机转动的过程。 这两个实验结合了模拟输入、ADC采样、数值映射和PWM输出等技术,展示了电位器在实际应用中的多种可能性。通过这些实验,你将深入理解如何利用简单的硬件控制实现复杂的交互,并为后续更高级的项目打下坚实的基础。准备好一起动手体验这些有趣的调节过程了吗?让我们开始吧!

18 外部中断

在嵌入式编程中,我们常常面临需要在特定时刻快速响应外部事件的需求。比如,当按钮被按下时,我们希望立即执行某个操作,比如点亮LED。传统的做法是通过轮询不断检查按键状态,但这样不仅效率低,还可能错过其他需要及时处理的任务。 另一种常见的方式是使用 delay() 来进行定时任务,例如每隔一段时间采集传感器数据。尽管这看似能实现周期性任务,但 delay() 会让CPU在等待过程中完全停顿,无法同时处理其他任务。 为了解决这些问题,外部中断和定时器提供了更高效的解决方案。外部中断允许我们在外部事件发生时立即暂停当前任务,去处理响应的事件,而定时器则能在预定时间触发操作,确保CPU不会被卡住,从而可以并行处理其他任务。通过这两种机制,嵌入式系统能够更灵活高效地应对复杂的实时任务。

19 ESP32外部中断应用:KY-040旋转编码器编码器信号读取

大家有见过收音机上的旋钮、音响上的音量调节器、甚至一些工业机器上的控制旋钮吗?它们看起来只是一个可以旋转的普通旋钮,但实际上,它可以通过旋转编码器将旋转的物理动作转换成电信号,这样,ESP32 就能知道:旋钮转了多少步,以及方向是顺时针还是逆时针。 在本节中,我们将使用 KY-040 旋转编码器模块 来做实验,学习它的工作原理,并通过 ESP32 的外部中断功能来读取旋转信号。

20 定时器与定时器中断:周期性任务的执行

在嵌入式编程中,我们经常会遇到这个问题:如何让程序在固定的时间间隔执行某些任务?比如每隔 1 秒采集一次传感器数据。 很多初学者会在 loop() 里写一个 delay(1000),来实现周期性的做每件事情。表面上功能能跑,但这种方式其实是 阻塞式 的——delay(), CPU 在等待时完全停下,导致其他任务被“卡住”,直到时间结束。 那为了解决这个问题,我们可以用:定时器(Timer)—— 在设定的时间间隔到达时自动触发,让 CPU 在等待期间可以处理其他任务,而不是停在 delay() 上。 这样,既不会浪费资源,也不会轻易漏掉重要的事件。

21 超声波测距模块的使用

在嵌入式开发中,如何让设备感知周围环境的距离是一项非常基础但又极为重要的能力。无论是在机器人避障、无人驾驶、液位检测,还是智能家居领域,超声波测距都扮演着至关重要的角色。超声波模块通过发送声波并接收反射波,利用声波传播的时间差来计算与物体之间的距离。 本章将带你了解如何使用超声波测距模块(HC-SR04)进行距离测量。我们将深入探讨模块的工作原理、硬件连接、以及如何通过ESP32进行简单的编程控制,读取和计算测得的距离。通过本章的学习,你将掌握如何在实际项目中利用超声波技术实现精确的物体检测与距离测量。

22 超声波测距实验模块化编程:函数封装

在嵌入式开发中,随着项目规模的扩大和复杂度的提升,我们会遇到一个常见的问题:代码重复、修改困难和维护复杂。这些问题在我们处理多个传感器模块时尤其明显,比如使用多个超声波模块进行多方向的测距。每次遇到这些问题时,如何让代码更简洁、更可维护,成了我们必须考虑的重点。 本章将通过超声波测距模块的应用,向你展示如何通过模块化编程解决这些问题。我们从最基本的函数封装入手,将重复的操作封装成可复用的函数,避免了代码的冗余,同时提高了代码的可读性和可维护性。通过封装,我们不仅能让代码更加清晰易懂,还能在项目中轻松扩展更多功能,比如加入多个超声波模块的支持,而无需担心代码的复杂性增加。 在本章中,你将学习如何使用函数封装来优化超声波模块的控制,减少重复代码,并保持代码结构的简洁和高效。

24 模块化编程:类库文件篇

在上一章,我们学习了如何通过库函数封装将重复的功能模块化,使得代码更加简洁、易于维护。在实际开发中,库函数的封装帮助我们将常见的功能从主程序中抽离出来,实现了代码的复用,避免了重复编写相同的操作。然而,随着项目的复杂性逐渐增加,库函数封装虽然有效,但在处理更加复杂和扩展性要求高的项目时,仍然存在一定的局限。 为了应对这些挑战,我们需要更高效、更灵活的代码组织方式,这就是面向对象编程(OOP)的关键所在。面向对象编程通过“类”和“对象”的封装,把功能和数据结合在一起,为我们提供了更加清晰和模块化的代码结构。 在这一章,我们将从库函数封装过渡到类库的创建与使用,通过类的概念来管理数据和行为。与函数库不同,类库不仅仅是将功能进行封装,更加注重对象的独立性和功能的扩展性。每个类通过自己的成员变量和成员函数来管理和操作数据,从而让代码更加灵活、易于维护,并能够高效地支持复杂的应用场景。 我们将: 学习如何通过面向对象的思维,将功能封装成类库; 掌握如何使用类和对象管理数据和行为,使得代码更加模块化; 了解如何通过类库的方式,提高代码的复用性、可维护性,并为更复杂项目的扩展奠定基础。 本章的学习将帮助你更深入地理解代码模块化的高级技术,并为后续编写更加复杂、可扩展的项目做好准备。

23 模块化编程:库文件封装

在前面章节里,我们已经学会了使用 函数封装 来减少重复代码。但是目前所有的函数都写在同一个 .ino 文件里: - 当函数越来越多时,主程序会变得 冗长难读; - 如果项目里有多个传感器模块,代码容易 混乱难以维护; - 如果在其他项目中也要用这些函数,就必须 复制粘贴 或 重新编写,既麻烦又容易出错。 为了解决这些问题,我们需要把功能模块做成 独立的库文件。这样做的好处是: - 结构清晰:主程序只保留逻辑控制,具体功能由库文件管理; - 方便复用:库文件写好后,任何项目只需 #include 一下即可直接调用; - 易于维护:修改库文件,所有使用它的项目都能同步更新; - 模块化编程:每个传感器/功能模块都有独立的文件,互不干扰。 本章将深入探讨如何将超声波测距模块的功能封装成一个独立的库文件。通过这个过程,我们不仅学习如何写库文件,还将掌握如何在项目中灵活使用它们,使我们的代码更加模块化、易于维护,并为更复杂的工程项目提供可扩展的解决方案。

25 ESP32如何与外界进行通信:通信基础篇

在现代电子设备中,各个组件之间的协同工作至关重要。ESP32控制LED灯、显示屏,监测按键和传感器的状态,本质上都是在与外部设备交换数据。 回想一下之前的按键控制LED灯实验,就是通过GPIO与外部器件进行简单的通信。 但如果我们想要与显示屏或者一些传感器来进行数据交换的话,这个工作量就会大大增加。GPIO的传输效率有限,无法满足高频率、大数据量的交换需求,特别是当涉及多个设备时,GPIO不仅需要占用更多引脚,还可能导致通信速度慢,甚至出现数据丢失。 这时,我们需要引入更强大的通信方式,ESP32上也提供了几种通信外设,比如UART、I2C 和 SPI这些,借助他们,我们可以轻松实现与外界的通信。

26 串口UART通信协议基础篇

在前面的学习中,我们已经会使用 Serial.print() 和 Serial.read() 来让 ESP32 和计算机之间收发数据。看起来很简单,但这只是应用层的操作。至于数据到底是如何在底层传输的?数据格式是什么样的?ESP32 和电脑是如何保证“发出去的东西能被正确理解”的?这些问题其实涉及到了 串口通信协议。 Arduino 框架帮我们封装好了大多数细节,所以平时我们不用操心。但一旦涉及到和外设通信、提高数据可靠性或者自定义数据格式,就必须深入理解串口协议。

27 串口通信实战篇

在之前的讲解中,我们了解了串口通信协议的原理,现在我们进入代码实操部分,看看我们如何通过代码实现串口的通信。 在实际操作过程中,我们有两种方式可以实现串口通信:硬件串口通信和软件模拟串口通信。 串口通信本质上是通过电平的变化来传输数据的。对于硬件串口来说,内部有专门的硬件模块。开发者只需要简单地告诉硬件串口“发送这个数据”或“接收数据”,硬件模块会自动生成相应的电平信号。像我们之前使用过的Serial.begin()和Serial.print()等语句,使用的都是硬件串口通信的相关函数。 而对于软件模拟串口,则完全依赖于GPIO口来模拟串口通信的每一个信号电平变化,包括波特率、数据位、起始位、停止位等信号的高低变化等等。

28 IIC通信协议基础篇

I2C(Inter-Integrated Circuit,集成电路间通信)是一种常见的串行通信协议,广泛用于微控制器与外设之间的数据传输。类似于 UART,I2C 也可以从 物理层、协议层和应用层 进行分析。 在本节中,我们主要关注 物理层 和 协议层,它们决定了 I2C 设备如何连接、数据如何传输,以及如何保证通信的可靠性。至于 应用层,它涉及具体设备如何通过 I2C 交换数据,例如 EEPROM 读写、传感器数据采集等。这部分内容将在后续章节结合实际案例进行讲解。

29 IIC通信实战篇:手动实现软件IIC

我们已经了解了IIC通信协议的基本时序,现在我们可以实际操作一下,学习如何编写代码去实现相应的功能。IIC通信同样也像串口通信一样,可以分为软件IIC和硬件IIC。本节内容我们先使用软件模拟IIC通信,手动控制 GPIO 引脚的模拟通信时的电平状态变化,直观地理解 IIC 每个信号的生成过程。

30 IIC通信实战篇:硬件IIC Wire类库的使用

在上节内容中,我们学习了如何使用软件模拟的方式来实现 IIC 通信。简单来说,软件 IIC 就像是用代码一步步手动操作SDA 和 SCL 线,控制它们的高低电平来模拟 IIC 传输。这种方法虽然灵活,可以适应不同的引脚配置,但由于需要靠 CPU 运行代码来完成时序控制,因此通信速度较慢,而且容易受到中断或任务调度的干扰,导致数据传输不稳定。 不过,ESP32 本身内置了硬件 IIC 控制器,硬件 IIC 由专用硬件单元处理数据传输,具有更高的效率和稳定性,还能解放 CPU 处理其他任务。 为了让开发者更方便地使用 ESP32 的硬件 IIC,Arduino 官方提供了 Wire 类库,它封装了 IIC 设备初始化、数据读写等常见操作。这样,我们无需关心底层时序,只需要调用库函数,就可以轻松完成 IIC 通信。 接下来,我们将学习 Wire 类库 的用法,并通过示例代码演示如何在 ESP32 上使用硬件 IIC 与外设进行通信。

31 IIC实战:OLED屏幕的使用

在上节内容中,我们学习了如何使用软件模拟的方式来实现 IIC 通信。简单来说,软件 IIC 就像是用代码一步步手动操作SDA 和 SCL 线,控制它们的高低电平来模拟 IIC 传输。这种方法虽然灵活,可以适应不同的引脚配置,但由于需要靠 CPU 运行代码来完成时序控制,因此通信速度较慢,而且容易受到中断或任务调度的干扰,导致数据传输不稳定。 不过,ESP32 本身内置了硬件 IIC 控制器,硬件 IIC 由专用硬件单元处理数据传输,具有更高的效率和稳定性,还能解放 CPU 处理其他任务。 为了让开发者更方便地使用 ESP32 的硬件 IIC,Arduino 官方提供了 Wire 类库,它封装了 IIC 设备初始化、数据读写等常见操作。这样,我们无需关心底层时序,只需要调用库函数,就可以轻松完成 IIC 通信。 接下来,我们将学习 Wire 类库 的用法,并通过示例代码演示如何在 ESP32 上使用硬件 IIC 与外设进行通信。

32 IIC实战:OLED 屏幕字符显示全解析

到目前为止,我们已经掌握了如何向 OLED 发送命令和数据,并成功点亮了部分像素。然而,让 OLED 显示出字符或图案,并不仅仅是简单地点亮某些像素那么直观。 回顾上一节的 drawPixels() 代码,我们通过发送特定的命令设置页地址、列地址,并填充数据,从而让 OLED 屏幕点亮了一部分区域。那么,这背后的逻辑是什么?为什么 OLED 需要以页和列的方式寻址?字符又是如何在这个点阵结构中被显示出来的? 毫无疑问,要想真正让 OLED 屏幕显示出字符或图案,我们需要深入了解 OLED 显示的基础原理,从像素排列到字符映射,一步步拆解 OLED 显示字符的完整过程,最终实现自定义文本输出!

33 IIC实战:OLED屏幕的实际应用

我们在上一节内容中详细讲解了如何通过 I2C 协议控制 OLED 模块,包括如何通过手动实现软硬件 I2C 的操作,去发送指令实现字符显示;还深入理解了 OLED 的通信机制和显示原理。然而,这种底层操作虽然能帮助我们掌握细节,帮助开发。但在实际开发中效率较低,代码复杂且难以维护。 本节课,我们将从底层控制进一步延伸到使用现成的 OLED 驱动库函数。通过这些库函数,摆脱繁琐的底层通信,将精力集中在高层次的功能实现上。