MicroPthon环境搭建笔记

环境

  • 系统:windows10wsl2子系统ubuntu
  • 硬件:esp8266 (4mb内存)

烧录固件

  • 根据串口安装驱动

  • ESP8266烧录软件

    • Flash Download Tools
    • esptool
      1
      2
      3
      4
      5
      6
      pip install esptool #安装esptool
      #常用命令
      python -m esptool -h #查看命令
      python -m esptool read_mac #查看设备
      python -m esptool -p port erase_flash #擦除缓存
      python -m esptool --port COMx --baud 115200 write_flash 0 esp8266-20220618-v1.14.bin #写入固件
  • micropython 固件

串口映射wsl

由于我打算使用WSL进行烧录/编写代码/调试,后进过查询文档,由于WSL2的问题,无法直接进行对串口的操作。 我们需要借助usbipd-win完成映射

官方文档:比较 WSL 1 和 WSL 2

  • usbipd-win
    • powershell以管理员启动

    • 安装usbipd-win

      • winget install usbipd
    • 在 Linux 中安装 USBIP 工具和硬件数据库

      1
      2
      3
      sudo apt install linux-tools-5.4.0-77-generic hwdata

      update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20
    • 常用命令

      1
      2
      3
      usbipd wsl list #查询映射情况
      usbipd wsl attach --busid X-X #设备映射
      usbipd wsl detach --busid X-X #删除映射
    • 可能存在的错误

      • usbipd: error: WSL kernel is not USBIP capable; update with ‘wsl –update’.
        1
        2
        wsl --update #更新内核
        wsl --shutdown #关闭wsl(需重启)

代码上传

  • ampy
    • 安装

      pip install adafruit-ampy

    • 常用命令

      1
      2
      3
      4
      ampy -p /dev/ttyUSB0 ls #查看文件列表
      ampy -p /dev/ttyUSB0 get file localfile #下载至本地
      ampy -p /dev/ttyUSB0 put file #上传文件
      ampy -p /dev/ttyUSB0 rm file #删除文件
  • uPyCraft 客户端
  • vs code编辑器RT-Thread MicroPython插件

调试

  • 互动式窗口(REPL)

    • GUI 软件连接
      • xshell
      • putty
      • uPyCraft
    • 命令行
      • picocom
        • 使用方式 picocom /dev/ttyUSB0 -b 115200
  • 运行脚本文件

    • 配合代码上传后点ret,需要注意的是命名,通电后boot.py执行后main.py执行。

    • 临时调试

      • 运行 ampy -p /dev/ttyUSB0 run file
      • 使用 uPyCraft 调试
      • 配合插件 vs code 编辑器RT-Thread MicroPython插件 (无法在wsl内执行)

  • 目前无论是vs code还是pycharm都无法进行wsl2内进行调试,要不就把代码放在windows环境下,直接用插件调试,要不在wsl环境内就用ampy命令

  • wsl环境下因串口终端或一些不知名原因会出现picocomampy命令卡死等现象,即便使用kill也无法杀死终止

文档