开始之前,你肯定会产生如下疑问:

什么是MicroPython?

简而言之,MicroPython 约等于一个可以运行在 微处理器上的 Python解释器,它使得我们可以编写Python脚本来控制硬件。

尽管我觉得我概括的很完美,但是对于不明白Python这种解释型语言的人来说,简直就是一脸懵逼。

所以我尝试先给大家科普一下几个概念。

Python解释器

编程语言大致可以分为 *解释型语言 *和 非解释型语言。澄清¶

只为给萌新科普,就不要拿java这种又要编译又要解释的语言来难为人家啦

解释型语言大多也称作为脚本语言,例如Python这类不需要编译的编程语言,我们可以在交互式的Python解释器环境中输入一行指令,执行一行指令,获得输出;也可以把写好的脚本文件一次性交给Python解释器去解释执行。

而非解释型语言典型的以 C 语言为例,这类语言编写的代码需要通过*编译器 *编译之后才能被执行。

我越解释你可能越糊涂,所以我决定表述的形象生动具体。

我们编写的代码,无论C语言也好,Python语言也好,都是希望计算机去执行。但是计算机是机器,只能识别01构成的二进制代码。因此,为了让机器搞懂我们现在编写的C语言代码,或Python语言代码,都需要经过一番转换,才能变成计算机设备能够理解的,进而才能被正确执行。

这个转换过程需要使用到工具:编译型的C语言,需要用到编译器。

解释型的Python语言,需要用到解释器。

编译器就好比一个专门负责翻译的公共机构,他只负责翻译,你把写好的代码文件交给他,他便一次性把文件翻译出来,然后再交给你,这就好比于你把写好的C语言代码让编译器来编译这一过程。之后你就可以把翻译好的代码文件拿去给机器来执行了。

而解释器就不同了,他就好比是一个你的私人翻译官,你想让机器干的每一件事,都可以说给翻译官听,他负责把你的话翻译给机器听,然后机器按照翻译内容去执行。当你想直接对机器下达命令的时候,你便可以直接走进他的办公室,当着面,你说一句,他翻译一句给机器,然后机器立马执行。而 交互式的Python解释器环境 就好比于你的翻译官所在的办公室,你可以随时和你的翻译官交流沟通你的想法。当然你也可以把想要让机器执行的事情,一件一件按照顺序写在文件上,然后扔给你的翻译官,让他好好的一句一句翻译给机器去执行。而这就好比于你把写好的脚本文件一次性的交给Python解释器去解释执行。

我想,没有接触过Python这类脚本语言的,大概明白什么是解释器了吧,也应该明白了解释型的脚本语言和编译型的语言的区别。

MicroPython虽然在很大程度上都能无缝的支持Python的语法,Python的理念,但是,由于MicroPython是设计运行在微处理器上的,所以他在某些方面实现了精简以此来保障性能。同时在某些地方,MicroPython和普通的Python解释器存在一些微小的差异,所以说约等于。但这丝毫不会影响到你学习并使用Python去控制硬件的乐趣。

现在,你可以再尝试着去理解一下什么是MicroPython:

MicroPython *约等于 *一个可以运行在 微处理器 上的 Python解释器,它使得我们可以编写Python脚本来控制硬件。

Python更适合作为初学者的入门语言

但是在很多在大学中,我们的老师依旧选择C语言作为入门的编程语言,选择C51单片机让大家入门硬件控制,笔者在大学时对于这两者的学习都有亲身经历,说起来一点都没有感受到编程和创造的快乐。在C语言上,吃尽了苦头且没有吃到过甜头,更不用说C51了。

我切身的感受到,要想熟练的使用C语言,这需要学习者花费更多的精力去理解引用,指针等等对于一个新手而言完全搞不清楚的概念。而且当我们使用C语言开发时,一个很小的功能就需要花费很多行代码去实现。就拿最基本的拼接字符串而言:#include

#include

int main ()

{

char str[50];

strcpy (str,"hello, micropython!");

strcat (str,"hello, 1ZLAB!");

puts (str);

return 0;

}

首先,对于不懂C语言的人来说,代码的可读性并不是很高,其次,实现步骤繁琐,需要用到额外的string库,同时在变量的声明时你还需要考虑变量的类型,长度等问题,你更需要明白str字符串数组的指针意味着什么...

如果是Python代码,事情就没有那么的繁琐了:str1 = 'hello, micropython!'

str2 = 'hello, 1ZLAB!'

print(str1 + str2)

即使你没怎么学过编程,这三行代码,我估计你也能够大致明白他在干什么。

C语言固然很重要,他有着十分必要的价值,CPython和MicroPython都是由C语言所实现的。但是C语言需要你对计算机组成,对硬件底层有着十分深刻的认识,才能有所驾驭。除非兼顾硬件底层和追求性能,否则C语言已经无法满足当今的众多应用场景的需求了。

而Python学习成本简单,且应用场景几乎渗透到了各个方面:科学计算

数据挖掘

Web后台

图像处理

人工智能

...等等,还有本教程想要教会你的硬件控制

所以学会了Python,你有很多发展的方向供你选择。同时我们1Z实验室认为:

Python已经不再是单纯的一门计算机编程语言,它更是一个无所不能的工具,我们可以使用Python让一些复杂的事情,变得简单。

MicroPython VS 传统硬件开发¶

对于传统的硬件开发而言,大多使用C/C++这类编译型语言。

这种开发方式往往需要以下几个步骤:编写代码

编译代码

烧录到芯片

运行程序

在这种模式下,当你发现自己的代码里有一行出了bug,即使是很微小的改动就能够修复,但你仍旧需要重新执行编译和烧录,才能够正确的运行。

而对于MicroPython而言,只要我们给芯片刷入了MicroPython固件,(结合我们上节所解释的解释器的概念,这就相当于我们为自己雇佣了一个私人翻译官,随时在芯片里等待着为我们翻译解释代码给芯片去执行。)之后的一切就简单得多。我们可以以两种方式来进行开发:进入交互式解释器 测试和运行代码

我们可以进入交互式的解释器环境随时输入代码执行(进入这位翻译官的办公室,当面发号施     令),发现代码有误,可以立即更改。

将代码保存到文件系统,让解释器开机之后按特定规则去执行。

我们还可以将代码整理好,保存到MicroPython的文件系统中(没错这就相当于这位翻译官的文件夹,你可以让这位翻译官按照你规定的顺序去执行这些文件中的代码)。MicroPython默认开机后从boot.py开始执行,然后开始执行main.py。

因此我们根本无需因为代码的更改而反复编译代码和烧录固件,只需要简单的更改文件系统对应脚本文件中的内容即可。

可见,MicroPython的开发方式更加轻便和灵活。

micropython和python区别-什么是MicroPython?相关推荐

  1. micropython和python区别-什么是 MicroPython ?它有什么优势?

    MicroPython 和 Python 都是一类 Python 的动态语言解释器. 若是在系统里安装了 Python 解释器,例如在 Windows 或者 Linux 命令行输入 python,进入 ...

  2. micropython和python区别-MicroPython简介

    下面是网上关于MicroPython的介绍. Damien George是一名计算机工程师,他每天都要使用Python语言工作,同时也在做一些机器人项目.有一天,他突然冒出了一个想法:能否用Pytho ...

  3. micropython和python区别-(一)什么是MicroPython?

    MicroPython简介 MicroPython是Python 3编程语言的精简高效实现 ,包括Python标准库的一小部分,并且经过优化,可在微控制器和受限环境中运行. MicroPython p ...

  4. micropython和python区别-MicroPython与Python速度对比

    首先说明,micropython跟python是没有任何可比性的,python作为一种通用的语言,在扩展性上不是micropython能比的,比如大量的库,可以方便的用C语言加模块提升速度,有pypy ...

  5. micropython和python区别-选择C/C++还是选择MicroPython来开发?(第0章-第三节)

    在硬件开发领域里,C/C++是最传统的编程语言之一.ESP8266/NodeMCU开发板可以通过Arduino IDE利用C/C++语言进行开发.(假如您还不知道Arduino是什么,建议您看一下太极 ...

  6. micropython和python区别-MicroPython入坑记(三)板子上的Python到底有多快?

    前几篇都是直接在命令上操作,然而执行py文件才是王道,其实类似nodemcu的lua固件,MicroPython也提供了一个简单的文件系统用来存代码.并自动在开机时执行: boot.py main,p ...

  7. micropython和python区别-MicroPython运算符和表达式 - 1.2.3

    本小节主要说明MicroPython的运算符.举个简单的例子 4 +5 = 9 , 例子中,4 和 5 被称为操作数,"+" 称为运算符. 1.2.3.1 算术运算符 运算符 名称 ...

  8. MicroPython中Python与C代码是如何交互的

    1.Python代码和C代码字符关联 本节就来介绍下模块扩展过程中Python字符是怎么和C字符(例如:模块名,类名,变量名,函数名等)关联起来的?以ADC 类名字符来举例说明下关联过程的: C代码字 ...

  9. micropython解释器原理_了解一下 MicroPython 的项目整体架构

    今天来说说 MicroPython 的架构情况,如果有必要我会做一些源码分析的文章供大家参考. 先来认识一下 MicroPython 整体情况,可以从软件的角度上去看待,首先我们拿到 MicroPyt ...

最新文章

  1. 解析 Java 类和对象的初始化过程 由一个单态模式引出的问题谈起
  2. php如何打开数据库,php数据库怎么打开
  3. VR创投寻鹰会,一场深圳VR行业人的大聚会
  4. ssm把后端数据传到前端_前端传数据到后台分别JSON和STRING接收 AJAX SPRINGBOOT ssm
  5. 计算机xp用户丢失,WinXP电脑硬盘分区表丢失的解决方法
  6. kaggle案例实战班
  7. JavaScript Array(数组)对象
  8. pyspark分类算法之逻辑回归模型实践【binomialLogisticRegression+multinomialLogisticRegression】
  9. 阶段3 1.Mybatis_09.Mybatis的多表操作_3 完成account的一对一操作-通过写account的子类方式查询...
  10. R 语言的安装(详细教程)
  11. 该市官宣:高校有序解除封闭管理!
  12. 几种常见简易的恒流源电路
  13. 【JVM】灵性一问——为什么用元空间替换永久代?
  14. 关于python里面xlwt操作excel文件的时候去掉页眉页脚
  15. dameonset 重启_安装Daemon Tools反复重启的解决方法
  16. 平安科技移动开发二队技术周报(第十期)
  17. java模拟器怎么打开apk文件,APK是什么 APK文件怎么打开【详解】
  18. END-TO-END COMPLEX-VALUED MULTIDILATED CONVOLUTIONAL NEURALNETWORK FOR JOINT ACOUSTIC ECHO CANCELLA
  19. SQL注入--利用cookie进行注入
  20. gaussian用法 matlab_matlab中的twomodegauss函数-双峰高斯函数

热门文章

  1. VS2015+OpenCV3.4.2+Win10+简单调用摄像头
  2. open cv+C++错误及经验总结(十)
  3. 401 un[Authorize]
  4. 2019-2020-1 20175313 《信息安全系统设计基础》第一周学习总结
  5. 关于conda-新手必读
  6. (继续搬)struts日期格式的转换以及hibernate中session的关闭在xml中的配置
  7. JMeter分布式负载测试(吞吐量控制器)
  8. c/c++ static
  9. PHP语言基础简单整理
  10. [转]快速矩阵快速幂