MicroPython是Python 3语言的精简实现，包括Python标准库的一小部分，经过优化可在微控制器和受限环境中运行。以下是MicroPython的主要特点：

1. **兼容性**：MicroPython努力与普通的Python（称为CPython）尽可能兼容，这意味着如果你了解Python，就已经掌握了MicroPython的基础知识。
2. **硬件访问**：除了实现一系列核心Python库之外，MicroPython还包括用于访问低级硬件的“机器”等模块，使得开发者能够直接控制微控制器的硬件资源。
3. **交互式提示符（REPL）**：MicroPython提供了一个交互式提示符（REPL），允许用户直接在嵌入式平台上从桌面计算机执行命令。这对于嵌入式系统的快速实时测试和调试非常有用。
4. **多线程支持**：MicroPython固件支持多线程功能，这使得单个微控制器能够同时处理多个嵌入式任务，从而加速嵌入式应用程序的执行。
5. **开源项目**：MicroPython是一个开源项目，其源代码可在Github上获取。它遵循MIT许可证，可免费用于教育和商业目的。
6. **广泛支持**：MicroPython支持多种微控制器板和RTOS（实时操作系统），如ESP32、ESP8266、STM32，Pico等。此外，它还提供了丰富的库和模块，以满足不同开发需求。

# 2.1 软件下载

## 2.1.1 Windows系统 软件下载

**操作系统：Windows 10**

软件下载链接：[Thonny软件官网](https://thonny.org)

鼠标触碰到箭头所示处，会出现Windows官方下载的版本选择。

![1101](./media/thonny-1-1778557051106-1.png)

![1102](./media/thonny-2-1778557051106-2.png)

## 2.1.2 MAC系统

请参考Windows系统教程。

![1103](./media/thonny-3-1778557051106-3.png)

![1104](./media/thonny-4-1778557051107-4.png)

# 2.2 软件安装

Thonny应用程序安装支持两种安装方式：

- 安装Thonny+Python捆绑包

  这种方式本质是将Python环境和Thonny打包在一起，即可一键安装使用，快捷方便，推荐新手使用此方式。捆绑包的方式安装又分为两种：

  - Installer安装

    ![1201](./media/thonny-5-1778557051107-5.png)

  - 免安装版本

    ![1202](./media/thonny-6-1778557051107-6.png)

- 单独安装Thonny

  Thonny应用本质是以python包的形式存在，当用户已经具备python环境，即可通过`pip install thonny`单独安装Thonny。这种方式更适合开发者。

  ![1203](./media/thonny-7-1778557051107-7.png)

请根据您的需求选择下载相应版本的压缩包。

## 2.2.1 Installer安装

请根据您的操作系统选择对应的程序下载。以 <span style="background:#ff0;color:#000">64bit Windows 10</span> 环境下，安装程序`Installer with 64-bit Python 3.10` 为例。

（1）下载完成后双击![1204](./media/thonny-8-1778557051107-8.png) 。弹出 Select Setup Install Mode 窗口，选择 **Install for me only** 。

![1205](./media/thonny-9-1778557051107-9.png)

（2）单击 **Next** 。

![1206](./media/thonny-10-1778557051107-10.png)

（3）选中 **I accept the agreement** ，单击 **Next** 。

![1207](./media/thonny-11-1778557051107-11.png)

（4）Thonny软件的安装路径，默认安装在C盘。单击 Browse... 可以选择其他安装位置，单击 **Next** 进行下一步。

![1208](./media/thonny-12-1778557051107-13.png)

（5）默认将在下面的开始菜单文件夹中创建程序的快捷方式。单击 Browse... 可以选择其他安装位置，单击 **Next** 进行下一步。

![1209](./media/thonny-13-1778557051107-12.png)

（6）勾选 **Creat desktop icon** ，单击 **Next** 。

![1210](./media/thonny-14-1778557051107-14.png)

（7）单击 Inatall 进行安装。

![1211](./media/thonny-15-1778557051107-15.png)

（8）单击“**Finish**”结束安装,安装完成。

![1212](./media/thonny-16-1778557051107-16.png)

（9）回到桌面，双击 Thonny 图标。选择语言，即可开始运行。

![1213](./media/thonny-17-1778557051107-17.png)

（10）安装完成。

![1214](./media/thonny-18-1778557051107-18.png)

## 2.2.2 免安装版本

请根据您的操作系统选择对应的程序下载。以 <span style="background:#ff0;color:#000">64bit Windows 10</span> 环境下，安装程序`Portable variant with 64-bit Python 3.10` 为例。

（1）下载完成后解压，双击![1105](./media/thonny-19-1778557051107-19.png)，选择语言，即可开始运行。

![1213](./media/thonny-17-1778557051107-17.png)

（2）安装完成。

![1214](./media/thonny-18-1778557051107-18.png)

## 2.2.3 语言设置

点击`Tools`然后再点击`Options...`

![thonny-56](./media/thonny-56-1778557051107-20.png)

点击`General`

![thonny-57](./media/thonny-57-1778557051107-22.png)

下拉语言选择框，找到`简体中文`，选中后点击`OK`

![thonny-58](./media/thonny-58-1778557051107-21.png)

设置成功后，需要关闭软件重新打开才能显示中文。

![thonny-59](./media/thonny-59-1778557051107-23.png)

# 2.3 安装USB驱动（重要）

ESP32通过CP2102驱动下载代码。所以在使用它之前，我们需要在计算机中安装CP2102驱动程序。

## 2.3.1 Windows 系统

 检查CP2102驱动是否已经安装

1. 用USB线连接计算机和ESP32。
   ![img-20230330142518](./media/img-20230330142518-1778304428184-4.png)

2. 进入计算机主界面，选择“**此电脑**”，右键单击选择“**管理**”。

   ![img-20230331145809](./media/img-20230331145809-1778304447392-6.png)

3.单击“**设备管理器**”。如果你的计算机已经安装了CP2102驱动，则可以看到“**Silicon Labs CP210x USB to UART Bridge(COMx)**”。

![img-20230331145950](./media/img-20230331145950-1778304464624-8.png)

 安装CP2102驱动

1. 如果未安装CP2102驱动，界面显示如下。

   ![img-20230331150247](./media/img-20230331150247-1778304499005-10.png)

2.单击“**CP2102 USB to UART Bridge Controller**”，右键选择“**更新驱动程序(P)**”。

![img-20230331150419](./media/img-20230331150419-1778304509434-12.png)

3.单击“**浏览我的电脑以查找驱动程序(R) **”。

![img-20230331150532](./media/img-20230331150532-1778304519233-14.png)

4.单击“浏览(R)...”选择CP210x_6.7.4(驱动路径：资料\USB驱动\CP2102 驱动文件-Windows\CP210x_6.7.4)，单击“**下一页**”

![image-20260509133236631](./media/image-20260509133236631.png)



5. 等待CP2102驱动安装完成。当界面显示如下时，表示已安装CP2102驱动。你可以关闭该界面。

   ![img-20230331151641](./media/img-20230331151641-1778304540457-18.png)

6.ESP32与计算机连接时，界面显示如下。

![img-20230331151718](./media/img-20230331151718-1778304551667-20.png)



## 2.3.2 MAC 系统

按照路径打开文件夹`资料\USB驱动\CP2102 驱动文件-MAC\macOS_VCP_Driver`，双击“SiLabsUSBDriverDisk.dmg”文件。

![img-20230329173728](./media/img-20230329173728.png)

可以看到以下文件。

![img-20230329173738](./media/img-20230329173738-1778306571109-27.png)

双击“Install CP210x VCP Driver”，勾选“Don’t warn me when opening application on this disk image”并单击“Open”。

![img-20230329173804](./media/img-20230329173804-1778306587755-29.png)

单击“Continue”。

![img-20230329173816](./media/img-20230329173816-1778306601251-31.png)

先点击“Agree”，然后点击“Continue”。



![img-20230329173824](./media/img-20230329173824-1778306615343-33.png)

继续点击“Continue”，然后输入你的用户密码

![img-20230329173832](./media/img-20230329173832-1778306661885-38.png)

![img-20230329173836](./media/img-20230329173836-1778306699636-40.png)

选择“Select Open Security Preferences”。

![img-20230329173845](./media/img-20230329173845-1778306736661-42.png)

点击安全锁，输入你的用户密码来授权。

![img-20230329173854](./media/img-20230329173854-1778306757625-44.png)

![img-20230329173858](./media/img-20230329173858-1778306773226-46.png)

看到锁被打开了，点击“Allow”。

![img-20230329173907](./media/img-20230329173907-1778306791832-48.png)

回到安装界面，根据提示等待安装.

![img-20230329173914](./media/img-20230329173914-1778306811409-50.png)

安装成功

![img-20230329173923](./media/img-20230329173923-1778306829332-52.png)



# 2.4 烧录固件（重要）

要想在ESP32上运行MicroPython代码，就必须要给ESP32烧录MicroPython 固件。

![thonny-22](./media/thonny-22-1778557051108-24.png)

A.连接microUSB线一端到你的电脑USB口。

![img-20230330142518](./media/img-20230330142518-1778307004531-54.png)

B.确保驱动程序已成功安装，并能正确识别COM端口。打开设备管理器并展开“**端口(COM和LPT)**”。

<span style="color: rgb(255, 76, 65);">注意：不同人的COM端口可能不同，这是正常情况。</span>

![img-20230331154259](./media/img-20230331154259.png)

C.打开Thonny，点击“**运行**” ，选择 “**配置解释器**”:

![img-20230331154547](./media/img-20230331154547.png)

D.选中“**MicroPython (ESP32)**”，选中“**Silicon Labs CP210x USB to UART Bridge(COM7)**”，然后点击“**安装或更新MicroPython**”。

![img-20230331154754](./media/img-20230331154754.png)

![img-20230331154903](./media/img-20230331154903.png)

![img-20230331154946](./media/img-20230331154946.png)

E.弹出如下对话框，“**Port**”选择“**Silicon Labs CP210x USB to UART Bridge(COM7)**”，单击“**Browse...**”选择之前准备好的microPython固件esp32-20210902-v1.17.bin。检查“Erase flash before installing”和“Flash mode”，然后点击“**安装**”，等待安装完成提示。（<span style="color: rgb(255, 76, 65);">注意：如果安装固件失败，请按住ESP32主板上的Boot键，出现上传进度百分比再松开Boot键。再次点击“**安装**”。</span>)

![img-20230331144331](./media/img-20230331144331-1778307324983-64.png)

![img-20230331155325](./media/img-20230331155325.png)

![image-20260509162845547](./media/image-20260509162845547.png)



# 2.5 页面介绍

单击 **视图** ，勾选 **文件** ，打开文件路径管理，方便使用。

![1401](./media/thonny-26-1778557051108-25.png)

![1402](./media/thonny-27-1778557051108-26.png)

# 2.6 工具栏介绍:

![1403](./media/thonny-28-1778557051108-27.png)

|                      按钮                       |       功能        |
| :---------------------------------------------: | :---------------: |
| ![1404](./media/thonny-29-1778557051108-29.png) |     新建页面      |
| ![1405](./media/thonny-30-1778557051108-28.png) |      打开...      |
| ![1406](./media/thonny-31-1778557051108-30.png) |       保存        |
| ![1407](./media/thonny-32-1778557051108-31.png) |   运行当前脚本    |
| ![1408](./media/thonny-33-1778557051108-32.png) |   调试当前脚本    |
| ![1409](./media/thonny-34-1778557051108-33.png) |       步过        |
| ![1410](./media/thonny-35-1778557051108-34.png) |       步进        |
| ![1411](./media/thonny-36-1778557051108-35.png) |       步出        |
| ![1412](./media/thonny-37-1778557051108-37.png) |     恢复执行      |
| ![1413](./media/thonny-38-1778557051108-36.png) | 停止/重启后端进程 |



# 2.7 如何将ESP32连接到Thonny软件

将ESP32开发板连接到电脑，然后设置开发板为ESP32并且选择端口。步骤如下：点击`工具`-->`选项...`

![thonny-42](./media/thonny-42-1778557051108-38.png)

选择`解释器`，然后设置开发板为`MicroPython(ESP32)`，端口则选择自动识别到的端口（如果你有多个端口不确认是哪个时你可以拔掉ESP32开发板与电脑的连接看哪个端口消失了来确认），选择好后点击`确认`

![image-20260509163809928](./media/image-20260509163809928.png)

连接成功后，Thonny的左边会出现“MicroPython设备”的区域并且右下角也会有提示

![image-20260509163850943](./media/image-20260509163850943.png)



# 2.8 如何打开代码文件

<span style="color:red;">注意：需要再`1.代码和库文件下载`中下载项目所需的资料文件，然后解压到电脑桌面以便于寻找。</span>

在 文件区单击 “此电脑” ，按照电脑桌面的路径找到文件`资料`

![image-20260509164028443](./media/image-20260509164028443.png)

再进入`codes`文件夹便能看到代码文件了，鼠标双击代码文件即可在Thonny软件中打开。

![image-20260509164252152](./media/image-20260509164252152.png)

# 2.9 如何将库文件保存到ESP32中（重要）

没有保存库文件到ESP32开发板时运行代码报错现象如下：

![image-20260509164342717](./media/image-20260509164342717.png)

**添加库文件方法：** 在文件区打开`资料`文件中的`lib`文件便能看到库文件了

![image-20260509164425155](./media/image-20260509164425155.png)

鼠标右击`Sengo1.py`文件然后选择"上传到 / " 等待上传成功。

![thonny-45](./media/thonny-45-1778557051109-39.png)

![image-20260509164548297](./media/image-20260509164548297.png)

上传成功后会在"MicroPython设备"区域内显示`Sengo1.py`文件。

![image-20260509164815798](./media/image-20260509164815798.png)

# 2.10 如何在线运行代码

我们以运行代码"4_1Color.py"代码文件为例

首先在"Files"区选中"4_1Color.py"文件并打开，然后点击做上交的运行按键![1407](./media/thonny-32-1778557051108-31.png)即可运行代码（注意：需要将Sengo1 AI视觉模块正确的连接到ESP32开发板否则将会报错)，如果我们不想运行当前代码时我们只需要点击停止按键![1413](./media/thonny-38-1778557051108-36.png)。

![thonny-48](./media/thonny-48-1778557051109-40.png)

# 2.11 如何离线运行代码

我们也以"4_1Color.py"代码文件为例

首先点击"MicroPython设备"后方的![thonny-50](./media/thonny-50-1778557051109-41.png)然后点击"新建文件..."

![thonny-49](./media/thonny-49-1778557051109-42.png)

命名为`main.py`然后点击确认（注意：这个名称不能变更也不能输入错必须保证是`main.py`）

![thonny-51](./media/thonny-51-1778557051109-43.png)

创建文件成功

![image-20260509170012154](./media/image-20260509170012154.png)



打开"4_1Color.py"代码文件然后“Ctrl + A”全选 “Ctrl + C”复制 ，打开"main.py"代码文件 “Ctrl + V”粘贴

![image-20260509170043607](./media/image-20260509170043607.png)

点击保存按键进行保存

![image-20260509170103060](./media/image-20260509170103060.png)



保存成功，这样当ESP32开发板重新上电后就会自动运行`main.py`中的代码（注意：保存时需要停止在线代码的运行，否则将魂保存不成功）

![image-20260509170143470](./media/image-20260509170143470.png)





