首页 > 编程语言 >ESP32-MicroPython 开发环境

ESP32-MicroPython 开发环境

时间:2023-10-13 19:45:20浏览次数:53  
标签:MicroPython -- ESP32 py ampy 开发 main

Linux/Mac 下使用MicroPython开发ESP32

刷入固件

使用 esptool.py 将 MicroPython 刷入 ESP32 开发板涉及几个步骤。

1. 安装 esptool

如果你还没有安装 esptool.py,你可以使用 pip 来安装它:

pip install esptool

2. 下载 MicroPython 固件

MicroPython - Python for microcontrollers

前往 MicroPython 的官方网站,找到 ESP32 的固件,然后下载合适的 .bin 文件。确保选择与你的 ESP32 开发板兼容的版本。

3. 连接你的 ESP32

使用适当的 USB 数据线将 ESP32 开发板连接到你的计算机。

4. 查找 ESP32 的串口

在终端或命令提示符中,使用以下命令查找 ESP32 的串口:

ls /dev/tty.*

记下 ESP32 的串口名,例如 /dev/ttyUSB0

5. 擦除现有固件

为了确保 MicroPython 正确地安装在 ESP32 上,首先擦除开发板上的现有固件:

esptool.py --port <YOUR_PORT> erase_flash

<YOUR_PORT> 替换为你在第4步中找到的串口名。

6. 刷入 MicroPython 固件

使用以下命令将 MicroPython 固件刷入 ESP32:

esptool.py --chip esp32 --port <YOUR_PORT> write_flash -z 0x1000 <PATH_TO_YOUR_MICROPYTHON_BIN_FILE>

替换 <YOUR_PORT> 为你的串口名,并将 <PATH_TO_YOUR_MICROPYTHON_BIN_FILE> 替换为你下载的 .bin 文件的路径。

7. 重启 ESP32

完成刷入操作后,断开并重新连接 ESP32 的电源,或使用开发板上的复位按钮进行复位。

现在,ESP32 上应该已经运行了 MicroPython,你可以使用串口工具screen连接到 ESP32,并开始运行 MicroPython 命令。

上传MicroPython脚本

将写好的 Python 程序刷入 ESP32 来运行并不是直接将 Python 代码烧写到 ESP32 的 flash 中的常规做法。相反,你首先将 MicroPython 烧写到 ESP32,然后将你的 Python 脚本上传到 ESP32 上的文件系统,并在那里运行它。以下是如何做到这一点的步骤:

1. 安装 ampy

ampy 是 Adafruit 提供的一个工具,用于在与 MicroPython 兼容的设备上管理文件。你可以使用 pip 安装它:

pip install adafruit-ampy

2. 上传你的 Python 脚本

使用 ampy 将你的 Python 脚本放入 ESP32 的文件系统中。例如,假设你的脚本名为 main.py

ampy --port <YOUR_PORT> put main.py

<YOUR_PORT> 替换为 ESP32 的串口名(如 /dev/ttyUSB0 )。

3. 运行你的脚本

连接到 ESP32 的 REPL(Read-Evaluate-Print Loop):

  • 在 Linux 或 macOS 上,你可以使用 screen:
screen <YOUR_PORT> 115200
  • screen基本使用

    当你使用 screen 连接到一个串口或其他设备后,你可以按照以下步骤断开连接:

    1. Ctrl + A 键。这是 screen 的命令键。

    2. 紧接着按 k 键。这将会提示你是否确定要杀死这个 screen 会话。

    3. 最后,按 y 键确认。

    这样就会结束 screen 会话并断开连接。

    另外,你也可以按 Ctrl + A 然后按 d 键来"分离"一个 screen 会话,这样你可以在后台保留会话并返回到终端。要重新连接到这个会话,可以使用 screen -r 命令。

一旦连接,你应该能够看到 MicroPython 的提示符 >>>。要运行你刚刚上传的脚本,只需输入:

import main

注意:如果你的脚本名为 main.py,ESP32 会在启动时自动运行它。如果你想要在设备启动时自动执行其他名称的脚本,你需要重命名该脚本为 main.py

示例 main.py 使板子自带的灯呼吸闪烁

from machine import Pin, PWM
import time

# 使用 ESP32 的板载 LED。大多数 ESP32 开发板的板载 LED 连接到 GPIO2。
LED_PIN = 2

# 创建一个 PWM 对象
led = PWM(Pin(LED_PIN), freq=1000)

def breathe():
    while True:
        # 逐渐增加亮度
        for duty in range(0, 1024, 10):
            led.duty(duty)
            time.sleep(0.05)
        
        # 逐渐减少亮度
        for duty in range(1023, -1, -10):
            led.duty(duty)
            time.sleep(0.05)

breathe()

使用ampy管理文件

使用ampy管理文件系统中的文件

ampy 是由 Adafruit 开发的一个工具,用于在与 MicroPython 兼容的板上管理文件。下面是如何使用 ampy 进行文件管理的常见命令:

1. 列出板上的所有文件

要列出板上的所有文件,你可以使用 ls 命令:

ampy --port <YOUR_PORT> ls

2. 上传文件到板上

要将文件上传到板上,使用 put 命令:

ampy --port <YOUR_PORT> put <LOCAL_FILE>

例如,要上传名为 main.py 的文件,使用:

ampy --port <YOUR_PORT> put main.py

3. 从板上读取文件

要从板上读取文件并将其内容打印到终端,使用 get 命令:

ampy --port <YOUR_PORT> get <REMOTE_FILE>

如果你还想将其保存到本地文件,可以:

ampy --port <YOUR_PORT> get <REMOTE_FILE> <LOCAL_FILE>

4. 删除板上的文件

要删除板上的文件,使用 rm 命令:

ampy --port <YOUR_PORT> rm <REMOTE_FILE>

5. 创建目录

要在板上创建目录,使用 mkdir 命令:

ampy --port <YOUR_PORT> mkdir <DIRECTORY_NAME>

6. 执行脚本并查看输出

你可以使用 run 命令来执行板上的 MicroPython 脚本并看到其输出:

ampy --port <YOUR_PORT> run <SCRIPT_NAME>

注意事项

  • 在使用 ampy 之前,确保已经断开了其他对板子的连接(例如 screen,),否则 ampy 可能无法与板子通讯。

  • <YOUR_PORT> 是你的设备连接的串口。例如 /dev/ttyUSB0

ampy 为管理 MicroPython 板上的文件提供了简单而直接的方法。如果你经常使用相同的串口,你也可以考虑在 .bashrc.bash_profile 中设置 AMPY_PORT 环境变量,这样你就不必每次都指定 --port 参数了。

特殊文件 boot.py main.py

在 ESP32 上运行 MicroPython 时,boot.pymain.py 是两个特殊的文件,它们在启动过程中自动执行。它们之间的主要关系和区别如下:

1. 执行顺序:

  • boot.py: 当 ESP32 上的 MicroPython 被启动时,首先执行的是 boot.py。它的主要目的是进行初始化操作,例如设置无线网络连接、配置一些硬件参数或其他任何需要在程序运行之前进行的设置。

  • main.py: 在 boot.py 执行完毕后,main.py 将被执行。这是你的主应用程序或脚本,通常用于运行你的项目的主要功能或代码。

2. 用途:

  • boot.py: 由于它是首先执行的,boot.py 主要用于设置那些只需要配置一次的东西,如 Wi-Fi 设置或其他系统级初始化。在某些情况下,为了安全起见,你可能想在这里设置异常处理,以确保无论 main.py 中发生什么,都不会影响到系统的正常启动。

  • main.py: 这是你的主程序代码,可能包括处理循环、事件响应或任何你的项目需要的功能。

标签:MicroPython,--,ESP32,py,ampy,开发,main
From: https://www.cnblogs.com/orangeQWJ/p/17762992.html

相关文章

  • Linux开发环境中使用shell/python脚本快速自动打包并查看apk文件
    最近工作中突然遇到一个很烦人的问题,事情的起因是这样的.我参与开发/维护着大概5个项目,负责服务端后台的同事经常在自己的本地电脑启着本地服务测试一些东西,而他们的本地局域网IP是经常变动的,那么问题来了,只要他们的IP地址变动了就会过来找我针对某个局域网IP地址为某个......
  • 【前端开发】前端使用Tailwind CSS写样式效率翻倍
    vite+Vue项目配置教程配置地址:https://tailwind.nodejs.cn/docs/guides/vite中文文档:https://tailwind.nodejs.cn/docs/installation说明:使用TailwindCSS可省略写繁琐的css代码,通过用class快速布局,如下图页面全是class,很少会写css代码。 例子:创建variable.css文件,代码如下......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(7) -- 图标列
    我们在WPF应用端的界面中,使用lepoco/wpfui来做主要的入口框架,这个项目它的菜单内置了不少图标,我们需要在动态菜单的配置中,使用它作为图标的展示处理,本篇随笔介绍如何基于图标枚举集合进行图标的展示和选择处理。并扩展到Font-Awesome-WPF的处理进行展示和选择。1、lepoco/wpfui......
  • 软件开源快速开发框架:降本增效,助力流程化办公!
    随着时代的进步和社会的发展,应用软件开源快速开发框架的优势特点,可以让不少客户朋友顺利实现流程化办公,朝着数字化方向迈进。流辰信息是专业研发低代码技术平台的服务商,一直在低代码平台领域深耕细作,努力钻研,为不同的行业提供专业的整套解决方案,快来一起了解轻量、快捷方便的软件......
  • 【前端开发】前端开发都应该知道的vueuse
    前言:我们在写项目业务时进场会要封装一些工具函数,经常会遇到重复造轮子现象,这里给大家普及下vueuse,是基于Vue组合式API的实用工具集。比如如下简单的几个例子:useDateFormat   时间格式处理函数useTimeAgo     几小时/上周前等处理函数 useMouse     ......
  • 【前端开发】vue3+vite项目部分优化
    1、使用rollup-plugin-visualizer可视化分析包npmirollup-plugin-visualizer-S在vite.config.js中引入 在plugins里面 然后执行npmrunbuild就自动打开可视化分析2、CDN加速在vite.config.js中引入import{autoComplete,PluginasimportToCDN}from"v......
  • 接各种软件开发项目
    包括但不限如下种类开发业务:网站。官网,商城微信。微信公众号,微信小程序物联网。thingsboard,mqtt,modbus,opc-ua等协议设备对接人工智能。视觉模型算法,图像分类,目标检测接各种软件开发项目,12年工作经验全栈工程师开发品质有保障,价格优惠,寻求长期合作客户,如有需要,可以添加个人v......
  • 实时美颜技术的崭新时代:美颜SDK开发与应用
    美颜技术的崭新时代已经来临,实时美颜SDK的开发和应用成为数字世界中不可或缺的一部分。从社交媒体到视频直播,实时美颜技术已经在各种应用中取得了广泛成功,吸引了数百万用户。本文将深入探讨实时美颜技术的发展、SDK的开发,以及在不同领域中的应用。一、实时美颜技术的演进美颜技术的......
  • 文心一言Plugin实战来了,测试开发旅游攻略助手
    刚刚过去的8月,百度WAVESUMMIT深度学习开发者大会上,重磅发布文心一言的五个原生插件:百度搜索、览卷文档(基于文档的交互)、E言易图(数据洞察图表生成)、说图解画(基于图片的交互)、一镜流影(文字转视频)。我们知道大模型的训练过程一般都需要比较长的时间,强如ChatGPT4用到的最新数据也只......
  • 计算器软件开发
    用Java实现计算器软件设计Java编写个人计算器软件一、所需要实现的功能1.该计算器需要实现加、减、乘、除、开平方功能。2.需要有一个运行的UI界面,可以和电脑自带的计算器相比较。该界面要有一个文本输入框,用来显示输入的表达式;若干个按钮,用来用来显示数字以及操作符;当点击......