在前面的介紹文章中有提到過,NodeMCU可以使用標準的Arduino IDE來開發其應用,也可以使用原本它預設的Lau開發,而對於初學者來說,受歡迎的Python也可以用來編寫NodeMCU的程式,更棒的是,還可以使用交談式的方式來編寫程式,一次執行一個指令,而且馬上看出結果。不過,為了要能夠達到這樣的環境,還有一些安裝的步驟必要要完成,這篇文章就來教同學們如何設置NodeMCU的MicroPython開發環境。

首先,還是要先安裝NodeMCU的USB驅動程式,這個在第一篇文章中就有教學,基本上就是前往該驅動程式的網站,依照使用的作業系統安裝合適的程式就可以了。如果同學們使用的是Windows作業系統,會在裝置管理員中看到安裝好的裝置(不同的COM埠),如果是MacOS,則可以在/dev目錄下看到tty.SLAB_USBtoUART這個裝置。

驅動程式安裝完成之後,接下來要把MicroPython所需要的Firmware燒錄到板子上,Firmware可以這個【網址】中找到。下載的畫面如下所示:

請直接選擇最新版的下載就可以了。有了這個韌體檔案之後,還要有能夠燒錄上去的工具程式,既然我們打算使用MicroPython開發,所以當然就是要使用Python的燒錄工具esptool,此工具只要在Python的可用環境下透過pip install esptool即可順利完成安裝。

然後,透過以下esptool.py命令把NodeMCU原有的內容抹除,抹除的過程及訊息如下(以MacOS為例):

$ esptool.py --port /dev/tty.SLAB_USBtoUART erase_flash
esptool.py v2.4.0
Connecting........_
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
MAC: 2c:3a:e8:10:dc:bc
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 12.6s
Hard resetting via RTS pin...

下面則是Windows 10的例子:

(base) C:\nodemcu>esptool --port COM7 erase_flash
esptool.py v2.4.1
Serial port COM7
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
MAC: 60:01:94:43:3a:c9
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 6.0s
Hard resetting via RTS pin...

接著,也是使用esptool.py把剛剛下載的韌體檔案燒錄到NodeMCU中,指令以及執行的過程如下所示(MacOS版本):

$ esptool.py --port /dev/tty.SLAB_USBtoUART --baud 460800 write_flash --flash_size=detect -fm dio 0 esp8266-20180511-v1.9.4.bin 
esptool.py v2.4.0
Connecting........_
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
MAC: 2c:3a:e8:10:dc:bc
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0240
Compressed 604872 bytes to 394893...
Wrote 604872 bytes (394893 compressed) at 0x00000000 in 9.9 seconds (effective 486.7 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

以下是Windows 10版本的燒錄過程:

(base) C:\nodemcu>esptool --port COM7 --baud 460800 write_flash --flash_size=detect -fm dio 0 esp8266-20180511-v1.9.4.bin
esptool.py v2.4.1
Serial port COM7
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
MAC: 60:01:94:43:3a:c9
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0240
Compressed 604872 bytes to 394893...
Wrote 604872 bytes (394893 compressed) at 0x00000000 in 9.8 seconds (effective 492.3 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

然後就完成了。之後,每一次要登入NodeMCU編寫MicroPython程式,在Windows作業系統之下可以使用PuTTY,在MacOS作業系統中則是到終端機中執行screen命令,如下所示:

$ screen /dev/tty.SLAB_USBtoUART 115200

當左上角出現一個方塊游標時,到NodeMCU上按一下RST按鈕,很快地就會出現MicroPython的Shell介面了,如下圖所示:

如此就出現Python的標準Shell介面了。有了這個介面,就可以直接在上面編寫MicroPython程式了。如下圖所示,我們使用MicroPython語法在Python Shell中編寫了一個簡單的LED閃爍程式:

 

在按下Enter之後,就可以看到LED在閃爍了喔。下圖則是在Windows 10作業系統之下檢查目前連線的NodeMCU所在之COM位置(在此例為COM7):

同樣在Windows 10之下,使用PuTTY連線程式,需選用Serial介面,並指定COM7,以及115200傳輸速率,如下:

如上圖,按下【Open】按鈕就可以順利進行連線進入MicroPython Shell了,以下是在Windows 10之下透過PuTTY登入NodeMCU的畫面:

此時如果無法輸入任何文字的話,請再到PuTTY的Serial設定處把流量控制的設定關閉就可以了,如下圖所示:

因為Python是直譯式的語言,所以它是逐行執行的,在Shell環境下也是輸入一行即執行一行,在測試上非常方便,可以直接透過指令測試硬體的連線是否正確,不需要像是Arduino IDE一樣,要全部編譯完成上傳之後,開始執行之後才能夠知道結果。

(729)