MicroPython和pyboard常见问题

为什么要用(学)Python?

人生苦短,我用Python,这句话应该如雷贯耳吧!当下Python太火了,python为什么这么火?python诞生之初就被喻为最容易上手的编程语言,进入火热的AI人工智能时代后,它也逐渐取代JAVA成为编程界的头牌语言。python是一门对新手友好,功能强大,高效灵活的编程语言,学会之后无论是想进去数据分析、人工智能、网站开发这些领域语都是很nice的,可以说学好python就可以开启无限未来的无限可能。

MicroPython是什么?

MicroPython是以Python语言为基础能用于MCU的编程语言系统集合,它是运行在一系列微控制器硬件平台上的系统的名称,类似于Arduino。是近年来开源社区中很是热门的项目之一,它功能强大,使用简单,是创客、DIY爱好者、工程师相当好的工具,适用于小学到大学各个年龄段同学们完成对Python语言的入门,掌握基础电路知识和理解编程思想及原理,同时也适合熟练使用python或其他高级语言(JAVA,.NET,PHP等)但不懂或不熟悉硬件知识的程序猿完成嵌入式开发,同时也可以使用在专业开发中。相比另一个创客神器Arduino,MicroPython使用更加简单、方便,入门更快,性能也更好,更加适合初学者。它无须复杂的设置,不需要安装特别的软件和额外的硬件,也不用编译和下载,只要一条USB线,使用任何文本编辑器就可以进行编程。大部分硬件功能,使用一条命令就能驱动,不用了解硬件底层就能快速开发,对于产品原型设计、软件移植非常有好处,让开发过程变得轻松且充满乐趣。和传统开发方法相比,MicroPython开发产品原型的速度更快,程序也更容易实现模块化,更方便进行维护。和其他类似软件相比,MicroPython是可以真正用在产品开发中的软件。MicroPython以其开放的架构和MIT授权方式,在很短时间内就风靡世界,全世界有很多爱好者用它做出各种产品和有趣的应用。

使用过MicroPython的感受如何?

爽,爽死了,使用MicroPython就像有驾照的司机,上车一加油门就开飚,原来的使用C语言开发就像一个有驾照的造车的,开车前先把车拼好,再飙车,单论开车爽不? MicroPython!yes

MicroPython是谁开发的(哪家公司的)?

Damien P.George博士,在剑桥大学数学科学中心研究各种深奥数学、物理问题之余,搞了这个MicroPython项目,将Python移植到ARM Cortex M微处理器上,并开发了电路板。2013年曾经在KickStarter上成功筹得近10万英镑。2014年成功完成项目,发货。同时,这个项目也在GitHub上开源,至今已有1800+星,60位贡献者。George曾在2014年PyCon UK上介绍MicroPython,所用硬件平台叫pyboard(PYB)。

MicroPython与pyboard(PYB)关系?

广义上提到MicroPython指的是一个集合系统的称谓,狭义上MicroPython通常理解为软件系统,pyboard则是指硬件平台,可以运行MicroPython软件系统。同样狭义上的pyboard是MicroPython官方设计的开发板,使用的微控制器是ST公司的STM32系列,由于它的流行和推广及大众不成文的规定凡是能够运行MicroPython系统的平台都可以称为pyboard。

MicroPython与uPython,μPython关系?

一个东西,由于MicroPython被友商注册为商标,在某宝平台上,对我们进行了商标投诉,我们以后就用u或者μ代替Micro,MicroPython明明就是开源技术,非得注册为商标,将技术占位己有,哎~~俺也不知道为什么,俺也不敢问,俺也默默的注册了好多商标,以后俺也当商标流氓,开玩笑。μ在希腊字母中是M的小写,是微小的意思,例如microsoft微软,没错micro=μ,由于μ长得u实在太像了,在书写和识别时候u和μ就通用了,这是为了更方便地书写和键入,使用upython或者μpython来代替汉字使用者比较难键入的Micropython,这个单词。

pyboard与传统的嵌入式开发板关系?

由于pyboard板出发点是要更简单地开发应用,就有意弱化本身就是嵌入式开发的本质,这一点无可厚非,pyboard就是一个地地道道的STM32核心板,用户如果自己熟悉嵌入式开发(熟悉C语言又懂电路)完全可以当做传统开发平台。官方的pyboard基于上述原因没有留出传统开发经常使用的SWD接口,我们的板子添加恢复了SWD接口大大方便了使用传统方法开发的用户;同时增加了PWR电源指示灯,方便在硬件电路出现故障时(如短路等),能及时反映供电情况;增加了BOOT0按键,方便板子进入DFU状态进行下载更新固件。

学习MicroPython是不是就不用学习以C语言为首的嵌入式开发?

MicroPython的出现是由于现在半导体技术的发展,以至于硬件性能过剩,实际上使用MicroPython开发的代码效率要比使用C语言开发代码要低,不过由于用户的应用需求没那么严格,效率的问题可以忽略,特别适合DIY和电子爱好者。但是在专业产品开发中实际需求往往会超出μPython的范畴,这时还的需要传统的开发手段来摆平。

MicroPython架构组成?

MicroPython系统结构由微控制器硬件、MicroPython固件和用户程序组成。 硬件和MicroPython固件是最为基础也是相对固定的,而用户程序可以随时改变,可以存放多个用户程序到系统中随时调用或切换,这也是使用MicroPython的一大优势和特点。板子刚下流水线或者官方有新版本固件,用户可以重新下载MicroPython固件,类似于电脑重装系统,如果用户在应用中不小心”搞坏”了MicroPython固件,可以通过板子上的按键操作恢复出厂设置。

python语言好入门吗?

Python语言十分友好,能捕获全年段的程序猿,用户程序使用是Python3语言编写。如果没有接触这门语言,也没有关系,Python3入门很简单,在将我们提供的程序认真地过一遍,自己再修改应用一遍后,基本就领会到Python3的精髓了。下面列出的几点Python语言基本要素。 Python 3与Python2是有差别的,μPython的用户程序基于Pyhon3开发的. Python语言是使用缩进来表示代码层次,而不是用大括号。缩进可以使用空格或Tab建,但只能使用一种,不能混用。 位操作和C语言是相同的。 逻辑操作使用了and、or、^,而不是C语言的||和&&。 在for、if…then后需要使用冒号。 注意除法的区别,一个除号“/”代表浮点计算,两个除号“//”代表整数除法。

MicroPython大体的开发流程?

概述一下开发应用的大体形式和流程,将下载好μPython固件pyboard板子通过USB线联通电脑后,正常情况下,电脑会识别为一个U盘和一个串口,如果串口没有被识别,USB盘里有串口的驱动文件,加载即可。U盘中的boot.py为启动引导文件,main.py为用户程序文件,大部分的工作是在这个文件完成的.

MicroPython如何编程,烧写,调试?

简单到怀疑人生,可能用户之前有过嵌入开发的经历,大部分是使用C语言开发它是一种编译性语言,C语言需要使用IDE编写程序编译链接,然后下载(烧写)到芯片内,完成应用,现在使用Python语言,python是一种解释性语言,在用户拿到的pyboard(PYB,出厂固化底层Micropython固件)内部已经有了语言解释器了,用户只需要将板子插入电脑,电脑就会识别为U盘,在U盘中使用文字或者其他程序编写软件打开编程程序就行,所谓的下载就是点击保存。注意生成的U盘里有虚拟串口的驱动,安装后就可以使用虚拟串口了,使用串口调试软件可以进行对板子的控制,命令测试,像极了传统的python命令行交互,这种技术实现叫作REPL交互,在交互中可以排错,分段测试等等,简直回归到传统的python学习了。

pyborad板子无法使用串口REPL调试?

首先查看硬件管理器中是否有虚拟串口设备,如没有先安装驱动文件,在生成的U盘中有驱动,安装好后,在串口调试软件,应该有串口号,如果没有串口号,请关闭调试软件,板子重新上电,等上10s钟,再次打开调试软件,硬件和软件可能反应慢,如果不行多次尝试上述过程,波特率默认是115200,如果能打开串口没有打印信息,很可能是系统卡在了mian.py函数中的循环中了,打开U盘,修改一下程序(将while改为for循环),或者清空程序,保存,重新上电再次打开调试软件就行了.

MicroPython报错机制?

编写程序难免会出错,当你写好程序,保存时,不好给你提示错误的,怎么知道一行程序出错了?我建议一个是在编写main.py文件前,先用REPL分段调试验证程序,即使最终在main.py有错误,也会在串口调试窗口提示,这时要求你一直打开REPL串口调试就行了,对了,当你编写完main.py保存后,在串口调试窗口中按CTRL+D软启动,如果有错就打印出来信息了,通过提示信息进行修改。如果程序有错误也会通过LED1,LED2灯来回闪烁来提示。

MicroPython和ARDUINO如果选择?

首先你要明白,MicroPython是学习python编程,而ARDUINO是学习C语言,两者的方向不一样,根据发展趋势,Python语言的路会越走越宽,很可能在5年内在实际成熟后,纳入高考科目,python非常友好,入门简单;C语言应用领域比较单一,被用于和硬件或者操作系统打交道,应用比较单一,C语言经典,重要,偏向硬件.入门的话Python比C要容易的多。MicroPython的PYB使用的一般是STM32,它们使用是Cortex-M这样的32位内核,不知道比ARDUINO使用的8位内核高到哪里去了!外设种类和数目也是直接碾压,价格也比正版的ARDUINO便宜不少,只是新技术没有ARDUINO名气大而已。

Pyboard与ESP8266,ESP32有何不同,如何选择?

它们都是可以用MicroPython语言编程的,语法都是一样的,一般的功能都是调用标准库,这一部分用法是一样的!用法是一样的!至于你用的的功能的有无,功能数目,各有不同,例如GPIO,SPI,I2C,UART,每种板子都有自己特有库,特有库这部分是独有的,相互就不能通用了,例如ESP8266和ESP32都有WIFI相应的功能,Pyboard硬件上压根就没有WIFI;如果你想用4个串口ESP8266和ESP32就没辙了。还有一个重要的因素,就是USB功能,因为ESP8266和ESP32都没有USB功能,就失去了直插电脑生成U盘这一举动的优势,py可以bord(STM32)在U盘里很方便组织编程,虚拟串口调试什么的。选择建议:如果不行涉及WIFI,坚决选用Pyborad,Pybord(STM32的)也有很多种,我们源地仪器已经通过源代码修改适配设计出多种STM32的pyborad,

upython PYBV1.1标准版本

upython PYBV1.1PLUS加强版本

upython PYBV1.1mini版本

MicroPython在线图像化编程软件?

为了更方便的入门,我们提供汉化后的国外开源图形化编程软件,以在线的形式提供。 在线MicroPython图形化编程地址

使用Pyboard板子保存完main.py后运行LED1和LE2接替闪烁?

说明main.py编程有错误,我们建议的编程顺序是:在main.py中编写程序时候,打开串口调试软件使用REPL交互编程 `REPL交互编程<http://vcc-gnd.com/rtd/html/pyboard/tutorial/repl.html>`_ 使用REPL的目的是: * 将程序分段在repl交互中验证是否有错误,没有错误后写入main.py中 * 全部程序在main.py完成后,在REPL中按CTRL+D软启动,如果main.py还有错误,将会在REPL中提示是什么错误,在第几行,这个功能很有用,如果没有错误就直接执行了。

使用Pyboard板子或者使用MicroPython感觉不爽,极大的挫折感怎么办?

通我的学习经验,我可以负责的告诉你,从设计理念,调试编程还是代码实现,MicroPython完成度还是很高的,几乎可以完成大部分,应用实现,挫折感,不爽,不顺利可以是你对MicroPython理念,编程步骤,还不太熟悉,理解不到位造成的,或者从传统的编程模式没有调整过来造成的,请你相信多给MicroPython点耐心,信心,高效编程和快速应用的目的就会很快实现。

MicroPython官方网站(官网)?

http://www.micropython.org/

Pyboard(MicroPython)如何烧写固件?

非常容易,Pyboard(STM32)一台电脑,一条USB就能搞定,大体而言,boot引导启动,进入DFU模式,烧写固件,重新复位就行.固件可以向我们源地仪器索取,标准版本的也可以从官方下载。

MicroPython固件下载地址?

http://www.micropython.org/download

MicroPython版权要求?

MIT许可证,MIT许可证(The MIT License)是许多软件授权条款中,被广泛使用的其中一种。与其他常见的软件授权条款(如GPL、LGPL、BSD)相比,MIT是相对宽松的软件授权条款。 被授权人权利:被授权人有权利使用、复制、修改、合并、出版发行、散布、再授权及贩售软件及软件的副本。被授权人可根据程序的需要修改授权条款为适当的内容。 被授权人义务:在软件和软件的所有副本中都必须包含版权声明和许可声明。