文章

顯示從 2月, 2021 起發佈的文章

[筆記] ESP32 在 VS Code 開發環境的編譯與除錯

圖片
#  ESP32 評比與教學推薦 NodeMCU-32s 的理由 準備工作 1) 安裝 Visual Studio Code (VS Code),並安裝其他 C/C++ 插件。 2) 安裝 Python 套件 3) 下載並執行 Setup ESP-IDF Tools:檢查電腦系統的環境,並幫我們把編譯的工具鏈 tool chain 安裝起來。 4) 在 VS Code 安裝 ESP-IDF 插件,點選插件後,看到下圖一並設定路徑後,點擊安裝 ESP-IDF。安裝 v4.2 版本後,會詢問是否下載安裝工具鏈,如果系統已經有安裝,那就設好路徑即可。最後,再安裝 python 虛擬環境給 ESP-IDF,便完成整個環境設定。 圖一:ESP-IDF 擴充插件 建立專案 1) 從 ESP-IDF 選範例專案:按 F1 後,上方的選單輸入 " ESP-IDF: Show Examples Projects ",出現下圖二的範例專案列表,我們可以從中選一個範例來創建,例如我從當中選了 blink 或 hello_word。按下右上方的創建,就會在左半邊出現專案。 圖二:ESP-IDF 範例專案的列表 2) 編譯專案:按 F1 後,上方的選單輸入 " ESP-IDF: Build your project ",VS Code 環境就會開發進行編譯的工作,在下方的欄位會顯示編譯的過程。 3)  設定模組型號:按 F1 後,上方的選單輸入 " ESP-IDF: Device configuration ",彈出選項後,我們選擇 EPS32 為裝置的型號。 4) 電腦接上 ESP32 模組:按 F1 後,上方的選單輸入 " ESP-IDF: Select port to use ",在 VS Code 會自動彈出 COM port 讓我們選擇,點選 EPS32 連接的 COM 即可。 5)  燒錄程式碼到 ESP32:按 F1 後,上方的選單輸入 " ESP-IDF: Select Flash Method and Flash ",彈出選項 JTAG 或 UART,我們選擇 UART 為下載燒錄的方式 (前面我們已經設定 COM 了)。下載燒錄的方式設好了,下次只要

[模組] LD3320 離線語音辨識晶片與 ESP32 無線傳輸

圖片
#  ESP8266 WiFi to RS485 (MODBUS TCP to RS232) #  環境品質監控系統 實驗說明         使用離線語音辨識晶片 LD3320 ,獲得辨識結果後透過 ESP32S 無線模組傳輸到另一塊無線模組上顯示出結果,如下圖一所示。 無線模組 ESP32         無線模組 ESP 系列是上海樂鑫所開發,經由安信可二次開發後推廣,模組提供 AT command (UART) 的方式進行控制,但這種方式使用起來總是覺得隔了一層紗,有層距離感,操控上反應或速度不夠即時。幸運的是,隨著這塊模組的生態系越來越成熟,使用者也越多了,ESP 模組已經能像 Arduino 一樣,可以在 Arduino IDE 環境下開發編譯並下載,同時不少開發者也分享各類無線模組的案例,方便我們拿來參考 [1][2]。         研究過程中,發現 ESP32S 上面的 FLASH 所屬的接腳不能直接拿來當作 GPIO 使用,因為這樣會影響到 IDE 燒錄,FLASH D0-D3 + CMD + SCK 正好對應到 GPIO 6-11,電路規劃時得避開使用這幾根 I/O。另外,這塊 ESP32S 模組有提供 3.3V 和 5V 輸出,正好 LCD_I2C 模組需要吃 5V 電壓,而語音辨識晶片吃 3.3V 電壓,能同時滿足開發的需求。 圖一:以無線傳輸語音辨識的結果         ESP32S 是同時具有 WiFi 和藍芽功能的模組,實驗中,我們使用模組的藍芽傳輸功能,並參考範例中的 BluetoothSerial 程式,通訊的一端代碼是 Bluetooth Master,另一端為 Bluetooth Slave,下圖二是兩邊代碼的說明。將 Slave 端設定藍芽名稱 (ESP32-ASR) 後,等待 Master 來連接,在 Master 端則對名稱 (ESP32-ASR) 發出連線請求,接著雙方就會自動連接成功。 圖二:藍芽通訊雙方的原始碼 離線語音辨識         LD3320 是十年前的語音辨識晶片 [3],主要辨識中文,已不是新鮮貨。它不需要連上雲端,只要設定好辨識的字句儲存到晶片的暫存器內,它就能進行離線辨識。優點是辨識過程很快,而且是不特定人的辨識方式,對於設定後的字句,其辨識準確率算不錯的 (在無噪音干擾環境下)。