M5Stack是一個(gè)模塊化、可堆疊和可編程的開(kāi)發(fā)模塊,專(zhuān)為快速輕松地構建物聯(lián)網(wǎng)項目和創(chuàng )建原型而設計。該模塊基于ESP32 微控制器,帶有各種傳感器、輸入、輸出和彩色液晶顯示器 (LCD)。此外,M5Stack 內核采用矩形模塊封裝,尺寸為 54 x 54 x 18 mm,并配有 2 英寸薄膜晶體管 (TFT) LCD。
如前所述,該裝置有多個(gè)輸入和輸出選項,例如三個(gè)按鈕、一個(gè)揚聲器和一個(gè) microSD 卡插槽。圖 1 說(shuō)明了 M5Stack 內核。

圖1.M5Stack 。圖片由M5Stack提供
M5Stack 內核獨特的功能之一是其模塊化設計生態(tài)系統。該模塊可以輕松地與其他 M5Stack 模塊堆疊,允許用戶(hù)添加額外的功能并擴展其項目的功能。M5Stack 模塊化生態(tài)系統提供各種模塊,例如攝像頭、GPS 和電池模塊單元。
在本文中,我們將探討 采用 M5Stack 內核的角度傳感器和伺服電機單元。這個(gè)動(dòng)手項目的成果是構建了一個(gè)基于電位器的伺服電機控制器,帶有 M5Stack TFT 顯示器。
項目概覽——了解人機交互 (HCI)
基于 M5Stack 電位器的伺服電機控制器項目將展示使用現成的電子產(chǎn)品和軟件構建人機交互 (HCI) 設備的多功能性和易用性。該項目的目的是說(shuō)明如何使用基于 ESP32 的小型控制器實(shí)現人機交互等 HCI 概念; ESP32 的平臺將與機電對象進(jìn)行人機交互。該項目將使讀者了解如何使用 M5Stack 的 TFT LCD 從機電系統顯示和獲取交互數據。此類(lèi)數據可用于使用Python、PyTorch 和 Pandas 等編程語(yǔ)言探索網(wǎng)絡(luò )物理系統 (CPS) 的機器學(xué)習概念。
作為本項目的關(guān)鍵技術(shù),推薦參考M5Stack電子藍圖書(shū)。更具體地說(shuō),第二章“M5Stack 單元動(dòng)手實(shí)踐”提供了對 ESP32 模塊化控制器和可編程傳感和控制單元的電子電路和設置的技術(shù)見(jiàn)解。本書(shū)還包括動(dòng)手項目和互動(dòng)測驗以吸引讀者;旧,您可以將此項目視為本書(shū)的延伸;因此,本項目將不解釋詳細的軟件設置說(shuō)明。
設置 M5Stack
該項目的總體概念是說(shuō)明使用 M5Stack 內核作為主要 ESP32 嵌入式平臺的小型伺服電機控制器的原型構建。該項目的初始設置是添加一個(gè)外部電位器來(lái)控制伺服電機。電位器將向 M5Stack 內核提供旋轉信息。然后,M5Stack 將模擬分壓數據轉換為等效脈寬調制 (PWM)控制信號,從而操作電氣有線(xiàn)伺服電機。圖 2 顯示了原型的系統框圖。

圖 2.基于 M5Stack 電位器的伺服電機控制系統框圖。
接下來(lái),使用與角度傳感器相同的內部電子元件,將電位器電路連接到 M5Stack 的 ESP32 微控制器。M5Stack 角度傳感器由一個(gè) 1 KΩ 電阻器與一個(gè) 10 KΩ 電位計串聯(lián)而成。此電路配置提供分壓功能,允許一系列離散模擬信號值出現在指定的 ESP32 模數通用輸入輸出 (GPIO)引腳上。圖 3 顯示了 M5Stack 角度傳感器。

圖 3. M5Stack 角度傳感器單元。圖片由M5Stack提供
此外,該電路方法允許電位器相對于地的輸出電壓為 +3.3 V,而且 ESP32 微控制器的 GPIO 引腳符合 +3.3 V 標準。因此分壓電路的輸出電壓+3.3V不會(huì )損壞ESP32單片機。自制角度傳感器的電子電路原理圖如圖 4 所示。

圖 4.自制角度傳感器電子電路原理圖。
請注意,J1 參考標志代表焊接到角度傳感器 PCB 上的四針母連接器。
從這里,您可以使用圖 5 中所示的電氣接線(xiàn)圖作為參考將自制軟件角度傳感器連接到 M5Stack ,從而在無(wú)焊面包板上連接電子電路。

圖 5.自制角度傳感器無(wú)焊面包板圖。
請記住,可以使用 UiFlow 軟件設計 M5Stack 的 TFT LCD 布局——我們將在下一節中對此進(jìn)行介紹。
接下來(lái),您將使用杜邦線(xiàn)在 M5Stack 和自制角度傳感器無(wú)焊面包板電路之間創(chuàng )建一個(gè)延長(cháng)線(xiàn)束。如圖 5 所示,將三根杜邦線(xiàn)插入白色四針母頭連接器,用于將電路與 M5Stack 控制器進(jìn)行電氣連接。圖 6 說(shuō)明了這種電氣布線(xiàn)接口連接和連接方法。

圖 6.電位器到 M5Stack 內核的無(wú)焊面包板接線(xiàn)。
UiFlow軟件介紹
對于這個(gè)項目,我使用了一個(gè)名為UiFlow的程序。UiFlow 是一個(gè)軟件開(kāi)發(fā)平臺,旨在簡(jiǎn)化控制器、模塊、傳感器和單元的 M5Stack 產(chǎn)品的編程和原型制作過(guò)程。該軟件提供了一個(gè)圖形用戶(hù)界面 (GUI),用于對 M5Stack ESP32 微控制器進(jìn)行編程。開(kāi)發(fā)人員可以拖放代碼塊并創(chuàng )建邏輯代碼來(lái)對 ESP32 微控制器進(jìn)行編程。UiFlow 允許使用在線(xiàn)編輯器或桌面可軟件包進(jìn)行編碼。
UiFlow 在線(xiàn)編輯器可以從 M5Stack 網(wǎng)站獲得,網(wǎng)址如下。還有適用于 Windows、Apple 和基于 Linux 的計算機的桌面版本。
M5Stack內核TFT LCD顯示電位器轉動(dòng)數據的版圖設計如圖7所示。

圖 7.配置 M5Stack Core TFT LCD 以顯示電位器角度信息。
要了解有關(guān) UiFlow 的更多信息,您可以前往 M5Stack 電子藍圖書(shū)的第 2 章了解更多信息。
顯示電位器讀數
將電位器連接到 M5Stack 內核后,需要軟件來(lái)顯示電氣元件的旋轉值。UiFlow 軟件將用于顯示電位器的旋轉角度(以度為單位),代碼塊包含伺服電機控制器的三個(gè)主要操作。
指令代碼塊功能包括:
• 從電位器讀取原始數據到變量
• 提供適當的可變比例因子以確保正確的角度顯示
• 以度數顯示角度
UiFlow 代碼塊如圖 8 所示。

圖 8. UiFlow 電位器角度顯示代碼塊。
除了代碼塊之外,伺服和角度傳感器單元也包含在代碼塊調色板中。這些單元將添加一組新的代碼塊,以便在整個(gè)控制器產(chǎn)品原型中正確操作這些設備。如圖8所示,“servo_0,servo_0旋轉角度”和“獲取angle_0值”是添加到代碼塊調色板中的新單元指令。您可以通過(guò)選擇單位加號按鈕來(lái)包含這些代碼塊。從設備列表中選擇伺服和角度單元會(huì )將所需的代碼塊添加到調色板,以完成項目控制器的代碼構建。通過(guò)選擇軟件 IDE 控制面板上的 RUN 按鈕,UiFlow 代碼塊將在 M5Stack 上執行。
使用 UiFlow 控制伺服電機
除了顯示電位器的旋轉角度外,UiFlow 代碼塊(如圖 8 所示)還控制伺服電機。將伺服電機連接到 M5Stack 需要使用與電位器相同的電氣接線(xiàn)技術(shù)。部分電子電路示意圖,如圖 9 所示,說(shuō)明了連接到 M5Stack ESP32 GPIO13 引腳的伺服電機電氣接線(xiàn)。

圖 9.部分電子電路原理圖:附在 M5Stack ESP32 微控制器上的伺服電機。
電子電路原理圖上的 J2_A 連接器代表 M5Stack 上的 A 端口。J2_B 參考標志代表插入伺服電機黑色三針母連接器的電線(xiàn)跳線(xiàn)線(xiàn)束針腳。
M5Stack Core 到伺服電機的電氣接線(xiàn)如圖 10 所示。

圖 10. 伺服電機與 M5Stack 進(jìn)行電氣連接。
完成的基于 M5Stack 電位器的伺服電機控制器原型如圖 11 所示。

圖 11.終的 M5Stack 基于電位器的伺服電機控制器原型構建。
作為該項目的終參考,圖 12 顯示了基于 M5Stack 電位器的伺服電機控制器的完整電子電路原理圖。

圖 12.基于 M5Stack 電位器的伺服電機控制器電子電路原理圖。
|