【E666】STM32F103防疲劳驾驶检测完整设计

2021-08-26 11:09:28      索炜达电子      1030     

项目编号:E666

文件大小:4.2M

源码说明:带中文注释

开发环境:C编译器

简要概述:

一.本设计的主要功能是,通过心率传感器检测驾驶员脉搏,MPU6050加速度传感器检测驾驶员头部加速度,来判断驾驶员是否犯困(表情并且偷笑)。

    本设计包含本设计的原理图,硬件清单,STM32代码,测试时的串口输出内容TXT。

二.硬件组成

-硬件总成本100以内。

-硬件清单截图,表格会放在在资料里。

【E666】STM32F103防疲劳驾驶检测完整设计

三.原理图

原理图部分要说明两点

1、MAX30102是网上随便找了个图照着画的。led的部分没画,在淘宝买的模块,没有原理图。

2、mpu6050是参考原子的,实际用的是串口输出的mpu6050,接的是单片机的串口3,mpu6050部分电路中串口部分只画了引脚标号,连接到了单片机的串口3.

【E666】STM32F103防疲劳驾驶检测完整设计

四.实现的功能

1、持续实时计算30秒内的平均脉搏

2、按键1按下后将一分钟内的平均脉搏设为正常脉搏,正常脉博值更新后蜂鸣器隔一秒响一次,正常脉博值未更新时蜂鸣器一秒响4次,这样能知道当前什么状态,报警状态就是一直响。如果已经按下过按键一 ,那再按一次就会蜂鸣器快响,并计算平均值,计算完蜂鸣器再慢响,相当于更新了一次平均值。

3、按键2按下,实时检测xyz加速度,并且设置对应的三个报警值,超过报警值蜂鸣器报警,需要按按键4手动取消报警,报警值设置程序中采用宏定义的方式,方便用户更改调试,每次更改后需重新下载程序。再按一次按键2 加虚度检测停止工作。按键2 相当于只检测加速度。

4、第三个按键按下,脉搏报警值和加速度报警值每两分钟改变一次,超过报警值就报警。并开始计时,到达十分钟触发报警。如果中途发生超过报警值的报警按取消报警停止报警10分钟计时停止也不重新计,第三个按键再按一次,就停止。

5、按第四个按键取消报警。

五.

【E666】STM32F103防疲劳驾驶检测完整设计

目录│文件列表:

 └ 疲劳驾驶检测全套资料

    │ 原理图.SchDoc

    │ 方案初稿.xlsx

    │ 测试时串口输出.txt

    │ 硬件清单.xlsx

    └ stm32代码

       │ keilkilll.bat

       ├ CORE

       │  │ core_cm3.c

       │  │ core_cm3.h

       │  │ startup_stm32f10x_hd.s

       │  └ startup_stm32f10x_md.s

       ├ HARDWARE

       │  ├ EXTI

       │  │  │ exti.c

       │  │  └ exti.h

       │  ├ KEY

       │  │  │ key.c

       │  │  │ key.h

       │  │  │ led.c

       │  │  └ led.h

       │  ├ MAX30102

       │  │  ├ algorithm

       │  │  │  │ algorithm.c

       │  │  │  └ algorithm.h

       │  │  ├ IIC

       │  │  │  │ myiic.c

       │  │  │  └ myiic.h

       │  │  └ MAX30102

       │  │     │ MAX30102.c

       │  │     │ MAX30102.c.orig

       │  │     └ MAX30102.h

       │  ├ OLED

       │  │  │ bmp.h

       │  │  │ oled.c

       │  │  │ oled.h

       │  │  └ oledfont.h

       │  └ TIMER

       │     │ timer.c

       │     └ timer.h

       ├ OBJ

       │  │ algorithm.crf

       │  │ algorithm.d

       │  │ algorithm.o

       │  │ core_cm3.crf

       │  │ core_cm3.d

       │  │ core_cm3.o

       │  │ delay.crf

       │  │ delay.d

       │  │ delay.o

       │  │ ExtDll.iex

       │  │ exti.crf

       │  │ exti.d

       │  │ exti.o

       │  │ key.crf

       │  │ key.d

       │  │ key.o

       │  │ main.crf

       │  │ main.d

       │  │ main.o

       │  │ max30102.crf

       │  │ max30102.d

       │  │ max30102.o

       │  │ misc.crf

       │  │ misc.d

       │  │ misc.o

       │  │ myiic.crf

       │  │ myiic.d

       │  │ myiic.o

       │  │ OLED.axf

       │  │ OLED.build_log.htm

       │  │ oled.crf

       │  │ oled.d

       │  │ OLED.hex

       │  │ OLED.htm

       │  │ OLED.lnp

       │  │ oled.o

       │  │ OLED.sct

       │  │ OLED_Target 1.dep

       │  │ startup_stm32f10x_hd.d

       │  │ startup_stm32f10x_hd.o

       │  │ stm32f10x_adc.crf

       │  │ stm32f10x_adc.d

       │  │ stm32f10x_adc.o

       │  │ stm32f10x_bkp.crf

       │  │ stm32f10x_bkp.d

       │  │ stm32f10x_bkp.o

       │  │ stm32f10x_can.crf

       │  │ stm32f10x_can.d

       │  │ stm32f10x_can.o

       │  │ stm32f10x_cec.crf

       │  │ stm32f10x_cec.d

       │  │ stm32f10x_cec.o

       │  │ stm32f10x_crc.crf

       │  │ stm32f10x_crc.d

       │  │ stm32f10x_crc.o

       │  │ stm32f10x_dac.crf

       │  │ stm32f10x_dac.d

       │  │ stm32f10x_dac.o

       │  │ stm32f10x_dbgmcu.crf

       │  │ stm32f10x_dbgmcu.d

       │  │ stm32f10x_dbgmcu.o

       │  │ stm32f10x_dma.crf

       │  │ stm32f10x_dma.d

       │  │ stm32f10x_dma.o

       │  │ stm32f10x_exti.crf

       │  │ stm32f10x_exti.d

       │  │ stm32f10x_exti.o

       │  │ stm32f10x_flash.crf

       │  │ stm32f10x_flash.d

       │  │ stm32f10x_flash.o

       │  │ stm32f10x_fsmc.crf

       │  │ stm32f10x_fsmc.d

       │  │ stm32f10x_fsmc.o

       │  │ stm32f10x_gpio.crf

       │  │ stm32f10x_gpio.d

       │  │ stm32f10x_gpio.o

       │  │ stm32f10x_i2c.crf

       │  │ stm32f10x_i2c.d

       │  │ stm32f10x_i2c.o

       │  │ stm32f10x_it.crf

       │  │ stm32f10x_it.d

       │  │ stm32f10x_it.o

       │  │ stm32f10x_iwdg.crf

       │  │ stm32f10x_iwdg.d

       │  │ stm32f10x_iwdg.o

       │  │ stm32f10x_pwr.crf

       │  │ stm32f10x_pwr.d

       │  │ stm32f10x_pwr.o

       │  │ stm32f10x_rcc.crf

       │  │ stm32f10x_rcc.d

       │  │ stm32f10x_rcc.o

       │  │ stm32f10x_rtc.crf

       │  │ stm32f10x_rtc.d

       │  │ stm32f10x_rtc.o

       │  │ stm32f10x_sdio.crf

       │  │ stm32f10x_sdio.d

       │  │ stm32f10x_sdio.o

       │  │ stm32f10x_spi.crf

       │  │ stm32f10x_spi.d

       │  │ stm32f10x_spi.o

       │  │ stm32f10x_tim.crf

       │  │ stm32f10x_tim.d

       │  │ stm32f10x_tim.o

       │  │ stm32f10x_usart.crf

       │  │ stm32f10x_usart.d

       │  │ stm32f10x_usart.o

       │  │ stm32f10x_wwdg.crf

       │  │ stm32f10x_wwdg.d

       │  │ stm32f10x_wwdg.o

       │  │ sys.crf

       │  │ sys.d

       │  │ sys.o

       │  │ system_stm32f10x.crf

       │  │ system_stm32f10x.d

       │  │ system_stm32f10x.o

       │  │ timer.crf

       │  │ timer.d

       │  │ timer.o

       │  │ usart.crf

       │  │ usart.d

       │  └ usart.o

       ├ STM32F10x_FWLib

       │  ├ inc

       │  │  │ misc.h

       │  │  │ stm32f10x_adc.h

       │  │  │ stm32f10x_bkp.h

       │  │  │ stm32f10x_can.h

       │  │  │ stm32f10x_cec.h

       │  │  │ stm32f10x_crc.h

       │  │  │ stm32f10x_dac.h

       │  │  │ stm32f10x_dbgmcu.h

       │  │  │ stm32f10x_dma.h

       │  │  │ stm32f10x_exti.h

       │  │  │ stm32f10x_flash.h

       │  │  │ stm32f10x_fsmc.h

       │  │  │ stm32f10x_gpio.h

       │  │  │ stm32f10x_i2c.h

       │  │  │ stm32f10x_iwdg.h

       │  │  │ stm32f10x_pwr.h

       │  │  │ stm32f10x_rcc.h

       │  │  │ stm32f10x_rtc.h

       │  │  │ stm32f10x_sdio.h

       │  │  │ stm32f10x_spi.h

       │  │  │ stm32f10x_tim.h

       │  │  │ stm32f10x_usart.h

       │  │  └ stm32f10x_wwdg.h

       │  └ src

       │     │ misc.c

       │     │ stm32f10x_adc.c

       │     │ stm32f10x_bkp.c

       │     │ stm32f10x_can.c

       │     │ stm32f10x_cec.c

       │     │ stm32f10x_crc.c

       │     │ stm32f10x_dac.c

       │     │ stm32f10x_dbgmcu.c

       │     │ stm32f10x_dma.c

       │     │ stm32f10x_exti.c

       │     │ stm32f10x_flash.c

       │     │ stm32f10x_fsmc.c

       │     │ stm32f10x_gpio.c

       │     │ stm32f10x_i2c.c

       │     │ stm32f10x_iwdg.c

       │     │ stm32f10x_pwr.c

       │     │ stm32f10x_rcc.c

       │     │ stm32f10x_rtc.c

       │     │ stm32f10x_sdio.c

       │     │ stm32f10x_spi.c

       │     │ stm32f10x_tim.c

       │     │ stm32f10x_usart.c

       │     └ stm32f10x_wwdg.c

       ├ SYSTEM

       │  ├ delay

       │  │  │ delay.c

       │  │  └ delay.h

       │  ├ sys

       │  │  │ sys.c

       │  │  └ sys.h

       │  └ usart

       │     │ usart.c

       │     └ usart.h

       └ USER

          │ EventRecorderStub.scvd

          │ JLinkSettings.ini

          │ main.c

          │ OLED.uvguix.Administrator

          │ OLED.uvguix.zheng

          │ OLED.uvoptx

          │ OLED.uvprojx

          │ stm32f10x.h

          │ stm32f10x_conf.h

          │ stm32f10x_it.c

          │ stm32f10x_it.h

          │ system_stm32f10x.c

          │ system_stm32f10x.h

          ├ DebugConfig

          │  └ Target_1_STM32F103C8_1.0.0.dbgconf

          └ Listings

             │ OLED.map

             └ startup_stm32f10x_hd.lst

TAG疲劳驾驶
  • 6 次
  • 5 分