MicroPython应用基础-使用Thonny IDE

news2025/1/9 5:57:39

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 time

led0 = 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.coloradmin.cn/o/599564.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[论文分享]TimeMAE:解耦掩码自编码器时间序列的自监督表示

论文题目:TimeMAE: Self-Supervised Representations of Time Series with Decoupled Masked Autoencoders 论文地址:https://arxiv.org/abs/2303.00320 代码地址:https://github.com/Mingyue-Cheng/TimeMAE 1 摘要 利用自监督预训练增强基于…

Flume和Kafka的组合使用

一.安装Kafka 1.1下载安装包 通过百度网盘分享的文件:复制链接打开「百度网盘APP 即可获取」 链接:https://pan.baidu.com/s/1vC6Di3Pml6k1KMbnK0OE1Q?pwdhuan 提取码:huan 也可以访问官网,下载kafka2.4.0的安装文件 1.2解…

Hadoop3.1.3安装(单机、伪分布)

系列文章目录 Ubuntu常见基本问题 Hadoop3.1.3安装(单机、伪分布) Hadoop集群搭建 文章目录 系列文章目录一、环境1、创建hadoop用户 二、更新apt三、安装SSH、配置SSH无密码登陆四、安装Java环境五、安装 Hadoop3.1.3六、Hadoop单机配置(非分布式)七、…

chatgpt赋能python:Python为什么被吹得这么神?

Python为什么被吹得这么神? Python是一个开源、跨平台的高级编程语言,由Guido van Rossum于1989年在荷兰创造。Python在近几年因其方便易用、高效稳定和丰富的生态体系而备受欢迎。Python被广泛应用于数据科学、人工智能、机器学习、Web开发、自动化测试…

启动虚拟机并安装Linux系统

我们刚刚新建的虚拟机相当于一个裸机,还没有安装操作系统在里面,下面我们来看一下怎么进行Linux系统的安装。 在VMware Workstation工具的主界面选择虚拟机Spark01,单击鼠标右键在弹出的菜单中选择“设置”打开“虚拟机设置”对话框。如下图…

程序设计综合实习(C语言):学生成绩文件管理

一、目的 1.掌握文件指针的概念和运用 2.掌握文件的相关操作:打开、读、写、关闭 3.掌握文件的定位操作 二、实习环境 Visual Stdio 2022 三、实习内容与步骤 1.定义一个结构体数组,存放10个学生的学号&a…

ABB Drive Composer Pro 2.8.1 Crack

Drive Composer 是 ABB 通用架构驱动器的启动和维护工具。该工具用于查看和设置驱动器参数,以及监控和调整过程性能。 Drive Composer入门版提供了设置参数、基本监控、从 PC 对驱动器进行本地控制以及事件记录器处理等基本功能。 Drive Composer pro是成熟的调试和…

蓝桥杯ABC组 数论知识合集

Note Of Note 同余方程中是可以正常进行分数的约分和去分母的 e x g c d exgcd exgcd 在使用时要保证 a , b a,b a,b 都是非负数 a a a 与 b b b 互质不代表 a , b a,b a,b 都为质数( 4 4 4 和 5 5 5 互质,但是 4 4 4 不是质数)两个相邻…

第3章“程序的机器级表示”:控制

文章目录 3.6 控制3.6.1 条件码3.6.2 访问条件码3.6.3 跳转指令及其编码3.6.4 翻译条件分支3.6.5 循环do-while 循环while循环for循环 3.6.6 switch 语句 3.6 控制 截止目前,考虑了 访问数据和 操作数据 的方法。程序执行的另一个很重要的部分就是控制被执行操作的…

Maven高级5-私服

1. 简介 一台独立的服务器,用于解决团队内部的资源共享与资源同步问题(模拟了中央服务器); https://help.sonatype.com/repomanager3/download 命令行启动服务器 在nexus.exe目录(bin目录)下启动cmd&#…

【认知提升思维篇】之 反刍思维--恶性思考的根源

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:普本…

代码随想录算法训练营第五十一天 | 力扣 309.最佳买卖股票时机含冷冻期, 714.买卖股票的最佳时机含手续费

309.最佳买卖股票时机含冷冻期 题目 309. 最佳买卖股票时机含冷冻期 给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一…

Vulnhub | 实战靶场渗透测试 - PRIME: 1

0x00 免责声明 本文仅限于学习讨论与技术知识的分享,不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担…

“本草”大模型开源,ChatGPT时代,连AI私人医生都出现了?

大家好,我是千与千寻,也可以叫我千寻,今天给大家分享的ChatGPT新应用项目,是ChatGPT模型在医学领域的应用,什么,医学领域? 是的,没错,是医学领域的ChatGPT应用,我们都知道ChatGPT是OpenAI开源的一个智能对话式引擎,今天给大家分享的项目叫“本草”。 “本草”模型是…

IIC协议与OLED

1.认识OLED 1、OLED概述: OLED(Organic Light-Emitting Diode,有机发光二极管)是一种显示技术,利用有机材料的发光特性来产生光。OLED显示器由一系列有机材料层组成,当电流通过时,这些材料会发…

【性能调优】真实体验 “系统调用是重开销”

实践背景是开发云原生背景下的指纹识别插件,主要针对的是镜像、容器等云时代的软件资产。 信息安全语境下的 指纹识别 指的是定位软件的特征,如名称、版本号、开源许可证等,就像指纹是人的独特生物凭证,这些特征是软件的独特电子凭…

六一儿童节 全网最全的微服务+Outh2套餐,你确定不来试一试?(入门到精通,附源码)满足你的味蕾需要(二)

咱们废话不多说,直接开干!!! 目录 一、项目目录 二、Token 三、授权服务器oauth 1.pom 2.application 3.OauthApp启动类 4.DiyUserDetails 5.MyUserDetailService 6.KeyPairController 7.TokenConfig 8.WebSecurityCo…

LNMP架构

LNMP架构 一、LNMP架构原理二、LNMP部署1、安装 Nginx 服务1.安装依赖包2.创建运行用户3.编译安装4.优化路径5.添加 Nginx 系统服务 2、安装 MySQL 服务1.安装Mysql环境依赖包2.创建运行用户3.编译安装4.修改mysql 配置文件5.更改mysql安装目录和配置文件的属主属组6.设置路径环…

电子模块|压力传感器模块HX711---硬件介绍

电子模块|压力传感器模块HX711---硬件介绍与C51&&STM32驱动 实物照片模块简介模块特点 硬件模拟输入供电电源时钟选择串口通讯复位和断电HX711相关部分的 PCB 设计 实物照片 模块简介 HX711是一款专为高精度称重传感器而设计的24位A/D转换器芯片。与同类型其它芯片相比…

后端接口调式工具

后端接口调式工具 目录概述需求: 设计思路实现思路分析1.Postman2.Swagger 文档测试工具3.Sniff 文档测试工具4.APIpost 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardne…