汽车模拟控制系统_ 立创&瑞萨训练营 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 汽车模拟控制系统_ 立创&瑞萨训练营

简介:使用瑞萨MCU为主控,制作汽车模拟控制系统,通过电路的逻辑设计,模拟汽车启动、前后档、速度档、油门、刹车、车速灯光指示及屏幕显示、超速警告、左右转向、前灯、倒车灯、刹车灯、鸣笛、紧急双闪等功能。

开源协议: GPL 3.0

(未经作者授权,禁止转载)

创建时间: 2022-04-11 20:06:42
更新时间: 2023-12-12 14:02:50
描述

《汽车模拟控制系统》工程技术报告

 

1. 作品概述

1.1 功能概述

  该项目使用瑞萨MCU为主控,制作汽车模拟控制系统,通过电路的逻辑设计,模拟汽车启动、前后档、速度档、油门、刹车、车速灯光指示及屏幕显示、超速警告、左右转向、前灯、倒车灯、刹车灯、鸣笛、紧急双闪等功能。

 

1.2 实物图

 

1.1  《汽车模拟控制系统》实物

 

2. 技术详情

2.1 功能模块

  汽车模拟控制系统共具有启动、前后档、速度档、油门、刹车、车速显示、超速警告、左右转向、前灯、倒车灯、刹车灯、鸣笛、双闪十多项功能详见图2.1

 


2.1  《汽车模拟控制系统》功能模块示意图

 

2.2 原理图说明

  电路原理如图2.2所示,根据功能模块进行绘制,包括电源模块、主控模块、调试接口、油门刹车模块、前进倒车模块、车速显示模块、鸣笛电路、转向灯与应急双闪灯模块、复位电路、预留测试接口等。

 

2.2  《汽车模拟控制系统》电路原理

 

2.3 PCB设计

  PCB设计如图2.3所示。

 

   

  (a)                                                                              (b)                            (c)

2.3  《汽车模拟控制系统》PCB设计

(a)接线图  (b)2D图  (c)3D图

  该PCB功能分布主要分为四个部分,分别为操作台、仪表盘、汽车显示、其他部件,如图2.4所示。

 

2.4  《汽车模拟控制系统》PCB功能分布

 

 

2.4 软件说明

   主控芯片为瑞萨 R7FA2E1A72DFL主控程序使用e2 studio编写,主要用到了I2C外接OLED屏幕、ADC模拟信号采集GPIO功能引脚定义如图2.5所示。

 

2.5  瑞萨 R7FA2E1A72DFL引脚

 

  核心代码如下(详细代码见附件):

 void hal_entry(void)

{

    //ADC采样车速,并显示

...

 while(1)

    {

...

        (void) R_ADC_ScanStart(&g_adc0_ctrl);

 ...

        err =R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_7, &adc_data1);

        assert(FSP_SUCCESS == err);

        a0=(adc_data1/4095.0)*5;

        R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);

        if(a0<=0.1)//speed zero

       {

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_00, BSP_IO_LEVEL_LOW);//speed low

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_01, BSP_IO_LEVEL_LOW);//speed middle

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_02, BSP_IO_LEVEL_LOW);//speed high

       }

        if((a0>0.1) & (a0<1))//speed low

        {

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_00, BSP_IO_LEVEL_HIGH);//speed low

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_01, BSP_IO_LEVEL_LOW);//speed middle

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_02, BSP_IO_LEVEL_LOW);//speed high

    }

        if((a0>=1) & (a0<2))//speed middle

        {

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_00, BSP_IO_LEVEL_HIGH);//speed low

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_01, BSP_IO_LEVEL_HIGH);//speed middle

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_02, BSP_IO_LEVEL_LOW);//speed high

          }

        if((a0>=2) & (a0<3))//speed high

        {

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_00, BSP_IO_LEVEL_HIGH);//speed low

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_01, BSP_IO_LEVEL_HIGH);//speed middle

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_02, BSP_IO_LEVEL_HIGH);//speed high

         }

      if(a0>=3)//超速声光警告

        {             

      R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_00, BSP_IO_LEVEL_HIGH);

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_01, BSP_IO_LEVEL_HIGH);

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_02, BSP_IO_LEVEL_HIGH);

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_LOW);//蜂鸣器响

            R_BSP_SoftwareDelay (100 , BSP_DELAY_UNITS_MILLISECONDS);

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_00, BSP_IO_LEVEL_LOW);//speed low

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_01, BSP_IO_LEVEL_LOW);//speed middle

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_02, BSP_IO_LEVEL_LOW);//speed high

            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_HIGH);//蜂鸣器不响

            R_BSP_SoftwareDelay (100 , BSP_DELAY_UNITS_MILLISECONDS);

            continue;

          }

    //twinkle转向灯

    R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_03, BSP_IO_LEVEL_HIGH);

    R_BSP_SoftwareDelay (500 , BSP_DELAY_UNITS_MILLISECONDS);

    R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_03, BSP_IO_LEVEL_LOW);

    R_BSP_SoftwareDelay ( 500 , BSP_DELAY_UNITS_MILLISECONDS);

    }

...

}

 

 

3. 实物展示说明

3.1 电源模块

  该作品供电接口Type-C和接线柱2种,供电电压5V,并接有5.1V稳压管确保系统电压处于安全范围,接通后电源指示亮,仪表盘车辆启动绿灯亮。同时设置了5秒开机动画灯功能,仪表盘速度等有规律闪亮(详见视频《升级功能1:汽车启动动画灯》)。如图3.1所示:

 

3.1  电源模块

 

3.2 车前灯控制

   车前灯开启时,仪表盘前灯指示绿灯亮,车前白灯(×2)亮(详见主视频《汽车模拟控制系统》实物演示)。如图3.2所示:

 

3.2  车前灯控制

 

 

3.3 前进和倒车模块

档位拨动至前进档时,仪表盘前进指示绿灯亮。如图3.3所示:

 

3.3  前进档位

 

档位拨动至倒车档时,仪表盘倒车指示黄灯亮,车尾倒车白灯(×2)亮。如图3.4所示:

 

 

3.4  倒车档位

 

3.4 油门档位刹车车速显示、超速声光警告模块

为了使之符合实际汽车的使用习惯,油门功能有以下特点:

A. 油门的优先级低于前进和倒车档位,只有在前进或倒车档位时,油门才有作用

B. 油门采用非自锁按键,按下时加速,松开时暂停,符合实际汽车的油门使用情况。

C. 油门按下时,车速增加,仪表盘中的车速显示灯分为三种颜色,绿色灯表示低车速,黄色灯表示中速,红色灯表示高车速。按下油门键后车辆加速,速度指示灯依此亮起。当车速超出警告速度(可在软件中设置具体值)时,超速声光警告触发,绿色黄色红色灯同时闪亮,蜂鸣器发出警告滴滴声(详见视频《升级功能2:汽车超速声光警告功能》

D. 油门的实现原理是对RC电路充电,随着充电时间增加,电容两端电压逐渐增大,以此表示车速增加,采集此电压并输入MCU的ADC模块,通过判断电压的大小,控制车速显示灯的亮灭。

E. 档位功能:通果改变RC电路中的R值(滑动变阻器),使充电的时间常数t=RC改变,因此电容充电的速度会发生变化,模拟了车辆的档位功能

  油门控制如图3.5所示:

 

3.5  油门控制与车速显示

 

  F.可拓展升级功能1:为更清晰地展示车速信息,可根据该模拟系统的油门刹车模块的特点,使用数字电压表进行速度展示(详见视频《升级功能3:汽车速度数码管显示》。如图3.6所示:

 

 

3.6 数码管展示实时车速

 

  G.可拓展升级功能2:该项目可外接OLED屏幕显示车速信息和超速警告信息等。通讯协议采用IIC,使屏幕与主控MCU之间进行通讯,展示实时车速详见视频《升级功能4:汽车速度OLED屏幕显示》。如图3.7所示:

图3.7 OLED屏幕展示实时车速

 

为了使之符合实际汽车的使用习惯,刹车功能有以下特点:

A. 刹车的优先级不受前进和倒车档位影响,在前进、倒车档位或空档时,刹车均有作用。比较符合汽车的实际情况。

B. 刹车采用非自锁按键,按下时减速,车尾红色刹车灯亮,松开时暂停减速,符合实际汽车的刹车的使用情况。

C. 刹车按下时,车速降低,仪表盘中的绿车速灯随车速下降而熄灭 当车速小于警告速度时,超速声光警告关闭

D. 刹车的实现原理是对RC电路放电,随着放电时间增加,电容两端电压逐渐减小,以此表示车速降低,采集此电压并输入MCU的ADC模块,通过判断电压的大小,控制车速显示灯的亮灭。

  刹车控制如图3.8所示:

 

3.8  刹车控制与刹车灯显示

 

3.5 鸣笛模块

按下鸣笛键时,蜂鸣器发出滴滴声,以此模拟车辆鸣笛。如图3.9所示:

 

3.9  车辆鸣笛模块

 

3.6 转向灯与紧急双闪模块

拨动左右转向开关时,车辆左右两侧转向黄灯闪亮,仪表盘中左右转向黄灯指示灯闪亮。如图3.10所示:

 

3.10  左右转向灯模块

 

按下应急双闪开关(自锁开关)时,车辆左右两侧转向黄灯同时闪亮,仪表盘中左右转向黄灯同时闪亮。如图3.11所示:

 

3.11  应急双闪模块

 

 

4.项目重点与难点

该项目在设计制作过程中,有以下难点:

A.逻辑设计:同一个器件可能会在不同的模式下使用,需要设计好逻辑。比如转向灯会在左右转向模式与双闪模式时使用,油门和刹车模块需要对同一组RC电路充放电且需要考虑相应的指示灯的连接逻辑

B.器件摆放:由于需将控制台与仪表盘以及车灯的位置分别划分,走线较为复杂。无法像传统电路那样摆放在走线最少的位置。

C.MCU引脚很密集,对于新手较难焊接。

 

5.注意事项与改进建议  

 A.MCU引脚很密集,焊接时应注意用锡量要适中,避免加锡太多而造成引脚间短路。

 B.目前该版本的工程中,MCU只接出了用到的引脚建议可以将可能会用到的引脚都引出来,方便后续进行功能拓展。

 C.建议把电路中的关键信号预留排针测试接口,方便工程的调试

 D.建议设计好LED的限流电阻,确保指示灯不会太亮或者太暗,以达到最佳的展示效果

 E.建议加外壳,起到保护和美观作用。

 F.空间允许的话,建议换大一些的按键,用起来会比较舒服。

 G.使用串口烧录时,如果提示报错,在BOOT键按下的前提下,试着点击一下RESET键复位后再进行烧录。

 

6.个人收获

  通过参加立创&瑞萨硬件训练营,有以下收获:

A.进一步熟悉了立创EDA的使用和设计流程,体验了复杂电路的连线方法,积累了设计经验。

B.熟悉了瑞萨MCU的开发流程,对其GPIO和ADC的配置和使用有了更深的理解。熟悉了e2studio的使用,熟悉了串口模式下载程序到MCU的流程。

 C.对OLED屏幕和I2C的了解加深,学会了点亮OLED屏幕以更直观地显示相关信息。

 D.学习焊接和调试引脚较密集的芯片,熟练了贴片器件的焊接。

 E.训练营中立创和瑞萨的工程师众多,群内学员大神众多,获益颇丰,感谢有此机会参与学习,希望多举办类似活动。

 F.感谢立创和瑞萨公司提供学习机会和技术指导,祝越办越好。

 

 

7.相关附件

  包括硬件设计资料、PCB设计相关文件、基础软件代码等,详见立创开源平台

 

8.效果演示视频

  详见立创开源平台,共包含5段视频

 A.主视频:《汽车模拟控制系统》实物演示.mp4

 B.升级功能1:汽车启动动画灯.mp4

 C.升级功能2:汽车超速声光警告功能.mp4

 D.升级功能3:车速数码管显示.mp4

 E.升级功能3:车速OLED屏幕显示.mp4

 

 

 
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
ID Name Designator Footprint Quantity
1 油门 BOOT,KEY1,RST KEY-SMD_2P-L6.2-W3.6-LS8.0 3
2 FMB1275-05 BUZZER1 BUZ-TH_BD12.0-P7.60-D0.6-FD 1
3 330uF C1 CAP-TH_BD6.3-P2.50-D1.0-FD 1
4 100nF C2,C3,C4,C5,C6,C8 C0805 6
5 4.7uF C7 C0805 1
6 1N4148 D1,D2,D3,D4,D6,D7,D8 DO-35_BD2.0-L4.0-P8.00-D0.5-FD 7
7 MM1Z5B1 D5 SOD-123_L2.8-W1.8-LS3.7-RD 1
8 HDR-M-2.54_1x4 J1,J2 HDR-M-2.54_1X4 2
9 HDR-M-2.54_1x1 J3,J4,J5,J6,J7,J8,J9,J10,J11 HDR-M-2.54_1X1 9
10 19-217/R6C-AL1M2VY/3T LED1 LED0603-R-RD 1
11 前灯指示绿灯 LED2 LED0603-R-RD 1
12 电源指示 LED3 LED-TH_BD3.0_RED 1
13 倒车指示黄灯 LED4 LED0603-R-RD 1
14 倒车车尾白灯 LED5,LED21 LED0603-RD 2
15 19-217/Y5C-AP1Q2/3T LED6,LED8,LED9,LED10,LED11,LED16,LED17,LED18,LED19 LED0603-R-RD 9
16 车启动指示 LED7 LED0603-R-RD 1
17 刹车灯 LED12,LED15 LED0603-R-RD 2
18 19-217/G7C-AN1P2/3T LED13 LED0603-R-RD 1
19 前进指示绿灯 LED20 LED0603-R-RD 1
20 车前灯白灯 LED22,LED23 LED0603-RD 2
21 鸣笛 MINGDI KEY-SMD_2P-L6.2-W3.6-LS8.0 1
22 1K R1,R5,R6,R8,R10,R17 R0805 6
23 10K R2,R16 R0805 2
24 100Ω R3,R4,R7 R0805 3
25 50kΩ R15 RES-ADJ-TH_3P-L9.5-W4.9-P2.50-L_3296W 1
26 SS-12F44-G5 SW1,SW5 SW-TH_SS-12F44-G5 2
27 刹车 SW2 SW-SMD_L6.5-W3.6-LS8.0 1
28 前后档 SW3 SW-TH_MT-0-103-A101-M200-RS 1
29 转向 SW4 SW-TH_MT-0-103-A101-M200-RS 1
30 应急双闪 SW6 SW-TH_PB-22E70 1
31 M3铜柱 TP1 M3铜柱 1
32 M3铜柱 COPY TP2,TP3,TP4 M3铜柱 3
33 KF301-5.0-2P U1 CONN-TH_P5.00_KF301-5.0-2P 1
34 XL5532 U2 SOIC-8_L5.0-W4.0-P1.27-LS6.0-BL 1
35 R7FA2E1A72DFL#AA0 U3 LQFP-48_L7.0-W7.0-P0.50-LS9.0-BL 1
36 KH-TYPE-C-6P USB1 TYPE-C-SMD_TYPE-C-31-M-16 1

展开

工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP