摘" 要:在RISC-V架构下,结合RT_Thread系统,文章对智能语音编程和GUI编程进行了研究,并模拟应用于稳态太阳光模拟器的设计中。首先,介绍了RISC-V架构在嵌入式系统中的应用优势,特别是在资源受限的环境下,该架构所展现出的灵活性和可扩展性。其次,阐述了RT_Thread系统在支持多任务处理和资源管理方面的优势,以及其与RISC-V架构的良好兼容性。最后,详细介绍了如何利用RISC-V平台实现智能语音功能,以及如何通过GUI编程实现用户友好的操作界面,以提升其控制和交互性能。该研究为相关领域的应用提供了新的思路和方法。
关键词:RISC-V架构;RT_Thread系统;GUI编程;智能语音编程;太阳光模拟器
中图分类号:TP332;TP39 文献标识码:A 文章编号:2096-4706(2025)04-0031-07
Application of Voice and Graphic Programming Simulation Based on RISC-V Architecture in Solar Simulator
SHEN Jing1, WU Chi2, CHEN Hao1
(1.Yangzhou Polytechnic College, Yangzhou" 225009, China; 2.Jiangsu Jietong Inspection and Certification Co., Ltd., Yangzhou" 225009, China)
Abstract: Under the RISC-V architecture, connected with the RT_Thread system, this paper researches the intelligent voice programming and GUI programming, then simulates and applies them to the design of a steady-state solar simulator. Firstly, the application advantages of the RISC-V architecture in embedded systems are introduced, especially the flexibility and scalability that the architecture exhibits in resource-constrained environments. Secondly, the advantages of the RT_Thread system in terms of supporting multi-task processing and resource management are explained, along with the good compatibility with the RISC-V architecture. Finally, a detailed introduction is given on how to utilize the RISC-V platform to implement intelligent voice function, as well as how to achieve a user-friendly operation interface through GUI programming to enhance its control and interaction performance. This research provides new ideas and methods for applications in related fields.
Keywords: RISC-V architecture; RT_Thread system; GUI programming; intelligent voice programming; solar simulator
0" 引" 言
嵌入式系统已广泛应用于各个领域,对于处理器架构和操作系统的选择越发重要[1-3]。RISC-V架构因其开放性和灵活性,在嵌入式系统中备受关注。RISC-V是一种开源指令集架构,具有模块化、可扩展性强等特点,在嵌入式系统领域具有广泛的应用前景[4-6]。RISC-V架构的开放性使得用户可以根据具体需求定制指令集,以适应不同的应用场景;RISC-V指令集可以根据需要灵活扩展,满足不断变化的应用需求;精简的指令集和流水线结构使得RISC-V处理器在资源受限的环境下能够提供高效的性能。RT_Thread是一款面向嵌入式实时操作系统的开源产品,具有小巧、可裁剪、易于移植等特点。在与RISC-V架构的结合中,RT_Thread展现出了以下优势:RT_Thread支持多任务处理,能够满足复杂嵌入式应用场景下的任务调度和管理需求;还提供了灵活的资源管理机制,使得系统能够有效利用有限的资源,提高系统整体的性能和稳定性[7-10]。
本文模拟设计的稳态太阳光模拟器的光源系统和温控系统在本课题中分别采用了三色LED灯作为模拟光源的功能演示、水泥电阻加风扇作为模拟温控系统的功能演示;由于三色LED灯光强有限,无法模拟1 000 W/m²辐照度的太阳光,故此处模拟了太阳光颜色从日出到日落的动态变化过程。选用RISC-V架构的国产芯片CH32V307VCT6作为微控制器,LCD触摸屏作为输入输出外设,实现了稳态太阳光模拟器的功能模拟,可以达成低成本、低功耗、高稳定性、高性能、高自主化的目标。
1" 电路设计与实现
稳态太阳光模拟器模拟系统各模块连接如图1所示。通过LCD触摸屏或智能语音模块设定光强值和温度值,CH32V307VCT6控制RGB灯和加热电阻按照设定数值工作并通过光照度感应器和风扇协助稳定光强及温度值;当温度超过过热保护温度时,蜂鸣器报警;LCD显示屏上实时显示光强值、温度值。
该稳态太阳光模拟器模拟系统包括以下几部分电路:供电电路、最小系统电路、串口调试电路、光强控制电路、温度控制电路、报警电路。本方案将MCU最小系统运行在等待线程激活状态下,它由以下模块组成:供电电路、时钟电路、复位电路。
1.1" 供电电路
如图2所示。该模拟系统的供电电路由+5 V电源供电,+5 V工作电压由TYPE-C型号的USB直接提供或DC-005电源接口供电经由ETA2806芯片转换而来;但是CH32V307VCT6芯片、光照度传感器、LCD触摸屏需要的是+3.3 V电源供电,+3.3 V电压由1117-3.3 V转换+5 V而来。为了保护及稳定+5 V和+3.3 V电压,供电电路加上了瞬态抑制二极管、过流保护器及一些储能电容和去耦电容。此外给电源系统接一个LED指示灯,以便后续能够正确观察电路的工作情况。
1.2" 最小系统电路
如图3所示。CH32V307VCT6微控制器的最小系统电路包含供电、时钟、复位电路等,以便进行基本的程序下载和调试。电路图中包含一个JTAG/SWD下载/调试接口,用于连接编程器或调试器,下载程序与调试代码。
1.3" 光强控制电路
图4为光强控制电路,光强度传感器BH1750FVI检测环境光强度,并将数据发送给微控制器。微控制器根据接收到的数据计算出三色LED灯的控制信号,并通过控制信号调节LED各个颜色的亮度,从而实现模拟太阳光的调节。
1.4" 串口调试电路
CH32V307VCT6通过光照度传感器和温度传感器获得参数,根据采集到的数据控制风扇及三色LED灯等功能的实现都需要使用串口通信;而当需要PC与单片机进行数据交互时也要求单片机能够和PC机通信,而较为方便有效的方式就是串行通信。同时在进行系统调试的时候也离不开SWD接口,电路图如图5所示。
1.5" 温度控制电路
温度控制电路由加热模块、温度测量模块以及风扇组成。加热控制通过配置定时器通道,输出不同占空比的PWM来控制水泥电阻加热。通过ADC(PB0)采集LM35的输出引脚的电压可以得到当前的温度。当水泥电阻周边温度达到设定温度时就关闭水泥电阻加热,当水泥电阻周边温度低于设定温度时就打开水泥电阻加热。在水泥电阻加热的同时,通过配置定时器通道输出不同占空比的PWM来控制风扇的风速,最终达到温度的动态平衡,从而将温度控制在设定的范围内,电路图如图6所示。
1.6" 报警电路
图7为报警电路,微控制器读取光敏电阻及温度传感器的电压值并进行模数转换,当转换结果超过设置的阈值就会控制蜂鸣器发声报警,并将光照强度值和温度显示在LCD触摸屏上。
2" 软件设计与实现
首先,将极简版的硬实时内核RT-Thread Nano移植到RISC-V架构的CH32V307VCT6芯片上。使用在线的软件包管理工具,配合系统配置工具,实现直观快速的模块化剪裁,导入软件功能包,进而实现类似Android的图形界面、触摸滑动效果以及智能语音交互等功能。接着,以模块化的设计编写用户界面设计、智能语音控制、温度控制、光强控制、报警控制的软件代码。
2.1" 用户界面设计
通过GUI编程设计出用户友好的操作界面,对于提升设备的易用性至关重要。在RISC-V平台上,通过合理的图形库选择和界面设计,能够实现轻量级、高效率的GUI应用。本模拟系统用户界面设计通过LVGL(Light and Versatile Graphics Library)开源图形库,获取了创建图形用户界面(GUI)所需的各种组件和功能。设计的界面如图8所示,其包含LED灯太阳光模拟模式开关、LED灯亮度控制滑轨、温度和光照强度显示、光照强度显示图。
2.2" 语音控制
近年来,随着人工智能和语音识别技术的快速发展,语音控制技术得到了广泛的应用,并逐渐改变着我们的生活方式。实现智能语音编程需要克服一系列技术难题,包括语音识别和合成。故本设计直接选用语音识别开发板ASRPRP开发板来开发智能语音功能,搭配天问Blook图形化编程软件,以快速实现语音交互和智能语音控制。
mBlock项目展现了一个基于语音识别和外部设备控制的原型系统,该系统融合了多种功能模块,可实现人机交互和智能化操作。系统核心在于语音识别模块,识别特定关键词或指令,例如“小光小光”唤醒词,以及控制设备的指令如“关闭灯”“打开风扇”等。通过串口通信,系统发送特定的字节序列与外部硬件进行数据交换,控制灯、风扇、加热器和屏幕等设备的开关状态、亮度、速度和温度等参数。项目中使用变量存储设备状态和传感器数值,并运用条件语句根据事件和变量的值进行逻辑判断,控制程序流程。例如,当识别到“唤醒词”时,系统会将睡眠状态切换为活动状态,并等待用户发出进一步指令。部分图形化编程代码如图9所示。
mBlock项目展示了一种将语音识别技术应用于外部设备控制的有效方法,并通过清晰的代码结构和逻辑实现人机交互和智能化操作。
2.2.1" 温度控制
图10为温度控制流程图,该温度控制系统是基于LM35温度传感器和CH32V307VCT6微控制器的简单控制系统。该系统通过以下步骤实现温度控制:首先,LM35温度传感器将环境温度转换为模拟电压信号,其输出电压与温度成正比;接着,微控制器的ADC模块将该模拟电压信号转换为数字值,并通过计算得到当前温度值;然后,系统采用Bang-Bang控制算法,将当前温度与设定值(36 ℃)进行比较,如果温度低于设定值,则启动水泥电阻加热程序,通过定时器2的通道4以80%的占空比输出PWM信号控制加热设备;如果温度达到或超过设定值,则停止加热程序,PWM信号占空比为0%;最后,系统通过串口打印输出当前温度值,用户可以通过LCD屏幕实时观察温度变化。
2.2.2" 光强控制
图11为太阳光模拟程序流程图,首先初始化三色LED灯的GPIO引脚和定时器PWM模块,为后续的灯光控制做准备。接着,程序进入主循环,持续更新LED灯的亮度,使其按照预设的太阳光颜色变化模式进行转变,例如从日出前的暗红色逐渐过渡到正午的明亮白色,再到日落后的暗红色,展现太阳光颜色随时间推移的动态变化。用户既可以通过串口发送指令来控制三色LED灯的颜色和亮度,也可以通过LCD触摸屏改变三色LED灯的亮度。
2.2.3" 报警控制
在各类电子设备中,过热保护功能扮演着至关重要的角色,它直接关系到设备的安全性和使用寿命。为实现这一功能,本模拟系统巧妙地利用温度传感器实时监测设备内部温度的变化,并将其与预设的过热保护温度进行比较。当监测温度超过预设阈值,表明设备存在过热风险时,系统会自动触发蜂鸣器发出警报声,及时提醒用户采取必要的措施。用户听到警报后,应立即停止设备运行,并检查设备的散热情况,例如散热风扇是否正常运转、散热通道是否通畅等通过这一系列措施,可以有效防止设备因过热而导致性能下降、内部元件损坏,甚至引发火灾等安全事故,从而保障设备的安全稳定运行和延长使用寿命。
3" 调试与验证
选用MounRiver Studio(MRS)作为集成开发环境,其基于Eclipse GNU版本开发,在保留原平台强大代码编辑功能、便捷组件框架的同时,针对嵌入式C/C++开发,进行了一系列界面、功能、操作方面的修改与优化。目前,它提供了包括C编译器、宏编译器、链接器、库管理、仿真调试器和下载器等在内的完整开发方案,同时支持RISC-V和ARM内核。
3.1" 下载调试
具体如下:
1)编译代码。确保代码已保存并编译成功,如图12所示。“Build Finished”表明编译已完成且没有错误。
2)连接硬件。使用合适的线缆将开发板连接到电脑。确保连接稳定且线缆完好。
3)配置调试器。在MounRiver Studio中,打开“调试配置”窗口;选择调试器类型:WCH-LinkRV;选择内存分配:224 KB + 96 KB;配置调试器参数,芯片类型:CH32V307;设置下载算法和复位方式:自动选择。
4)开始调试。点击“调试”按钮开始调试;MounRiver Studio将下载代码到开发板并启动调试会话。
5)调试过程。可以在代码中设置断点,单步执行代码,观察变量值,并使用其他调试功能来查找和修复错误。
6)结束调试。完成调试后,点击“停止”按钮结束调试会话。
3.2" 调试结果分析
本次调试的目的是验证LCD显示功能和传感器数据读取功能是否正常,预期结果是LCD能够正常显示文字、图形和传感器数据,如图13所示。LCD显示功能和传感器数据读取功能均正常。LCD能够清晰地显示文字、图形和传感器数据,表明代码编写正确,硬件连接正常;可以通过滑动滑块组件来调节LED灯的光强度;光照强度曲线图能够实时更新,说明程序能够定时读取传感器数据并绘制曲线图;模式切换开关显示正常。
本次调试成功验证了LCD显示功能和传感器数据读取功能的正常性,代码编写和硬件连接均符合预期。
4" 结" 论
本文介绍了RISC-V架构,了解其相对于ARM、MIPS和x86等架构在简洁性、开源性,以及成本、功耗、性能方面的优势;设计开发了基于RISC-V架构MCU的模拟系统,其强大的功能与丰富的内置资源,适合应用于复杂系统控制中。选择使用RT_Thread开源实时操作系统,因为它不仅仅是一个单一的实时操作系统内核,它也是一个完整的应用系统,可更好地实现复杂系统的控制与人机交互。采用智能语音控制以适应当前对智能化、便捷性越来越高的要求,为未来留下想象空间。应用用户友好的触摸界面设计,图形化可视界面符合目前对设备可视化操作的需求,便于个性化定制,方便用户读取与设定参数。采用LED灯自主设定光谱与辐照度,并使用PID控制算法,以确保光照度、温度稳定在设定值范围内,提高了算法对环境的适应性以及抗干扰性。本文设计是模拟应用于太阳能组件的性能检测,实际上,在居家智能照明及控制、无土栽培室分布式照明控制,乃至于未来月球、火星基地模拟地球光照变化等方面都有着可预见的应用需求。
参考文献:
[1] 帕特森,亨尼斯.计算机组成与设计 硬件/软件接口:第5版 [M].北京:机械工业出版社,2019.
[2] 帕特森,沃特曼.RISC-V开放架构设计之道 [M].勾凌睿,陈璐,刘志刚,译.北京:电子工业出版社,2024.
[3] WATERMAN A,ASANOVIC K. The RISC-V Instruction Set Manual, Volume I:Unprivileged ISA [EB/OL].[2024-06-24].https://acsa.ustc.edu.cn/ics/download/riscv/The%20RISC-V%20Instruction%20Set%20Manual.pdf.
[4] WATERMAN A,LEE Y,AVIZIENIS Z,et al. The RISC-V Instruction Set Manual Volume II:Privileged Architecture [EB/OL].[2024-06-20].https://people.eecs.berkeley.edu/~krste/papers/riscv-privileged-v1.9.pdf.
[5] 南京沁恒微电子股份有限公司.RISC-V MCU-CH32V307数据手册 [EB/OL].[2024-06-25].https://www.wch.cn/downloads/CH32V307DS0_PDF.html.
[6]赵春霞.MRs桥接故障模拟与检测 [D].桂林:桂林电子科技大学,2021.
[7] 杭州天问五幺科技有限公司.ASRPRO开发板规格书:V1.1 [EB/OL].[2024-06-21].http://www.twen51.com/jpeguploadfile/twen/ASRPRO/ASRPROV1.1.pdf.
[8] 丛天昊,吴江.基于RISC-V的跌倒和心率血氧检测系统设计与实现 [J].智能计算机与应用,2024,14(12):112-117.
[9] 许霁航,罗敏涛,赵翠华,等.基于RISC-V架构的系统级抗单粒子翻转加固设计 [J/OL].微电子学与计算机,1-9[2024-06-05].http://kns.cnki.net/kcms/detail/61.1123.TN.20241113.1602.002.html.
[10] 陈昊旻,朱冰洁.太阳光模拟器光谱对光伏组件I-V特性测试的影响分析 [J].太阳能,2024(1):77-82.
作者简介:沈静(1994—),女,汉族,江苏泰州人,讲师,硕士研究生,研究方向:电气自动化控制。
收稿日期:2024-09-04
基金项目:面向先进装备制造业的现场工程师人才培养研究(JXHYZX2024017)