為什么學習MicroPython¶
我們1Z實驗室始終相信,編程是一種意識上的創造,應該是快樂的。同時我們也堅信:如果我們能夠Make Things Easy,那么學習將會更加的快樂和高效。
Python更適合作為初學者的入門語言¶
但是在很多在大學中,我們的老師依舊選擇C語言作為入門的編程語言,選擇C51單片機讓大家入門硬件控制,筆者在大學時對于這兩者的學習都有親身經歷,說起來一點都沒有感受到編程和創造的快樂。在C語言上,吃盡了苦頭且沒有吃到過甜頭,更不用說C51了。
我切身的感受到,要想熟練的使用C語言,這需要學習者花費更多的精力去理解引用,指針等等對于一個新手而言完全搞不清楚的概念。而且當我們使用C語言開發時,一個很小的功能就需要花費很多行代碼去實現。就拿最基本的拼接字符串而言:
#include <stdio.h> #include <string.h> int main () { char str[50]; strcpy (str,"hello, micropython!"); strcat (str,"hello, 1ZLAB!"); puts (str); return 0; }
首先,對于不懂C語言的人來說,代碼的可讀性并不是很高,其次,實現步驟繁瑣,需要用到額外的string
庫,同時在變量的聲明時你還需要考慮變量的類型,長度等問題,你更需要明白str
字符串數組的指針意味著什么...
如果是Python代碼,事情就沒有那么的繁瑣了:
str1 = 'hello, micropython!' str2 = 'hello, 1ZLAB!' print(str1 + str2)
即使你沒怎么學過編程,這三行代碼,我估計你也能夠大致明白他在干什么。
C語言固然很重要,他有著十分必要的價值,CPython和MicroPython都是由C語言所實現的。但是C語言需要你對計算機組成,對硬件底層有著十分深刻的認識,才能有所駕馭。除非兼顧硬件底層和追求性能,否則C語言已經無法滿足當今的眾多應用場景的需求了。
而Python學習成本簡單,且應用場景幾乎滲透到了各個方面:
-
科學計算
-
數據挖掘
-
Web后臺
-
圖像處理
-
人工智能
...等等,還有本教程想要教會你的硬件控制。
所以學會了Python,你有很多發展的方向供你選擇。同時我們1Z實驗室認為:
Python已經不再是單純的一門計算機編程語言,它更是一個無所不能的工具,我們可以使用Python讓一些復雜的事情,變得簡單。
MicroPython VS 傳統硬件開發¶
對于傳統的硬件開發而言,大多使用C/C++這類編譯型語言。
這種開發方式往往需要以下幾個步驟:
-
編寫代碼
-
編譯代碼
-
燒錄到芯片
-
運行程序
在這種模式下,當你發現自己的代碼里有一行出了bug,即使是很微小的改動就能夠修復,但你仍舊需要重新執行編譯和燒錄,才能夠正確的運行。
而對于MicroPython而言,只要我們給芯片刷入了MicroPython固件,(結合我們上節所解釋的解釋器的概念,這就相當于我們為自己雇傭了一個私人翻譯官,隨時在芯片里等待著為我們翻譯解釋代碼給芯片去執行。)之后的一切就簡單得多。我們可以以兩種方式來進行開發:
-
進入交互式解釋器 測試和運行代碼
我們可以進入交互式的解釋器環境隨時輸入代碼執行(進入這位翻譯官的辦公室,當面發號施 令),發現代碼有誤,可以立即更改。 -
將代碼保存到文件系統,讓解釋器開機之后按特定規則去執行。
我們還可以將代碼整理好,保存到MicroPython的文件系統中(沒錯這就相當于這位翻譯官的文件夾,你可以讓這位翻譯官按照你規定的順序去執行這些文件中的代碼)。MicroPython默認開機后從boot.py
開始執行,然后開始執行main.py
。
因此我們根本無需因為代碼的更改而反復編譯代碼和燒錄固件,只需要簡單的更改文件系統對應腳本文件中的內容即可。
可見,MicroPython的開發方式更加輕便和靈活。