在ESP32上使用MicroPython

ESP32是一款非常好用的物联网芯片,MicroPython可以充分利用ESP32的各种资源,本文会对MicroPython在ESP32上的应用进行说明,包括初始使用、提示信息、使用 WebREPL、连接网络与互联网通信、使用硬件外设以及控制外部组件等等。

准备开发板

在进行下面的工作之前,需要先准备好一块ESP32芯片的开发板,ESP32的开发板很多,MicroPython支持ESP32芯片,很多开发板都可以使用,开发板的主要功能是如何将GPIO引脚连接到外部,以及是否包含内置USB串行转换器,以便使用UART连接到PC。

本文使用芯片名称给出引脚名称(如 GPIO2),这样可以比较容易找到特定开发板上对应的引脚。

为开发板供电

如果开发板上有USB接口,通常与电脑连接时很可能是通过USB供电,市面上大部分的开发板都通过USB口供电,也不排除有些板子需要单独的供电,相关的详细信息,可以参阅开发板的相关文档。

获取固件

在ESP32开发板上运行MicroPython前,需要先下载最新的MicroPython固件文件,有些开发板也可能已经下载好固件,可以根据情况自行决定是否重新安装新的固件。固件文件可以从MicroPython网站下载,有3种版本供选择:

  • 稳定固件版本
  • 每日固件升级
  • 支持SPIRAM的每日固件更新

如果刚开始使用MicroPython,最好选择稳定固件版本,如果是有丰富经验的用户,并且希望密切关注开发过程并帮助测试新功能,则可以选择每日固件构建。如果开发板支持SPIRAM,可以使用标准固件或支持SPIRAM的固件,在后一种情况下,有更多的内存用于Python对象。

部署固件

获得MicroPython固件后,需要将其下载到ESP32设备上,这主要有两个步骤:首先,需要将设备置于引导加载器模式,然后,复制固件,具体步骤在很大程度上取决于开发板,详情可参考其文档。

通常大多数开发板都有一个USB连接器、一个USB串口转换器,并且DTR和RTS引脚以特殊方式接线,因此部署固件应该很容易,差不多所有步骤都可以自动完成。具有此类功能的开发板包括Adafruit Feather HUZZAH32、M5Stack、Wemos LOLIN32 、TinyPICO 开发板,以及 Espressif DevKitC、PICO-KIT 和 WROVER-KIT 开发套件。

为了达到最佳效果,建议在安装新的 MicroPython 固件之前,首先擦除整个设备的闪存。

目前,MicroPython只支持esptool.py来跨固件复制,可以在此处找到该工具:https://github.com/espressif/esptool/,或使用pip安装:

pip install esptool

从1.3版本开始支持Python2.7和Python3.4(或以后版本)。旧版本(至少需要1.2.1)可以正常运行,但需要Python 2.7。

使用 esptool.py 命令可以擦除闪存:

esptool.py --port /dev/ttyUSB0 erase_flash

然后使用

esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash -z 0x1000 esp32-20180511-v1.9.4.bin

注意:

  • 需要将"端口"设置更改为实际的端口,每个电脑可能不同
  • 如果闪存时出现错误,可能需要降低波特率(例如,在命令中添加 --baud 115200,将波特率降至 115200)
  • 对于某些具有特定 FlashROM 配置的开发板,可能需要更改闪存模式(例如在命令中添加 -fm dio)
  • 固件的文件名应与您所拥有的文件一致

如果上述命令运行无误,说明MicroPython已安装在开发板上。

串行提示符

一旦在设备上安装了固件,就可以通过UART0(GPIO1=TX,GPIO3=RX)访问 REPL(Python 提示符),根据开发板的不同,UART0 可能连接到 USB 串口转换器。波特率为 115200。关于REPL,可以参考MicroPython的交互式解释器模式 REPL

常见问题

下面是在刷固件或者运行时经常遇到的一些问题和建议:

  • 首先要排除硬件问题。常见的问题有两个:电源质量差,FlashROM 损坏。关于电源,需要的不仅是最大电流,还有低纹波和噪音/EMI,最可靠方便的电源是USB端口。

  • 上面刷固件使用460800波特的速度,这是速度和稳定性的折衷。但是,根据模块/板、USB-UART 转换器、电缆、主机操作系统等的不同,上述波特率可能过高并导致错误。在这种情况下,可尝试使用更常用的 115200 波特率。

  • 要捕获异常的闪存内容(如芯片上有缺陷的扇区),可在上述命令中添加 --verify 开关。

  • 如果在刷固件时仍遇到问题,可参阅 esptool.py 项目页面,https://github.com/espressif/esptool 以获取更多文档,并在错误跟踪器中报告问题。

  • 如果固件可以刷新,但多次重试后 --verify 选项仍返回错误,则可能是 FlashROM 芯片有问题。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP的线程安全与非线程安全模式选哪个

曾经初学PHP的时候也很困惑对线程安全与非线程安全模式这块环境的选择,也未能理解其中意。近来无意中看到一个教程对线程安全(饿汉式),非线程安全(懒汉式)的描述,虽然觉得现在已经能够很明了透彻…

openlayers地图自定义图标打点(二)

1.效果 2.代码 结构,地图初始化同上篇 <template><div class"container">//地图结构<div id"map"></div></div> </template><script> //引入依赖项 import { Map, View } from ol import TileLayer from ol/l…

模板讲解之进阶

在之前的C入门的博客中我们就学习到了模板初阶&#xff0c;今天我们来学习模板的进阶&#xff0c;以便于更好地将模板运用到代码中 非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的…

2024美赛C题思路/代码:网球中的动量

美赛直播b站&#xff0c;提前关注&#xff1a;川川菜鸟 美赛辅导预定&#xff1a;美赛服务 去年美赛C题&#xff1a;2023美赛C题 题目翻译 背景 在2023年温布尔登男子单打决赛中&#xff0c;20岁的西班牙新星阿尔卡拉兹击败了36岁的诺瓦克德约科维奇。这是德约科维奇自201…

关于v8垃圾回收机制联想到的知识点

对于值类型b来说&#xff0c;就直接释放了其占用的内存&#xff0c;对于引用类型obj来说&#xff0c;销毁的只是变量obj对堆内存地址 1001 的引用&#xff0c;obj的值 { c: 3 } 依然存在于堆内存中。那么堆内存中的变量如何进行回收呢&#xff1f; V8的垃圾回收策略主要是基于…

怎么录制屏幕视频?让你的视频脱颖而出

随着科技的飞速发展&#xff0c;录制屏幕视频已经成为人们日常学习和工作中不可或缺的技能。无论是制作教程、分享游戏高光时刻&#xff0c;还是保存线上会议的内容&#xff0c;屏幕录制都可以帮助我们更好地传达信息。可是怎么录制屏幕视频呢&#xff1f;本文将介绍两种录制屏…

手把手教你如何将项目发布到Maven中央仓库(附步骤及常见问题解决方法)

手把手教你如何将项目发布到Maven中央仓库(附步骤及常见问题解决方法) 业余时间写了个轻量级的权限控制框架 light-security &#xff0c;并发布到了 Maven 中央仓库。发布时的操作步骤还挺多&#xff0c;我这个记性是记不住的&#xff0c;所以记录一下&#xff0c;便于以后查…

【C++】 C++入门— 基于范围的 for 循环

C 基于范围的for循环1 使用样例2 使用条件3 完善措施 Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;下一篇文章见&#xff01;&#xff01;&#xff01; 基于范围的for循环 1 使用样例 使用for循环遍历数组&#xff0c;我们通常这么写&#xff1a; …

3D打印、自动升降超静电机驱动方案TMC2209

TMC2209步进电机驱动芯片介绍 TMC2209是一款用于两相步进电机的超静音电机驱动IC。Trinamic的精密StealthChop波器确保了无噪音运行、最大效率和最佳电机转矩。它的快速电流调节和与SpreadCycle的可选组合允许高度动态运动&#xff0c;同时为无传感器归位添加了StallGuard4。集…

python中的可变与不可变、深拷贝和浅拷贝

个人猜想&#xff08;很遗憾失败了&#xff09; 在硬盘或者系统中存在一个字符集 如果存在硬盘中&#xff0c;那么硬盘出厂的时候他的字符集所占用的空间就已经确定了。 如果存在于系统的话&#xff0c;硬盘应该在出厂的时候为系统设置一个存储系统字符集的地方。在安装系统…

L1-019 谁先倒分数 15

划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为&#xff1a;每人口中喊出一个数字&#xff0c;同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和&#xff0c;谁就输了&#xff0c;输家罚一杯酒。两人同赢或两人同输则继续下一轮&…

2024/2/4周报

文章目录 摘要Abstract文献阅读题目引言创新点方法利用长短期记忆网络学习时空演化特征构建用于气象辅助信息编码的堆叠自编码器使用多任务学习发现全市通用模式 模型实验数据集评估准则实验结果 深度学习Self-attentionself-Attention由来self-attention原理self attention代码…

【ArcGIS微课1000例】0100:ArcGIS for CAD软件下载与安装(附安装包)

ArcGIS for CAD软件下载与安装(附安装包)。 文章目录 一、ArcGIS for CAD概述1. ArcGIS for CAD介绍2. 主要功能二、ArcGIS for CAD下载三、ArcGIS for CAD安装1. 安装CAD2. 安装ArcGIS for CAD3. 配置一、ArcGIS for CAD概述 1. ArcGIS for CAD介绍 ArcGIS for CAD是Esri提…

《拳皇97》中的人物性格——陈可汗

在热血沸腾、高手如云的《拳皇97》世界里,有一位壮硕威猛却自带喜感的角色引人注目,他就是我们的重量级选手——陈可汗。这位来自中国的摔跤手以其独特的性格特质和生动活泼的表现方式,在激烈的格斗赛场上描绘出了一幅既令人捧腹又充满力量的画面。 陈可汗甫一登场,那魁梧的…

Acwing---2816. 判断子序列

判断子序列 1.题目2.基本思想3.代码实现 1.题目 给定一个长度为 n n n 的整数序列 a 1 , a 2 , … , a n a1,a2,…,an a1,a2,…,an 以及一个长度为 m m m 的整数序列 b 1 , b 2 , … , b m b1,b2,…,bm b1,b2,…,bm。 请你判断 a a a序列是否为 b b b序列的子序列。 子…

解锁影视制作新境界:DaVinci Resolve Studio 18引领行业变革

随着科技的不断发展&#xff0c;影视制作行业也在日新月异地变革。在这一进程中&#xff0c;DaVinci Resolve Studio 18以其卓越的性能和无限的创新力&#xff0c;成为了行业的领跑者。 DaVinci Resolve Studio 18是一款集剪辑、调色、音频处理和特效合成于一身的专业级影视制…

CICD注册和使用gitlab-runner常见问题

1、现象 fatal: unable to access https://github.com/homebrew/brew/: 2、解决 git config --global --unset http.proxy git config --global --unset https.proxy 查看gitlab-runner是否成功&#xff1a; userusers-MacBook-Pro ~ % gitlab-runner -h 查看gitlab-run…

openssl3.2 - 帮助文档的整理

文章目录 openssl3.2 - 帮助文档的整理概述笔记整理后, 非空的文件夹如下整理后, 留下的有点用的文件列表如下备注END openssl3.2 - 帮助文档的整理 概述 openssl3.2源码工程编译安装完, 对于库的使用者, 有用的文档, 远不止安装的那些html. 用everything查找, 配合手工删除,…

使用python-pandas对比两个结构相同的文件差异,并输出差集文件的方法

最近在处理数据相关需求&#xff0c;遇到一个问题&#xff1a;两个文件&#xff0c;fileA.csv和fileB.csv&#xff0c;结构相同&#xff0c;fileA包含fileB的内容&#xff0c;但是需要得到二者的差集&#xff0c;输出新的文件fileC。 经过查询资料&#xff0c;发现pandas可以很…

康姿百德床垫价格合理功效好,用科技力量守护您的睡眠健康

现代生活中&#xff0c;优质睡眠的观念已深入人心。人们渐渐认识到&#xff0c;一个舒适的床垫不仅仅是睡眠的工具&#xff0c;更是健康的守护者。很多朋友在选购床垫一掷千金&#xff0c;却找不到一款合适的床垫。康姿百德床垫是专为提升睡眠质量研发的床垫&#xff0c;成为了…