MicroPython应用基础-使用Thonny IDE

news/2025/2/16 5:09:59/

MicroPython应用基础-使用Thonny IDE

文章目录

  • MicroPython应用基础-使用Thonny IDE
    • 引言
    • Thonny简介
    • 使用Thonny连接到MicroPython开发板
    • 使用Thonny的REPL窗口运行Python语句
    • 在Thonny中保存Python程序文件至MicroPython开发板中运行
    • 使用Thonny的注意要点

引言

在很长一段时间内,我在调试MicroPython的源码时,都有一个困扰:每次验证MicroPython小程序,都需要重新在串口终端中输入所有代码,并且不敢出错,否则会导致可能被MicroPython识别成错误的代码块。哪怕可以在常规的代码编辑器中提前写好Python代码,再复制到MicroPython的串口终端中,来来回回也是比较麻烦的事情。能不能像使用Keil或者IAR等集成开发环境调试C代码一样,可以在代码编辑界面启动运行程序,这样可以先编辑好代码后,一次性再执行呢?后来,我在国内的MicroPython开发者社区中,发现有很多玩家使用Thonny开发基于ESP32的MicroPython,就意识到Thonny可能是我理想中的开发MicroPython的集成开发环境。Thonny提供了一个简约的Python代码编辑界面,支持关键字高亮,可以通过UART串口建立同MicroPython电路板之间的连接。更令人惊喜的是,Thonny还能实现通过UART向MicroPython开发板的文件系统中下载Python脚本文件的功能,这样就可以让MicroPython开发板上电启动之后直接执行已经下载到文件系统中的Python文件。

Thonny简介

Thonny是由爱沙尼亚的Tartu大学开发,非常适合初学者和教学的一款轻量级IDE,提供可视化的编程界面,并可一步一步地调试运行Python程序。

其中显著的特性是,提供了多种方式逐步执行代码,可以逐步求表达式的值,对调用堆栈可视化,便于用来解释引用内存和直接在堆中分配内存的概念。特别适合用来支持教育和研究工作。它可以被免费下载和使用,并可由用户在开放的框架中自行开发扩展功能。

Thonny基于Python开发,天然支持跨平台,目前支持Windows、Linux和Mac OS三大主流操作系统,可以从官网直接下载安装(https://thonny.org/)。

通过网络浏览器进入Thonny的官网后,选择对应的操作系统直接下载即可。如图x所示。

在这里插入图片描述

图x Thonny软件概览

Thonny本身的源代码也在github开源:https://github.com/thonny

Thonny的用户手册:https://github.com/thonny/thonny/wiki

Thonny对MicroPython的特别支持的说明:https://github.com/thonny/thonny/wiki/MicroPython

目前,Thonny在国内ESP8266/ESP32的MicroPython平台中使用比较多。本文中,也将国产灵动微电子的MM32F5270系列微控制适配到Thonny环境下。

使用Thonny连接到MicroPython开发板

将MicroPython开发板连入电脑后,运行Thonny软件。需要配置Python语言解释器,这里指定解释器为MicroPython后,具体对应的就是可通过UART建立通信的COM端口,将Python代码通过COM端口发送到MicroPython电路板上进行解释。

如果预先配置过可用的UART通信端口,则Thonny软件启动后会自动打开已配置的UART端口,并与MicroPython通信建立连接。如图x所示。

在这里插入图片描述

图x 在Thonny中选择Python语言解释器

如果之前没有配置过,或者电脑识别成不同的COM端口,就需要再人工配置一次,确保能够正常建立通信。如图x所示。

在这里插入图片描述

图x 配置Thonny的解释器

使用Thonny的REPL窗口运行Python语句

在Thonny主界面的下半部分,有Shell窗口,可以使用REPL模式与MicroPython开发板进行通信,逐句运行Python语句。

在这里插入图片描述

图x 在Thonny的Shell使用REPL方式开发MicroPython

在Thonny中保存Python程序文件至MicroPython开发板中运行

在Thonny的主界面的代码编辑区中编写Python脚本:

from machine import Pin
import timeled0 = Pin('PH2', mode=Pin.OUT_PUSHPULL, value=1)
for i in range(10):time.sleep_ms(200)led0(1-led0())

选择保存按钮,弹出对话框,可以选择将Python脚本源文件保存在电脑上,也可以保存到MicroPython开发板上。这里选择保存到MicroPython开发板上,下次重新上电的时候还可以运行。如图x所示。

在这里插入图片描述

图x 下载文件到MicroPython开发板

也可以单击Thonny工具栏的运行按钮,直接运行代码编辑界面中的脚本。
在这里插入图片描述

图x Thonny中的运行按钮

使用Thonny的注意要点

在实际使用中发现,Thonny同MicroPython开发板的连接似乎不是很稳定,这跟Thonny连接MicroPython开发板的机制有关。Thonny每次启动后会执行连接操作的脚本,或者通过Thonny工具栏上的“STOP”按钮启动连接操作,包括保存文件等操作,是不时会出现Thonny本身的代码执行异常。

另外,在实际调试的过程中,存在一定概率向MicroPython开发板写入同名文件失败的情况。一种可行的解法是,需要在REPL中通过语句删除之前的文件,然后重新存入新文件。例如,删除文件系统中的main.py文件,有如下操作:

>>> import os
>>> os.listdir()
['boot.py', 'main.py']
>>> os.remove('main.py')
>>> os.listdir()
['boot.py']

如果碰到Thonny运行异常,就复位一下MicroPython开发板,再重启一下Thonny软件,试着连起来,如果一次不行就多试几次。如果实在搞不定,还可以退回使用串口调试终端软件,直接在REPL环境下调试,总是保险的做法。


http://www.ppmy.cn/news/158954.html

相关文章

商务笔记本进入小时代

商务笔记本进入小时代<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /> 当智能手机越来越流行&#xff0c;当平板电脑开始悄然走俏的时候&#xff0c;我们蓦然发现移动终端的多样化已经呈现在我们面前。原先笨重的笔记本电脑已经…

笔记本安装Win2012R2 心得(包含无线网卡+有线网卡驱动解决方法)

笔记本&#xff1a;联想昭阳E47G 无线网卡安装方法&#xff1a; 系统安装完毕后将自动识别无线网卡驱动&#xff0c;但需要手动允许WLAN服务开启。&#xff08;建议&#xff0c;如果是拿来办公或者家用&#xff0c;可以安装上桌面体验&#xff09;不然&#xff0c;QQ发的截图…

关于RabbitMQ消息分配机制

如果打开了自动签收&#xff1a; 1:自动签收消息&#xff1a;如下图所示&#xff0c;我们如果将 channel.basicConsume(QUEUE_NAME, true, defaultConsumer);中间写为true&#xff0c;意思就是自动签收消息&#xff0c;这样的话&#xff0c;如果生产者生产了100个消息&#xf…

危险,配机数据线千万别混着用?

目前市面上手机数据线规格不同、型号不同、大小不同的配机数据线有上百种&#xff0c;一般情况下不同品牌、不同产品之间的接收端和发送端不同&#xff0c;所以数据线是不可以直接混用的&#xff0c;即使有时候不同的电子产品&#xff0c;在不配套的数据线下&#xff0c;虽然也…

类和对象的内存分配机制

类和对象的内存分配机制 1.栈&#xff1a;一般存放基本数据类型&#xff08;局部变量&#xff09; 2.堆&#xff1a;存放对象&#xff08;Cat cat 数组等&#xff09; 3.方法区&#xff1a;常量池&#xff08;常量&#xff0c;比如字符串赋值内容&#xff09;&#xff0c;类加载…

网间进程的标识和端口分配机制

网间进程的标识 每台主机都有一个唯一的IP地址&#xff0c;利用IP地址可以唯一的确定internet中的一台计算机&#xff0c;实现计算机的通信。但是最终进行网络通信的不是整个计算机&#xff0c;而是计算机的某个应用程序。一台主机中也可能有很多的进程&#xff0c;仅有…

JVM-02 内存模型及内存分配机制

JVM内存模型及性能调优 1、JVM运行时数据区定义1.1 运行时数据区概念1.2 PC寄存器1.3 虚拟机栈1.4 堆1.5 方法区&#xff08;元空间&#xff09;1.6 运行时常量池1.7 本地方发栈 2 内存模型及分配机制2.1 内存回收实例动态分析&#xff1a;2.2 方法区内存分配机制2.3 线程栈内存…

电脑配置单

电脑配置单配件名称商品名称单位单价 备注主板技嘉755针主板/GA-8I945GZME-RH块&#xffe5;600.00  CPUINTEL 755针CPU/P42.8 915双核[盒装三年]块&#xffe5;620.00  内存kingston 1G内存[667]个&#xffe5;300.00  硬盘酷鱼SATA硬盘/80G[三年]个&#xffe5;360.0…