ESP8266版本的MicroPython和pybaord版本的有不少区别,无论从使用习惯还是API上,都有许多不同。下面以ESP-MP-01开发板为例,介绍使用方法。这个方法也可以用在NodeMcu、机智云等开发板上。

准备工作

在开始玩MicroPython前,我们需要做好准备工作。

硬件上,只需要一根macroUSB数据线,大部分安卓手机的数据线都可以,很多开发板也带有macroUSB线,即使没有,淘宝上几元包邮的也可以使用。

软件上,需要准备的东西多一点。

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。我们先介绍通过串口方式进行连接。

在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!') print('Hello!') import morse morse.send('Hello', 2) "

运行板载例程

大家拿到的开发板,已经带有例程了。如果刷了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']

micropython入门教程-【ESP8266】MicroPython的快速入门教程相关推荐

  1. STL教程:C++ STL快速入门

    目录 1.STL引言 2.STL是什么(STL简介) 3.STL历史 4.STL组件 5.STL基本结构 6.STL 使用方法 7.STL目录 网址:STL教程:C++ STL快速入门(非常详细) 第 ...

  2. PR软件入门教程 Adobe Premiere Pro 快速入门指南

    原文(包含图片)链接:https://www.prjianji.com/1.html 了解如何开始使用面向电影制作人.电视节目制作人.新闻记者.学生和视频制作人员的非线性编辑软件 Premiere P ...

  3. Python教程:网络爬虫快速入门实战解析

    建议: 请在电脑的陪同下,阅读本文.本文以实战为主,阅读过程如稍有不适,还望多加练习. 网络爬虫简介 网络爬虫,也叫网络蜘蛛(Web Spider).它根据网页地址(URL)爬取网页内容,而网页地址( ...

  4. python快速入门教程-终于理解python快速入门教程

    跟Java语言一样,python语言也有类的概念,直接使用class关键字定义python类.在python类,定义类的方法.然后直接使用类的初始化调用自身,获取相应的属性.以下是小编为你整理的pyt ...

  5. Docker容器化技术教程,24小时快速入门

    Docker介绍 Docker简介和安装 Docker是什么 为什么使用Docker 和普通虚拟机的对比 打包.分发.部署 小结 Docker部署的优势 Docker通常用来做什么 重要概念:镜像.容 ...

  6. python海龟教程_Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 7. 条件循环...

    条件循环能够让程序在条件成立时(即为真时)重复执行循环体中的语句.如果条件一直成立(即永远不会为假),则循环会一直进行下去,不会停止.如果初始时,条件不成立,则循环 1 次也不会执行.Python 中 ...

  7. java8 stream 教程_java8 Stream 流快速入门

    Stream 流 简介 Java 8 中,得益于 lambda 带来的函数式编程,引入了一个全新的 Stream流 概念,用于解决集合已有的弊端. 好处 我们先来看一个例子: 筛选出 names 中以 ...

  8. netbeans linux 教程,NetBeans IDE Ruby 快速入门教程

    NetBeans IDE Ruby 快速入门教程 本教程提供了在 NetBeans IDE 中开发 Ruby 应用程序的快速入门指南.本教程介绍如何使用 IDE 的 Ruby 支持来执行一些典型的应用 ...

  9. Python Scrapy中文教程,Scrapy框架快速入门!

    谈起爬虫必然要提起 Scrapy 框架,因为它能够帮助提升爬虫的效率,从而更好地实现爬虫. Scrapy 是一个为了抓取网页数据.提取结构性数据而编写的应用框架,该框架是封装的,包含 request ...

  10. python快速编程入门教程-半小时带你快速入门Python编程,Python快速入门教程

    1,Introduction to Python (Python入门) 2,Python是什么? Python 官方网站的描述 Python is a programming language tha ...

最新文章

  1. 关于有朋友询问,Spartacus,Fiori,SAP UI5这些术语的关系
  2. 端口停止使用_我停止使用
  3. java中content啥意思_JSTL标签中的body-content标签体内容输出格式的介绍
  4. 台式电脑、笔记本快捷选择启动项Boot 快捷键大全
  5. odbc数据源的配置
  6. 阿里云自研数据仓库 AnalyticDB 再捧 TPC 全球冠军
  7. Cause: java.sql.SQLException: Connection is read-only. Queries leading to data使用MySQL的时候遇到的问题,后续继续解决
  8. 【转载】使用Lucene.NET实现数据检索功能
  9. 至强E5系列CPU后面的数字含义
  10. 一天干掉一只Monkey计划(三)——延迟渲染,及材质ID
  11. AndroidEditText常用属性
  12. 2018最新中国知名区块链公司排行榜
  13. 2016年4月计算机组成原理试题答案,2018年04月自学考试02318《计算机组成原理》真题及答案...
  14. 总结 27 类深度学习主要神经网络:结构图及应用
  15. 用百度地图进行搜索周边的建筑,医院,餐厅,学校等。
  16. 操作系统内核Hack:(二)底层编程基础
  17. 数据和安全②HTTPS单向和双向认证
  18. Android 毛小软件,安卓薅羊毛软件
  19. 重磅!南京大学发布2023年博士研究生招生简章!
  20. DIR-645远程命令执行漏洞

热门文章

  1. 判断某点在多边形内——方法一
  2. CUDA 多GPU调用实现
  3. for myself
  4. pytorch中RNN注意事项(关于input和output维度)
  5. 如何屏蔽Tensorflow输出的调试和警告信息
  6. C++库介绍-标准库、类库
  7. 理解委托是类型安全的
  8. 【分享】具有“魔性”的通用软件开发框架
  9. BZOJ2563 阿狸和桃子的游戏
  10. jQuery操作Form表单元素