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

Bareboat Necessities的M5Stack堅韌Arduino船展示

帶M5Stack的工廠監(jiān)控系統(tǒng)

M5Stack M5Dial:一款 WiFi 和藍牙連接的智能旋鈕

評論