一.系统概述
矿下小车系统设计包括以下功能,通过STM32单片机实现:
1. 避障功能
超声波测距模块:实现小车的避障功能,检测周围障碍物距离。
障碍物检测:当检测到障碍物超过设定的阈值时,系统控制电机进行避障操作。
2. 环境监测:
火焰传感器:检测矿下是否有明火出现。
DS18B20温度传感器:实时监测矿下的温度。
MQ-4传感器:检测烟雾和可燃气体浓度。
数据显示:通过OLED显示屏展示检测到的火焰、温度、烟雾和可燃气体数据。
3. 安全控制与报警:
灭火和报警:当检测到明火或烟雾超过设定的阈值时,系统触发灭火和报警措施。
温度控制:当检测到温度超过设定的阈值时,系统控制舵机开窗降温。
4. 远程控制:
蓝牙模块:通过蓝牙实现手机对小车运动的远程控制操作。
二.电路设计
矿下小车系统设计包括以下功能,通过STM32单片机实现:
1. 避障功能
超声波测距模块:实现小车的避障功能,检测周围障碍物距离。
障碍物检测:当检测到障碍物超过设定的阈值时,系统控制电机进行避障操作。
2. 环境监测
火焰传感器:检测矿下是否有明火出现。
DS18B20温度传感器:实时监测矿下的温度。
MQ-4传感器:检测烟雾和可燃气体浓度。
数据显示:通过OLED显示屏展示检测到的火焰、温度、烟雾和可燃气体数据。
3. 安全控制与报警
灭火和报警:当检测到明火或烟雾超过设定的阈值时,系统触发灭火和报警措施。
温度控制:当检测到温度超过设定的阈值时,系统控制舵机开窗降温。
4. 远程控制
蓝牙模块:通过蓝牙实现手机对小车运动的远程控制操作。
三.程序设计
#include "stm32f10x.h"
#include "Delay.h"
#include "OLED.h"
#include "Timer.h"
#include "Car.h"
#include "Obstacle.h"
#include "SteeringEngine.h"
#include "AD.h"
#include "bluetooth.h"
#include "stdio.h"
#include "DS18B20.h"
#include "BUZZER.h"
#include "Relay.h"
#define BUFFER_SIZE 100
int main(void)
{
/*变量定义*/
uint16_t AD0,AD1,Tem;
float Num = 90;
/*模块初始化*/
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组(蓝牙初始化)
uart1_init(9600); //蓝牙串口波特率初始化为9600
OLED_Init(); //OLED屏幕初始化
Timer_Init(); //定时中断初始化
AD_Init(); //AD初始化
Car_Motor_Init(); //小车启动初始化
Servo_Init(); //舵机初始化
HS_SR04_Init(); //超声波初始化
DS18B20_Init(); //DS18B20温度传感器初始化
BUZZER_Init(); //蜂鸣器初始化
Relay_Init(); //继电器初始化
/*显示静态字符串*/
OLED_ShowString(1, 1, "Gas:0000");
OLED_ShowString(2, 1, "Temp:00.00");
/*显示程序内变量设置*/
Servo_SetAngle(90);
Delay_ms(1000);
while (1)
{
Num = Ultrasonic_Ranging(Num,50); //小车超声波避障
Prevent_Stop(Num,40); //小车避障防卡死
AD0 = AD_GetValue(ADC_Channel_0);
AD1 = AD_GetValue(ADC_Channel_1);
Tem = DS18B20_GetTemperature();
OLED_ShowNum(1, 5, AD0, 4);
OLED_ShowNum(2, 6, Tem>>4, 2);
OLED_ShowNum(2, 9, Tem&0xF, 2);
Delay_ms(100); //延时100ms,手动增加一些转换的间隔时间
printf("温度:%d.%d°\r\n",Tem>>4,Tem&0xF);
printf("气体浓度: %d\r\n", AD0);
printf("火焰: %d\r\n", AD1);
printf("\r\n");
if(AD1 < 3000)
{
BUZZER_ON();
Relay_ON();
printf("WARNING!!!!!!");
printf("\r\n");
}
else
{
BUZZER_OFF();
Relay_OFF();
}
}
}