教程:在STONE串口屏上制作家用电器控制系统

教程:在STONE串口屏上制作家用电器控制系统

项目介绍(STONE触摸显示模块)

本教程将向您展示如何使用STONE STVC050WT-01触摸显示模块制作一个简单的家用电器控制系统。

STONE STVC050WT-01 触摸显示模块为 5 英寸,分辨率为 480×272。该模块已集成串口屏和触摸屏驱动所需的芯片,开发人员只需使用 STONE 官方 VGUS 设计软件进行 UI 界面设计并生成编程文件,下载至 STONE 显示模块,然后通过串口 (RS232/RS485/TTL)与之对应,即可实现复杂的UI设计功能。

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

具体流程如下:

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

下图展示了STONE STVC050WT-01显示模块的部分参数:

该显示模块仅是该系列产品中的一种。该系列还提供多种配置的显示模块。 www.stoneitech.com

STONE显示模块开发三步流程

  1. 使用STONE TOOL软件设计UI,并将设计文件下载至显示模块。
  2. MCU通过串口与STONE显示模块进行通信。
  3. MCU根据步骤2获取的数据执行其他操作。

UI 界面设计

今天我们制作了一个简单的家用电器控制界面。通过 Photoshop,我设计了以下简单界面:

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

功能:

当按下灯光按钮时,页面跳转至 2,显示三个灯光的开关状态。当按下开关按钮时,屏幕模块的串口发送开关信号协议。外部 MCU 可通过串口直接向屏幕模块发送数据,使屏幕直接显示灯光开关状态。

使用STONE串口屏的新项目

在STONE官网可下载TOOLS 2019软件的最新版本,通过该软件可进行UI设计:

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

STONE TOOL是一款无需安装的图形界面设计软件。下载后解压即可直接运行。需注意该软件需在Windows 8及Windows 10系统上以兼容模式运行

由于我使用的是分辨率为480*272的STVC050WT-01,且默认Flash空间大小为128Mbyte(可扩展至1024MByte),因此我选择了128Mbyte。

设置项目名称和存储路径,然后点击“确定”完成。

右键点击“Picture”目录并删除0.jpg:

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

在STONE TOOLS中添加UI图像

右键点击“picture”目录,将我们准备的两个UI图标添加到项目中:

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

在STONE TOOLS中添加“stock”字样

右键点击“Font file”,选择合适的字体添加到项目中。这里我选择了ASCII 24×48。

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

添加按钮

我们在 STONE TOOL 软件中的第一个 UI 上为“Light”按钮设置功能:

点击“Light”按钮时,将跳转到第二页。如何实现?

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

点击“Button”图标绘制按钮区域:

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

黄色区域代表用户绘制的按钮区域。按钮属性在STONE TOOL软件右侧的属性栏中列出:

只需将“pageswitch”选项设置为1,即可在按下按钮时切换到第二页。

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

在“Tool”中选择“Generating configuration file”,然后选择“Virtual serial port screen”。

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

然后我们将页面2左上角的箭头改为按钮:

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

当用户按下此按钮时,将返回第一页。

添加文本显示

使用文本变量控件,圈出“light1”后的空白区域:

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

然后点击刚添加的文本变量,STONE Designer右侧将显示属性界面,主要修改以下参数:

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

其中,“变量内存地址”指存储显示内容的内存地址。一个地址可存储两个字节。默认显示内容为“OFF”,需占用三个字节的内存空间。这意味着我们将“OFF”存储在地址00200021中。

带返回值的按钮

我们上面使用的控件是“Button”。此“Button”控件不返回值,这意味着当用户按下按钮时,显示模块的串口不会向MCU发送数据。

如果用户按下按钮并希望屏幕模块将数据返回给MCU,我们可以使用“return pressed key-value”控件:

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

属性栏设置如下:

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

将UI设计文件下载到显示模块

  1. 将USB闪存盘插入计算机
  2. STONE TOOL中点击“下载到U盘”按钮

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

3. 拔出USB闪存盘
4. 将USB闪存盘插入显示模块的USB接口并等待升级完成。升级完成后会发出提示音
5. 测试
串口通信
键值返回
将程序下载到显示模块后,打开电源,通过USB-TTL接口连接计算机,按下Light1的灯光按钮,返回串口数据

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

Press the button to turn off the light

Serial data return: A5 5A 06 83 00 26 01 00 A9

Use-STONE-HMI-Make-a-Smart-Home-Control-System (1)

A5 5A: 帧头

06: 指令字节长度,83 00 26 01 00 A9 总共6字节(不包括数据帧头)

83: 读取变量内存指令

00 26: 变量存储地址

01: 数据字长度,00 A9,1字长度(2字节)

00 A9: 用户数据内容,取决于设置的按键。

写入寄存器数据

该指令将55 aa写入数据存储区域的地址0x0020

0xA5 0x5A 0x05 0x82 0x00 0x20 0x55 0xaa

由于我们已将 Light1 的文本显示存储地址设置为 0x0020,因此通过串口向该地址写入数据等同于更改 Light1 文本显示框的内容。

读取寄存器数据

串口向显示模块发送以下命令:

0xA5 0x5A 0x03 0x83 0x00 0x20

表示读取0x0020的值,在更改项目中,表示读取灯的开关状态。

    滚动至顶部