当前位置: 首页 > 后端技术 > Python

什么是MircoPython?

时间:2023-03-25 19:24:43 Python

摘要:为了让Python这种易学易学、社区API丰富的语言能够在嵌入式领域得到应用,互联网玩家们逐渐开始了一轮对Python的嵌入式迁移,那么今天的主角——MircoPython。本文分享自华为云社区《Python的物联网衍生microPython【生长吧!Python】》,原作者:o0longlong0o。引言随着物联网的发展,随着互联网下沉到嵌入式应用,互联网中使用的很多编程语言都在逐渐向嵌入式和单片机领域发展。由于物联网的快速发展,边缘端的嵌入式应用也开始被物联网玩家涉足。本来嵌入式开发主要是用嵌入式C语言,因为C语言比网上用的脚本语言学起来慢。、缺乏社区API等问题,不利于互联网玩家和模式的介入。互联网玩家为了让Python简单易学,在嵌入式领域可以使用一门简单易学、社区API丰富的语言。有人说一个1000行的C程序,一个100行的Java程序,Python只需要10行,这就体现了Python的便捷性,也逐渐开始了一轮向Python的嵌入式迁移,以至于今天的主角——MircoPython。MicroPython与Python一样,是一种遵循GPL(GNU通用公共许可证)协议的开源解释性语言。它可以在任何硬件板上运行移植的API来控制硬件和执行算法操作,例如常见的硬件IO-内存、传感器、显示器、电灯开关、移动部件、网络和通信都可以使用MicroPython语言进行操作。MicroPython让有Python语言经验但没有C语言基础、嵌入式基础和硬件基础的人更快速地接触嵌入式设备,掌控自己的MCUMicroPythonMicroPython是Python3编程语言的精简高效实现,包括PythonA标准库的一小部分,针对微控制器和受限环境的操作进行了优化。MicroPythonpyboard是一种紧凑型电子电路板,可在裸机上运行MicroPython,为您提供可用于控制各种电子项目的低级Python操作系统。MicroPython充满了高级功能,如交互式提示、任意精度整数、闭包、列表理解、生成器、异常处理等。然而,它足够紧凑,仅需256k的代码空间和16k的RAM即可运行。MicroPython旨在尽可能与纯Python兼容,使您可以轻松地将代码从桌面传输到微控制器或嵌入式系统。MicroPython是在裸机上运行的完整Python编译器和运行时。您将获得一个交互式提示(REPL)以立即执行命令,并能够从内置文件系统运行和导入脚本。MicroPython试图尽可能与Python(称为CPython)兼容,包括诸如“机器”之类的模块,用于访问低级硬件,这些硬件也实现了一些核心Python库。看看MicroPython是如何操作硬件的importpyb#点亮LED1pyb.LED(1).on()#打印信息到串口窗口print('HelloMicroPython!')有一个MicroPython,我可以轻松操作一个像这样点亮和熄灭LED,还可以把log打印到串口窗口,这样就复杂多了。我们可以操作一个内存,如下:frommachineimportPin,I2C#创建一个I2C总线i2c=I2C(scl=Pin('X1'),sda=Pin('X2'))#在总线dev_list上找到设备=i2c.scan()#向设备地址0x42写入'4',从0x42读取4个字节i2c.writeto(0x42,b'4')data=i2c.readfrom(0x42,4)#内存与内存相互访问i2c.writeto_mem(0x42,0x12,b'')data=i2c.readfrom_mem(0x42,0x12,2)我们可以通过上面的命令简单的操作一个I2C内存,比C语言方便多了。有了mircoPython,我们甚至可以直接使用嵌入式进行数学运算,实现计算的传递。当然,大规模的运算还是需要嵌入式具备一定的计算能力。这与当前的设备定义有一些差异,这很有趣。比如我们可以直接在mircoPythonIDE上运行下面的计算。那时,计算不是由计算机完成的,而是由连接的嵌入式MCU完成的。#mircoPython数据表示与计算#小整数>>>123123#大整数>>>1<<1601461501637330902918203684832716283019655932542976#浮点数>>>1.23e61230000.0#复杂计算>>>(1+2j)*4jmicroPython4应用目前MicroPython支持32位ARM处理器,如pyboard(STM32F405)、NRF51822(micro:bit)、FireBeetle-ESP32、WiPy、ESP8266核心控制器、CC3200等,越来越多的厂商开始适配MicroPython。毕竟有潜在的用户群。也许LiteOS将来会继承对MicroPython的支持。现在好像有Javascript支持,Python也有相应的语言包支持。更容易涉足物联网感知层的开发,这对兴的发展来说是一件大好事。希望以后能有更多的支持,比如鸿蒙,也会支持更多的语言包。点击关注,第一时间了解华为云的新鲜技术~