基于瑞萨RA6M5嵌入式上智慧会议室控制面板的实现方案

本文主要是介绍基于瑞萨RA6M5嵌入式上智慧会议室控制面板的实现方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

智慧会议室控制面板

一、项目背景介绍

    会议室是办公室里重要的场地,为决策,沟通,协调等提供了必要的工作场所。在会议室里有很多信息化的设备,为会议提供了各种高效而便利的环境。随着数字科技的发展,信息沟通交流也愈发频繁,会议室承载越来越多的功能。如:商业谈判、学术交流、部门沟通、访客接待等。作为各类信息高度集中的重要场所,智能办公是不可或缺的一部分。

       而很多会议室这些设备是由不同供应商提供,使得这些设备管理和使用分散和混乱。而智能会议室就是对传统会议室进行改造升级,提供智能会议室整体解决方案,满足用户视频会议,会议预约及会议室设备控制等需求,实现了智慧会议体验,让企业会议更加高效、智能。

      本项目就是使用RA6M3-HMI开发板,结合温湿度传感器与串口通信,对会议室内的灯光系统,空调,窗帘,音响,LED屏,视频会议系统进行集中的控制和管理。通过本控制面板能够控制会议室常用的设备和操作,通过智慧化的集成控制,大大提升会议室管理的便捷性,从而提升会议效率。

1

二、项目主要功能

      智能会议室基于用户会议智能化的需求,通过AIoT物联网的方式,集成大数据与信息可视化,成功的解决了这项难题。免除会议冲突,提升管理效率的同时,带来便捷化的高效率体验,打造一个全新的智能会议室。

1、打造全新智能会议,高效化便捷化智能会议室

智能会议室控制面板联动设备软硬件一站式管控,通过控制LED显示屏设置高端大气的会议主题,无需敲门寻找会议室,在门口便可直观看到本场会议信息资讯,解决会议尴尬冲突。

2.控制管理会议室设备

智能会议室控制面板除开基础的线上会议预约功能外,系统还将整体设备联动,从会议室的灯光、空调、窗帘、会议面板、会议中控集成化管控,从软硬件层面上考虑会议室智能化的需求配置,并可定制化需求配置相对应的客制化系统,打造全新的智能会议室。

会议开始前,联动设备中控,即可设置提前打开办公室空调、灯光、投影等设备

3、上场会议时间过长,无时间提醒,会议冲突很明显。

智能会议室控制面板灯管控制基于情景模式,终端根据会议室使用状态,一键设定灯光组合和变换颜色,让人一目了然。

会议结束设备提醒,通过硬件联动控制会议时间,提升会议效率

三、RT-Thread开发概述

    智能会议室控制面板软件系统所使用的RA6M3HMI开发板,已经支持RT-Therad系统,这里就采用RT_thread实时操作系统开就发。图形界面采用LVGL图形库,结合所开发会议业务逻辑部分以及数据采集与收发,完成整个软件开发。

基于RT_thread系统模块架构图如下:

其中RT-Thread开启多个线程支持系统的运行,主要线程有:

  1. LVGL UI线程,该线程你完成LVGL的图形界面的显示和交互,实现UI各个组件的显示和人机交互时界面的绘制
  2. 传感器数据采集,这里使用了单独的线程管理传感器,分别采集温度和湿度传感器的数据
  3. 数据处理线程,这里主要处理,实时时钟,I2C的数据处理,以及对外控制与串口通信的数据处理

通过RT-Thread多线程的设计,完成UI显示与数据采集,数据处理的异步执行,达到系统既能够快速响应用户的操作交互响应,又能够同步进行外部传感器信息的采集与外部设计控制通信。

  • 硬件架构设计

主控板RA6M3 HMI Board硬件配置为:

  • RA6M3(R7FA6M3AH3CFB)Cortex-M4F 内核,120Mhz 主频,具有 2MB Flash/640KB RAM,集成 TFT 控制器、2D 加速器和 JPEG 解码器。
  • 4.3 寸 LCD (RGB 888)
  • 板载仿真器
  • 以太网
  • RW007 (SPI 高速 WIFI)
  • USB-Device
  • TF Crad
  • CAN
  • 1 路麦克风,1 路扬声器
  • Arduino 扩展接口
  • 2 路 PMOD 扩展接口
  • 4 个按键:3 个用户按键,一个复位按键

硬件上分别使用,串口 9,分别是在 P109 P110作为串口调试,通过调试器的虚拟串口与上 位机通讯。UART9 连接板载UartUSB 为日志输出端口。控制面板与外部设备控制通讯使用另外一个串口 4, UART4串口位于 P205 P206在开发板 上也直接标出.

使用I2C串联 Hi-Spark IoT开发套件中的温度与湿度传感器,使用了I2C2位于P603, P604接口上的温度与湿度数字传感器板。

连接说明:

GPIO  名称    Device 引脚

P205UART TX       ARD_DIG_01    PC – COM RX

P206UART RX      ARD_DIG_00    PC – COM TX

P603I2C时钟)     ARD_DIG_04     SCL

P604I2C数据)     ARD_DIG_05     SDA

温湿度I2C传感器地址为:0x38,

实物连接如下图:

五、软件系统设计

软件开发工具使用 KEIL5集成开发环境与 HMI开发支持包,Renesas RA Flexible Software Package(FSP) v3.5.0  瑞萨扳级配置包。

HMI开发包内带有 RT-Thread软件系统,以及LVGL图形库。这里只要专注设计业务层的UI即可。

UI设计使用Squareline Studio 1.3.2版本,通过该软件能够快速构建软件的UI布局以及相关的交互事件设计。

UI设计采用三级切换界面形式,分别是1。首页,显示当前会议时间,以及房间的温湿度数据。2控制页面,设置对会议室中常用的对灯光,窗帘,音响,空调,LED大屏与摄像设备的控制功能入口.3。设置主要设置预设的灯光场景方案,会议提醒定时,以及与会议室设备的通讯参数。

主要UI设计如下图所示:

Squareline能够完成界面上所有的空间的布置与属性的设置以及Event的设置,英文字体字库的生成。在设计好界面可预览查看界面的效果,确认无误后,机可以使用导出生成LVGL的界面应用代码,在导出时,注意设置工程的LVGL的版本以及模板。

因为在智慧会议室终端这个软件里,需要显示中文,因此需要设计中文的字库,中文字库使用 LVGLFontTool V0.4软件来生成中文字库,因为中文汉字数量比较多,如果把整个中文字库全部生成,将造成ROM超出无法在RA6M3硬件上使用。因此这里把界面上以及软件运行过程中所有会出现的中文文字单独列出来,生成一个定制的字库,这样就小了许多,这个字库一共260个汉字,完全够本软件使用。字体使用雅黑16号字体。

中文字体为了显示美观,使用了4级抗锯齿,采用GB2312编码,点击生成代码,既生成了雅黑中文汉字字库,这个字库加入到LVGL的字体库中,使用时和其它字库显示文件一样操作即可。

应用逻辑部分使用两个个单独的RT-Thread线程,一个完成定时的从I2C 上采集温度湿度传感器的数据和RTC时间数据,实时的更新的界面上。另一个另一个线程完成UART串口通讯的数据处理,主要负责完成UI操作会议室功能时,把各个开关操作和量化操作转换成开关数据和控制数据并格式化,按一定的协议发送到上位机去。同时接收上位机的反馈,将外部设备的状态数据解析出来,反馈给应用的界面上。

六、软件模块实现

软件实现使用 KEIL5集成工具来进行开发,首先下载FSP3.5版本的配置文件以及,以及KEIL工具中所学要的DFP板级支持包,在KEIL的包管理中,选择Renesas.RA_DFP.3.5.0,即可顺利安装支持包。再下载setup_fsp_v3_5_0_rasc_v2021-10.exe FSP 配置工具 和 RA6M3-HMI SDK模板包,其中模板不是必须的,没有模板创建的工程师最小的公程,缺少很多必要的开发支持,这里建议使用 RA6M3-HMI SDK ,通过从模板中创建新工程,即可顺利的添加入,许多现成的板上软件,如WIFI网络配置,SD 卡文件管理,RT-Thread操作系统系统管理,以及线程,事件,信号对象等的查看,和一个shell,能通过串口方便的操作板子。在RA6M3-HMISDK里有开发板出厂带的应用的例程,方便快速学习和研究开发板的使用。

创建好工程之后,先选择好FSP,取消默认的FSP设置,选择3.5.0,这样才能正确对该开发板进行配置,否则将无法配置正确。

选择好FSP版本后,进入FSP配置面板,配置应用中所需的设备资源,这里将会调用瑞萨的FSP即灵活软件配置工具,根据项目需要,这里添加一些必要连接设备和端口,如I2C,UART,UART调试,和其它一些感兴趣的可以测试的IO设备,如GPIO,SPI,CAN等。这里不是打开的越多越好,打开的越多,造成系统资源的使用增多,使得应用开发时,会遇到如堆栈等不够用的情况。

点击FSP后,找到 Flex Software 下的RA Configure ,点击启动,即出现FSP配置界面

添加外设,因为硬件IO很多是多功能的复用,这里需要根据需求,并逐一配置各个设备的硬件端口,如名称,地址,引脚等。

设置完毕后,点击生成工程,即可生成配置好的工程代码框架。

再把前面有SquareLine UI工程生成的LVGLUI导出目录完整的移到board目录下,移植完的工程目录如下:

把APP的字体、图片资源代码移进去:

再开发逻辑处理代码,把便携好的逻辑代码放到 src 目录下,并且加入到到工程目录下

修改project 里的包含路径,是得UI访问LVGL的头文件路径正确:

修改完成后,再编译工程,如果修改正确,编译将会顺利完成,生成了目标烧写文件:

点击download按钮,将会自动烧写生成的文件进板子里,烧写过程分别是:擦除,写入,校验,重启

重启后调试串口可以看到APP已经成功的启动运行起来,界面也显示出来。

成功运行时的HMI-Board界面,经过调试和测试基本达到了预设的目标,在调试中会发现因为界面图片文件使用过多,此时会出现生成的文件超出flash的限制大小,因为RA6M3-HMI Board只有2M的Flash,因此对于复杂多层的UI还是难以承担,一般采用减少UI图片资源的使用,共用UI图片,减少字体资源等方式。

成功运行的界面图如下:

七、代码工程

基于RA6M3-HMI-Board实现智能会议控制面板系统的源码不开放。有需要的联系作者。

八、参考文献与资料

1.瑞萨 RA6M3-HMI-Board文档:

RT-Thread 文档中心

2.SDK 及原理图仓库:

GitHub - RT-Thread-Studio/sdk-bsp-ra6m3-hmi-board: sdk-bsp-ra6m3-hmi-board

3.板级支持包HMI-Board 1.0.3

Releases · RT-Thread-Studio/sdk-bsp-ra6m3-hmi-board · GitHub

4.Renesas RA Flexible Software Package(FSP) v3.5.0

Releases · renesas/fsp · GitHub

5. 智慧联接平台-HiSpark-WiFi-loT开发套件

智慧联接平台-HiSpark-WiFi-loT开发套件 | 海思官网

6. LVGL图形库开发文档

https://lvgl.io/

这篇关于基于瑞萨RA6M5嵌入式上智慧会议室控制面板的实现方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/782536

相关文章

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客

Java中List转Map的几种具体实现方式和特点

《Java中List转Map的几种具体实现方式和特点》:本文主要介绍几种常用的List转Map的方式,包括使用for循环遍历、Java8StreamAPI、ApacheCommonsCollect... 目录前言1、使用for循环遍历:2、Java8 Stream API:3、Apache Commons

C#提取PDF表单数据的实现流程

《C#提取PDF表单数据的实现流程》PDF表单是一种常见的数据收集工具,广泛应用于调查问卷、业务合同等场景,凭借出色的跨平台兼容性和标准化特点,PDF表单在各行各业中得到了广泛应用,本文将探讨如何使用... 目录引言使用工具C# 提取多个PDF表单域的数据C# 提取特定PDF表单域的数据引言PDF表单是一

使用Python实现高效的端口扫描器

《使用Python实现高效的端口扫描器》在网络安全领域,端口扫描是一项基本而重要的技能,通过端口扫描,可以发现目标主机上开放的服务和端口,这对于安全评估、渗透测试等有着不可忽视的作用,本文将介绍如何使... 目录1. 端口扫描的基本原理2. 使用python实现端口扫描2.1 安装必要的库2.2 编写端口扫

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

使用Python实现操作mongodb详解

《使用Python实现操作mongodb详解》这篇文章主要为大家详细介绍了使用Python实现操作mongodb的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、示例二、常用指令三、遇到的问题一、示例from pymongo import MongoClientf

SQL Server使用SELECT INTO实现表备份的代码示例

《SQLServer使用SELECTINTO实现表备份的代码示例》在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误,在SQLServer中,可以使用SELECTINT... 在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误。在 SQL Server 中,可以使用 SE

基于Go语言实现一个压测工具

《基于Go语言实现一个压测工具》这篇文章主要为大家详细介绍了基于Go语言实现一个简单的压测工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理客户端模块Http客户端处理Grpc客户端处理Websocket客户端

Java CompletableFuture如何实现超时功能

《JavaCompletableFuture如何实现超时功能》:本文主要介绍实现超时功能的基本思路以及CompletableFuture(之后简称CF)是如何通过代码实现超时功能的,需要的... 目录基本思路CompletableFuture 的实现1. 基本实现流程2. 静态条件分析3. 内存泄露 bug