M5Stack 是與 Arduino 兼容的開源開發套件(參見圖 1)。它可用于非常快速地創建應用程序。該套件包括主機、USB type-C 電纜和端口連接電纜。它配備了TFT-LCD,您可以通過它查看文本、繪圖和圖像。四個側面都有連接到GPIO端口的連接器,在本項目中不會使用。電源由 AXP192 芯片處理。電池容量為 390 mAh,保證了良好的自主性,尤其是在不使用屏幕時。該設備還具有 SD 卡插槽和小型揚聲器。可以在官方網站上找到很多其他信息。
圖 1:M5Stack 的優雅美學
在正確下載其庫后,可以使用 Arduino IDE 對 M5Stack 進行編程。在 Arduino IDE 中安裝 ESP32 Boards Manager 后,還必須實現 M5Stack 庫。
藍牙及其應用
藍牙是在兩個設備之間交換數據和信息的最常用技術之一。雖然它的穩定性和節能性并不出色,但如今有很多系統采用它。此方法用于傳輸文件和信息、視頻、圖像和音樂,以及管理鼠標和鍵盤以及一般的短距離廣播。
項目目的
本文介紹的項目旨在展示 M5Stack 的巨大可能性及其一般功能。用戶可以根據自己的需要進行修改。最重要的方面是充分了解其操作背后的理念,以便能夠在其所有組件(包括軟件和硬件)中擴展系統。該設備不提供任何外部連接,因為所有功能均由 M5Stack 硬件執行。事實上,草圖同時使用按鈕、聲音和藍牙,以及彩色屏幕。這是一個簡單的清單,突出了這個小物體的巨大潛力,由于有一個小的內部電池,它甚至可以在沒有電氣連接的情況下工作。該項目的功能如下所示,也可以在圖2:
如果 M5Stack 從智能手機接收到“A”代碼,它的屏幕就會變白。
如果 M5Stack 從智能手機接收到“B”代碼,它的屏幕就會變紅。
如果 M5Stack 從智能手機接收到“C”代碼,其屏幕將變為綠色。
如果 M5Stack 從智能手機接收到“D”代碼,它的屏幕就會變成藍色。
如果您按下 M5Stack 上的“1”鍵,智能手機會收到“Key A”消息。
如果您按下 M5Stack 上的“2”鍵,智能手機會收到“Key B”消息。
如果您按下 M5Stack 上的“3”鍵,智能手機會收到“Key 3”消息。
從智能手機到 M5Stack,反之亦然,使用 Google Play 商店中的眾多應用程序之一發送字符串和信息。通過按下三個鍵,您可以獲得設備本身產生的相同數量的聲音。
圖 2:應用程序功能
草圖
源代碼非常簡短,附在本文后面。它是用 Arduino IDE 編寫的,但通過在開頭包含“M5Stack.h”文件來使用 M5Stack 庫的一些功能。它提供了 M5Stack 的多項功能,例如按鍵壓力管理、聲音生成、藍牙和屏幕著色。整個草圖很小,要清晰簡單。請記住,setup() 函數在固件執行期間僅重復一次,而 loop() 函數在此草圖中每 100 毫秒循環執行一次。已啟用行號顯示,以便您可以對程序的每一行進行注釋,如圖 3 所示?,F在,讓我們檢查源程序中最重要的部分:
第 1-2 行:這些行包含庫“M5Stack.h”和“BluetoothSerial.h”。它們包含這兩個附加元素的函數原型。
第 3 行:它創建了 BluetoothSerial 類型的 SerialBT 對象。它的工作方式與傳統的串行連接完全一樣,并且非常強大。
第 5 行:新的藍牙會話立即以設備名稱“M5Stack”開始。這顯然可以由程序員修改。
第 6-7 行:一個新的 M5Stack 會話立即開始。
第 10 行:檢查 BT 線上是否有智能手機發送的數據。
第 11 行:讀取 BT 串行線上的字符。
第 12-19 行:接收到的命令類型決定了顯示器的照明顏色。
第 21 行:更新按鈕狀態所需的功能。
第 22–33 行:按下 M5Stack 上的三個按鈕之一會導致在 BT 線路上發送一條帶有不同聲音的特定消息。
圖 3:順序行編號便于理解程序。
現在,讓我們檢查一些相當感興趣的程序行,以便對設備進行編程:
SerialBT.begin(“M5Stack”):該程序行啟動藍牙通信會話,為 BT 設備命名為“M5Stack”。搜索藍牙設備時會顯示在智能手機上,如圖 4所示。
char ch = SerialBT.read():此函數從藍牙線路讀取一個字符。
SerialBT.println(“Key A”):它在藍牙線路上發送一串字符。
M5.Lcd.fillScreen(GREEN):將 M5STack 的整個屏幕涂成綠色,在這種情況下。
M5.BtnA.isPressed():如果按下 M5Stack 的第一個按鈕,則返回“TRUE”的布爾函數。
M5.Speaker.beep():在 M5Stack 上產生一個簡單的嗶聲。
M5.Speaker.tone(1500, 200):產生持續 200 毫秒的 1,500-Hz 音調。
圖 4:M5Stack 被智能手機識別為藍牙設備。
要檢查 BT 線上是否存在數據,使用以下代碼:
if (SerialBT.available ()) {
char ch = SerialBT.read ();
if (ch == 'a' || ch == 'A')
M5.Lcd.fillScreen(白色);
…………..
…………..
}
相反,要檢查是否按下了 M5Stack 的三個鍵之一(BtnA、BtnB 或 BtnC),使用以下代碼:
如果(M5.BtnA.isPressed()){
…………..
…………..
}
該程序的其余部分非常簡單且非常直觀。您只需轉錄源代碼,編譯它,然后將其上傳到設備。如果沒有錯誤,它將立即開始執行。
智能手機上的藍牙應用
必須在智能手機上設置并下載應用程序才能使系統正常工作。它管理雙邊藍牙通信。當然,您也可以在配備 BT 密鑰的 PC 上使用軟件。為了測試系統,我們選擇了“Serial Terminal via BT (FREE)”應用程序,它非常輕巧且易于使用。它在 Play 商店中可用,并且不會占用大量內存空間。此應用程序的一個特殊功能是它能夠說話。事實上,多虧了語音輸出功能,這個應用程序會用它的聲音掃描它收到的字符串??梢酝ㄟ^設置菜單激活或停用此功能。此應用程序與“Arduino IDE 串行監視器”非常相似,但可以在智能手機上運行??梢栽跅l目中設置行尾字符。當然,
執行
使用新創建的系統非常簡單。只需打開設備并加載軟件。按鈕檢測是實時執行的。圖 5顯示了運行中的設備。要從智能手機發送消息,必須啟動“通過 BT(免費)的串行終端”應用程序或其他等效應用程序。因此,輸入相關的字符串或字符,然后按 Enter。M5Stack 屏幕將改變顏色。相反,要從 M5Stack 發送命令,只需按下屏幕下方的三個按鈕之一。該消息將立即收到并顯示在電話應用程序上。
圖 5:運行中的系統
結論
M5Stack 是一個不錯的設備和一個非常強大的開發系統。它基于ESP32,確保安全運行。它已經裝在一個優雅的外殼中,這為開發人員節省了大量的設計工作。用戶可以根據自己的不同需求修改設備的功能。有很多可能性。例如,您可以將 LED 二極管連接到 ESP32 輸出以模擬更重要的負載。
附件
附在這篇文章中,你會發現一個草圖。在 Arduino IDE 上安裝庫后,只需復制、編譯并上傳到 M5Stack。附件是:
m5stack BT
另請注意,Arduino IDE 將“.ino”源存儲在具有相同程序標題的文件夾中。
審核編輯 黃昊宇
-
智能手機
+關注
關注
66文章
18543瀏覽量
180870 -
藍牙通信
+關注
關注
0文章
31瀏覽量
10954
發布評論請先 登錄
相關推薦
評論