ESP8266版本的MicroPython和pybaord版本的有很多區別,不管從使用習慣仍是API上,都有許多不一樣。下面以ESP-MP-01開發板爲例,介紹使用方法。這個方法也能夠用在NodeMcu、機智雲等開發板上。python
準備工做web
在開始玩MicroPython前,咱們須要作好準備工做。shell
硬件上,只須要一根macroUSB數據線,大部分安卓手機的數據線均可以,不少開發板也帶有macroUSB線,即便沒有,淘寶上幾元包郵的也可使用。windows
軟件上,須要準備的東西多一點。函數
MicroPython須要使用支持串口功能的終端,而不能使用普通的串口調試工具。不少只在windows下工做的嵌入式開發者可能不太習慣使用終端軟件,這可能須要一點時間去適應。論壇蒐集了經常使用的幾種終端軟件,你們能夠試試。工具
大部分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-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')就能夠查看文件列表,裏面有咱們提供了幾個例程。
import led_test led_test.led_test()
import morse morse.send('123', 2, 0)
morse.send()函數有三個參數,第一個是要發送的字符串,第二個是IO,在ESP8266上LED是GPIO2,若是用在pybaord上,能夠是'A13'這樣的用法。第三個參數能夠不用,它表明LED是正極驅動仍是負極驅動。
import pwm_test pwm_test.PWM_test()
若是要中止呼吸等,運行下面命令
pwm_test.PWM_stop()
import timer_test timer_test.timer_test()
要中止定時器,使用下面命令
timer_test.tm.deinit()
更多用法,你們能夠參考一下快速參考裏的用法,以及ESP8266的教程。
你們可能發現,運行上面的例程時,沒有加上路徑,由於咱們已經將demos目錄添加到系統路徑了。
import sys sys.path ['', '/', '/lib', '/drive', '/demos']