概述 随着科技的发展,数字仪表的应用越来越广泛,逐渐替代传统型机械仪表。本应用就是基于ART-Pi开发板,使用RT-Thread系统设计开发的,面向工程机械行业的数字仪表。本应用通过CAN总线采集发动机和控制器参数,将发动机转速、冷却液温度、燃油液位等参数直观的显示出来。 开发环境硬件:ART-Pi+自制扩展板+自制屏幕 RT-Thread版本:4.0.3 开发工具及版本:RT-Thread Studio 1.1.5 RT-Thread使用情况概述程序基于ART-Pi开发板模板工程创建,BSP版本为1.0.1,RT-Thread版本为4.0.3。 程序中使用的组件包括UART设备驱动、CAN设备驱动、I2C设备驱动、PIN设备驱动、ADC设备驱动等,使用touchgfx库和gt9147软件包,其中对touchgfx库文件和gt9147软件包根据硬件资源进行适当修改。硬件方面使用了GPIO、UART、I2C、SDRAM、LCD、FDCAN、ADC等。 硬件框架 硬件结构框图如上图所示,核心板为ART-Pi开发板,板载SPI flash,SDRAM和RGB888接口。RGB888接口与LCD显示屏连接,用于显示数据;LED指示系统运行状态,系统运行后,LED以2Hz频率闪烁;CAN模块通过扩展板与ART-Pi连接,使用TJA1050 CAN收发器,与其它CAN设备进行数据交互;ART-Pi接收CAN模块数据,并传输给LCD,同时根据当前档位,发送转速控制数据,控制发动机转速。(程序中所有CAN数据帧均为模拟ID,与实际ID不同) 软件框架说明系统读取ADC数值,根据ADC数值发送转速控制数据,外部CAN设备接收到转速控制数据后,控制发动机转速,并将转速发出,系统接收外部CAN设备发送转速、水温、油位等数据,与ADC档位一起传输到LCD数据传输模块,LCD数据传输模块将档位、转速、水温、油位数据传输到LCD显示模块,将数据显示到屏幕上。 软件模块说明ADC模块:adc_thread_entry为ADC模块采集进程,间隔100ms采集电位计AD值。 CAN处理模块:CAN处理模块分为接收模块和发送模块。can_rx_thread为CAN接收进程,接收发动机转速、燃油液位和水温数据。can_tx_thread为CAN发送进程,根据ADC模块采集电位计AD值转换成的档位,向外发送控制转速。 LCD数据处理模块:LCD数据处理模块使用信号队列向LCD发送档位、转速、水温、燃油液位数据。LCD数据处理模块作为ART-Pi硬件与LCD显示之间的一个桥梁,将ART-Pi数据传输给touchgfx的model,实现硬件与touchgfx数据交互。 LCD显示模块: Touchgfx使用MVP架构实现和硬件的双向交互。如下图所示,Model提供数据,View负责显示,Presenter负责逻辑的处理。 程序中,在Model模块的Model::tick函数中接收消息队列数据,当当前显示页面为仪表盘页面时,将数据变化传输到Presenter,再将数据发送给View将数据显示处理。 界面进入仪表显示界面后,会将页面更新通知到Model,使Model中的数据更新有效,使页面在进入仪表盘页面时转速、水温、油位等数据及时更新。 演示效果视频: 视频内容说明:视频中左侧为CAN分析仪,主要用于数据对比显示,对比显LCD显示数据和CAN数据差异;右下角为串口转CAN上位机(下称上位机),用于与ART-Pi进行CAN数据交互,模拟CAN控制器。ART-Pi上面背有一个扩展板,使用一个系统运行指示LED,一个电位计和一路CAN。系统启动后,LED开始闪烁。电位计用于调整档位,ART-Pi根据档位发送转速控制帧数据,上位机接收到ART-Pi发送转速后,按设定转速发出转速;同时上位机可以发出水温和油位数据显示到LCD屏幕上。上位机无数据发出后3秒,仪表数据清零,指针复位。 比赛感悟本次比赛是我第一次接触RT-Thread系统,通过近一段时间学习,逐渐掌握了一些RT-Thread系统的工作方式,了解其运行机制。通过RT-Thread Studio进行简单的配置,即可让系统运行起来,减少了很多系统方面的设置,对初学者比较容易上手。 网站的文档中心就是一个学习的宝库,里面涉及内容广泛、详细,并配有详细的示例说明,初学者基本可以只通过文档就可以把单片机基本外设功能实现,对初学者学习能起到很大的作用。社区论坛有大量的开发者在使用中提出的问题,通过问题检索,方便查找自己在学习中遇到的问题,同时官方提供的讨论群非常活跃,回答问题及时,大大的赞。RT-Thread提供了各类最新、最流行的软件包,可以很方便的添加到工程中,对项目快速开发提供了很大的帮助。 最后感谢主办方、承办方、赞助商提供了
2022-04-16 09:21:51 2.84MB rt-thread 电路设计方案 电路方案
1
TM32F103C8T6的最小系统版,板载MicroUSB接口、复位按键、SWD。全GPIO引出
2022-04-08 19:28:55 7.95MB 电路设计方案 STM32F103 电路方案
1
包含原理图、源程序、视频讲解、开题报告、论文及使用说明等
2022-04-08 14:16:32 18.95MB 指纹密码锁 单片机 毕业设计
精密光电检测电路设计方案,,精密光电检测电路设计方案,,精密光电检测电路设计方案
2022-04-08 11:58:29 200KB PCB
1
这个项目是关于Arduino电压表的简单介绍。进行此操作的主要原因是基于我的个人经验,当我在实验室中进行一个实验时,我找不到电压表,因此我做出了这种修改以满足我的要求,并且我认为它也会对其他人有所帮助。 对于初学者而言,这是一个很好的项目,它使用基本概念,但功能强大的完整工具。 在运行代码时,您可以在串行监视器上找到输出。 在这里,串行监视器将显示输出,即电压。 计算电压的公式: Vout = (Val * 5.0) / 1024.00; 在这些公式中,Val是Arduino读取为模拟输入的值,再乘以Arduino提供的电压即可得到Vout,将其除以每一位所覆盖的时间周期获得价值。 Vin = Vout / (R2/R1+R2) 通过此公式,我们可以找到Vin大约为0,这间接意味着我们正在建立地面。 注意:这里没有限制使用指定数量的电阻器,可以根据电阻器的可用性来改变它。 最终建议 如果一个电阻的阻值为R ohm,另一个电阻为R'ohm,则只需更改代码中的const。 警告:确保在测试过程中不要弄乱阳极和阴极部分,否则可能会损坏Arduino板。
2022-04-02 11:19:53 283KB diy制作 电路设计方案 Arduino 电路方案
1
概述:声源自动跟随小车,方案主要是通过采集实时环境声音,计算声音的到达方向,同步小车的角度和声源方向角度并行进,达到声源跟随的目的。主要可以应用在电子宠物上,与人进行互动,也可以判断声源方向用来指示目标,是一个比较有趣的设计。 开发环境硬件:ART-Pi开发板,Raspberry Pi开发板 扩展板:四通道麦克风扩展板,GY-521 MPU-6050模块,直流电机驱动模块,锂电池电源组件 RT-Thread版本:RT-Thread Nano 开发工具及版本:STM32CubeMX 5.6.1 MDK 5.20 RT-Thread使用情况概述采用STM32CubeMX生成RT-Thread Nano的代码工程 内核部分:调度器。 调度器:创建2个线程分别实现MPU-6050的DMP角度数据读取和小车平台姿态与声源达到方向角的同步。 硬件框架ART-Pi定时读取MPU-6050的小车平台姿态数据,然后通过对比串口中断接收的Raspberry Pi声源到达方向角数据,PWM驱动直流电机芯片同步小车姿态并前进,实现声源跟随功能。 软件框架说明本项目软件分为两部分: 第一部分:Raspberry Pi 软件 通过ReSpeaker 4-Mics Pi HAT扩展板采集实时现场环境音频数据,估算声源的到达方向并通过USB TTL串口发送声源到达方向角数据到ART-Pi串口接收端。 第二部分:ART-Pi 软件 ART-Pi开发板上电之后首先完成板级外设的初始化,并初始化MPU-6050的数字运动处理器DMP实现小车姿态的获取。开启串口中断接收Raspberry Pi发送的声源到达方向角数据,输出PWM控制小车的直流电机来改变小车姿态符合声源到达方向角,再控制小车前进。 软件模块说明Raspberry Pi 软件: 安装ReSpeaker 4-Mics Pi HAT的驱动,安装声源到达方向应用mic_array,修改vad_doa.py使其能够通过USB TTL串口输出声源到达方向角数据。 ART-Pi 软件: 创建了2个线程 thread1_entry:周期性的读取MPU-6050的数字运动处理器DMP数值,并把读取到的值放入全局变量中; thread2_entry:循环检查串口数据接收变量,如有声源到达方向角数据就控制小车姿态符合声源到达方向角。 演示效果视频观看: 代码地址(附件为代码地址,下载后打开可见)比赛感悟RT-Thread Nano集成在STM32 Cubemx工具中,直接图形化配置生成初始代码真的非常方便。 由衷的感谢开源社区大佬们的贡献。 最后感谢主办方提供了这么好的一个平台,能学到很多知识。
2022-04-01 23:26:56 8.31MB 开源 rt-thread 电路设计方案 电路方案
1
STM32F103C8T6最小系统,8M晶振,可通过USB供电,有运行灯,可观察运行状态,可通过SWD四线烧录,不懂可问楼主,有空就回答
1
在这个项目中,我将指导您通过arduino连接继电器,并以闪烁灯泡为例。
2022-03-23 08:18:10 145KB diy制作 电路设计方案 Arduino 电路方案
1
在我之前的项目中,我展示了如何使用Arduino开发板和BitVoicer服务器控制几个LED 。在这个项目中,我将使事情变得更加复杂。我还将使用Arduino DUE数模转换器(DAC)合成语音。如果您没有Arduino DUE,则可以使用其他Arduino板,但是您将需要一个外部DAC和一些其他代码来操作DAC(BVSSpeaker库将无法帮助您)。 在下面的视频中,您可以看到我还让Arduino播放了一首歌曲,并使LED闪烁,就像它们是钢琴键一样。对不起,我的钢琴技巧,但这是我能做到的最好的:)。LED实际上以与真实C,D和E键相同的顺序和时序闪烁,因此,如果您周围有钢琴,则可以跟随LED并播放同一首歌曲。这是一个不再存在的老零售商(Mappin)的叮当声。 将执行以下过程将语音命令转换为LED活动和合成语音: 1. Sparkfun Electret Breakout板将捕获并放大音频波; 2.放大后的信号将通过Arduino的模数转换器(ADC)进行数字化和缓冲; 3.音频样本将使用Arduino串行端口传输到BitVoicer服务器; 4. BitVoicer服务器将处理音频流并识别其包含的语音; 5.识别的语音将映射到预定义的命令,这些命令将发送回Arduino。如果其中一个命令用于合成语音,则BitVoicer Server将准备音频流并将其发送到Arduino; 6. Arduino将识别命令并执行适当的操作。如果接收到音频流,它将被排队到BVSSpeaker类中,并使用DUE DAC和DMA播放。 7. SparkFun单声道音频放大器会放大DAC信号,因此可以驱动8欧姆扬声器。 第一步是将Arduino和面包板与组件连接,如下图所示。我必须在扬声器下方放置一个小的橡胶垫,因为它会振动很多,而没有橡胶垫的话,音频质量会受到很大影响。 在这里,与我以前的项目相比,有一个小但重要的区别。大多数Arduino板均以5V运行,但DUE以3.3V运行。因为在3.3V下运行Sparkfun驻极体突破效果更好,所以如果您使用5V Arduino板,建议您在3.3V引脚和AREF引脚之间添加一个跳线。DUE已经使用了3.3V模拟基准,因此您不需要AREF引脚的跳线。实际上,DUE上的AREF引脚通过电阻桥连接到微控制器。要使用AREF引脚,必须从PCB上拆下电阻器BR1。
1