第1步:什么是MicroPython?
MicorPython是我們可以用來編程ESP8266的眾多編程語言之一模塊。它是Python 3編程語言的精簡版和快速版,與傳統的編程語言(如C和C ++)相比具有幾個優勢。
MicroPython旨在盡可能地與普通Python兼容。它具有完整的Python編譯器和運行時,并提供稱為REPL(讀取 - 評估 - 打印循環)的交互式提示。
MicorPython旨在支持幾種不同類型的微控制器。但是對于本教程,我將只使用一種模型:基于ESP8266的板(NodeMCU)。請注意,您可以使用相同的芯片購買幾種不同的電路板。
第2步:要求
為了能夠學習本教程,您只需具備Python的基本編碼經驗。您不需要具備任何以前的微控制器知識。 ,電子產品,甚至是MicroPython。
您還需要一臺帶有免費USB端口的Windows,Mac或Linux計算機,因為您將微控制器連接到計算機進行編程。
所需部件:
1 x NodeMCU(或其他基于ESP8266的板)
1 x紅色5mm LED
1x220Ω1/4W電阻
1x10KΩ旋轉電位器
1 x面包板
1 x USB到MicroUSB電纜
跳線。
步驟3:為什么ESP8266基板?
通過使用MicroPython,您可以充分利用ESP8266的一種方法。此外,ESP8266模塊是學習如何使用MicroPython的最佳平臺之一。這是因為ESP8266提供簡單的GPIO引腳控制功能以及無線功能,允許您測試MicroPython編程語言的所有方面。
ESP8266芯片在開源開發行業很受歡迎。有許多來自不同制造商的開發板使用ESP8266芯片。 MicroPython旨在提供可在大多數這些主板上運行的通用端口,并盡可能減少限制。該端口基于Adafruit Feather HUZZAH板使用其他ESP8266板時,請務必檢查其原理圖和數據表,以便確定它們與Adafruit Feather HUZZAH板之間的差異。這樣,您就可以適應代碼中的差異。
閱讀和資源:
ESP8266
Adafruit Feather HUZZAH
步驟4:設置計算機
在使用MicroPython對ESP8266板進行編程之前,您需要設置幾件事。
我們將在此步驟中完成設置過程。通過這種方式,您將了解如何配置與MicroPython一起使用的ESP8266板。
準備好
從此步驟到步驟6所需的一切是你的ESP8266和USB線。將ESP8266板連接到計算機。
如何操作。..。..
第1步:安裝設備驅動程序
如果你有一臺Linux計算機,那么你不需要為驅動程序安裝任何設備驅動程序以便識別微控制器。但是你有Mac或Windows機器,需要一個驅動程序來允許計算機將微控制器識別為串行設備。
《第2步:安裝Python
您將用于與ESP8266通信的工具是用Python編寫的,因此您需要在計算機上安裝Python。
如果您的操作系統沒有提供預先打包的Python,您可以訪問https://python.org下載任何支持的操作系統的官方版本。
STEP3:安裝esptool和rshell
安裝兩個軟件包,幫助您使用pip管理電路板。要打開終端并運行
pip install esptool rshell
STEP4 :下載MicroPython
當我寫這篇文章時,當前版本是1.11,固件文件名為esp8266-20190529-v1.11.bin
當你這樣做時,你可能會發現一個更新版本。
步驟5:使用Esptool.py閃爍MicroPython
在將新固件刷入電路板之前,最好先擦除以前的所有數據。這是您應該始終做的事情,以便新固件從干凈的狀態運行。
轉到放置 .bin 文件的位置。使用esptool.py擦除閃存。
對于Linux:
esptool.py --port /dev/ttyUSB0 erase_flash
對于Windows:
esptool.py --port COM3 erase_flash
您可能需要將命令中的串行端口更改為ESP8266板連接的串行端口。如果您不知道ESP8266的串口號,可以查看Arduino IDE。只需打開IDE,然后單擊工具|端口。你應該看到那里列出的ESP8266板的串口。將命令(/dev/ttyUSB0)中的串口替換為電路板的串口。
現在電路板已完全擦除,您可以刷新剛剛下載的MicroPython構建。這也是使用esptool.py命令完成:
esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash 0 esp8266-20190529-v1.11.bin
此命令將把MicroPython .bin文件的內容寫入地址為0的電路板。
確保您將命令(esp82688-2019-080529-v1.11.bin)中固件.bin文件的名稱更改為您下載的固件的名稱。
在ESP8266上成功安裝固件后您可以通過有線連接(UART串口)或思想WiFi訪問主板上的REPL。
步驟6:使用帶有Rshell的MicroPython REPL
您現在可以在ESP8266主板上啟動MicroPython。
我將向您展示如何連接到Python提示在你的主板上運行。這稱為REPL,代表“Read-Eval-Print-Loop”。這是您在使用常規Python解釋器時可能會看到的標準Python提示,但這次它將在您的主板上運行,并與它進行交互,您將使用與計算機的串行連接。準備好了?
要連接到您的主板并打開REPL會話,請輸入以下命令:
rshell --port
此命令將帶您進入rshell提示符。請參閱上面的照片。
如果您在Windows上關注本教程,請注意rshell在Windows上運行時有問題的歷史記錄。
因此,為了修復該類型:
rshell -a --port COM3
在此提示符下,您可以執行與您的微控制器板相關的管理任務,還可以啟動一個Python REPL,您可以使用它實時與電路板進行交互。所以只需輸入以下命令:
repl
要確保一切正常,請鍵入一個簡單的Python句子:
print(“Hello World”)
步驟7:控制引腳使用MicroPython
在這一步中,我們將學習如何使用MicroPython控制ESP8266引腳。為此,我們將設置一個設置,我們將切換連接到ESP8266板GPIO引腳的LED的狀態。這將幫助您了解如何使用MicoPython控制數字輸出。
準備好
您將需要以下內容來完成此步驟:
1 x NodeMCU
1 x紅色5mm LED
1 x220Ω電阻器
1 x面包板
跳線
構建
首先將LED安裝到面包板上。將220Ω電阻的一端連接到LED的正極(LED的正極通常是兩條腿中較高的一條)。將電阻的另一端連接到ESP8266板的引腳D1。然后將LED的負極連接到ESP8266板的GND引腳。連接如上圖所示。
設置完成后,通過USB電纜將ESP8266板連接到計算機。
如何操作。 。.
在REPL中鍵入以下代碼:
# blink LED every 1 second
def blink(pin=5, time=1) # blink function by default pin=5, time=1s
import machine # the machine module holds the pin configurations and modes
from time import sleep # import sleep for some delay
LED = machine.Pin(led_pin, machine.PIN.OUT) # configure LED as OUTPUT
while True: # run forever
LED.value(1) # set LED to HIGH
sleep(time) # wait 1 second by default
LED.value(0) # set LED to LOW
sleep(time) # wait 1 second by default
在RPEL會話中鍵入blink()以測試此代碼。這將閃爍LED每隔1秒連接到GPIO5。
您可以通過調用以下命令更改引腳和/或時間:
blink(pin=, time=)
按ctrl + c退出運行代碼。
您可以使用MicroPython讀取連接到ESP8266的輸入。繼續下一步,了解如何操作。
檢查視頻是否卡住了。
步驟8:淡化LED
在此步驟中,我們將學習如何使用旋轉電位計調節LED的亮度。我們將使用一種稱為脈沖寬度調制(PWM)的技術,它允許我們使用最多256個設置調暗LED。
注意:除了GPIO16外,ESP8266的所有引腳都可以用作PWM引腳( D0)。
做好準備:
您需要完成以下步驟:
1 x NodeMCU
1 x紅色5mm LED
1 x50KΩ旋轉電位計。
1 x面包板
跳線
構建
連接如上圖所示圖:設置完成后,通過USB電纜將ESP8266板連接到計算機。
如何操作。..
鍵入跟隨REPL中的代碼:
# Fading LED every 0.5 by reading data from the Potentiometer
import machine
from time import sleep
led_pin = 5 # led pin
POT = machine.ADC(0) # ADC0 pin
LED = machine.Pin(led_pin) # create LED object
LED_pwm = machine.PWM(LED, freq=500) # create LED_pwm object and set frequency to 500Hz
while True:
LED_pwm.duty(POT.read()) # get the value from the Pot and set it to the duty cycle
sleep(0.5) # wait 0.5
這將通過更改電位計的值來改變連接到GPIO 5的LED的亮度。
按ctrl + c退出正在運行的代碼。
檢查視頻是否卡住。
步驟9:從何處開始?
到目前為止,我們已經了解了如何在基于ESP8266的主板上配置和運行MicroPython。我們學會了如何控制引腳使LED閃爍,然后我們添加了一個電位器,以便使用脈沖寬度調制技術控制LED的亮度。
現在我們可以從傳感器讀取數據并將其發送到云端,我們還可以創建一個HTTP服務器,您可以在一個簡單的網頁中打印我們的數據等。..
-
ESP8266
+關注
關注
50文章
962瀏覽量
44852 -
Micropython
+關注
關注
0文章
68瀏覽量
4721
發布評論請先 登錄
相關推薦
評論