【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']
相關文章
相關標籤/搜索