文档章节

世界那么大,语言那么多,为什么选择Micropython,它的优势在哪?

bodasisiter
 bodasisiter
发布于 06/23 10:08
字数 1589
阅读 332
收藏 11
点赞 0
评论 0

   

    最近国内MicroPython风靡程序界,是什么原因导致它这么火呢?是因为他功能强大,遵循Mit协议开源么?

    错!因为使用它真的是太舒服了!!!

    Micropython的由来,这得益于Damien George这位伟大的计算机工程师,Damien George每天都会使用Python工作,他有一天冒出一个大胆的想法:能否用Python来控制单片机,从而实现对机器人的操作呢?

    Python语言本身就是一款简单上手的脚本语言,一些非计算机专业的爱好者都选Python语言作为入门语言,但是美中不足(中国跟美国为什么不参加世界杯),它不能实现对一些底层的操作,在硬件领域毫不起眼。所以,Damien George利用6个月时间打造了MicroPython,这就是MicroPyhton的由来。

    MicroPython它基于ANSIC,语法跟Python3基本一致,拥有独立的解析器、编译器、虚拟机和类库等。目前他支持基于32-bit的ARM处理器,比如说STM32F401、STM32F405、STM32F407。

    下面告诉大家我使用汇编、C、MicroPython这3种语言做了以下几点比较,为什么说MicroPython使用如此舒服呢??!!!

    1.编译环境
    C语言、汇编语言在编写程序之前,需要下载编译环境,然而Micropython不需要任何编译环境,只需将开发板U口插入电脑,便可在电脑上出现一个盘符,跟插入U盘似得,然后打开U盘,直接记事本编辑main.py就行,它的舒服在于MicroPython不需要任何工具和环境,任何文本工具+1块开发板即可开发编译,可以给它起个外号--口袋编程计算机。。。国内做的比较好的就是TPYBoard v102开发板,有兴趣的可以去学习了解一下,它资料齐全,有视频学习资料,还是不错的,我就是这么入坑的哦。


    2.操作难度
    汇编语言基本操作简单,但是要实现复杂的项目目标相对较难,代码冗长,调试查错困难;C语言有了语句和大量的库函数,相对汇编来说简单了;MicroPython有了比C更多的库函数,代码格式不仅变得简洁,在库的支持下很多函数和方法都不用自己再去写,直接import xx就可以,把类库导入就ok。以前点一个灯需要五六行代码,现在只需要1行代码就可以点亮LED,So  Easy。


    3.程序结构
    汇编语言总体使用跳转结构,不管是子程序的调用还是循环或者散转理论上都是用跳转的方式,中断操作或强行出程序段的操作都需要对压栈有有精确的控制,要求非常严格;C语言总体使用循环结构或顺序结构,不再需要到处跳来执行程序,中断操作会自动进行压栈不需要人为干预,在时序要求高时可嵌入汇编提高效率;MciroPython可以使用C的程序结构或者使用线程结构,线程结构要求的是严格且合理的分配好线程工作时间不能出现冲突,对资源要有很好的把控,不能空挂线程浪费资源,理论上多线程可以更高效的运行,虽然单核同时只能运行单线程但是从宏观角度来说是同步的,在时间要求不严格的情况下可以有效的降低程序的编写难度。

    4.编写方式
    汇编在不使用宏的情况下,通常都是指令直接操作单元,需要记忆大量的数据单元用途,且由于程序行数较多(可能会到一两千行)需要来回翻看程序代码,整个编写流程比较繁琐。而且由于都是8位的单元复杂的数据运算需要嵌套C语言来完成;C语言使用使用任何变量都需要先定义,相比不用特意去记忆变量名称,整体结构清晰多数编程软件都有跳转子程序功能,查找程序块非常方便。有大量的成品头文件包含各种常用函数,相对少了很多复杂的程序代码编写;MicroPython继承了C的编写优点,且不需要预定义,不需要任何结束符号,只需要换行即可继续编写,但是要注意一些特殊情况下Tab键的使用。

    5.易读性
    汇编本身难读因为标记少且直接操作单元,视觉结构上不仅就两列代码而且需要不停的跳转所以本身在读取上就很难;C语言简单的操作代码比较清晰,但是复杂的就会方法中找方法,很多复杂的代码非本人去找,就让人感到非常头疼;MicroPython相比C有更好的易读性,且由于取消了很多特殊符号整体感觉也比较清晰,很多方法都是单独写成单独的库,直接调用即可,每个功能都有单独的类库,看起来极其方便,一目了然。

    通过这几个维度的对比,大家应该很轻松就知道我为什么说MicroPython用起来让人舒服。目前AI是当前社会发展的主流,MicroPython的出现是一个时机,让很多像我这样的初学者,也可以自己做智能小车,学习硬件,它比C语言学习更简单,更适合加入教育,人人都可以学编程,写程序,由此可以看出MicroPython未来市场前景是非常大的,是比Arduino更强大、更容易编程的开发板。

© 著作权归作者所有

共有 人打赏支持
bodasisiter
粉丝 14
博文 141
码字总数 129033
作品 0
潍坊
MicroPython入门:能跑MicroPython开发板大盘点!

相信对于很多刚刚接触MicroPython的DIY创客来说,首先是被一些大神的作品吸引,然后有冲动自己动手,却发现入门很难,特别是面对各式各样的开发板不知如何选择。目前市面上关于MicroPython开...

bodasisiter
07/06
0
0
人生苦短,用 RT-Thread MicroPython 享受编程的乐趣

在 i.MX RT1050 EVK 开发板上实现这样的一个读取板载的 6 轴传感器信息和系统 CPU 利用率等信息,实时显示到网页中效果,你猜需要多少代码? 事实上 RT-Thread 的同事利用 RT-Thread MicroP...

RTThread物联网操作系统
05/02
0
0
第一款Micropython图形化编辑器—Python Editor

当你看到这篇文章的时候,显然你已经阅读了很多类似的文章,那么本篇文章会深入讲解一些新手的需求,提供详细的建议,当然我不会告诉你具体怎么做,一切答案都是肤浅的。 就拿我自己来说,初...

bodasisiter
04/23
0
0
精彩源于起点——2018年潍坊市首次青少年Python编程公开课

有一种语言叫计算机语言 I want to talk with Computer 春遇到冬,有了岁月 天遇到地,有了永恒 我们拥有的, 不止是长大, 还有那份长大的悲欢经历。 未来会有很多可能, 但一切源于万象开始...

bodasisiter
05/07
0
0
Micropython TPYBoard拼插编程之按键控制LED灯

一、什么是TPYBoard开发板 TPYBoard是以遵照MIT许可的MicroPython为基础,由TurnipSmart公司制作的一款MicroPython开发板,它基于STM32F405单片机,通过USB接口进行数据传输。该开发板内置4...

bodasisiter
04/18
0
0
Micropython之萝卜狗远程门禁控制系统

  * 本文作者:_橙子 ゝ,本文属FreeBuf原创奖励计划,未经许可禁止转载   当代社会,我们进公司需要门禁卡,出入小区需要门禁卡,门禁系统又称出入管理控制系统(ACCESS CONTROL SYSTEM)...

FreeBuf
05/24
0
0
TPYBoard—MicroPython开发板免费试用!你最想抱走哪款?

  TPYBoard开发板自上市开售以来,受到了广大硬件及MicroPython爱好者的一致好评,许多人提出想试用开发板的申请。为此,TPYBoard特推出多款开发板免费试用活动,感兴趣的朋友抓紧申请吧!...

bodasisiter
2017/10/24
0
0
[Micropython]TPYBoard v10x拼插编程实验 点亮心形点阵

一、什么是TPYBoard开发板 TPYBoard是以遵照MIT许可的MicroPython为基础,由TurnipSmart公司制作的一款MicroPython开发板,它基于STM32F405单片机,通过USB接口进行数据传输。该开发板内置4...

bodasisiter
04/17
0
0
RT-Thread 软件包介绍

1、软件包的目的 软件包在高级语言中非常常见,很多高级语言都有对应的软件包平台,比如 Python 的 PyPi,Ruby 的 Gems 等等。软件包生态对于一门语言的选择至关重要,因为这些软件包具有很强...

RTThread物联网操作系统
05/17
0
0
Python修炼之路-循序渐进

Python已经演变为一个庞大的生态系统,由于其底层全部用c写成,而且全部开放源码,因此几乎可以完成其它任何编程语言能干的事情。python虽然简单,但要成为高手也非一日之功。如何通过日常的...

openthings
2015/01/21
0
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring配置xml启动报错 Connot find 'beans'

1.我们先看一下spring的原始配置 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSc......

江湖鱼大虾
4分钟前
0
0
与女儿谈商业模式 (4):戴尔的成功秘诀

分类:与女儿谈商业模式 | 标签: 戴尔 经济学 陈志武 2007-05-15 10:26阅读(7434)评论(36)   2007年5月《创富志》与“女儿谈商业模式”专栏 (之四)   戴尔的成功秘诀   陈志武   ...

祖冲之
13分钟前
0
0
www.w3.org被qiang导致logback报错:Connect reset

web项目部署到tomcat后,web项目中的logback不能运行,报错信息如下: Reported exception: ch.qos.logback.core.joran.spi.JoranException: I/O error occurred while parsing xml file......

浮躁的码农
27分钟前
0
0
JDeveloper中文乱码解决

全局设置字体; 全局设置环境编码; 项目设置编译器环境编码。

wffger
55分钟前
2
0
MySQL主从介绍 , 准备工作,配置主,配置从, 测试主从同步

MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的 MySQL主从是基于binlog的,主上须开启bin...

TaoXu
今天
2
0
线性代数学习总结

亭子happy
今天
1
0
Java8:Lambda表达式增强版Comparator和排序

1、概述 在这篇教程里,我们将要去了解下即将到来的JDK 8(译注,现在JDK 8已经发布了)中的Lambda表达式——特别是怎样使用它来编写Comparator和对集合(Collection)进行排序。 这篇文章是...

孟飞阳
今天
0
0
从架构到组件,深挖istio如何连接、管理和保护微服务2.0?

近几年我一直从事于微服务系统的设计以及实现方面的工作,属于微服务架构一线实践者。之前做过一些单体系统的微服务改造,在微服务拆分、治理等方面都有一定的经验。 本人比较特殊一点的经历...

xiaomin0322
今天
1
0
基于vue的h5文件切片上传(获取文件md5,实现秒传、进度条实现)

template <button @click="file"></button><label ref="upload" style="position: relative;"> <input type="file" @change="selectFile" style="position: abs......

hkaikai
今天
2
0
Spring Boot 2.0 项目实现自同步AD域账号

在通过Spring Boot的自动化装配功能及JDK自带的LDAP模块,可通过如下几个简单步骤实现业务系统自动同步AD域账号功能。 1. Java自带ldap搜索域账号信息核心代码: try { LdapContext ctx...

B超
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部