【ESP8266】MicroPython的快速入门教程

ESP8266版本的MicroPython和pybaord版本的有很多区别,不管从使用习惯仍是API上,都有许多不一样。下面以ESP-MP-01开发板为例,介绍使用方法。这个方法也能够用在NodeMcu、机智云等开发板上。python

 

准备工做web

在开始玩MicroPython前,咱们须要作好准备工做。shell

硬件上,只须要一根macroUSB数据线,大部分安卓手机的数据线均可以,不少开发板也带有macroUSB线,即便没有,淘宝上几元包邮的也可使用。windows

软件上,须要准备的东西多一点。函数

  • CH340的USB驱动
  • 终端软件

MicroPython须要使用支持串口功能的终端,而不能使用普通的串口调试工具。不少只在windows下工做的嵌入式开发者可能不太习惯使用终端软件,这可能须要一点时间去适应。论坛搜集了经常使用的几种终端软件,你们能够试试。工具

  • 超级终端(WinXP)
  • putty
  • kitty
  • xshell
  • SecureCRT
  • MobaXterm

大部分MicroPython的版本,物理串口都只使用了一种波特率:115200, n, 8, 1, none。固然对于象pyb这样使用的USB虚拟串口,其实串口参数随便设置成什么效果都是同样的,可是使用标准参数仍是能够减小没必要要的问题。测试

由于ESP8266自己没有USB接口,所以也没法象pyb那样使用虚拟磁盘功能,虽然内部有很大的Flash,却没法直接象磁盘那样访问,只能经过串口或wifi方式访问。文件传输只能经过象webrepl_cli、ESPlorer等软件完成,相比pyboard显得不够方便,但愿后续会有更好的文件传输和文件管理工具。命令行

经过USB链接开发板调试

不像STM32版本的pyboard,ESP8266自己没有USB,只能经过TTL串口和Wifi访问ESP8266。咱们先介绍经过串口方式进行链接。code

在MicroPython ESP8266开发板上,带有macroUSB接口,以及USB转串口芯片CH340,它能够方便实现计算机与ESP8266模块的链接。使用前须要先安装CH340的驱动,这样当MicroPython开发板链接到计算机,就会出现一个串口设备。下面是windows上显示的虚拟串口,Linux下一般是/dev/ttyUSB0。

使用终端软件链接开发板

为了使用MicroPython,咱们须要运行一个终端软件,下面以putty为例,其余软件用法也相似。

先要设置串口,选择CH340的串口(Windows上在设备管理器中查看串口,Linux下在/dev/中查看),并设置波特率为115200。有些软件还要设置更多参数,通常设置8位数据,无校验,1位中止位,无流量控制等。

而后在串口设置中将Flow Control改成None。

而后按下open,就能够进入终端界面了。这时界面上可能什么也没有,由于MicroPython已经运行,正在等待输入命令。咱们能够按下开发板的复位键,就能够看到屏幕上的提示信息。最开始有一段乱码,这是ESP8266模块开机时内部的调试信息,波特率和咱们的不相同,因此是乱码,后面就正常了。等出现三个尖括号的提示符,就能够输入命令了。

开机时会有一小段延时,屏幕显示Hello,同时LED在闪。这是在运行咱们的一个Morse(莫尔斯码)例程,向你们发送Hello。你们能够打印main.py,就知道运行的程序了。

在终端中输入程序

为何要使用终端软件,而不是串口调试软件,最主要的缘由就是在终端里能够灵活的输入程序,运行程序。

通常状况下,咱们都是在repl交互模式下输入代码,在python的命令提示符(>>>)后就能够输入代码,能够用左右方向键改变字符位置,插入新的字母。也能够用Del或者BS键删除字母。输入时,能够灵活使用TAB键进行代码补全。完成一行后用回车键换行。这些和标准的python环境同样。

在终端下,灵活使用快捷键能够帮助咱们。经常使用的快捷键有:

  • CTRL-A -- on a blank line, enter raw REPL mode(这个快捷键不是为了输入程序,通常不要使用)
  • CTRL-B -- 在空命令行下,回到正常 REPL 交互模式
  • CTRL-C -- 中断正在运行的程序
  • CTRL-D -- 软复位
  • CTRL-E -- 粘贴模式
  • 上下方向键 -- 调出之前输入命令

运行程序时,若是出现问题能够随时用Ctrl-C停止运行,或者在空命令行下用Ctrl-D软复位。若是还不能解决问题,就直接按复位键进行硬复位。

遇到有疑问的地方,能够输入help()查看帮助,甚至能够查看一个函数或者库的帮助,如help(machine)。

还能够用dir()查看已经载入的模块、函数、变量,也能够用dir查看一个库里面包含的内容,如dir(machine)。

粘贴代码

对于较长的程序,用键盘输入不但麻烦,效率低,也容易输入错误。一种方法是先将程序复制到剪贴板,而后粘贴进去。在空命令行下按下快捷键Ctrl-E就会进入粘贴模式:

在putty下,鼠标右键就能够将剪贴板内容复制到repl中。在其余软件中,可能稍有区别。粘贴后,用Ctrl-D完成粘贴,或者用Ctrl-C取消粘贴。

查看开发板上的文件

NicroPython开发板都是带有文件系统的,它将剩余的Flash空间,模拟成磁盘,能够经过多种方式访问。在pyboard上,由于带有USB接口,因此能够模拟成虚拟磁盘,经过系统的文件管理器访问,很是方便。而在ESP8266上,没有USB接口(只有USB转TTL串口),因此只能经过串口或者Wifi方式访问。

  • 文件列表

经过串口访问文件的方法,和pyb上是同样的,都是经过os模块。先看看下面例子,列出当前目录下的文件和目录:

import os
os.listdir()
['boot.py', 'demos', 'drive', 'main.py']

上面就是开发板默认带有的文件。os模块中的listdir()函数提供查看文件列表的功能。它还支持目录,例如:

os.listdir('demos')
['led_test.py', 'morse.py', 'pwm_test.py', 'timer_test.py', 'webservicedemo.py']

这就是开发板的demos目录下的文件。

  • 查看当前目录

        os.getcwd()

  • 改变当前目录

        os.chdir()

例如:

os.chdir('/demos')
os.getcwd()
'/demos'
  • 查看文件内容

MicroPython没有提供Linux下的cat或者windows的type这样直接查看文件的方法,可是能够经过文件读写的方式查看文件内容。如:

f = open('main.py', 'r')
f.readall()
"print('Welcome to using MicroPython LR ver 1.1.0!')\nprint('Hello!')\nimport morse\nmorse.send('Hello', 2)\n"

 

运行板载例程

你们拿到的开发板,已经带有例程了。若是刷了MicroPython官方固件,就会丢失例程,这时能够从新刷一下咱们提供的带有例程的开发板固件。

开发板的例程在/demos目录下,用os.listdir('/demos')就能够查看文件列表,里面有咱们提供了几个例程。

  • led_test.py,LED测试,演示了LED的基本控制,
import led_test
led_test.led_test()
  • morse.py,莫尔斯码,开机时的LED闪烁,其实就是在发送Hello的莫尔斯码。若是感受比较耽误时间,能够随时用Ctrl-C停止运行。
import morse
morse.send('123', 2, 0)

morse.send()函数有三个参数,第一个是要发送的字符串,第二个是IO,在ESP8266上LED是GPIO2,若是用在pybaord上,能够是'A13'这样的用法。第三个参数能够不用,它表明LED是正极驱动仍是负极驱动。

  • pwm_test.py,PWM测试,经过PWM改变LED亮度,实现呼吸灯功能。
import pwm_test
pwm_test.PWM_test()

若是要中止呼吸等,运行下面命令

pwm_test.PWM_stop()

 

  • timer_test.py,演示了定时器的用法,每秒翻转一次LED
import timer_test
timer_test.timer_test()

要中止定时器,使用下面命令

timer_test.tm.deinit()

 

更多用法,你们能够参考一下快速参考里的用法,以及ESP8266的教程。

你们可能发现,运行上面的例程时,没有加上路径,由于咱们已经将demos目录添加到系统路径了。

import sys
sys.path
['', '/', '/lib', '/drive', '/demos']
相关文章
相关标签/搜索