總是到了最後一刻才開始動筆......
ESP32 很火,對於帶有 WiFi 功能的 MCU 而言,不但功能強大,價格也非常親民。我個人認爲最主要成功的原因,是對於開源社群的支援相當到位,從 Espressif 原廠提供基於 Amazon FreeRTOS 修改而來的 esp-idf, 到 Arduino framework, 到 Micropython,甚至最近開始有溫度的 Rust 語言,在 github 上都非常活躍,開源貢獻者非常的多。反觀,我看台廠類似功能的 MCU晶片, 不但價格對於一般開發者不友善,甚至明明已經花了研發資源使用開源的系統,卻不願意光明正大的、友善的公佈源碼,大方的在 github 平台上建立起討論,進而與參與者完善系統,我看到頂多只有在“應用面”的支持。這只是作表明功夫,吸引不了全世界優秀的開源者一起進來幫忙增強系統。
ESP32 已經是一系列的 MCU 晶片了,我這裡所指的並不是指最早推出的 ESP32 晶片,而是包含 C 系列、S 系列、H 系列等,我基本上選用 ESP32-S3 的板子來帶入所有的實驗或者程式例子,後續的文章中會再作板子的介紹。
爲何我建議入門ESP32的朋友選擇使用 Micropython 來當作開發工具?原因很簡單,方便易學,甚至有些 ESP32 開發板在出廠的時候就已經燒錄好 Micropython, 我們只要一上電就可以開始寫程式了,這讓我想到以前唸書的時候使用的 Apple][ 電腦,一開機就有 Apple Basic 語言可以使用。而且不需要繁雜的編譯過程,透過交互的文字界面下 Python 程式指令,可以馬上得到回饋與結果。
相反的,在台灣主流社群媒體討論群組裡,絕大部分都是在討論 ESP32 Arduino framework 上的開發議題或應用,很多朋友其實不太會 C 語言,有些朋友甚至只會用積木來產生 Arduino 的程式碼,雖然積木開發環境整合的不錯,也讓我們省去一些中間的過程。但我只能說,這只能入門,對於瞭解程式的運作或開發,未來反而可能成爲依賴,或許會變成個人進步的阻礙。
我想在這一個月的時間裡,從簡單的開始,有系統的帶入以下的主題:
若是還有空餘時間的話,也會介紹 Micropython 如何整合 Line 的功能、藍牙 BLE 的功能,希望我自己能在未來的29天,順利的產出文件,期待與大家一起交流 Micropython 相關技術。