下载安装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(),他能为你提供帮助和说明
 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中国各省份简称的命名根据是什么?省份简称顺口溜

我国共有34个省级行政区域,包括23个省,5个自治区,4个直辖市,2个特别行政区。每个省份都有自己对应的简称,而省份简称的由来,可以分为以下三种: 一、取省份全称中的一部分作为简称 比如,北京的简称是“京”,天津的简称是“津”,东北三兄弟的简称是“黑吉辽”,这种简单…

数据库之PostgreSQL详解

一、PostgreSQL介绍 PostgreSQL是一个功能强大的 开源 的关系型数据库。底层基于C实现。 PostgreSQL的开源协议和Linux内核版本的开源协议是一样的。。BDS协议,这个协议基本和MIT开源协议一样,说人话,就是你可以对PostgreSQL进行一些封装&a…

OpenFeign远程接口调用使用公共模块出现的错误

今天在使用openfeign和sentinel实现fallback服务降级时遇到找不到类型的异常 检查代码发现没有错误,EnableFeignClients也在启动类上标注了 错误信息:A component required a bean of type com.zxc.cloud.apis.PayFeignSentinelApi that could not be f…

类和对象(下+)_const成员、初始化列表、友元、匿名对象

类和对象(下) 文章目录 类和对象(下)前言一、const成员二、友元1.友元函数2.友元类 三、初始化列表四、explicit关键字五、匿名对象总结 前言 static成员、内部类、const成员、初始化列表、友元、匿名对象 一、const成员 将cons…

[Cloud Networking] Layer 2

文章目录 1. 什么是Mac Address?2. 如何查找MAC地址?3. 二层数据交换4. [Layer 2 Protocol](https://blog.csdn.net/settingsun1225/article/details/139552315) 1. 什么是Mac Address? MAC 地址是计算机的唯一48位硬件编码,嵌入到网卡中。 MAC地址也…

100道面试必会算法-32-二叉树右视图用栈实现队列

100道面试必会算法-32-二叉树右视图&用栈实现队列 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4]示例 2: 输入: [1,n…

基于vue的音乐播放器的设计与实现(论文+源码)_kaic

摘 要 当下,如果还依然使用纸质文档来记录并且管理相关信息,可能会出现很多问题,比如原始文件的丢失,因为采用纸质文档,很容易受潮或者怕火,不容易备份,需要花费大量的人员和资金来管理用纸质文…

java版spring cloud 深入探究ERP管理系统源码:功能模块详解与操作流程梳理

随着数字化转型的深入,企业对于高效、稳定且具有扩展性的管理系统的需求日益增加。为此,我们开发了一套基于Java技术的鸿鹄ERP管理系统,该系统整合了Spring Cloud Alibaba、Spring Boot、MybatisPlus、Redis等前沿技术,并采用了VU…

Tensorflow入门实战 P03-天气识别

目录 1、完整代码 2、运行结果 2.1 查看20张图片 2.2 程序运行 2.3 运行结果 3、小结 ① 代码运行过程中有报错: ② 修改代码如下: ③ 分析原因: 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者&…

【MySQL】服务器配置和管理

本文使用的MySQL版本是8.0 MySQL服务器介绍 MySQL服务器通常说的是mysqld程序。 mysqld 是 MySQL 数据库服务器的核心程序,负责处理客户端的请求、管理数据库和执行数据库操作。管理员可以通过配置文件和各种工具来管理和监控 mysqld 服务器的运行 官方文档&…

OrangePi AIpro小试牛刀-目标检测(YoloV5s)

非常高兴参加本次香橙派AI Pro,香橙派联合华为昇腾打造的一款AI推理开发板评测活动,以前使用树莓派Raspberry Pi4B 8G版本,这次有幸使用国产嵌入式开发板。 一窥芳容 这款开发板搭载的芯片是和华为昇腾的Atlas 200I DK A2同款的处理器&#…

Vue3【十四】watchEffect自动监视多个数据实现,不用明确指出监视哪个数据

Vue3【十四】watchEffect自动监视多个数据实现&#xff0c;不用明确指出监视哪个数据 Vue3【十四】watchEffect自动监视多个数据实现&#xff0c;不用明确指出监视哪个数据 进入立即执行一次&#xff0c;并监视数据变化 案例截图 目录结构 代码 Person.vue <template>&…

element-plus的el-text组件(文本组件)的介绍和使用

el-text&#xff08;适合文本操作的组件&#xff09; 设置文本type,如default,primary,success,info,warning,danger超出容器尺寸自动省略&#xff0c;tuncated属性设置size属性控制文本大小&#xff0c;有large,default,small设置tag属性&#xff0c;值为html5标签名&#xf…

统信UOS1070上配置文件管理器默认属性02

原文链接&#xff1a;统信UOS 1070上配置文件管理器默认属性01 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇在统信UOS 1070上配置文件管理器默认属性的第二篇文章——配置工作区视图。文件管理器中的工作区视图配置可以帮助我们更好地组织和管理文件&#xff0c;…

你还在纠结U盘怎么选吗?小白带你来看

前言 2024年的618活动已经开始了&#xff0c;这个活动买电子产品着实是比其他时间要便宜很多。 前几天小白的一个好朋友问我&#xff1a;U盘该怎么选&#xff1f; 呃&#xff0c;本来是想写“老朋友”的&#xff0c;结果她愣是要我改成“好朋友”。 行吧&#xff0c;那就好朋…

unity3d:GameFramework+xLua+Protobuf+lua-protobuf,与服务器交互收发协议

概述 1.cs收发协议&#xff0c;通过protobuf序列化 2.lua收发协议&#xff0c;通过lua-protobuf序列化 一条协议字节流组成 C#协议基类 CSPacketBase&#xff0c;SCPacketBaseC#用协议基类 proto生成的CS类&#xff0c;基于这两个基类。分别为CSPacketBase是客户端发送至服…

Linux内核epoll

Linux网络IO模型 同步和异步&#xff0c;阻塞和非阻塞 Linux下的五种IO模型 同步和异步&#xff0c;阻塞和非阻塞 Linux 下的五种I/O模型&#xff1a; 阻塞IO&#xff08;Blocking IO&#xff09; BIO 非阻塞IO&#xff08;No Blocking IO&#xff09; IO复用&#xff08;se…

二叉树—leetcode

前言 本篇博客我们来仔细说一下二叉树二叉树的一些OJ题目 请看完上一篇&#xff1a;数据结构-二叉树-CSDN博客 &#x1f493; 个人主页&#xff1a;普通young man-CSDN博客 ⏩ 文章专栏&#xff1a;LeetCode_普通young man的博客-CSDN博客 若有问题 评论区见&#x1f4dd; &…

EarMaster Pro软件下载附加详细安装教程

简介 来自丹麦皇家音乐学院的多媒体音乐教育软件 EarMaster Pro以问答的交互形式&#xff0c;寓教于乐的视听方法&#xff0c;给专业和非专业音乐人士以极大的音乐学习帮助。 无论你是刚学音乐的儿童&#xff0c;还是一个音乐高手&#xff0c;都可以使用这个软件来增强你的听音…

kafka如何保证消息不丢失

Kafka发送消息是异步发送的&#xff0c;所以我们不知道消息是否发送成功&#xff0c;所以会可能造成消息丢失。而且Kafka架构是由生产者-服务器端-消费者三种组成部分构成的。要保证消息不丢失&#xff0c;那么主要有三种解决方法。 生产者(producer)端处理 生产者默认发送消息…