stm32项目(14)——基于stm32f103zet6的循迹避障小车

1.功能设计

        stm32循迹避障小车,使用超声波测距,使用红外循迹模块追踪黑线,实现循迹功能。此外,还可以检测烟雾、火焰、人体、温湿度。温湿度显示在LCD屏幕上。检测到有人、有火焰、有烟雾时,蜂鸣器报警!

        功能演示视频:

stm32循迹避障小车演示视频

循迹避障小车安全检测功能演示

大致的原理图如下所示:

2.模块选择

1.超声波:HCSR04

HCSR04是一种超声波测距模块,常用于测量目标物体与传感器之间的距离。它是由一个超声发射器和接收器组成。

HCSR04工作原理如下:超声发射器会发射出声波脉冲,然后通过空气中的传播,接触到目标物体表面后被反射回来。接收器会接收到反射回来的声波信号。通过测量发射和接收之间的时间差,可以计算出目标物体与传感器之间的距离。

HCSR04模块一般包括两个主要引脚:Trig(触发引脚)和Echo(回响引脚)。通过给Trig引脚提供一个至少10微秒的高电平触发信号,模块开始发射超声波。当超声波被目标物体反射后,Echo引脚会输出一个高电平信号,其持续时间与超声波的传播时间成正比。通过测量Echo引脚的高电平持续时间,可以计算出距离。

使用HCSR04模块进行测距时,需要根据声速和测量时间计算出具体的距离。一般来说,声速在空气中为约340米/秒。

HCSR04模块在很多应用中被广泛使用,比如智能小车避障、室内定位、无人机高度测量等。需要注意的是,模块的准确度受到环境因素的影响,比如温度、湿度等,因此在使用时需要进行校准和适当的误差处理。

2.循迹模块

循迹模块是一种用于自动驾驶或智能小车等项目的传感器模块,可以帮助车辆在运动过程中识别和跟踪特定的路径线路。

循迹模块一般由红外发射器和红外接收器组成。发射器会发出红外光束,然后光束经过地面反射回到接收器,通过接收器感知反射回来的光信号强弱来判断小车是否偏离了预设的道路。

循迹模块一般有多个红外发射器和接收器,布置在小车底部,形成一个阵列。当小车在路径上行驶时,每个传感器会接收到不同的光信号强度。通过比较不同传感器接收到的信号强度,可以确定小车当前所处位置的偏移程度,进而调整车轮方向或控制电机速度,使小车保持在预设的路径上。

使用循迹模块时,通常需要进行一定的校准和参数设置,以适应不同的地面状况和光照条件。同时,还可以根据需要将循迹模块与其他传感器或控制模块结合,实现更高级的功能,比如避障、智能巡线等。

循迹模块在自动驾驶、智能小车等项目中起到了辅助导航的作用,帮助车辆在运动过程中保持在预定的路径上,并实现自主控制。它不仅在教育实验、科研开发中广泛应用,也逐渐应用于工业自动化、无人物流等领域。

本项目使用了三个单路循迹模块,分别装在了车子底板的左中右位置,提高检测精度! 

 

3.火焰检测模块

火焰检测模块是一种用于检测火焰的传感器模块,可以感知周围环境中的火焰或火源。

火焰检测模块一般使用红外线传感器来检测火焰。当火焰或火源出现时,火焰产生的热量和可见光会被红外线传感器探测到。通过红外传感器对火焰光谱和特征的分析,可以判断是否存在火焰。

火焰检测模块通常具有以下特点:
1. 灵敏度高: 能够检测到微弱的火焰光信号;
2. 快速响应: 可以在极短时间内响应并检测到火焰;
3. 抗干扰性强: 在环境光照强烈、其他光源存在的情况下,能够辨别出真正的火焰信号;
4. 可调节参数: 可以根据需要调整检测的敏感度和触发条件。

火焰检测模块在安防、工业自动化、火灾预警等领域广泛应用。例如,它可以用于火灾报警系统,及时监测火灾并触发警报和报警装置;也可以应用于工业生产中,用于监控火焰的燃烧状态,保障生产安全;此外,在机器人、智能家居等项目中,火焰检测模块可以作为一种安全保障措施,及时发现火情并采取措施防范。

火焰检测模块在使用时应遵循相关安全规范,避免误报和漏报,并进行适当的环境和敏感度的调节,以提高检测的准确性和稳定性。

4.烟雾传感器

MQ2是一种烟雾传感器模块,能够检测到室内或者工业生产环境中的烟雾、液化气、丙烷、甲烷等气体的存在,以及这些气体的浓度。

MQ2烟雾传感器采用化学气敏技术,内部安装有特殊的气敏元件,在受到气体刺激后,元件的电阻值会变化,并转化成可感知的电信号输出。传感器的输出信号可以通过模拟量或数字量方式获取,常用的模块包含了基于比较器的阈值电平设置、输出状态指示灯和对外部支持的标准引脚等更多设计。

MQ2烟雾传感器模块不仅可以检测烟雾浓度,还可以检测液化气和煤气等气体的存在,被广泛应用于安全预警系统、烟雾报警系统、气体检测和家庭保安等领域。

由于使用中存在误检、误报的情况,国家标准及相关行业规范中对于MQ2等传感器的烟雾检测装置的判别、计量、校验和使用等要求有详细的规定,使用时也需要注意环境的影响,尽量避免烟雾传感器对于其他物质的干扰和误报。

5.人体检测:红外对管

红外对管模块是一种用于红外线测距的传感器模块,常用于智能小车、机器人、无人机等项目中,用于检测前面障碍物距离和方位。

红外对管模块的基本原理是利用红外线发射管所发射的红外线,经过反射后被接收管所接受,并将红外线的信息转换为电信号输出。两个管子分别位于测量区域的两端,一个光线发射器发出红外线,另一个接收器接受反射回来的红外线,并将接收到的信号转换为电信号输出,通过两个管子之间信号的比较,可以确定前面障碍物的距离和方位。

红外对管模块广泛应用于自动避障,特别是在运动平衡、定位精准等需求较高的项目中,红外传感器是实现高精度跟随和有效避障的必要配套。

本次使用的红外对管,在一定范围内检测到有物体时,就会输出低电平!

6.温湿度:DHT11

DHT11是一种数字温湿度传感器模块,常用于测量环境的温度和湿度。它是一种低成本、易于使用的传感器,适用于各种项目和应用。

DHT11传感器模块内部集成了温度和湿度传感器,并具有一个数字信号输出引脚。传感器通过测量环境中的温度和湿度,将读数转换为数字信号,并通过单线总线协议(一种简单的通信协议)进行传输。

DHT11模块具有以下特点:
1. 低功耗:DHT11模块工作时的功耗非常低,适用于对能耗要求较高的项目。
2. 响应迅速:传感器可以快速测量并输出温度和湿度值。
3. 模块化设计:DHT11模块通常以方便使用的模块形式提供,具有标准引脚来连接到微控制器或其他设备。
4. 相对准确:虽然DHT11模块的准确性相对较低,但对于一般应用而言已经足够。

DHT11传感器广泛应用于各种领域,如气象站、室内温湿度监测、智能家居系统、温室控制等。通过读取DHT11模块的数字信号,用户可以获取当前环境的温度和湿度值,并进行相应的控制和决策。

 3.完整工程

基于stm32的循迹避障小车资源-CSDN文库icon-default.png?t=N7T8https://download.csdn.net/download/guangali/88655354?spm=1001.2014.3001.5503

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单的示例程序,演示了如何在 STM32F103 小车上使用 OpenMV 进行寻迹功能。这里假设你已经连接好了 OpenMV 和 STM32F103,并且通过串口进行通信。 首先是 OpenMV 端的代码: ```python import sensor import image import time from pyb import UART # 初始化串口 uart = UART(3, 115200) # 使用 UART3,波特率为 115200 # 初始化摄像头 sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) sensor.set_framesize(sensor.QQVGA) sensor.skip_frames(time=2000) while True: img = sensor.snapshot() # 捕获图像 # 在这里添加你的图像处理代码,实现循迹黑线功能 # 将处理结果发送给 STM32 uart.write("Hello from OpenMV!\n") # 发送字符串到串口 time.sleep(100) # 延时一段时间,确保 STM32 接收完数据 ``` 接下来是 STM32F103 端的代码,使用 HAL 库进行编写: ```c #include "stm32f1xx_hal.h" #include <string.h> UART_HandleTypeDef huart3; void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_USART3_UART_Init(void); int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART3_UART_Init(); while (1) { char buffer[20]; if (HAL_UART_Receive(&huart3, (uint8_t*)buffer, 20, 100) == HAL_OK) { if (strcmp(buffer, "Hello from OpenMV!\n") == 0) { // 在这里添加你的控制代码,例如驱动电机进行运动 } } } } ``` 这只是一个简单的示例,实际的循迹和控制代码会根据你的具体需求而有所不同。你需要在 STM32F103 上添加适当的引脚配置、电机驱动和控制逻辑。 另外,请确保在 STM32F103 的 CubeMX 或者 HAL 库中正确配置和初始化 UART3,以便与 OpenMV 进行串口通信。 请根据你的具体硬件和需求进行适当的修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式小李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值