Pycharm使用MicroPython開發ESP32
- 在B站看到王銘東老師的開發ESP32的教程
- 王銘東老師推薦使用Thonny,但是寫程式碼提示不夠智慧
- 分別試了VSCODE和Pycharm,Pycharm更為方便
- 這篇部落格已錄製成影片發在 BiliBili
版本號
軟體 | 版本 |
---|---|
Pycharm | 2022.3.3 社群版 |
MicroPython | 1.19.1 |
python | 3.10 |
前期準備
Pycharm安裝外掛
- Pycharm安裝MicroPython外掛
開啟"File" > "Settings..." > "Languages & Frameworks" > "MicroPython"
- "Enable MicroPython support":勾選
- "Device type":選擇"Pyboard"
- "Auto-detect device path":不勾選
- "Device path":填寫ESP32的埠號,比如:我電腦中是"COM5"
建立python環境,並使用pip安裝必要依賴
- 建立python檔案時,Pycharm會提示需要安裝依賴
pyserial==3.5
docopt==0.6.2
adafruit-ampy==1.0.7
開啟服務欄中的"MicroPython"
- 點選執行圖示
- 看到類似Thonny中的"MicroPython"版本資訊及為成功
開發及除錯
新建一個python檔案如:"light.py",編寫MicroPython程式碼,如王銘東老師這篇點亮LED燈的程式碼
- 控制ESP32的LED燈閃爍
import machine
import time
pin2 = machine.Pin(2, machine.Pin.OUT)
while True:
pin2.value(1)
time.sleep(1)
pin2.value(0)
time.sleep(1)
- 點選右上角的執行配置(Run/Debug Configurations)
新增"MicroPython"配置
- Name: 用於顯示在右上角執行下來列表中,大家隨便填
- Path:選擇要上傳檔案的完整路徑
- Open MicroPython REPL on success:建議勾選,用於上傳完成後跳轉到MicroPython
- 點選右上角,執行配置
- 此時會發現一個報錯,提示內容大致是"...could not enter raw repl"
在社群的這篇帖子找到解決方法
- 在專案目錄中
- 開啟"External Libraries" > python環境 > "site-packages" > "ampy" > "pyboard.py"
- 在檔案中搜尋"self.serial.write(b'\r\x01') # ctrl-A: enter raw REPL"
這這句上方增加"time.sleep(2)"
- Pycharm會有提示修改資訊,同意一下
- 再執行就可看到執行成功
到MicroPython介面中
- 使用import匯入檔案,並執行(所以python程式碼中不要判斷是否main方法,否則無法執行)
import light.py
分析
- 開啟Thonny可以看到,ESP32裝置的檔案多了一個light.py
- 所以Pycharm點選執行時,是將python檔案上傳到了ESP32內
- 我們再透過import的方式匯入,由於檔案中沒有判斷main方法,所以直接執行了
結尾
- Thonny是個不錯的工具,對MicroPython相容性很好,但是程式碼提示不夠聰明
- 可以Pycharm和Thonny搭配使用
- 安利一個剛發現的線上模擬的網站Wokwi ,使用方式檢視這個影片