本文旨在補充《超圖解ESP32深度實作》第16章「BLE藍牙人機輸入裝置應用實作」單元,說明HID裝置的Vender ID(廠商識別碼,縮寫VID)以及Product ID(產品識別碼,縮寫PID),以及ESP32的BLEHIDDevice類別的一些方法,並且編寫一個藍牙BLE遊戲控制器程式庫。

本文旨在補充《超圖解ESP32深度實作》第16章「BLE藍牙人機輸入裝置應用實作」單元,說明HID裝置的Vender ID(廠商識別碼,縮寫VID)以及Product ID(產品識別碼,縮寫PID),以及ESP32的BLEHIDDevice類別的一些方法,並且編寫一個藍牙BLE遊戲控制器程式庫。

如果只是在WiFi管理員的程式中加入自訂的網站伺服器,切換到Wi-Fi設置入口時,它將顯示自訂的頁面,而非Wi-Fi設置頁面,本文將介紹兩種解決辦法。

設定ESP開發板Wi-Fi連線的網頁,叫做「設置入口(Configure Portal)」,由「WiFi管理員」程式庫的“WiFiManager”類別物件建立的HTTP伺服器提供服務,本文將介紹它的基本程式以及WiFiManager物件的方法。

Tzapu寫了一個WiFiManager(WiFi管理員),從2.x版開始同時支援ESP8266和ESP32開發板(以下合稱ESP開發板),提供ESP開發板一個方便實用的設置Wi-Fi網路連線的操作介面。本文將介紹Wi-Fi管理員的操作介面,以及中文化的Arduino範例程式。

ESP32晶片本身也持續推陳出新,例如:

處理器晶片的功能升級了,程式設計的能力也要跟著提昇,才能發揮與靈活運用ESP32的機能。所以本書從第三章開始介紹程式設計師慣用的「模組化」程式設計手法:物件導向程式設計(OOP),並且應用在後續數個章節。此外,依照開發ESP32程式的需要,書中也以一貫的圖解風格,說明類別繼承、虛擬(virtual)函式、多載(overload)、堆疊(stack)與遞迴、記憶體管理、回呼函式、指標存取結構、解析2進位檔…等C++程式設計技術。

本文將採用《超圖解Python物聯網實作入門:使用ESP8266與MicroPython》書本裡的範例,介紹Raspberry Pi Pico RP2040(以下簡稱Pico)、ESP8266和ESP32的MicroPython程式,在讀取類比輸入以及輸出PWM訊號的異同。Pico麵包板示範接線如下:

在Thonny IDE的互動環境(Shell)操作MicroPython開發板的方式,跟使用其他序列埠通訊軟體(如:PuTTY)不太一樣。使用序列埠通訊軟體連線,貼入程式碼之前,需要先按一下Ctrl+E鍵,互動環境(Shell)不支援Ctrl+E鍵,直接在其中按Ctrl+V鍵貼入程式碼即可:

Thonny最初由愛沙尼亞塔爾圖大學(University of Tartu)的計算機科學研究所開發,後來陸續收到許多在電子Maker圈赫赫有名的機構和公司的支援,包括樹莓派基金會(Raspberry Pi Foundation)、Micro:bit教育基金會、Adafruit、M5Stack…等等。

Arduino官方正式發布了Arduino IDE 2.0測試版,有別於1.x版編輯器是基於一個偏向互動藝術領域的“Processing”程式語言編輯器並且採用Java語言開發,2.x版全面改寫,基於一款開放原始碼的Eclipse Theia IDE並採用JavaScript語言和Electron框架開發、包裝成跨平台可執行檔,並整合Arduino的另一個開放原始碼專案“Arduino CLI”(命令行操作介面),提供開發板與程式庫管理員、開發板偵測、編譯與上傳程式碼等功能。

「使用ESP32控制板(一):WEMOS LOLIN32簡介」提到控制板的UART埠可透過軟體指定任意接腳,相當於Arduino程式的SoftwareSerial。用軟體設定時,UART腳可以是任意GPIO腳,但ESP32的34, 35, 36和39不支援數位輸出,所以不能用於TX。

Begin typing your search term above and press enter to search. Press ESC to cancel.