差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
whatis_micropython [2021/10/02 22:59] gongyusu [1. 什么是MicroPython] |
whatis_micropython [2022/03/01 14:26] (当前版本) gongyusu [4. MicroPython相关的资源] |
||
---|---|---|---|
行 3: | 行 3: | ||
### 1. 什么是MicroPython | ### 1. 什么是MicroPython | ||
MicroPython是一个小型的开源Python编程语言解释器,运行在小型嵌入式开发板上。使用MicroPython,您可以编写干净、简单的Python代码来控制硬件,而不必使用复杂的底层语言,如C或c++ (Arduino用于编程)。 | MicroPython是一个小型的开源Python编程语言解释器,运行在小型嵌入式开发板上。使用MicroPython,您可以编写干净、简单的Python代码来控制硬件,而不必使用复杂的底层语言,如C或c++ (Arduino用于编程)。 | ||
+ | {{ :logo-micropython-300x300.jpg |}} <WRAP centeralign> MicroPython的Logo </WRAP> | ||
Python编程语言的简单性使MicroPython成为编程和硬件新手的理想选择。MicroPython功能非常齐全,支持大多数Python语法,所以即使是经验丰富的Python老手也会发现使用MicroPython很熟悉和有趣。 | Python编程语言的简单性使MicroPython成为编程和硬件新手的理想选择。MicroPython功能非常齐全,支持大多数Python语法,所以即使是经验丰富的Python老手也会发现使用MicroPython很熟悉和有趣。 | ||
- | 除了易于使用之外,MicroPython还有一些独特的特性,使它有别于其他嵌入式系统: | + | |
- | * 交互式REPL,或读-求-印循环。这允许你连接到一个板,并让它执行代码,而不需要编译或上传-完美的快速学习和试验硬件! | + | 除了易于使用之外,MicroPython还有一些独特的特性,使它有别于其它嵌入式系统: |
- | * 广泛的软件库。像普通的Python编程语言一样,MicroPython“包含了电池”,并内置了库来支持许多任务。例如,通过MicroPython的内置库,可以很容易地解析来自web服务的JSON数据,使用正则表达式搜索文本,甚至进行网络套接字编程。 | + | * 使用交互式解释器:REPL(读Read-评估Evaluate-打印Print-循环Loop) - 这允许你连接到一个板,并让它执行代码,而不需要编译或上传-完美的快速学习和试验硬件! |
- | * 可扩展性。对于高级用户来说,MicroPython可以通过低级C/ c++函数进行扩展,因此在需要时,您可以将富有表现力的高级MicroPython代码与更快的低级代码混合使用。 | + | * 丰富的软件库 - 像普通的Python编程语言一样,MicroPython内置了非常多的库来支持许多任务。例如,通过MicroPython的内置库,可以很容易地解析来自Web服务的JSON数据,使用正则表达式搜索文本,甚至进行网络套接字编程。 |
+ | * 可扩展性 - 对于高级用户来说,MicroPython可以通过低级C/C++函数进行扩展,因此在需要时,您可以将富有表现力的高级MicroPython代码与更快的低级代码混合使用。 | ||
+ | |||
+ | MicroPython是Python 3语言的一个变种,其思想来源于剑桥大学的Darrien P. George博士,他与一个众筹团队一起于2013年开发了一款支持MicroPython的硬件开发板 - 叫PyBoard,并于2014年的Python大会(PyCon)上提出了MicroPython1.0。George博士也建立了[[https://www.micropython.org/|micro python.org网站]]来支持MicroPython和Pyboard。 | ||
+ | {{ ::micropython_logo.jpeg?300 |}} <WRAP centeralign>MicroPython.Org官方的Logo </WRAP> | ||
+ | {{ :pybv11-persp.jpg |}} <WRAP centeralign>MicroPython.Org官方推出的PyBoard,基于STM32控制器</WRAP> | ||
### 2. MicroPython能做什么? | ### 2. MicroPython能做什么? | ||
- | 几乎所有你能想到的东西!就像Arduino板一样,MicroPython可以控制硬件和连接的设备。您可以控制GPIO引脚闪烁灯,读取开关,以及更多。您可以驱动PWM输出伺服器,led等或读取模拟传感器与模拟数字转换器。与I2C或SPI设备通话也很容易,你甚至可以在一些板上找到网络和WiFi支持。MicroPython甚至有用于控制其他硬件的库,如NeoPixels和LED条,微型OLED显示器等等。 | + | MicroPython被设计用于快速有效地创建嵌入式系统控制程序。嵌入式系统可以简单定义为任何需要使用微控制器以满足工程需要的工程。典型的嵌入式系统通常使用传感器,有时会使用电子机械传动结构与微控制器接口,它们可能附接有人机接口设备,便于交互,但是更多为自动的,为单机运行或连接至云端进行远程访问。 |
+ | |||
+ | 就像Arduino板一样,MicroPython可以控制硬件和连接的设备 - 可以控制GPIO引脚闪烁灯、读取开关以及更多;可以驱动能够驱动伺服器、LED的PWM信号; 能通过模数转换器读取读取模拟传感器的信息,与I2C或SPI设备通信也很容易,你甚至可以在一些板上找到网络和WiFi支持。MicroPython甚至有用于控制其它硬件的库,如NeoPixels和LED条,微型OLED显示器等等。 | ||
简而言之,MicroPython可以做很多事情! | 简而言之,MicroPython可以做很多事情! | ||
### 3. MicroPython有什么局限? | ### 3. MicroPython有什么局限? | ||
- | MicroPython有很少的限制,几乎Arduino能做的任何事情都可以通过MicroPython板完成。然而,需要注意的是,与类似的Arduino或其他基于C/ c++的底层代码相比,MicroPython代码没有那么快,可能会使用更多的内存。通常这并不重要,因为速度和内存差异很小,不会影响大多数正常使用。 | + | MicroPython有很少的限制,几乎Arduino能做的任何事情都可以通过MicroPython板来完成。然而,需要注意的是,与类似的Arduino或其它基于C/C++的底层代码相比,MicroPython代码没有那么快,需要的内存也可能更大,不过通常这并不重要,因为速度和内存差异并不大,大多数的应用不会受到影响。 |
- | 但是要注意,那些对时间或性能要求很严格的代码可能无法在MicroPython中工作。例如,在MicroPython中完全“敲打”一个快速串行协议可能不是最好的主意。然而,有一些方法可以混合MicroPython和低级C/ c++代码,这样您就可以同时拥有这两个世界的优点——您的主要逻辑是干净且易于理解的MicroPython代码,而性能关键部分是用更快的低级代码编写的。 | + | 要注意的是,那些对时间或性能要求很严格的代码可能无法在MicroPython中工作。例如,在MicroPython中完全使用软件来驱动IO管脚实现一些高速的串行通信协议可能不是最好的主意。然而,有一些方法可以混合MicroPython和低级C/C++代码,这样我们就可以同时拥有这两个世界的优点 - 主要的逻辑是干净且易于理解的MicroPython代码,而性能关键部分使用更快的低级代码编写的。 |
- | MicroPython语言实现了大部分核心Python 3语言,但是MicroPython不能实现整个Python 3标准库。Python以拥有广泛的标准库而闻名,但是试图将这么大的库压缩到只有千字节内存的小板上是不可能的。相反,MicroPython实现了一些Python标准库的更小版本,为您提供了很棒的开发体验。 | + | |
+ | MicroPython语言实现了大部分核心Python 3语言,但是MicroPython不能实现整个Python 3标准库。Python以拥有广泛的标准库而闻名,但是试图将这么大的库压缩到只有千字节内存的小板上是不可能的。相反,MicroPython实现了一些Python标准库的更小版本,为我们提供了很棒的开发体验。 | ||
- | ### 4. 与MicroPython相关的资源链接 | + | ### 4. MicroPython相关的资源 |
* [[http://micropython.org/|MicroPython官方网站]] | * [[http://micropython.org/|MicroPython官方网站]] | ||
* [[http://docs.micropython.org/en/latest/|MicroPython最新文档]] | * [[http://docs.micropython.org/en/latest/|MicroPython最新文档]] | ||
行 24: | 行 34: | ||
* [[https://github.com/micropython/micropython/wiki|MicroPython在GitHub上的开发Wiki]] | * [[https://github.com/micropython/micropython/wiki|MicroPython在GitHub上的开发Wiki]] | ||
* [[https://forum.micropython.org/|MicroPython论坛]] | * [[https://forum.micropython.org/|MicroPython论坛]] | ||
+ | * {{:micropython-docs.pdf|MicroPython的技术规范}} | ||