准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

提到MicroPython,可能大家首先想到的会是Python,那这两者有何联系又有何区别呢?

Python是我们常见的计算机程序设计语言,是一款比较容易上手的脚本语言,主要用于上层应用的开发,但它不适合实现硬件底层操控。而MicroPython,则是脱胎于Python,是一个叫Damien George的人花费数月时间打造的,基于ANSI C(C语言标准),然后在语法上又遵循了Python的规范,主要是为了能在嵌入式硬件上(这里特指微控制器级别)更易于的实现对底层的操作。截止到目前,已经有不少嵌入式硬件成功移植了Micropython,如pyboard、esp8266、WiPy、Espruino Pico、STM32F4 Discovery等。

笔者前段时间拿到了一块pyboard,正好可以来了解下MicroPython在这平台上的运作。

本文原文地址:https://www.eeboard.com/evaluation/pyboard

pyboard

说起来,pyboard才是MicroPython的真爱,毕竟这板子同样是出自Damien George之手。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

pyboard十分小巧,大小仅有40mm*33mm,便携性很OK,装在盒子里兜里一方,到哪都能开发。但是...真看到板卡,你会觉得这板子也太简单了,重要的是这玩意竟然还卖28英镑,但纯看硬件,你是无法把它的价格跟这么简洁的“身姿”匹配,好吧,这样看起来就算是把价值都附加到MicroPython上,这似乎让更加值得我们期待。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

PYBv1.1版本的,Made in Germany

pyboard基于STM32F405RG微控制器,通过板载的microUSB接口供电以及进行数据传输,板载外设包括了一个MicroSD卡座接口、4个LED灯、两个机械按键、一个加速传感器、时钟模块,其它外设信号都通过板子上的金属通孔引出,具体的信号定义可以参考下图。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

STM32F405RGT6微控制器

板子上的主控意法半导体的STM32F4系列微控制器大家应该也不陌生。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

具体型号为STM32F405RGT6,详细的参数可以参考下表,本文不多做介绍了。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

pyboard开发

重点来实际体验下运行MicroPython的tyboard,从官方了解到,用户通过MicroPython可以轻松实现对微控制器的控制,最直观来说,你不需要通过复杂的编程,可以直接通过MicroPyton脚本语言就行操作,这就让更多的计算机初学者也能来动手做硬件DIY,用户完全可以通过MicroPython语言实现硬件底层的访问和控制,比如说控制LED灯泡、LCD显示器、读取电压、控制电机、访问SD卡等,接下来就来实际体验一番。

通过MicroUSB线连接电脑上电后可以看到两个变化,一个是电脑设备管理器出现了一个需要安装驱动的虚拟串口。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

另一个是可以从电脑中看到pyboard的U盘

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

U盘中的有几个重要的文件boot.py、main.py、pybcdc.inf。如果板子正常启动,上电先会运行boot.py,然后再配置USB,最后运行main.py。其中pybcdc就是上面所说的要安装的驱动。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

虚拟串口安装完成后可以看到相应的串口号准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

然后我们就可以通过串口工具实现串口通信了(以下以putty为例)。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

可以看到内置的MicroPython系统为V1.8.7版本的,是早前发布的版本。

通过help()可以查看基本的命令操作,操作命令不是太多,看起来很简单的样子。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

微控制器编程一般始于点灯,那运行MciroPython的pyboard板又是如何实现点灯操作的呢?

在pyboard上有4个LED,从原理图上能清楚看到。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

控制LED是比较容易的,基本方法如下:

pyb.LED(id),定义一个LED对象,id 是LED序号, 1-4.(有一点是需要注意的ID号是在编译MicroPython的时候已经决定了,除非我们重新编译固件,不然的话是无法改变相应的序号对应的LED)

  • led.on(),亮灯
  • led.off(),关灯
  • led.toggle(),翻转
  • led.intensity([value]),设置LED亮度,value是亮度值,0-255,0是关,255最亮,仅LED3和LED4支持

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

实现点灯/简单的加减乘除

不同于传统的微控制器控制需要我们重新修改/编译/烧录程序,MicroPython脚本语言让你实现实时的操作,哪怕对于不懂C语言的小白来说,简单的控制也是非常容易上手,就这点而言,比Arduino还方便。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

如果将MicroSD卡插入上电,pyboard会默认从SD卡启动来代替原本的微控制器中的ROM中启动,而如果SD卡中没有相应的boot.py、main.py文件,那么会导致不正常运行,解决办法也很简单,只需把原来的boot.py、main.py文件复制到MicroSD卡中就行。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

除了直接在串口终端工具中实现脚本控制,同样也可以在让pyboard一上电就运行你想要的程序,这就涉及到安全启动模式。安全启动模式下,pyboard不会运行boot.py、main.py,然后我们可以通过记事本编辑main.py文件,添加想要运行的脚本代码,就可以实现上电即运行程序的操作。

另外,pyboard的USB除了供电/串口/存储功能,还能实现usb HID模式,这就需要修改boot.py文件,如下

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

然后我们就可以通过脚本控制光标的移动

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

或者更进一步,我们可以通过板载的三轴加速计实现类似如鼠标光标移动这类的应用

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

如果频繁的修改boot.py、main.py文件,可能你不经意间损坏了这些文件,导致pyboard启动不正常,或者无法实现脚本的操作,那又该如何?

这里提供两种方式,一种是恢复出厂设置,另一种是重新烧录固件。

恢复出厂设置简单,步骤参考官方介绍:

http://docs.micropython.org/en/latest/pyboard/pyboard/tutorial/reset.html

另一种重新烧录固件会麻烦一些,当然,如果要真正玩好Micropython,这一方式是绕不过去的。

pyboard在github上提供了Micropython的源码,你可以用来编译固件或者移植到其它板卡上,另外,官方也提供了pyboard现成的固件,而且在持续更新中,所以也可以直接下载固件来使用。

固件下载首先需要让pyboard进入bootloader模式,步骤:将BOOT0连接3.3V,按复位键进入

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

BOOTLOARDER也需要安装相应的趋势。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

下载具体用的软件工具为ST DFU Se工具,驱动在安装好的drivers文件夹下。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

驱动安装完成

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

DfuSe界面,选择相应的固件

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

点击Upgrade下载

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

可以看到最新的固件是2017.5.4编译的

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

小结

写在最后,对于微控制器的开发来说,一般很少涉及到上层开发,诸多都如采集数据,做控制等底层开发,虽然C/C++也足矣了,但是多一种选择未尝不可,况且MicroPython具备了C/C++所不具备的更简洁的开发方式。所以,综合来说,对于MicroPython,个人表示认可,它为广大电子爱好者带来了更具效率的开发,可以应用到生活中的DIY中去。

但是,就目前市场环境来说,对于需要量产的产品开发来说,MicroPython的长期稳定性无从考证,目前好像也不支持JTAG/SW调试、并且只有少数的微控制器库支持,几乎这几项劣势对于现在需要量产的产品来说都较为致命的。如果对MicroPython比较感兴趣,不妨考虑先买块STM32F4 Discovery开发板,此板卡已经有官方移植的固件了,相对pyboard,价格也比较有优势。总之,如果你是个嵌入式行业的从业者,先把C/C++学好,有余力,再学MicroPython。

本文原文地址:https://www.eeboard.com/evaluation/pyboard

原创申明:本文为爱板网原创,谢绝转载!

提到MicroPython,可能大家首先想到的会是Python,那这两者有何联系又有何区别呢?

Python是我们常见的计算机程序设计语言,是一款比较容易上手的脚本语言,主要用于上层应用的开发,但它不适合实现硬件底层操控。而MicroPython,则是脱胎于Python,是一个叫Damien George的人花费数月时间打造的,基于ANSI C(C语言标准),然后在语法上又遵循了Python的规范,主要是为了能在嵌入式硬件上(这里特指微控制器级别)更易于的实现对底层的操作。截止到目前,已经有不少嵌入式硬件成功移植了Micropython,如pyboard、esp8266、WiPy、Espruino Pico、STM32F4 Discovery等。

笔者前段时间拿到了一块pyboard,正好可以来了解下MicroPython在这平台上的运作。

本文原文地址:https://www.eeboard.com/evaluation/pyboard

pyboard

说起来,pyboard才是MicroPython的真爱,毕竟这板子同样是出自Damien George之手。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

pyboard十分小巧,大小仅有40mm*33mm,便携性很OK,装在盒子里兜里一方,到哪都能开发。但是...真看到板卡,你会觉得这板子也太简单了,重要的是这玩意竟然还卖28英镑,但纯看硬件,你是无法把它的价格跟这么简洁的“身姿”匹配,好吧,这样看起来就算是把价值都附加到MicroPython上,这似乎让更加值得我们期待。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

PYBv1.1版本的,Made in Germany

pyboard基于STM32F405RG微控制器,通过板载的microUSB接口供电以及进行数据传输,板载外设包括了一个MicroSD卡座接口、4个LED灯、两个机械按键、一个加速传感器、时钟模块,其它外设信号都通过板子上的金属通孔引出,具体的信号定义可以参考下图。

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

  • 准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测已关闭评论
    A+
发布日期:2019年07月03日  所属分类:参考设计