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 所示。现在,让我们检查源程序中最重要的部分:
第 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 串行监视器”非常相似,但可以在智能手机上运行。可以在条目中设置行尾字符。当然,
执行
使用新创建的系统非常简单。只需打开设备并加载软件。按钮检测是实时执行的。图 5显示了运行中的设备。要从智能手机发送消息,必须启动“通过 bt(免费)的串行终端”应用程序或其他等效应用程序。因此,输入相关的字符串或字符,然后按 enter。m5stack 屏幕将改变颜色。相反,要从 m5stack 发送命令,只需按下屏幕下方的三个按钮之一。该消息将立即收到并显示在电话应用程序上。
图 5:运行中的系统
结论
m5stack 是一个不错的设备和一个非常强大的开发系统。它基于esp32,确保安全运行。它已经装在一个优雅的外壳中,这为开发人员节省了大量的设计工作。用户可以根据自己的不同需求修改设备的功能。有很多可能性。例如,您可以将 led 二极管连接到 esp32 输出以模拟更重要的负载。
附件
附在这篇文章中,你会发现一个草图。在 arduino ide 上安装库后,只需复制、编译并上传到 m5stack。附件是:
m5stack bt
另请注意,arduino ide 将“.ino”源存储在具有相同程序标题的文件夹中。
【精彩预告】2017全国LED显示应用技术信息交流会
关于大功率瞬变抑制TVS二极管的详细介绍
关于SOA测试的主要内容
万维网已30岁了!万维网的演变和影响是惊人的
TI DLP NIRscan Nano评估模块可快速确定纺织品成分
与 M5Stack 和智能手机的双边蓝牙通信
卷积神经网络存在根本性的缺陷解析
如何实现掉电保护,它有哪些方案呢?
PRBTEK分享正确使用10x无源探头的方法
小米8Lite评测 值不值得买
嵌入式常见笔试题收集
“智”敬每一位用户,威马M7的加入为你带来更完美出行体验
教你几种电路分析的高效方法
基于ARM的视频监控终端的设计与实现
iPhone11使用体验分享告诉你iOS13.1要不要升级
何以在第三代半导体技术中遥遥领先?
OPPO Find9将发布两款 同时用骁龙835和653芯片,期待吧!尖叫吧!
基于S3C44B0X和SPCE061A的机器人设计方案
物联网连接爆发,模组企业业绩增长明显
蔚来Q3营收增长25% 净亏损幅度也在持续收窄