大家好,又见面了,我是你们的朋友全栈君。
前言:作为一名老三本玩家,笔者深知一些同学刚接触这个比赛的那种无从下手的感觉,写这篇文章主要是分享一下自己对车的理解,同时也希望大家能真正的去深入理解小车的整个系统,理解小车的构成和原理,而不是人人唾弃的“调参比赛”。水平有限,仅供参考,也欢迎大佬们参与交流。
初识小车
不知道大家是什么时候开始知道有小车这个东西的,笔者第一次看见小车是学校协会招新展示的作品,后来加入实验室慢慢开始了解到了这个比赛,关于比赛的介绍,我在此不做赘述,有需要了解去查看卓大公众号的规则和介绍(第十七届全国大学智能汽车竞赛竞速比赛规则)。这里主要说一下小车的组成。 参赛小车包含车模、硬件系统以及软件算法三大部分,其中车模和硬件在比赛前期工作量比较大,而软件部分的调试工作会一直持续到赛前,所以三人小队一般的分配是一个主要负责硬件,一个主要负责整体控制方案和小车机械结构调整与控制部分软件的搭建,另外一个人主要负责整车的算法,这是笔者参赛时的分配方案,参赛全程离不开组员的密切配合,缺一不可。
车模可以理解是小车的四肢和身体,这个小车都是在车模的基础上进行搭建;由于组别的不同,车模的规定存在差异,根据细则要求进行选购即可,关于车模的介绍和规定每年的比赛规则有详细介绍,可以去智能车官网查看。
硬件系统
硬件系统是小车的脊柱,把身体各个部分联系起来形成一个整体;比赛要求是所有的硬件系统要按规则自制PCB,一个小车的硬件系统主要包括电源系统、人机交互系统、MCU最小系统、传感器系统、驱动系统。
1.电源系统
小车采用电池供电,一般的方案是两节18650或者是专用的镍铬电池,电压范围都大致在6V-8V,而小车所使用的各传感器种类较多,供电电压也不一致,大多数是12V、6V、5V、3.3V的电压,所以需要我们设计并制作一个电源系统来为整个小车提供良好的电源。需要使用模电和电力电子的知识,这个系统中我们会使用到开关电源和线性电源这两大类电源方案。
线性电源
可以理解为在原有电源两端加负载,通过匹配负载比来输出目标电压,它的好处在于能够提供稳定纯净的电源;但是由于此方案获取电压采用负载消耗的方式,工作过程会产生很大的热损耗,转换效率较低,降压管自身发热严重。
开关电源
顾名思义,主要是通过控制可控开关的开关时间配合降压斩波电路(Buck电路)和升压斩波电路(Boost电路)实现升压降压;集成芯片一般会存在一个反馈端口,用来形成闭环控制从而保证输出电压的稳定;采用可控开关的方案能大大提高转换效率,但是会使得输出电压产生纹波,对电源要求比较高的电路就不能采取此方案。 电源可以参考市面上常见的方案,但是希望大家能去弄懂电源的类型、器件选型以及元器件的参数设置原理,结合自己的模电计算一下,这里推荐大家去看看B站唐老师讲电赛的电源大师和运放大师,结合实例讲解了很多的电路和模电知识,真正的把知识点搬到了实际生活中。
2.人机交互系统
人机交互系统是为了方便进行参数的设定、查看以及特殊元素的识别判断,多会采用显示屏、按键、蜂鸣器;显示屏比较流行的有0.96寸OLED、1.8TFT、2.0的并口屏还有一种比较方便开发的串口屏;通信协议方面大多是I2C和SPI,SPI协议的屏幕,其速度会更快一些(I2C协议v2.1规定了100K,400K和3.4M三种速率(bps),而SPI并没有一个官方标准,有的器件SPI可以达到50Mbps)。而串口屏有很好的UI控件,更适合电赛,操作方便简洁,不需要为界面设计费神,想要了解的同学可以参考陶晶驰串口屏。 按键可以选取五方向按键,蜂鸣器可以使用有源蜂鸣器,降低程序设计难度。
3.MCU最小系统
最小系统的选择是根据自己组别而定,不同组别的最小系统有所区别,十五届以后越来越多的处理器厂商加入赛事,有了TC264、TC364、RT1064、STC16、MM32、ch32等多种处理器,而这些处理器的最小系统的最基础三要素还是:电源、晶振、复位。最小系统可以直接购买核心板成品使用,但需要了解其电路构成,方便排查问题,有能力的最好自制。
4.传感器系统
对于不同组而言,传感器会存在一定差异,但是传感器都是大同小异的,常用的是摄像头、电感、编码器。就十七届而言,四轮分为了电磁四轮和摄像头四轮组,其中摄像头组赛道上没有电磁线,也就意味着无法使用电感辅助;而电磁四轮有要求使用宏晶的处理器,目前的STC系列还不足以驱动摄像头,也就意味着电磁组无法使用摄像头来实现车库等一些元素的识别需要加入干簧管之类的辅助器件实现停车;而像平衡信标组,就需要有陀螺仪来实现直立环,获取车身角度;对于多车编队,还需要使用到类似超声波等的一些模块来实现跟随。
摄像头
现在常用的摄像头就是龙邱科技的神眼和逐飞科技的总钻风,这两款摄像头都是灰度摄像头,所以在屏幕上显示时看见的图像和黑白电视一样,但需要注意这里的黑白并不是真正意义上的非黑即白,而是把黑到白分成了255个层次。通过配置摄像头的内部寄存器实现摄像头的初始化,让摄像头每帧图像的分辨率保持188×120;采集完成后通过八位数据并口、行中断与场中断(两款摄像头引脚定义如下图)实现数据传输,将图像信息传输给单片机。
摄像头的采集流程如下: 1.摄像头在初始化参数后,开始采集; 2.采集到一帧图像时(假设一帧图像为:188×120)会发送一个场中断,告诉主控已经采集完一帧图像,随后场中断复位; 3.在场中断产生后会有188×120个行中断产生,每一个行中断个被主控捕获后主控都会收集8位数据口输出的电平(0000 0000~1111 1111)进而得到对应位置的数据(0-255)如此重复,每一个场中断后都会传输188*120个数据; 4.主控根据行中断依次获取这些数据就可以得到图像原始数据,为了节约单片CPU的资源往往会采用DMA搬运直接把这些数据搬运到内存。 8位数据口传输的数据范围刚好是0000 0000~1111 1111即0-255,对应刚好是灰度摄像头的色彩范围(0为全黑,255为全白)。
电感
电感采用工字电感,主要是利用电磁感应原理,利用电感采集信号发生器产生的电磁信号。赛道规定信号为f=20Khz,i=100ma的交变电流 ,为了能够保证采集的信号就是信号发生器产生的信号,需要设计选频电路,利用LC组合形成谐振回路一般采用10mH工字电感和6.8nf匹配电容。有关电磁信号采集部分的介绍参考此篇博文——传送门,计算公式与结果结果如下:
电感采集原理:此处以左右两电感为例,在高度固定后,如下图左边所示,可以发现垂直于电磁线的谐振电路产生的感应电动势,随着电感与电磁线的垂直距离的变化而变化,距离越近感应电动势值越大;距离越远感应电动势越小,这样通过左右两个电感的感应电动势就可以推断出小车目前的状态。 如右边图1所示,当小车位于赛道中央的时候,左右两个电感的值相等,此时没有偏差,对应直道,舵机位于正中间; 如右边图2所示,当小车偏左,此时左电感远离信号线,感应电动势较小,而右电感更接近信号线,产生的电动势也越大,此时会左右电感产生的感应电动势出现一个偏差,我们需要根据这个偏差来控制舵机打角,进而控制小车姿态; 如右边图3所示,当小车偏右,此时与图2相反,右电感远离信号线,感应电动势减小,而左电感感应电动势较大,此时左右电感产生的感应电动势也存在偏差,只不过与图二所示情况的偏差方向不同了,同理也可以利用这个差值来控制小车姿态调整。
由于这个感应电动势很小,只有mV级,且是交流信号,直接使用单片机的ADC采集不现实,所以就需要在谐振电路后加入运放模块实现一定比例的前级放大以及检波处理得到峰值电压,而后通过单片机ADC进行采集处理计算偏差,此处参考龙邱科技的运放模块讲解。
通过获取左右电感的电动势控制小车进行调整姿态。详细讲解参考逐飞科技的电磁四轮车讲解 —>传送门
编码器
其作用就是用来获取小车的速度,工作时随着齿轮的旋转过程会规律的产生脉冲,单片机通过捕获上升沿或者下降沿个数来读取脉冲数进而可以获取车速,这里的512线编码器和1024线编码器就是指编码器旋转一圈产生的脉冲数,有了脉冲数就可以运用常见的T法测速或者M法测速得到小车的速度。(T法M法可以参考电力拖动运动控制系统的讲解。) 带方向的是指编码器的两个输出口,一个脚是输出的是脉冲,另外一个输出是根据旋转方向输出的高低电平(假设正转输出1,则反转输出0,笔者自定义正反);主控可以通过获取高低电平来判断速度方向。 正交解码的编码器指的是这种编码器两个输出脚都是输出脉冲,只是A、B两组脉冲根据相位不同来定义速度方向,假设A相超前B相就是正方向;那么B相超前A相就是反方向。
5.驱动系统
驱动主要讲解电机驱动,舵机的驱动留到后面控制部分再做介绍。电机驱动主要采用的方式H桥驱动,主要原理和前面提到的开关电源差不多,也是通过控制开关管的导通与关断来实现电机供电电压的改变进而控制电机速度。
如上图所示, 当A管和D管导通,B管和C管断开时,电机是正转;假设A管一直导通,则只需要通过控制D管的导通速度就可以改变电机的运转速度,这就是单极性控制方式,而双极性控制是指同时控制A管和D管的导通,进而控制电机速度。 当B管和C管导通,A管和D管断开时,电机是反转;同理单极性控制是指A管或者D管一直导通,通过控制另外一个管子开关来控制电机的速度。而双极性控制是指同时控制两个管子的开关来控制电机的速度。 常见的H桥驱动方式还有BTN、IR2104加Mos管或者是HIP4082加MOS这里可以阅读果果小师弟的STM32 IR2104S的H桥电机驱动电路详解
机械结构
机械结构主要是前轮的倾角调节,这里直接参考这篇文章智能车学习(1)—— 机械调校 关于小车的硬件搭建就介绍到这里,如有错误欢迎大家批评指正,也欢迎大家交流讨论。 如果文章对你的比赛有所帮助,而且赛后对此文还有印象,笔者在评论区等待你们的分享。
[1]:STM32 IR2104S的H桥电机驱动电路详解
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163135.html原文链接:https://javaforall.cn