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

下载安装Thonny并烧录MicroPython固件至ESP32

Thonny介绍

一、Thonny的基本特点

  1. 面向初学者:Thonny的设计初衷是为了帮助Python初学者更轻松、更快速地入门编程。它提供了直观易懂的用户界面和丰富的功能,降低了编程的门槛。
  2. 轻量级:作为一款轻量级的IDE,Thonny不会占用过多的系统资源,使得初学者在有限的硬件条件下也能流畅地进行编程学习。
  3. 基于Python:Thonny是基于Python内置图形库tkinter开发的可视化工具,因此它完全面向Python初学者,与Python语言本身紧密相连。

二、Thonny的功能特点

  1. 代码编辑:Thonny提供了基本的代码编辑功能,如语法高亮、自动补全等,这些功能有助于提高编程效率和减少错误。
  2. 代码运行与调试:Thonny内置了Python解释器,可以直接运行Python代码,并提供了强大的调试功能,如断点设置、单步执行等,有助于初学者发现和解决程序中的错误。
  3. 变量查看:Thonny允许用户实时查看程序中变量的值,这有助于初学者理解程序的运行状态和变量之间的关系。

三、Thonny在嵌入式物联网领域的应用

  1. 硬件编程支持:虽然Thonny主要面向Python初学者,但它也支持通过串口、USB等方式连接外部设备(如ESP32、Arduino等),实现硬件编程。这使得Thonny在嵌入式物联网领域具有一定的应用价值。
  2. 与MicroPython结合:对于使用MicroPython进行ESP32等微控制器编程的开发者来说,Thonny是一个很好的选择。开发者可以使用Thonny将MicroPython固件烧录至ESP32,并通过Thonny编写和运行Python代码来控制ESP32。
  3. 易于学习和使用:对于初学者来说,Thonny的直观界面和丰富功能使得他们更容易上手Python编程和嵌入式物联网开发。这有助于降低学习门槛,提高学习效率。

下载

官方网址:Thonny, Python IDE for beginners

安装

下载完成后打开Thonny.exe软件

根据你的需求来,我这里就选择为所有用户安装

下一步

下一步

选择你要安装的目录,下一步

下一步

创建快捷图标

instal安装

等待安装完成

点击finish

第一次安装可能会弹出这个框框,选择简体中文,下面不动,选择Standard

安装完成后打开桌面的快捷方式
 

到这里就安装完成了

MicroPython介绍

MicroPython是一种精简的Python 3解释器,专为嵌入式系统而设计。

  1. 定义与特点
    • MicroPython是Python 3语言的精简实现,包括Python标准库的一小部分,并经过优化以在微控制器和受限环境中运行。
    • 它使用C语言编写,是运行在微控制器硬件之上的完全的Python编译器和运行时系统。
    • MicroPython与标准的Python(CPython)尽可能兼容,因此了解Python的用户可以轻松地过渡到MicroPython。
  2. 主要特性
    • 轻量级:解释器体积较小,通常仅100KB左右,通过编译成二进制Executable文件运行,执行效率较高。
    • 直接硬件访问:提供对低级硬件的访问和控制,如GPIO、I2C、SPI等。
    • 模块系统:拥有强大的模块系统,支持文件系统、网络、图形界面等功能。
    • 兼容性:语法和功能与标准Python兼容,支持Python大多数核心语法。
    • 交叉编译:支持交叉编译生成高效的原生代码,速度比解释器快10-100倍。
    • 内存占用小:代码量少,内存占用小,适合运行在MCU和内存小的开发板上。
    • 开源与免费:采用开源许可,免费使用。
  3. 应用场景
    • 嵌入式产品原型构建:为嵌入式产品快速构建原型和用户交互。
    • 硬件项目:制作小型可编程硬件项目。
    • 教育工具:作为教育工具,帮助初学者学习Python和物联网编程。
    • 智能设备固件:构建智能设备固件,实现高级控制和云连接。
    • 微控制器应用:各种微控制器应用,如物联网、嵌入式智能、机器人等。
  4. 注意事项
    • 内存和Flash空间有限:在使用MicroPython时,需要注意内存和Flash空间的限制。
  5. 开发环境
    • 用户可以通过交互式提示符(REPL)立即执行所支持的命令。
    • MicroPython提供了许多丰富的库,可以方便地在微控制器上进行各种操作。
    • 开发者可以在计算机或开发板上安装和配置MicroPython环境,并通过实践来巩固所学知识。
  6. 社区支持
    • MicroPython拥有活跃的社区,提供了丰富的教程、示例代码和讨论论坛,方便用户学习和交流。

下载ESP32的MicroPython固件

这里如果安装的是最新版的Thonny是可以不用自己手动下载固件的,在Thonny里面可以自动下载并安装但是是普通版的固件

官方网址:MicroPython - Python for microcontrollers

点击进去

点击蓝色框的ESP32

点进去后发现有很多类型和版本,我用AI大概解释了一下每个类型的用途

  1. Firmware
    • 这是标准的MicroPython ESP32固件。它包含MicroPython解释器以及用于ESP32的基本库和模块。
    • 推荐:对于学习使用,这是一个很好的起点。它提供了MicroPython的基本功能和ESP32硬件的基本支持。
  2. Firmware (ESP32 Unicore)
    • 这个固件是为ESP32的单核处理器版本设计的。ESP32是一个双核处理器,但在某些应用中可能只需要使用一个核心。
    • 推荐:如果您有特殊的硬件需求或想要学习如何在单核模式下使用ESP32,可以选择这个版本。但通常对于学习使用来说,标准版固件更为合适。
  3. Firmware (Support for OTA)
    • 这个固件支持通过OTA(Over-the-Air)更新。它允许您通过无线方式更新ESP32上的MicroPython固件。
    • 推荐:如果您计划在生产环境中使用ESP32,并且需要远程更新功能,那么这个版本是适合的。但对于学习使用来说,可能不是必需的。
  4. Firmware (ESP32 D2WD)
    • 这个固件可能与ESP32的深度睡眠唤醒(Deep Sleep Wake-up)功能相关,但具体的描述在您的列表中并不明确。
    • 推荐:如果您对ESP32的低功耗模式或深度睡眠功能感兴趣,并且需要学习如何使用它们,那么这个版本可能是一个好选择。但通常对于基础学习来说,它不是必需的。
  5. Firmware (Support for SPIRAM / WROVER)
    • 这个固件支持具有外部SPI RAM(如WROVER模块)的ESP32开发板。外部RAM可以扩展ESP32的内存,使得可以运行更大的程序或处理更多数据。
    • 推荐:如果您有一个带有外部SPI RAM的ESP32开发板,并且想要利用这个额外的内存,那么选择这个版本是合适的。但如果您只是进行基础学习,那么标准版固件应该就足够了。
  6. 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):动态规划——爬楼梯

题干&#xff1a; 代码&#xff1a; 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的下载与安装 下载地址&#xff1a; https://nodejs.org/en/download/prebuilt-installer 安装完之后&#xff0c;启动 cmd命令行&#xff0c;验证 Node.js 是否安装成功 二、配置npm的全局模块的存放路径以及缓存的路径 注&…...

【简单介绍下DALL-E2,什么是DALL-E2?】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…...

springboot+mqtt使用总结

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

搭建自己的组件库<2>dialog 组件

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

less学习笔记

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

基于关键词自动采集抖音视频排名及互动数据(点赞、评论、收藏)

在当今的社交媒体时代&#xff0c;抖音作为一个热门短视频平台&#xff0c;吸引了大量用户和内容创作者。对于研究和分析抖音上的热门视频及其互动数据&#xff08;如点赞、评论、收藏等&#xff09;&#xff0c;自动化的数据采集工具显得尤为重要。本项目旨在开发一个基于关键…...

selenium中switch_to.window切换窗口的用法

打开百度多个窗口&#xff0c;遍历切换每个窗口&#xff0c;切到【百度地图】就停止。 使用了driver.switch_to.window&#xff08;&#xff09; 来切换&#xff0c; 参数是handle值 from selenium import webdriver import time# 创建浏览器驱动对象 from selenium.webdrive…...

【nerf】nvidia-smi

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

测试工具fio

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

详解 Flink 的状态管理

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

手机怎么压缩视频?归纳了三种快速压缩方案

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

【实战】kafka3.X kraft模式集群搭建

文章目录 前言kafka2.0与3.x对比准备工作JDK安装kafka安装服务器增加hosts 修改Kraft协议配置文件格式化存储目录 启动集群停止集群测试Kafka集群创建topic查看topic列表查看消息详情生产消息消费消息查看消费者组查看消费者组列表 前言 相信很多同学都用过Kafka2.0吧&#xf…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...