Pycharm使用MicroPython开发ESP32

  • 在B站看到王铭东老师的开发ESP32的教程
  • 王铭东老师推荐使用Thonny,但是写代码提示不够智能
  • 分别试了VSCODE和Pycharm,Pycharm更为方便
  • 这篇博客已录制成视频发在 BiliBili

版本号

软件 版本
Pycharm 2022.3.3 社区版
MicroPython 1.19.1
python 3.10

前期准备

Pycharm安装插件

  • Pycharm安装MicroPython插件

  • 打开"File" > "Settings..." > "Languages & Frameworks" > "MicroPython"
    • "Enable MicroPython support":勾选
    • "Device type":选择"Pyboard"
    • "Auto-detect device path":不勾选
    • "Device path":填写ESP32的端口号,比如:我电脑中是"COM5"

  • 创建python环境,并使用pip安装必要依赖
    • 创建python文件时,Pycharm会提示需要安装依赖
pyserial==3.5
docopt==0.6.2
adafruit-ampy==1.0.7
  • 打开服务栏中的"MicroPython"
    • 点击执行图标
    • 看到类似Thonny中的"MicroPython"版本信息及为成功

开发及调试

  • 新建一个python文件如:"light.py",编写MicroPython代码,如王铭东老师这篇点亮LED灯的代码
    • 控制ESP32的LED灯闪烁
import machine
import time


pin2 = machine.Pin(2, machine.Pin.OUT)

while True:
    pin2.value(1)
    time.sleep(1)
    pin2.value(0)
    time.sleep(1)
  • 点击右上角的运行配置(Run/Debug Configurations)
  • 新增"MicroPython"配置
    • Name: 用于显示在右上角执行下来列表中,大家随便填
    • Path:选择要上传文件的完整路径
    • Open MicroPython REPL on success:建议勾选,用于上传完成后跳转到MicroPython

  • 点击右上角,执行配置
  • 此时会发现一个报错,提示内容大致是"...could not enter raw repl"
  • 在社区的这篇帖子找到解决方法
    • 在项目目录中
    • 打开"External Libraries" > python环境 > "site-packages" > "ampy" > "pyboard.py"
    • 在文件中搜索"self.serial.write(b'\r\x01') # ctrl-A: enter raw REPL"
    • 这这句上方增加"time.sleep(2)"
      • Pycharm会有提示修改信息,同意一下

  • 再执行就可看到执行成功
  • 到MicroPython界面中
    • 使用import导入文件,并执行(所以python代码中不要判断是否main方法,否则无法执行)
import light.py

分析

  • 打开Thonny可以看到,ESP32设备的文件多了一个light.py
  • 所以Pycharm点击执行时,是将python文件上传到了ESP32内
  • 我们再通过import的方式导入,由于文件中没有判断main方法,所以直接执行了

结尾

  • Thonny是个不错的工具,对MicroPython兼容性很好,但是代码提示不够聪明
  • 可以Pycharm和Thonny搭配使用
  • 安利一个刚发现的在线仿真的网站Wokwi ,使用方式查看这个视频