2021-08-26 11:09:28 索煒達(dá)電子 1640
項(xiàng)目編號:E666
文件大?。?.2M
源碼說明:帶中文注釋
開發(fā)環(huán)境:C編譯器
簡要概述:
一.本設(shè)計(jì)的主要功能是,通過心率傳感器檢測駕駛員脈搏,MPU6050加速度傳感器檢測駕駛員頭部加速度,來判斷駕駛員是否犯困(表情并且偷笑)。
本設(shè)計(jì)包含本設(shè)計(jì)的原理圖,硬件清單,STM32代碼,測試時(shí)的串口輸出內(nèi)容TXT。
二.硬件組成
-硬件總成本100以內(nèi)。
-硬件清單截圖,表格會放在在資料里。
三.原理圖
原理圖部分要說明兩點(diǎn)
1、MAX30102是網(wǎng)上隨便找了個(gè)圖照著畫的。led的部分沒畫,在淘寶買的模塊,沒有原理圖。
2、mpu6050是參考原子的,實(shí)際用的是串口輸出的mpu6050,接的是單片機(jī)的串口3,mpu6050部分電路中串口部分只畫了引腳標(biāo)號,連接到了單片機(jī)的串口3.
四.實(shí)現(xiàn)的功能
1、持續(xù)實(shí)時(shí)計(jì)算30秒內(nèi)的平均脈搏
2、按鍵1按下后將一分鐘內(nèi)的平均脈搏設(shè)為正常脈搏,正常脈博值更新后蜂鳴器隔一秒響一次,正常脈博值未更新時(shí)蜂鳴器一秒響4次,這樣能知道當(dāng)前什么狀態(tài),報(bào)警狀態(tài)就是一直響。如果已經(jīng)按下過按鍵一 ,那再按一次就會蜂鳴器快響,并計(jì)算平均值,計(jì)算完蜂鳴器再慢響,相當(dāng)于更新了一次平均值。
3、按鍵2按下,實(shí)時(shí)檢測xyz加速度,并且設(shè)置對應(yīng)的三個(gè)報(bào)警值,超過報(bào)警值蜂鳴器報(bào)警,需要按按鍵4手動取消報(bào)警,報(bào)警值設(shè)置程序中采用宏定義的方式,方便用戶更改調(diào)試,每次更改后需重新下載程序。再按一次按鍵2 加虛度檢測停止工作。按鍵2 相當(dāng)于只檢測加速度。
4、第三個(gè)按鍵按下,脈搏報(bào)警值和加速度報(bào)警值每兩分鐘改變一次,超過報(bào)警值就報(bào)警。并開始計(jì)時(shí),到達(dá)十分鐘觸發(fā)報(bào)警。如果中途發(fā)生超過報(bào)警值的報(bào)警按取消報(bào)警停止報(bào)警10分鐘計(jì)時(shí)停止也不重新計(jì),第三個(gè)按鍵再按一次,就停止。
5、按第四個(gè)按鍵取消報(bào)警。
五.
目錄│文件列表:
└ 疲勞駕駛檢測全套資料
│ 原理圖.SchDoc
│ 方案初稿.xlsx
│ 測試時(shí)串口輸出.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