下载安装Thonny并烧录MicroPython固件至ESP32
Thonny介绍
一、Thonny的基本特点
- 面向初学者:Thonny的设计初衷是为了帮助Python初学者更轻松、更快速地入门编程。它提供了直观易懂的用户界面和丰富的功能,降低了编程的门槛。
- 轻量级:作为一款轻量级的IDE,Thonny不会占用过多的系统资源,使得初学者在有限的硬件条件下也能流畅地进行编程学习。
- 基于Python:Thonny是基于Python内置图形库tkinter开发的可视化工具,因此它完全面向Python初学者,与Python语言本身紧密相连。
二、Thonny的功能特点
- 代码编辑:Thonny提供了基本的代码编辑功能,如语法高亮、自动补全等,这些功能有助于提高编程效率和减少错误。
- 代码运行与调试:Thonny内置了Python解释器,可以直接运行Python代码,并提供了强大的调试功能,如断点设置、单步执行等,有助于初学者发现和解决程序中的错误。
- 变量查看:Thonny允许用户实时查看程序中变量的值,这有助于初学者理解程序的运行状态和变量之间的关系。
三、Thonny在嵌入式物联网领域的应用
- 硬件编程支持:虽然Thonny主要面向Python初学者,但它也支持通过串口、USB等方式连接外部设备(如ESP32、Arduino等),实现硬件编程。这使得Thonny在嵌入式物联网领域具有一定的应用价值。
- 与MicroPython结合:对于使用MicroPython进行ESP32等微控制器编程的开发者来说,Thonny是一个很好的选择。开发者可以使用Thonny将MicroPython固件烧录至ESP32,并通过Thonny编写和运行Python代码来控制ESP32。
- 易于学习和使用:对于初学者来说,Thonny的直观界面和丰富功能使得他们更容易上手Python编程和嵌入式物联网开发。这有助于降低学习门槛,提高学习效率。
下载
官方网址:Thonny, Python IDE for beginners
安装
下载完成后打开Thonny.exe软件
根据你的需求来,我这里就选择为所有用户安装
下一步
下一步
选择你要安装的目录,下一步
下一步
创建快捷图标
instal安装
等待安装完成
点击finish
第一次安装可能会弹出这个框框,选择简体中文,下面不动,选择Standard
安装完成后打开桌面的快捷方式
到这里就安装完成了
MicroPython介绍
MicroPython是一种精简的Python 3解释器,专为嵌入式系统而设计。
- 定义与特点:
- MicroPython是Python 3语言的精简实现,包括Python标准库的一小部分,并经过优化以在微控制器和受限环境中运行。
- 它使用C语言编写,是运行在微控制器硬件之上的完全的Python编译器和运行时系统。
- MicroPython与标准的Python(CPython)尽可能兼容,因此了解Python的用户可以轻松地过渡到MicroPython。
- 主要特性:
- 轻量级:解释器体积较小,通常仅100KB左右,通过编译成二进制Executable文件运行,执行效率较高。
- 直接硬件访问:提供对低级硬件的访问和控制,如GPIO、I2C、SPI等。
- 模块系统:拥有强大的模块系统,支持文件系统、网络、图形界面等功能。
- 兼容性:语法和功能与标准Python兼容,支持Python大多数核心语法。
- 交叉编译:支持交叉编译生成高效的原生代码,速度比解释器快10-100倍。
- 内存占用小:代码量少,内存占用小,适合运行在MCU和内存小的开发板上。
- 开源与免费:采用开源许可,免费使用。
- 应用场景:
- 嵌入式产品原型构建:为嵌入式产品快速构建原型和用户交互。
- 硬件项目:制作小型可编程硬件项目。
- 教育工具:作为教育工具,帮助初学者学习Python和物联网编程。
- 智能设备固件:构建智能设备固件,实现高级控制和云连接。
- 微控制器应用:各种微控制器应用,如物联网、嵌入式智能、机器人等。
- 注意事项:
- 内存和Flash空间有限:在使用MicroPython时,需要注意内存和Flash空间的限制。
- 开发环境:
- 用户可以通过交互式提示符(REPL)立即执行所支持的命令。
- MicroPython提供了许多丰富的库,可以方便地在微控制器上进行各种操作。
- 开发者可以在计算机或开发板上安装和配置MicroPython环境,并通过实践来巩固所学知识。
- 社区支持:
- MicroPython拥有活跃的社区,提供了丰富的教程、示例代码和讨论论坛,方便用户学习和交流。
下载ESP32的MicroPython固件
这里如果安装的是最新版的Thonny是可以不用自己手动下载固件的,在Thonny里面可以自动下载并安装,但是是普通版的固件
官方网址:MicroPython - Python for microcontrollers
点击进去
点击蓝色框的ESP32
点进去后发现有很多类型和版本,我用AI大概解释了一下每个类型的用途
- Firmware:
- 这是标准的MicroPython ESP32固件。它包含MicroPython解释器以及用于ESP32的基本库和模块。
- 推荐:对于学习使用,这是一个很好的起点。它提供了MicroPython的基本功能和ESP32硬件的基本支持。
- Firmware (ESP32 Unicore):
- 这个固件是为ESP32的单核处理器版本设计的。ESP32是一个双核处理器,但在某些应用中可能只需要使用一个核心。
- 推荐:如果您有特殊的硬件需求或想要学习如何在单核模式下使用ESP32,可以选择这个版本。但通常对于学习使用来说,标准版固件更为合适。
- Firmware (Support for OTA):
- 这个固件支持通过OTA(Over-the-Air)更新。它允许您通过无线方式更新ESP32上的MicroPython固件。
- 推荐:如果您计划在生产环境中使用ESP32,并且需要远程更新功能,那么这个版本是适合的。但对于学习使用来说,可能不是必需的。
- Firmware (ESP32 D2WD):
- 这个固件可能与ESP32的深度睡眠唤醒(Deep Sleep Wake-up)功能相关,但具体的描述在您的列表中并不明确。
- 推荐:如果您对ESP32的低功耗模式或深度睡眠功能感兴趣,并且需要学习如何使用它们,那么这个版本可能是一个好选择。但通常对于基础学习来说,它不是必需的。
- Firmware (Support for SPIRAM / WROVER):
- 这个固件支持具有外部SPI RAM(如WROVER模块)的ESP32开发板。外部RAM可以扩展ESP32的内存,使得可以运行更大的程序或处理更多数据。
- 推荐:如果您有一个带有外部SPI RAM的ESP32开发板,并且想要利用这个额外的内存,那么选择这个版本是合适的。但如果您只是进行基础学习,那么标准版固件应该就足够了。
- Firmware (Compiled with IDF 3.x):
- 这个固件是使用ESP-IDF(Espressif IoT Development Framework)的3.x版本编译的。ESP-IDF是Espressif Systems提供的官方开发框架,用于开发基于ESP32的应用程序。
- 推荐:如果您对ESP-IDF或希望了解MicroPython固件与ESP-IDF之间的兼容性,那么可以选择这个版本。但对于大多数学习使用来说,标准版固件应该就足够了。
那这里我们就选择第一个普通的最新版的固件下载:Firmware
烧录固件
点击选项,管理插件
安装(点击)esptool
点击选项
选择你用的芯片,我这里选择ESP32
可以选为自己的固件
或者选择对应的信息,然后点击安装,会自动帮你下载安装
关闭
下载完成后可以按下复位键,如果有下图内容即烧录成功
运行LED闪烁
写一段板载LED闪烁代码:
import machine # 这行代码导入了machine模块,该模块提供了与硬件交互的接口,比如控制GPIO引脚。 import time # 这行代码导入了time模块,用于处理时间相关的操作,比如延时。# 初始化LED引脚(这里假设是GPIO 2,也就是D2)
led = machine.Pin(2, machine.Pin.OUT)
while True: # 打开LED led.on() # 等待一段时间(例如0.5秒) time.sleep(0.5) # 关闭LED led.off() # 再等待一段时间(例如0.5秒) time.sleep(0.5)
点击保存,选择MrcroPython设备
自己命名,我就选择了main.py
点击运行
即可看见板载LED正在运行了
还有一种方法能运行LED闪烁,我们先停止
我们可以在下面输入我们的代码,一步一步运行,也可以实现LED闪烁功能
并且你输入:help(),他能为你提供帮助和说明
相关文章:

下载安装Thonny并烧录MicroPython固件至ESP32
Thonny介绍 一、Thonny的基本特点 面向初学者:Thonny的设计初衷是为了帮助Python初学者更轻松、更快速地入门编程。它提供了直观易懂的用户界面和丰富的功能,降低了编程的门槛。轻量级:作为一款轻量级的IDE,Thonny不会占用过多的…...

YOLOv5改进 | 主干网络 | 将主干网络替换为轻量化的ShuffleNetv2【原理 + 完整代码】
💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 目标检测是计算机视觉中一个重要的下游任务。对于边缘盒子的计算平台来说,一个大型模型很难实现实时检测的要求。基于一系列消融…...
LeetCode:字母异位词分组
文章收录于LeetCode专栏 LeetCode地址 字母异位词分组 题目 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。所有输入均为小写字母,且不考虑答案输出的顺序。 示例1: 输入: strs [“…...

技术与业务的完美融合:大数据BI如何真正提升业务价值
数据分析有一点经典案例 沃尔玛的啤酒和尿布案例 开始做BI的时候,大家肯定都看过书,那么一定也看过一个经典的案例,就是沃尔玛的啤酒和尿布的案例。这个案例确实很经典,但其实是一个失败的案例。为什么这么说呢?很明显…...

计网复习资料
一、选择题(每题2分,共40分) 1. Internet 网络本质上属于( )网络。 A.电路交换 B.报文交换 C.分组交换 D.虚电路 2.在 OSI 参考模型中,自下而上第一个提供端到端服务的是( )。 A.数据链路层 B.传输…...
华为策略流控
以下脚本仅做参考,具体IP地址和接口请按照现场实际情况写入。 [Huawei]acl 3001 [Huawei-acl-adv-3001]rule permit ip source 192.168.1.10 0.0.0.0 destination 192.168.2.10 0.0.0.0 //匹配需要做测试的源和目标地址 [Huawei-acl-adv-3001]rule permit ip sour…...

刷代码随想录有感(98):动态规划——爬楼梯
题干: 代码: class Solution { public:int climbStairs(int n) {if(n 1)return 1;if(n 2)return 2;vector<int>dp(n 1);dp[0] 0;dp[1] 1;dp[2] 2;for(int i 3; i < n; i){dp[i] dp[i - 1] dp[i - 2];}return dp[n];} }; 其实就是斐波…...

零基础入门篇①⑦ Python可变序列类型--集合
Python从入门到精通系列专栏面向零基础以及需要进阶的读者倾心打造,9.9元订阅即可享受付费专栏权益,一个专栏带你吃透Python,专栏分为零基础入门篇、模块篇、网络爬虫篇、Web开发篇、办公自动化篇、数据分析篇…学习不断,持续更新,火热订阅中🔥专栏限时一个月(5.8~6.8)重…...

基于NodeJs 的Vue安装和创建项目
基于NodeJs 的Vue安装和创建项目 一、Node.js的下载与安装 下载地址: https://nodejs.org/en/download/prebuilt-installer 安装完之后,启动 cmd命令行,验证 Node.js 是否安装成功 二、配置npm的全局模块的存放路径以及缓存的路径 注&…...

【简单介绍下DALL-E2,什么是DALL-E2?】
🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…...

springboot+mqtt使用总结
1.软件的选型 1.1.使用免费版EMQX 1.1.1.下载 百度搜索的目前是会打开官网,这里提供下免费版的使用链接EMQX使用手册 文档很详细,这里不再记录了。 1.2.使用rabbitmq rabbitmq一般做消息队列用,作为mqtt用我没有找到详细资料,…...

搭建自己的组件库<2>dialog 组件
目录 设置title 插槽显示 控制宽高 关闭对话框 transition实现动画 引入深度选择器 同样创建组件dialogue.vue后全局注册 dialogue模版: <template><!-- 对话框的遮罩 --><div class"miao-dialog_wrapper"><!-- 真的对话框 …...

less学习笔记
一、什么是less? Less是CSS预处理语言,可以使用变量、嵌套、运算等,便于维护项目CSS样式代码。 二、less安装 使用npm包管理工具,全局安装less包 npm install -g lessless安装好的同时,lessc也安装好了 通过 lessc -…...

基于关键词自动采集抖音视频排名及互动数据(点赞、评论、收藏)
在当今的社交媒体时代,抖音作为一个热门短视频平台,吸引了大量用户和内容创作者。对于研究和分析抖音上的热门视频及其互动数据(如点赞、评论、收藏等),自动化的数据采集工具显得尤为重要。本项目旨在开发一个基于关键…...
selenium中switch_to.window切换窗口的用法
打开百度多个窗口,遍历切换每个窗口,切到【百度地图】就停止。 使用了driver.switch_to.window() 来切换, 参数是handle值 from selenium import webdriver import time# 创建浏览器驱动对象 from selenium.webdrive…...

【nerf】nvidia-smi
当cmd下nvidia -smi不能使用时候 沿着以下路径打开cmd,再输入,可以查看cuda版本 然后查看电脑安装的...

测试工具fio
一、安装部署 fio是一款优秀的磁盘IO测试工具,在Linux中比较常用于测试磁盘IO 其下载地址:https://brick.kernel.dk/snaps/fio-2.1.10.tar.gz 或者登录其官网:http://freshmeat.sourceforge.net/projects/fio/ 进行下载。 tar -zxvf fio-…...

详解 Flink 的状态管理
一、Flink 状态介绍 1. 流处理的无状态和有状态 无状态的流处理:根据每一次当前输入的数据直接转换输出结果的过程,在处理中只需要观察每个输入的独立事件。例如, 将一个字符串类型的数据拆分开作为元组输出或将每个输入的数值加 1 后输出。…...

手机怎么压缩视频?归纳了三种快速压缩方案
手机怎么压缩视频?在数字时代,手机已经成为我们记录生活的重要工具,而视频作为其中的一种主要形式,更是占据了极大的存储空间。然而,随着手机拍摄的视频越来越多,如何高效压缩视频以节省存储空间࿰…...

【实战】kafka3.X kraft模式集群搭建
文章目录 前言kafka2.0与3.x对比准备工作JDK安装kafka安装服务器增加hosts 修改Kraft协议配置文件格式化存储目录 启动集群停止集群测试Kafka集群创建topic查看topic列表查看消息详情生产消息消费消息查看消费者组查看消费者组列表 前言 相信很多同学都用过Kafka2.0吧…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态
前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...
xmind转换为markdown
文章目录 解锁思维导图新姿势:将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件(ZIP处理)2.解析JSON数据结构3:递归转换树形结构4:Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...
Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解
文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一:HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二:Floyd 快慢指针法(…...

密码学基础——SM4算法
博客主页:christine-rr-CSDN博客 专栏主页:密码学 📌 【今日更新】📌 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 编辑…...

动态规划-1035.不相交的线-力扣(LeetCode)
一、题目解析 光看题目要求和例图,感觉这题好麻烦,直线不能相交啊,每个数字只属于一条连线啊等等,但我们结合题目所给的信息和例图的内容,这不就是最长公共子序列吗?,我们把最长公共子序列连线起…...
Docker、Wsl 打包迁移环境
电脑需要开启wsl2 可以使用wsl -v 查看当前的版本 wsl -v WSL 版本: 2.2.4.0 内核版本: 5.15.153.1-2 WSLg 版本: 1.0.61 MSRDC 版本: 1.2.5326 Direct3D 版本: 1.611.1-81528511 DXCore 版本: 10.0.2609…...