<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于RA6M3-HMI-Board實現智能會議控制面板系統

冬至子 ? 來源:robot_365 ? 作者:robot_365 ? 2023-10-08 11:36 ? 次閱讀

一、項目背景介紹

會議室是辦公室里重要的場地,為決策,溝通,協調等提供了必要的工作場所。在會議室里有很多信息化的設備,為會議提供了各種高效而便利的環境。隨著數字科技的發展,信息溝通交流也愈發頻繁,會議室承載越來越多的功能。如:商業談判、學術交流、部門溝通、訪客接待等。作為各類信息高度集中的重要場所,智能辦公是不可或缺的一部分。

而很多會議室這些設備是由不同供應商提供,使得這些設備管理和使用分散和混亂。而智能會議室就是對傳統會議室進行改造升級,提供智能會議室整體解決方案,滿足用戶視頻會議,會議預約及會議室設備控制等需求,實現了智慧會議體驗,讓企業會議更加高效、智能。

本項目就是使用RA6M3-HMI開發板,結合溫濕度傳感器與串口通信,對會議室內的燈光系統,空調,窗簾,音響,LED屏,視頻會議系統進行集中的控制和管理。通過本控制面板能夠控制會議室常用的設備和操作,通過智慧化的集成控制,大大提升會議室管理的便捷性,從而提升會議效率。

二、項目主要功能

智能會議室基于用戶會議智能化的需求,通過AIoT物聯網的方式,集成大數據與信息可視化,成功的解決了這項難題。免除會議沖突,提升管理效率的同時,帶來便捷化的高效率體驗,打造一個全新的智能會議室。

1、打造全新智能會議,高效化便捷化智能會議室
智能會議室控制面板聯動設備軟硬件一站式管控,通過控制LED顯示屏設置高端大氣的會議主題,無需敲門尋找會議室,在門口便可直觀看到本場會議信息資訊,解決會議尷尬沖突。

2.控制管理會議室設備
智能會議室控制面板除開基礎的線上會議預約功能外,系統還將整體設備聯動,從會議室的燈光、空調、窗簾、會議面板、會議中控集成化管控,從軟硬件層面上考慮會議室智能化的需求配置,并可定制化需求配置相對應的客制化系統,打造全新的智能會議室。
會議開始前,聯動設備中控,即可設置提前打開辦公室空調、燈光、投影等設備

3、上場會議時間過長,無時間提醒,會議沖突很明顯。
智能會議室控制面板燈管控制基于情景模式,終端根據會議室使用狀態,一鍵設定燈光組合和變換顏色,讓人一目了然。會議結束設備提醒,通過硬件聯動控制會議時間,提升會議效率。

三、RT-Thread開發概述

智能會議室控制面板軟件系統所使用的RA6M3HMI開發板,已經支持RT-Therad系統,這里就采用RT_thread實時操作系統開就發。圖形界面采用LVGL圖形庫,結合所開發會議業務邏輯部分以及數據采集與收發,完成整個軟件開發。
其中RT-Thread開啟多個線程支持系統的運行,主要線程有:

LVGL UI線程,該線程你完成LVGL的圖形界面的顯示和交互,實現UI各個組件的顯示和人機交互時界面的繪制
傳感器數據采集,這里使用了單獨的線程管理傳感器,分別采集溫度和濕度傳感器的數據
數據處理線程,這里主要處理,實時時鐘,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 連接板載Uart轉USB 為日志輸出端口??刂泼姘迮c外部設備控制通訊使用另外一個串口 4, UART4串口位于 P205 和 P206在開發板 上也直接標出.

使用I2C串聯 Hi-Spark IoT開發套件中的溫度與濕度傳感器,使用了I2C2位于P603, P604接口上的溫度與濕度數字傳感器板。

連接說明:
GPIO 名稱 Device 引腳
P205(UART TX) ARD_DIG_01 PC – COM RX
P206(UART RX) ARD_DIG_00 PC – COM TX
P603(I2C時鐘) ARD_DIG_04 SCL
P604(I2C數據) 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。設置主要設置預設的燈光場景方案,會議提醒定時,以及與會議室設備的通訊參數。

在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的頭文件路徑正確:

/*
實時定時器時鐘實現
/
#include
#include
#include
#define DBG_LEVEL DBG_LOG
#define DBG_SECTION_NAME "rtc"
#include
#define RTC_NAME "rtc" /
rt_hw_rtc_register("rtc") in rtc_drv.c*/
rt_sem_t rtc_init_sem = RT_NULL;
int user_rtc_init(void)
{
rt_err_t ret = RT_EOK;
time_t now;
rt_device_t device = RT_NULL;
/ 創建初始化完成信號量 /
rtc_init_sem = rt_sem_create("rtc init flag", 0, 0);
if(rtc_init_sem == RT_NULL)
{
rt_kprintf("rtc sem init failed!n");
return RT_ERROR;
}
/ 尋找設備 /
device = rt_device_find(RTC_NAME);
if (!device)
{
rt_kprintf("find %s failed!n", RTC_NAME);
return RT_ERROR;
}
/ 初始化RTC設備 /
if(rt_device_open(device, 0) != RT_EOK)
{
rt_kprintf("open %s failed!n", RTC_NAME);
return RT_ERROR;
}
/* 設置日期 /
ret = set_date(2023, 10, 5);
if (ret != RT_EOK)
{
rt_kprintf("set RTC date failedn");
return ret;
}
/
設置時間 /
ret = set_time(23, 45, 00);
if (ret != RT_EOK)
{
rt_kprintf("set RTC time failedn");
return ret;
}
rt_sem_release(rtc_init_sem); //rt_sem_take
/
獲取時間 */
now = time(RT_NULL);
rt_kprintf("RTC device init success,now time is %sn", ctime(&now));
return ret;
}
/ 使用裝置初始化 /
INIT_ENV_EXPORT(user_rtc_init);
static time_t now;
void user_alarm_callback(rt_alarm_t alarm, time_t timestamp)
{
now = time(RT_NULL);
rt_kprintf("The alarm clock rings, now time is %sn", ctime(&now));
rt_alarm_stop(alarm);
}
void alarm_test(void)
{
rt_kprintf("alarm_test ... n");
if(rt_sem_trytake(rtc_init_sem) != RT_EOK)
{
rt_kprintf("please init rtc firstn");
return ;
}
struct rt_alarm_setup setup;
struct rt_alarm * alarm = RT_NULL;
static time_t now;
struct tm p_tm;
if (alarm != RT_NULL)
return;
/*獲取當前時間戳,并把下一秒時間設置為鬧鐘時間 */
now = time(NULL) + 5;
gmtime_r(&now,&p_tm);
setup.flag = RT_ALARM_SECOND;
setup.wktime.tm_year = p_tm.tm_year;
setup.wktime.tm_mon = p_tm.tm_mon;
setup.wktime.tm_mday = p_tm.tm_mday;
setup.wktime.tm_wday = p_tm.tm_wday;
setup.wktime.tm_hour = p_tm.tm_hour;
setup.wktime.tm_min = p_tm.tm_min;
setup.wktime.tm_sec = p_tm.tm_sec;
alarm = rt_alarm_create(user_alarm_callback, &setup);
if(RT_NULL != alarm)
{
rt_alarm_start(alarm);
}
rt_sem_release(rtc_init_sem);
}
/ export msh cmd /
MSH_CMD_EXPORT(alarm_test,a alarm test);

修改完成后,再編譯工程,如果修改正確,編譯將會順利完成,生成了目標燒寫文件

點擊download按鈕,將會自動燒寫生成的文件進板子里,燒寫過程分別是:擦除,寫入,校驗,重啟
重啟后調試串口可以看到APP已經成功的啟動運行起來,界面也顯示出來。

成功運行時的HMI-Board界面,經過調試和測試基本達到了預設的目標,在調試中會發現因為界面圖片文件使用過多,此時會出現生成的文件超出flash的限制大小,因為RA6M3-HMI Board只有2M的Flash,因此對于復雜多層的UI還是難以承擔,一般采用減少UI圖片資源的使用,共用UI圖片,減少字體資源等方式。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 以太網
    +關注

    關注

    40

    文章

    5135

    瀏覽量

    166779
  • 仿真器
    +關注

    關注

    14

    文章

    994

    瀏覽量

    83139
  • LED屏
    +關注

    關注

    0

    文章

    197

    瀏覽量

    16542
  • 串口通信
    +關注

    關注

    33

    文章

    1583

    瀏覽量

    54975
  • 溫濕度傳感器

    關注

    5

    文章

    550

    瀏覽量

    35352
  • RA6M3
    +關注

    關注

    0

    文章

    52

    瀏覽量

    22
收藏 人收藏

    評論

    相關推薦

    無接觸控制面板系統設計要點

    板)無菌,幾乎是不可能的。 Holo Industries公司開發了一系列非接觸控制面板,避免細菌傳播。最開始的兩個應用是針對餐廳電梯和公共信息板的:設備將浮動的控制面板圖像投影到空中,用戶可以激活投影的面板,當用戶觸摸空中
    的頭像 發表于 11-19 15:35 ?2845次閱讀

    加濕器app與wifi控制面板之間的鏈接

    我們小組想做個wifi手機控制智能控制加濕器 現在遇到個很棘手的問題,就是我們沒有加濕器app與制作出來的wifi控制面板通過wifi鏈接使用,因為他們說app與
    發表于 12-25 13:39

    pcb 控制面板

    `我在畫一個燈的pcb,就剩IQS133的控制面板的部分,不知道控制面板在AD下怎么畫了,有沒有大神給些意見或建議的,謝謝~`
    發表于 06-14 15:57

    AllJoyn核心應用教程:Base Services服務之控制面板

    幫助展現一個控制面板。該工具使用一個XML文件來定義控制面板組件,并生成相應的代碼來實現具體的控制面板。 注:XML文件在控制面板服務中不能
    發表于 09-21 10:40

    win8系統隱藏控制面板選項的操作方法

    “隱藏指定的“控制面板”項”。如圖:    3、雙擊“隱藏指定的“控制面板”項”,打開“隱藏指定的“控制面板”項”窗口,如圖:    4、選擇“已啟用”,然后然后點擊選項區域的“顯示”
    發表于 11-30 16:38

    開源虛擬主機為什么可以控制面板

    開源虛擬主機為什么可以控制面板?開源虛擬主機控制面板可以做什么?
    發表于 10-19 09:30

    本周四晚19:00知識賦能第3期直播丨OpenHarmony智能家居項目之控制面板功能實現

    的布局設計以及ArkUI相關組件的使用,開發者們紛紛積極留言互動,給出好評!而第3節直播《OpenHarmony智能家居項目之控制面板界面功能實現》中,連志安老師將介紹基于標準
    發表于 07-13 17:27

    數碼印像機的控制面板/存儲卡

    數碼印像機的控制面板/存儲卡  控制面板         &n
    發表于 12-23 14:38 ?853次閱讀

    微軟或逐步移除Windows 10中的控制面板

    Windows電腦中的控制面板往往包含針對系統設置的一些高級選項,而微軟已準備逐步將控制面板系統中移除。但這一過程又是循序漸進的,現有系統
    的頭像 發表于 03-24 09:17 ?2203次閱讀

    微軟計劃隱藏Windows 10傳統的控制面板

    多年來,微軟一直在Windows10上提供兩種不同的設置體驗。新的簡化的設置應用程序現在位于前端和中心,而傳統的控制面板仍然可以在Windows系統>控制面板下的“開始”菜單中找到。
    的頭像 發表于 03-26 15:45 ?1807次閱讀

    win8控制面板在哪打開?

    其實打開Win8控制面板的方法有很多,筆者要列出來的話,估計可以列出上十種方法,看過Win8使用指南的朋友可能會覺得打開Win8控制面板沒有Win7方便,其實也不是這樣的,在Win8系統中我們打開
    的頭像 發表于 07-29 09:37 ?3468次閱讀
    win8<b class='flag-5'>控制面板</b>在哪打開?

    nvidia控制面板怎么設置

    在我們日常生活中偶爾會遇到一些自己不知道如何解決的問題,比如設置nvidia控制面板。那么我們應該怎樣解決這種自己不知道如何設置nvidia控制面板的情況呢?那么接下來就由我來介紹一下設置nvidia控制面板的步驟吧。
    的頭像 發表于 01-22 16:43 ?1.6w次閱讀
    nvidia<b class='flag-5'>控制面板</b>怎么設置

    CANoe控制面板的應用

    CANoe控制面板的應用說明。
    發表于 04-20 16:17 ?32次下載

    廢棄的控制面板開源分享

    電子發燒友網站提供《廢棄的控制面板開源分享.zip》資料免費下載
    發表于 11-16 11:15 ?0次下載
    廢棄的<b class='flag-5'>控制面板</b>開源分享

    伺服控制面板開源分享

    電子發燒友網站提供《伺服控制面板開源分享.zip》資料免費下載
    發表于 12-09 15:39 ?0次下載
    伺服<b class='flag-5'>控制面板</b>開源分享
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>