轿车数据参数仿真,实用+多功能控制车

今天主要给大家分享实用+多功能控制车的知识,也会对于轿车数据参数仿真的题进行解,现在开始给各位讲解吧!


DIY小车项目已经有很多,常见的就是控制前、后、左、右,但这次我们要尝试一款可以通过电脑或手机监控的多功能控制车!


视频传输原理是多功能车的基本功能参数和关键部件,与目前智能家具的无线视频原理相同,下面介绍。


1输入电源2串或3串锂电池


2路输出5v、33v等电压给负载供电


34个直流减速电机


4WIFI数据传输模块


5电机驱动模块


6STM32F105主控板


7UVC相机


8车底盘


最后,您的电脑或手机可以通过Wi-Fi和软件实时控制和监控汽车的运动。


框图


基本编程软件


羽衣甘蓝5


对于单片机编程来说,目前STM32在库函数和寄存器编程方面占据了很大的篇幅。


这次我们将使用库函数式编程,我们将使用现有的标准库,稍后将提供HAL库。


如上图所示,首先搭建框架,导入想要使用的项目,添加相应的功能。


上下各有两个舵机,一左一左,并且可以旋转180度。


舵机基本控制原理


控制信号从接收通道进入信号调制芯片,获得直流偏置电压。内部有参考电路,产生周期为20ms、宽度为15ms的参考信号,将得到的直流偏置电压与电位器的电压进行比较,得到电压差输出。最后将正负电压差输出至电机驱动芯片,从而判断电机的正反转。当电机转速恒定时,通过级联减速器带动电位器旋转,使压差为零,电机停止转动。


转向装置控制通常需要大约20ms的基于时间的脉冲,其中脉冲的高电平部分是角度控制脉冲部分,通常范围从05ms到25ms,总间隔为2ms。以180度角度舵机为例,对应的控制关系如下


05ms--------------0度;


10ms------------45度;


15ms------------90度;


20ms------------135度;


25ms----------180度;


看看程序中是如何控制的


STM32硬件PWM和模拟PWM均可用。


TIM_OCInitTypeDefTIM_OCInitStructure;TIM_OCInitStructureTIM_OCMode=TIM_OCMode_PWM1;//PWM1TIM_OCInitStructureTIM_OutputState=TIM_OutputState_Enable;TIM_OCInitStructureTIM_Pulse=Speed_Left-1;//23¸¿PWMTIM_OCInitStructureTIM_OCPolarity=TIM_OCPolarity_High;//¡Ju¡我们更改此值。


Speed_Left-1可以改变舵机的角度,是整个产品的核心Wi-Fi模块。


Wi-Fi数据传输模块为WIFI1X1芯片AR9331,基于MIPS24K高通CPU,SDK使用uboot作为引导。它基于MIPS架构,目前主流的芯片架构有x86、ARM、MIPS三种。ARM架构的主要特点是一是体积小、功耗低、成本低、性能高。寄存器的使用和大多数数据操作都在寄存器中完成,这允许更快的指令执行。第三,寻址方式灵活简单,执行效率高。第四,指令长度固定,可以通过多流水线的方式提高处理效率。


Wi-Fi模块的工作原理


WiFi模块负责采集USB接口上挂载的MJPG格式的摄像头数据并编码成包,最后我们看一下USB摄像头,简单介绍一下无线监控摄像头。


1选择相机


进行此实验时,我们建议使用不带USB驱动程序的相机,最好是支持MJPEG输出的相机类型。不需要USB驱动的摄像机输出YUV格式和MJPEG格式,这对无线监控效果有何影响?首先大家应该知道,在传输视频时,我们通常都是以MJPEG格式传输数据,因为对于相同的数据帧来说,YUV格式比MJPEG格式要大很多。这种方式有一个题,就是如果摄像机输出的是YUV格式,那么在发送之前需要使用软件将视频数据从YUV格式转换为MJPEG格式。如果相机输出为MJPEG格式,则可以直接传输采集的数据。因此,使用支持MJPEG压缩的摄像机比普通摄像机更适合无线监控。


它是一套车辆底盘、4个直流减速电机、4个轮子、底板和2个电机。我购买的直流减速电机电源电压为5v~12v,但电压高的话,长时间运行会损坏电机。


接下来介绍电机驱动模块。


我们来看看具体的原理


我们来看看如何控制电机的转速,通过控制Enable端来检查L298N是否工作。VSS-9引脚为芯片供电,VS-4引脚为电机供电。ENA-6引脚是通道1激活端子。利用定时器的PWM输出作用于ENA,可以根据不同的脉冲占空比,实现不同的输出电压,从而达到调速的目的。例如,如果在VS引脚上加10V电机电源电压,ENA端脉冲占空比为100,则OUT1和OUT2之间将输出占空比为50的10V电压,输出为5V。占空比为10的电压。那么就是1V。


配置OpenWrt支持3mipg-streamer软件


mipg-streamer是用于采集视频数据、转换视频数据格式、传输视频数据的软件和服务器。因此,为了让你的openwrt系统支持该软件,你必须配置


这样我们就让openwrt系统支持无线监控,按照之前的方法进行配置,保存退出,然后使V=99,最后将编译好的固件烧录到开发板上。然后启动系统。启动完成后,连接摄像头,即可通过手机软件查看视频。


2配置OpenWrt支持USB摄像头


查看如何配置它


为了支持摄像头,需要设置摄像头驱动,由于是USB摄像头,不需要驱动,所以需要设置UVC驱动,如图。首先,选择一个内核模块进行配置。


检查您的视频支持配置。


按“y”选择kmod-video-core。


从扩展选项中选择UVC。


探索电机驱动模块


基本原则如下


我们来看看如何控制电机的转速,通过控制Enable端来检查L298N是否工作。VSS-9引脚为芯片供电,VS-4引脚为电机供电。ENA-6引脚激活通道1端,利用定时器的PWM输出作用于ENA,可以根据不同的脉冲占空比实现不同的输出电压,从而达到调速的目的。例如,如果在VS引脚上加10V电机电源电压,ENA端脉冲占空比为100,则OUT1和OUT2之间将输出占空比为50的10V电压,输出为5V。占空比为10的电压为1V。我购买的电机电源电压范围为5v至12v。它也可以在高电压下使用。如果长时间运行,电机会损坏。


检查电机前后安装方式


逻辑输入端子为IN1IN2IN3IN4,IN1和IN2控制电机M1,IN3和IN4控制电机M2。例如,IN1输入高电平1,IN2输入低电平0对应电机M1正转,IN1输入低电平0,IN2输入高电平1对应电机M1反转。这是为了改变高层的入住率。


这是整个系统的核心板STM32F105。


一次偶然的机会,国庆期间,我能够使用stm32f103模板或者103标准库编写程序。修改这个并在105上测试可以吗?


主要是串口,但是奇怪的是串口通信不正常。


波特率9600是一样的。带串口支持发送时,发送FE时无响应。当我发送其他内容时,它与我收到的内容不同。即使经过多年的编程,您的程序也不应该出现任何题。


如果您怀疑存在时钟题,请先尝试软件模拟并找到正在调试的RCC。


确保您可以判断您的时钟是否正确。


我对寄存器的值不太了解。


您可以通过将时钟函数RCC_GetClocksFreqRCC_Clocks添加到主函数并将RCC_Clocks变量添加到窗口来查看实际时钟频率。


发现时钟不对,上网查资料,发现105和103的启动文件不一样。


需要将宏定义更改为STM32F10X_CL。


105系列是互连单片机,所以默认晶振是25M,但实际晶振是8M。


您需要更改此stm32f10xh文件中的一件事。


您需要更改此system_stm32f10xc文件中的两件事


现在我们来看看仿真调试时的实际时钟频率。


主频率的十六进制值为0x044AA200,计算出来为72000000。


这个配置还可以


它采用松下的18650电池,让汽车动力强劲。一根2600MAH,两串两并84V,总容量10400MAH。


这是2块电池的


此外,未来还将推出可在线购买的快充充电器。


现在您已准备好组装汽车。


这是汽车底盘。


锂电池组装


完美的


汽车的其余部分已组装完毕。


下面开始调试您的程序。


该车的电机直接由电池供电,采用L298N供电。


舵机由电压为5V的电池供电。


比赛即将结束,我简单介绍一下以串口通信为主的程序。


最简单的串口数据处理机制就是接收数据并按原样发送回来。即成功接收到一个数,触发中断,从中断函数中读取数据,然后立即发送。这种数据处理机制是“无缓冲中断方式”,也就是说这种数据处理方式不消耗时间,但是这种数据处理方式的一个严重缺点就是没有数据的缓冲。然而,当串口接收到新的数据时,未处理的数据就会被新接收到的数据覆盖,从而导致“数据包丢失”。


如果发生“数据丢失”,最简单的方法是使用数组来接收数据。每接收到一条数据,数组下标就会偏移一次。这种方式可以达到一定的“缓冲效果”,但是数组中的空间没有得到很好的利用,处理后的数据会继续占用原来的数据空间,直到数组“满”,整个数组都经过数据处理。一旦完成,必须再次清除数组以开始新一轮的数据接收。


为了解决这个题,采用了先进先出(FIFO)机制,其中环形缓冲区是一个带有“头指针”和“尾指针”的数组。“头指针”指向环形缓冲区中的可读数据,“尾指针”指向环形缓冲区中的可写缓冲区空间。通过移动“头指针”和“尾指针”即可读写缓冲区中的数据。


1图文及代码分析


当然,环形缓冲区的“头指针”和“尾指针”可以使用“头变量”和“尾变量”来建模。ECU是如何建模的?ECU是发动机控制单元,用于管理和控制各种功能。发动机和参数的ECU建模是一个复杂的过程,涉及很多方面,具体步骤和方法可能会根据不同的需求和应用而有所不同。以下是典型的ECU建模步骤


1需求分析确定ECU的功能和性能需求,了解所需的输入输出接口以及与其他系统的交互。


2系统设计设计ECU的总体架构,确定各功能模块和部件,以及它们之间的关系和通信方式。


3电路设计设计ECU电路板,包括处理器、存储器、传感器接口、执行器接口等,保证电路的稳定性和可靠性。


4软件开发开发ECU嵌入式软件,包括操作系统、驱动程序、控制算法等,使ECU能够按照设计要求执行各种功能。


5软硬件集成将开发好的电路板和软件进行集成,进行测试和调试,保证ECU各部分能够协同工作。


6仿真验证利用仿真工具和测试设备对ECU进行验证,模拟各种工况和场景,保证ECU的性能和稳定性。


7量产和优化ECU的量产、优化和改进,以提高性能、降低成本、满足市场需求。


需要注意的是,ECU建模过程是一个复杂且专业的过程,涉及多个领域的知识和技能,包括电子电路设计、嵌入式软件开发和系统集成。在实际应用中,ECU建模和开发工作通常由专门的团队或专业公司完成。


选择AGV数量的标准是什么?一般来说,AGV的数量是通过综合计算AGV的搬运频率、AGV的装载能力、行走路径的长度以及装卸物料所需的时间来确定的。还要考虑系统拥堵和AGV充电时间。


首先根据平面图检查物流需求和流量,然后进行方案设计和路线规划。然后,结合AGV的实际性能,如AGV的运行速度、加速度、装卸时间等,与规划路径相结合,计算出平均处理时间,并乘以阻塞系数。最初我们得到单个任务的估计持续时间。根据任务进行估算


关于实用+多功能控制车和一些轿车数据参数仿真相关信息的解就到此为止,各位记得关注并收藏本站哦。

除非特别注明,本站所有文字均为原创文章,作者:admin

No Comment

留言

电子邮件地址不会被公开。 必填项已用*标注

感谢你的留言。。。