第一回 新手上路(開始之前要準備)

本系列涉及到使用的軟體和硬體並不像以前那樣繁瑣、複雜。如果之前有這方面的瞭解,初學過Python或者用過80C51或STM32系列的MCU,那麼這一回的內容就跟吃饃沾醬豆一樣簡單了。

學程式語言總是越學感覺越難,往往都是興趣作為原始驅動,後面卻變成了生產力裡的驅動。

人生苦短,及時行樂,如果剛上手就能夠方便地驅動硬體,初學即巔峰,豈不是美滋滋?那麼MicroPython就比較容易上手,而且可以直觀的操作UART,I2C,SPI,PWM,ADC等等外設。

想一想初學80C51的時候逐個暫存器讀寫,那個心態都是小糾結;再到初學STM32的時候使用韌體庫進行初始化,流程雖然清晰但過程依然繁瑣。記得前兩年開始,ST官方都在推CubeMx,透過視覺化的介面,完成底層與外設介面的配置,能有效減少了專案開發前期的工作量,給人感覺就是用起來越簡單越好。

現在都是在擠出時間來搗鼓些小玩意,那就要以最快的速度把東西搞出來,也算是降低了不少時間成本。

如果只有可上網的瀏覽器,依然可以進行學習,詳情參考本回最後驚喜。

MicroPython是啥

本系列預設讀者已經掌握基本的Python程式設計能力。如果是初學者需要自行學習, 廖雪峰, 菜鳥教程 等Python 3教程都是容易上手的。

本系列前期能夠使用到的語法也非常簡單,只要理解能力不差(只要筆者描述的夠明白),也可以繼續學習下去,有關語法的疑問可以遇到之後再透過網際網路解答。

MicroPython的相關資訊可以透過MicroPython官網 瞭解到,不想看官網的原文,可以參考下面谷歌翻譯的簡介:

MicroPython是Python 3程式語言的一種精簡而高效的實現,其中包括Python標準庫的一小部分,並且經過最佳化可在微控制器和受限環境中執行。

MicroPython pyboard是一種緊湊的電子電路板,可在裸機上執行MicroPython,從而為您提供了可用於控制各種電子專案的低階Python作業系統。

MicroPython充滿了高階功能,例如互動式提示,任意精度整數,閉包,列表理解,生成器,異常處理等。 但是它足夠緊湊,可以在256 k的程式碼空間和16 k的RAM中執行。

MicroPython的目標是與普通Python儘可能相容,從而使您可以輕鬆地將程式碼從桌面傳輸到微控制器或嵌入式系統。

一句話概括,

MicroPython就是可以使用Python語言,方便快捷的完成MCU對外接裝置驅動的方式

ESP8266是啥

硬體(MCU的型號和外接裝置)的選擇本質上可以理解為坑多和坑少的嘗試(別問我為什麼知道的),總要面臨著成本和效能的均衡。

大多數開發階段,為了迅捷方便,可以買市場上設計成熟的模組。就像買電腦一樣,買一臺組裝好的機器,而不是東市買記憶體,西市買主機板,南市買顯示卡,北市買電源。

當然必須得是超高性價比的,即要便宜還要能打的那種。在MicroPython官網提供了一些硬體模組,針對該網站學習量身定製的。可是價格也不太親民,即使在某寶上,pyboard的套件也要大幾十往上。

而同樣支援MicroPython的ESP8266模組,ESP32的模組就比較便宜,並且該有的功能都有,就是想要這種便宜又能打的。這玩意長這樣:

MicroPython_ESP8266_IoT——第一回 新手上路(開始之前要準備)

先宣告

這裡不是廣告

,筆者某寶買的ESP8266串列埠WIFI模組才12。6元一個,還免運費(這TM比STM32C8T6還便宜啊),實在是覺得非常合算,連結在這需要自取 。

需要注意,此產品發貨的時候,下方兩排排針是不焊接的,需要到貨這後自行焊接。嫌麻煩的同學可以諮詢店家是否可以提供焊接,或找有工具的同學進行幫忙。如果不焊接的情況下,板載上有一顆LED燈可以進行控制。

該ESP8266模組基於MicroPython可以提供的內部功能和外設資源驅動有:

Delay and timing

Timers

Pins and GPIO

UART(serial bus)

PWM(pulse width modulation)

ADC(analog to digital conversion)

Software SPI bus

Hardware SPI bus

I2C bus

Real time clock(RTC)

Deep-sleep mode

OneWire driver

NeoPixel driver

APA102 driver

DHT driver

這些功能,外設驅動都非常有用,仔細探索一下,若能將這些功能悉數收入囊中,也是收穫頗豐了。

硬體準備

需要的材料也相當少。

MicroUSB資料線

上述ESP8266模組,燒錄程式的方式是透過ESP8266板載的一組UART0 (GPIO1=TX, GPIO3=RX)。

這組UART0在模組上連線了一個串列埠晶片 CH340 (也可能是其他的型號,電腦要安裝對應型號的驅動)。因此需要MicroUSB的介面連線電腦USB,進行供電和資料傳輸,示意圖如下:

MicroPython_ESP8266_IoT——第一回 新手上路(開始之前要準備)

所需要的MicroUSB資料線(就是以前很多人說的安卓介面)介面示意見下圖:

MicroPython_ESP8266_IoT——第一回 新手上路(開始之前要準備)

如果手頭有這根MicroUSB資料線,一定要確定

是否能夠進行資料傳輸

。有些線材原始功能是做充電使用的,可能不能進行資料傳輸。

其他裝置

有條件,有基礎,有想法的同學,可以一同採購其他的外設。結合本系列後面的內容,可能會用到0。96inch的OLED螢幕,HC-SR501人體紅外感應模組,DHT11溫溼度模組,SG90舵機等。

如果有其他驅動需求也可以酌情選擇,有目的性驅動可以更好的督促學習。

這些裝置也都是在上面的店鋪採購的,價格也比較便宜。根據ESP8266的資源來驅動這些硬體,對進行MicroPython的學習很有幫助。

軟體準備

主要使用的軟體為串列埠相關作為除錯的介面,配合工具進行指令碼上傳。

宣告

:由於部分軟體下載,可能會受到網路不可抗力約束,所以後續使用到的軟體工具會統一使用LZ網盤 進行上傳和下載:

連結

https://

sharewow。lanzoui。com/b0

0u1gt5c

密碼

:本來設定的是密碼在公眾號:

sharewow

後臺回覆

micropython

獲取;現在也可以私信回覆;現在不用了,密碼是share(經提醒,連結已經更新)。

串列埠相關

CH340的串列埠驅動程式,也有可能你需要的是PL2102的驅動(取決於購買的ESP8266模組上的串列埠晶片型號)。用於USB連線電腦之後,電腦識別到裝置。新版本的Win10應該都可以插入裝置,自動搜尋相關驅動了。

串列埠除錯助手,用於使用Python REPL(互動式直譯器,類似於CMD進入Python的互動介面),使用終端顯示器對程式進行模擬。

此時需要可以進行輸入的串列埠除錯助手,像常用帶寫入的串列埠除錯助手都可以,包括下面要用的MicroPython File Uploader 也可以,筆者習慣使用 Tera Term。

MicroPython File Uploader

這款軟體用來讀取或寫入ESP8266模組中4M的Flash內的檔案,比如內部的的boot。py和main。py等。

區別於REPL,可以在Windows中完成程式的編輯,再透過USB線纜傳輸到Flash中,接著復位,就會執行編寫的程式。

軟體介面展示:

MicroPython_ESP8266_IoT——第一回 新手上路(開始之前要準備)

軟體下載地址:MicroPython File Uploader 。

最好有個編譯器

編輯器要選自己習慣使用的,Notepad3 也好(這個得注意,Python對縮排要求嚴格,建議Tab一定要改成製表符),Sublime Text也好,Ultra Edit也好,怎麼方便怎麼來,筆者就使用個人熟悉的Atom 。

環境準備

Windows端要自己安裝Python 3,網上有很多教程,這裡指路廖雪峰的Python教程之安裝Python ;注意哦,安裝目錄可以選在

Customize installation

選項自己選擇,建議預設安裝在

C:\Python3

至此準備工作就做完了,接下來就可以開始學習了。

驚喜

如果等不及買來硬體,就想學習新知識怎麼辦?

那麼,

僅需要有一臺可以上網的電腦

,就可以進行MicroPython的學習了,官方給出了一個網頁版的操作平臺,叫做unicorn,筆者查過了中文名叫獨角獸。

地址為:MicroPython的線上操作平臺unicorn

該平臺上,你可以實現基於pyboard的MicroPython的學習和及外設驅動,提供的外設模擬裝置也非常多,視覺化做的非常棒,詳情介面如下:

MicroPython_ESP8266_IoT——第一回 新手上路(開始之前要準備)

可以直接選擇一個Demo,比如SERVO,執行指令碼就可以觀察到舵機運動的動畫:

MicroPython_ESP8266_IoT——第一回 新手上路(開始之前要準備)

非常直觀的學習方式,甚至還省去了硬體連線帶來的繁瑣,是一個非常棒的操作平臺。

結束語

第一回就這樣結束了。

第二回,將學習在ESP8266模組上點亮LED燈,致敬經典。

如果迫不及待,趕緊接著下一回繼續學習吧!

2020-12-20;