当前位置: 首页 > news >正文

使用 ESP32 构建倒车雷达系统:蜂鸣器警报功能详解

在这里插入图片描述

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:趣享先生的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:C、C++学习分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:使用 ESP32 构建倒车雷达系统:蜂鸣器警报功能详解

文章目录

      • 引言
      • 1. 项目概述
        • 项目背景
        • 项目目标
        • 项目意义
      • 2. 硬件需求
        • 2.1 ESP32 开发板
        • 2.2 HC-SR04 超声波传感器
        • 2.3 蜂鸣器
        • 2.4 面包板和跳线
        • 2.5 电源
        • 2.6 其他配件
      • 3. 硬件连接
        • 3.1 硬件连接概述
        • 3.2 连接引脚说明
        • 3.3 连接步骤
        • 3.4 连接示意表
      • 4. 软件环境
        • 4.1 开发工具
          • 4.1.1 Arduino IDE
          • 4.1.2 PlatformIO
        • 4.2 必要库文件
        • 4.3 编写代码
        • 4.4 上传代码
        • 4.5 串口监视器
      • 5. 扩展功能
        • 5.1 LED 指示灯
        • 5.2 蓝牙或 Wi-Fi 连接
        • 5.3 多传感器支持
        • 5.4 数据记录与分析
      • 总结

引言

  在当今的汽车技术中,安全性始终是设计和开发的重中之重。随着智能驾驶和自动化技术的不断进步,倒车雷达系统作为一种重要的安全辅助设备,越来越受到关注。它通过实时监测车辆后方的障碍物,帮助驾驶员避免潜在的碰撞风险,从而提高行车安全性。

  本项目旨在利用 ESP32 微控制器和超声波传感器,构建一个简单而有效的倒车雷达系统。通过该系统,驾驶员可以实时获取后方障碍物的距离信息,并通过蜂鸣器发出警报,提醒驾驶员注意周围环境。这个项目不仅适合电子爱好者和学生进行实践学习,也为汽车安全技术的进一步探索提供了基础。

  在接下来的内容中,我们将详细介绍所需的硬件、软件环境、代码实现以及测试调试的过程,帮助您轻松构建自己的倒车雷达系统。无论您是初学者还是有经验的开发者,这个项目都将为您提供宝贵的实践经验和技术知识。让我们一起开始这个有趣的旅程吧!

1. 项目概述

  在现代社会,汽车已经成为人们日常生活中不可或缺的交通工具。然而,随着城市交通的日益复杂,驾驶员在倒车时面临的安全隐患也随之增加。为了提高倒车的安全性,倒车雷达系统应运而生。该系统通过超声波传感器实时监测车辆后方的障碍物,并通过声音或视觉信号提醒驾驶员,从而有效降低事故发生的风险。

本项目的目标是利用 ESP32 微控制器和 HC-SR04 超声波传感器,构建一个简单的倒车雷达系统。该系统将实现以下功能:

  1. 距离测量:通过超声波传感器测量车辆后方与障碍物之间的距离,并将其转换为可读的数值。

  2. 蜂鸣器警报:当检测到的距离小于设定阈值(例如 20 cm)时,蜂鸣器将发出警报声,提醒驾驶员注意后方的障碍物。

  3. 实时反馈:系统将通过串口监视器实时输出测量的距离数据,帮助用户了解当前的环境状况。

项目背景

  倒车雷达系统的广泛应用不仅提升了驾驶的安全性,还为驾驶员提供了更高的便利性。尤其是在狭小的停车场或复杂的城市环境中,倒车雷达能够有效减少盲区,降低碰撞的风险。通过将这一技术应用于 DIY 项目中,爱好者和开发者可以深入理解传感器工作原理、数据处理和控制逻辑,从而提升自己的电子技术水平。

项目目标

本项目旨在实现一个功能完整的倒车雷达系统,具体目标包括:

  • 硬件搭建:选择合适的传感器和微控制器,完成电路连接。
  • 软件开发:编写代码实现距离测量和蜂鸣器控制,确保系统稳定运行。
  • 测试与调试:通过实际测试验证系统的可靠性和准确性,调整参数以优化性能。
项目意义

  通过本项目,参与者不仅能够掌握基本的电子元件使用和编程技能,还能深入理解物联网技术在汽车安全领域的应用。该项目为后续更复杂的智能驾驶系统打下基础,激发参与者对汽车电子和智能控制技术的兴趣。

  总之,本项目不仅是一个有趣的实践活动,更是一个提升技术能力、增强安全意识的良好机会。接下来,我们将详细介绍所需的硬件组件、软件环境以及具体的实现步骤,帮助您顺利完成这个倒车雷达系统的构建。

2. 硬件需求

  在构建一个倒车雷达系统之前,了解所需的硬件组件是至关重要的。以下是本项目所需的主要硬件组件及其详细说明:

2.1 ESP32 开发板
  • 描述:ESP32 是一款功能强大的微控制器,集成了 Wi-Fi 和蓝牙功能,适合物联网应用。它具有多种 GPIO 引脚,可以连接各种传感器和外设。
  • 选择理由:ESP32 的高性能和多功能性使其成为本项目的理想选择。它不仅能够处理传感器数据,还可以通过 Wi-Fi 实现远程监控和控制。
2.2 HC-SR04 超声波传感器
  • 描述:HC-SR04 是一种常用的超声波测距模块,能够通过发射和接收超声波信号来测量物体与传感器之间的距离。其工作原理是发射超声波并计算返回信号的时间。
  • 工作原理
    • TRIG 引脚:用于触发超声波信号的发射。
    • ECHO 引脚:用于接收返回的超声波信号并计算时间。
  • 测量范围:通常在 2 cm 到 400 cm 之间,精度较高,适合近距离测量。
  • 选择理由:HC-SR04 价格低廉,易于使用,且具有良好的测量精度,非常适合用于倒车雷达系统。
2.3 蜂鸣器
  • 描述:蜂鸣器是一种能够发出声音的电子元件,通常用于警报和提示。它可以是有源蜂鸣器(内置振荡器)或无源蜂鸣器(需要外部信号驱动)。
  • 选择理由:在本项目中,蜂鸣器用于发出警报声,以提醒驾驶员注意后方障碍物。选择有源蜂鸣器可以简化电路设计,因为它只需提供电源即可发声。
2.4 面包板和跳线
  • 描述:面包板是一种用于快速原型制作的电路板,允许用户在不焊接的情况下连接电子元件。跳线则用于在面包板和其他组件之间建立连接。
  • 选择理由:面包板和跳线使得电路连接更加灵活和方便,适合初学者进行实验和调试。
2.5 电源
  • 描述:ESP32 开发板通常可以通过 USB 供电,或者使用外部电源(如锂电池)供电。
  • 选择理由:确保电源稳定是项目成功的关键。使用 USB 供电可以方便地进行调试,而使用电池则适合移动应用。
2.6 其他配件
  • 电阻:在某些情况下,可能需要使用电阻来保护电路或调整信号。
  • LED 指示灯(可选):可以添加 LED 指示灯,用于提供视觉反馈,增强系统的可视化效果。

硬件清单总结

组件数量描述
ESP32 开发板1作为控制单元,处理传感器数据和控制蜂鸣器
HC-SR04 超声波传感器1测量后方障碍物的距离
蜂鸣器1发出警报声,提醒驾驶员
面包板1用于连接电子元件
跳线若干用于连接电路
电源1为 ESP32 和传感器供电
电阻(可选)若干用于电路保护或信号调整
LED 指示灯(可选)若干提供视觉反馈

3. 硬件连接

  在构建倒车雷达系统时,确保各个组件之间的连接正确至关重要。以下是 ESP32、HC-SR04 超声波传感器和蜂鸣器的详细连接说明,包括连接引脚的具体信息和连接表。

3.1 硬件连接概述

本项目中,我们将使用以下组件进行连接:

  • ESP32 开发板
  • HC-SR04 超声波传感器
  • 蜂鸣器
  • 面包板和跳线
3.2 连接引脚说明
组件引脚名称连接到 ESP32 的引脚描述
HC-SR04VCC5V供电引脚,连接到 ESP32 的 5V 输出
GNDGND地线,引脚连接到 ESP32 的 GND
TRIGGPIO 23触发引脚,发送超声波信号
ECHOGPIO 22接收引脚,接收返回的超声波信号
蜂鸣器正极GPIO 21连接到 ESP32 的 GPIO 21,用于发声
负极GND地线,引脚连接到 ESP32 的 GND
3.3 连接步骤
  1. 连接 HC-SR04 超声波传感器

    • 将 HC-SR04 的 VCC 引脚连接到 ESP32 的 5V 引脚。
    • 将 HC-SR04 的 GND 引脚连接到 ESP32 的 GND 引脚。
    • 将 HC-SR04 的 TRIG 引脚连接到 ESP32 的 GPIO 23 引脚。
    • 将 HC-SR04 的 ECHO 引脚连接到 ESP32 的 GPIO 22 引脚。
  2. 连接蜂鸣器

    • 将蜂鸣器的正极连接到 ESP32 的 GPIO 21 引脚。
    • 将蜂鸣器的负极连接到 ESP32 的 GND 引脚。
  3. 使用面包板和跳线

    • 使用面包板将所有连接整理在一起,确保连接稳固。
    • 使用跳线连接各个组件,确保连接正确。
3.4 连接示意表
连接组件连接引脚连接到 ESP32 的引脚说明
HC-SR04VCC5V供电引脚
GNDGND地线
TRIGGPIO 23触发超声波信号的引脚
ECHOGPIO 22接收超声波信号的引脚
蜂鸣器正极GPIO 21发声引脚
负极GND地线

4. 软件环境

  在构建倒车雷达系统的过程中,设置合适的软件环境是确保项目顺利进行的关键步骤。以下是本项目所需的软件环境的详细说明,包括开发工具、库文件和配置步骤。

4.1 开发工具

本项目将使用 Arduino IDEPlatformIO 作为开发环境。两者都是流行的开发工具,支持 ESP32 的编程和上传。

4.1.1 Arduino IDE
  • 下载与安装

    1. 访问 Arduino 官网 下载 Arduino IDE。
    2. 根据操作系统选择合适的版本进行安装。
  • 设置 ESP32 开发环境

    1. 打开 Arduino IDE,进入菜单栏的 File -> Preferences
    2. Additional Board Manager URLs 输入框中添加以下链接:
      https://dl.espressif.com/dl/package_esp32_index.json
      
    3. 点击 OK 保存设置。
    4. 进入菜单栏的 Tools -> Board -> Boards Manager,搜索 “ESP32” 并安装 “esp32 by Espressif Systems”。
4.1.2 PlatformIO
  • 下载与安装

    1. 访问 PlatformIO 官网 下载并安装 PlatformIO IDE,或在 Visual Studio Code 中安装 PlatformIO 插件。
  • 创建新项目

    1. 打开 PlatformIO,点击 New Project
    2. 输入项目名称,选择 ESP32 Dev Module 作为开发板,选择合适的框架(如 Arduino)。
    3. 点击 Finish 创建项目。
4.2 必要库文件

在本项目中,我们将使用 Arduino 的基本库来控制超声波传感器和蜂鸣器。通常情况下,Arduino IDE 和 PlatformIO 已经包含了这些基本库,但您可以根据需要安装其他库。

  • 没有额外库:本项目不需要额外的库,只需使用 Arduino 的核心库即可。
4.3 编写代码

在设置好软件环境后,您可以开始编写代码。以下是代码的基本结构,您可以在 Arduino IDE 或 PlatformIO 中创建一个新的文件并输入以下代码:

#include <Arduino.h>const int trigPin = 23; // TRIG 引脚
const int echoPin = 22; // ECHO 引脚
const int buzzerPin = 21; // 蜂鸣器引脚void setup() {Serial.begin(115200); // 初始化串口通信pinMode(trigPin, OUTPUT); // 设置 TRIG 引脚为输出pinMode(echoPin, INPUT); // 设置 ECHO 引脚为输入pinMode(buzzerPin, OUTPUT); // 设置蜂鸣器引脚为输出
}void loop() {long duration, distance;// 发送超声波信号digitalWrite(trigPin, LOW); // 确保 TRIG 引脚为低电平delayMicroseconds(2); // 等待 2 微秒digitalWrite(trigPin, HIGH); // 发送高电平信号delayMicroseconds(10); // 持续 10 微秒digitalWrite(trigPin, LOW); // 结束信号// 接收超声波信号duration = pulseIn(echoPin, HIGH); // 读取 ECHO 引脚的高电平持续时间distance = (duration * 0.034) / 2; // 计算距离(单位:厘米)// 打印距离到串口监视器Serial.print("Distance: ");Serial.print(distance);Serial.println(" cm");// 根据距离控制蜂鸣器if (distance < 20) { // 如果距离小于 20 cmdigitalWrite(buzzerPin, HIGH); // 蜂鸣器发声} else {digitalWrite(buzzerPin, LOW); // 蜂鸣器静音}delay(500); // 每 500 毫秒测量一次
}
4.4 上传代码
  1. 连接 ESP32:使用 USB 数据线将 ESP32 开发板连接到计算机。
  2. 选择开发板和端口
    • 在 Arduino IDE 中,进入菜单栏的 Tools -> Board,选择您的 ESP32 开发板。
    • 进入 Tools -> Port,选择对应的串口。
  3. 上传代码:点击 Arduino IDE 中的上传按钮,或在 PlatformIO 中点击上传图标,将代码上传到 ESP32 开发板。
4.5 串口监视器

上传代码后,您可以打开串口监视器(在 Arduino IDE 中选择 Tools -> Serial Monitor),设置波特率为 115200,以查看距离测量的输出结果。

5. 扩展功能

  在完成基本的倒车雷达系统后,您可以考虑添加一些扩展功能,以提高系统的实用性和用户体验。以下是一些建议的扩展功能及其详细阐述:

5.1 LED 指示灯

功能描述:在系统中添加 LED 指示灯,可以为用户提供视觉反馈,增强警报效果。

  • 实现方法

    • 使用一个或多个 LED 灯,连接到 ESP32 的 GPIO 引脚。
    • 根据测量的距离控制 LED 的状态,例如:
      • 距离小于 20 cm 时,LED 常亮。
      • 距离在 20 cm 到 50 cm 之间时,LED 闪烁。
      • 距离大于 50 cm 时,LED 关闭。
  • 代码示例

    const int ledPin = 19; // LED 引脚void setup() {// 其他初始化代码...pinMode(ledPin, OUTPUT); // 设置 LED 引脚为输出
    }void loop() {// 距离测量代码...if (distance < 20) {digitalWrite(buzzerPin, HIGH); // 蜂鸣器响digitalWrite(ledPin, HIGH); // LED 常亮} else if (distance < 50) {digitalWrite(buzzerPin, LOW); // 蜂鸣器静音digitalWrite(ledPin, HIGH); // LED 常亮delay(500);digitalWrite(ledPin, LOW); // LED 关闭delay(500);} else {digitalWrite(buzzerPin, LOW); // 蜂鸣器静音digitalWrite(ledPin, LOW); // LED 关闭}
    }
    
5.2 蓝牙或 Wi-Fi 连接

功能描述:通过蓝牙或 Wi-Fi 实现与手机或其他设备的连接,允许用户远程监控距离数据。

  • 实现方法

    • 使用 ESP32 的内置蓝牙或 Wi-Fi 功能,创建一个简单的应用程序或网页,显示实时距离数据。
    • 用户可以通过手机应用(如 Blynk)或自定义网页查看距离信息,并接收警报。
  • 代码示例(Wi-Fi 连接):

    #include <WiFi.h>const char* ssid = "your_SSID"; // Wi-Fi 名称
    const char* password = "your_PASSWORD"; // Wi-Fi 密码void setup() {Serial.begin(115200);WiFi.begin(ssid, password); // 连接 Wi-Fiwhile (WiFi.status() != WL_CONNECTED) {delay(1000);Serial.println("Connecting to WiFi...");}Serial.println("Connected to WiFi");
    }void loop() {// 距离测量代码...// 通过 HTTP 或 WebSocket 发送数据到服务器或客户端
    }
    
5.3 多传感器支持

功能描述:在系统中添加多个超声波传感器,以实现更广泛的检测范围和更高的准确性。

  • 实现方法

    • 连接多个 HC-SR04 传感器,分别设置不同的 TRIG 和 ECHO 引脚。
    • 在代码中依次读取每个传感器的距离数据,并根据最小距离控制蜂鸣器和 LED。
  • 代码示例

    const int trigPin1 = 23; // 第一个传感器 TRIG 引脚
    const int echoPin1 = 22; // 第一个传感器 ECHO 引脚
    const int trigPin2 = 25; // 第二个传感器 TRIG 引脚
    const int echoPin2 = 26; // 第二个传感器 ECHO 引脚void loop() {long distance1 = measureDistance(trigPin1, echoPin1);long distance2 = measureDistance(trigPin2, echoPin2);long minDistance = min(distance1, distance2);// 根据最小距离控制蜂鸣器和 LEDif (minDistance < 20) {digitalWrite(buzzerPin, HIGH);digitalWrite(ledPin, HIGH);} else {digitalWrite(buzzerPin, LOW);digitalWrite(ledPin, LOW);}
    }long measureDistance(int trigPin, int echoPin) {// 距离测量代码...
    }
    
5.4 数据记录与分析

功能描述:记录距离数据并进行分析,帮助用户了解后方障碍物的变化情况。

  • 实现方法

    • 将测量的数据存储到 SD 卡或通过 Wi-Fi 上传到云服务器。
    • 使用数据可视化工具(如 Grafana)展示数据变化趋势。
  • 代码示例(SD 卡记录):

    #include <SD.h>
    #include <SPI.h>File dataFile;void setup() {// 初始化 SD 卡if (!SD.begin()) {Serial.println("SD card initialization failed!");return;}dataFile = SD.open("data.txt", FILE_WRITE);
    }void loop() {long distance = measureDistance(trigPin, echoPin);if (dataFile) {dataFile.println(distance);dataFile.close(); // 关闭文件}delay(500);
    }
    

总结

  通过本项目,我们成功构建了一个基于 ESP32 的倒车雷达系统,利用 HC-SR04 超声波传感器实现了对后方障碍物的实时距离测量,并通过蜂鸣器发出警报,提升了倒车过程中的安全性。我们详细探讨了硬件连接、软件环境的设置、代码实现以及可能的扩展功能,展示了如何将基础的电子元件和编程知识结合起来,创造出实用的物联网应用。

  此外,项目中的扩展功能建议,如 LED 指示灯、蓝牙或 Wi-Fi 连接、多传感器支持以及数据记录与分析,进一步增强了系统的实用性和用户体验。这些功能不仅为用户提供了更直观的反馈,还为未来的智能驾驶技术奠定了基础。

  希望本项目能够激发您对电子技术和物联网应用的兴趣,鼓励您在此基础上进行更多的探索与创新。无论是作为学习工具还是实际应用,这个倒车雷达系统都展示了现代技术在提升安全性和便利性方面的巨大潜力。


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

相关文章:

使用 ESP32 构建倒车雷达系统:蜂鸣器警报功能详解

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;趣享先生的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&…...

Cesium中实现仿ArcGIS三维的动态图层加载方式

Cesium 加载 ArcGIS 动态图层的方式 如果你在 Cesium 中加载过 ArcGIS 的动态图层&#xff0c;你会发现&#xff0c;Cesium 对于动态图层仍然采用类似切片图层的逻辑进行加载。也就是每个固定的瓦片 export 一张图片。 这样会造成一些问题&#xff1a; 请求量大&#xff0c;…...

国际荐酒师(香港)协会亮相第六届地博会助力中欧地标交流合作

国际荐酒师&#xff08;香港&#xff09;协会亮相第六届知交会暨地博会&#xff0c;助力中欧地理标志产品交流合作 12月9日&#xff0c;第六届粤港澳大湾区知识产权交易博览会暨国际地理标志产品交易博览会&#xff08;以下简称“第六届知交会暨地博会”&#xff09;在中新广州…...

java八股-索引下推(图解对比)

参考链接 https://xiaolincoding.com/mysql/base/how_select.html#%E6%89%A7%E8%A1%8C%E5%99%A8 https://javaguide.cn/database/mysql/mysql-index.html#%E7%B4%A2%E5%BC%95%E4%B8%8B%E6%8E%A8 如何理解索引下推这个概念&#xff0c;其实就是index把Server层的工作&#xff0…...

自荐一部IT方案架构师回忆录

作者本人毕业于一个不知名大专院校&#xff0c;所读专业计算机科学技术。2009年开始IT职业生涯&#xff0c;至今工作15年。擅长TSQL/Shell/linux等技术&#xff0c;曾经就职于超万人大型集团、国内顶级云厂商、央国企公司。参与过运营商大数据平台、大型智慧城市ICT、云计算、人…...

C语言理解 —— 实用的字符串函数

目 录 字符串函数的头文件strlenstrstrstrncpystrncmp 字符串函数的头文件 #include <string.h>strlen 计算字符串长度的&#xff0c;从字符的首地址开始遍历&#xff0c;以 ‘\0’ 为结束标志&#xff0c;然后将计算的长度返回&#xff0c;但是计算的长度不包含’\0’…...

“Python-OpenCV初体验:简单实现颜色识别与轮廓绘制”

一、引言 图像处理技术在现代科技中扮演着重要角色&#xff0c;但对于初学者来说&#xff0c;掌握这些技术可能显得有些复杂。在这篇博客中&#xff0c;我们将带你一步步了解如何利用Python和OpenCV来识别图像中的颜色并绘制轮廓。通过简明的实验原理和代码示例&#xff0c;你…...

导游现场面试需要注意的问题

今天给大家带来一些导游现场面试需要注意的问题&#xff0c;大部分的城市导游考试已经考完了&#xff0c;但是还有一些城市的十二月份才考&#xff0c;有需要的朋友们赶紧来看&#xff0c;有备无患。 01、做好充足准备 认真准备做好每个景点的讲解介绍&#xff0c;不要抱有侥幸…...

JDK8新特性:Stream

JDK8最大的改变&#xff1a; 1. lambda表达式 2. Stream 1. Steam流的入门 什么是Stream&#xff1f; 也叫Stream流&#xff0c;是jdk8开始的一套API&#xff0c;用于操作集合或者数组中的数据 优点&#xff1a; Stream流大量结合了Lambda的语法风格来创建&#xff0c;提…...

CSS的2D和3D动画效果

CSS的2D和3D动画效果&#xff1a;网页动态设计的魔法 在现代网页设计中&#xff0c;动画已经成为提升用户体验的重要元素。通过引入动态效果&#xff0c;我们不仅可以使交互更加流畅和直观&#xff0c;还能吸引用户的注意力&#xff0c;增强品牌认知度。CSS提供了强大的工具&a…...

OpenCV相机标定与3D重建(16)将点从齐次坐标转换为非齐次坐标函数convertPointsFromHomogeneous()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::convertPointsFromHomogeneous 是 OpenCV 库中的一个函数&#xff0c;用于将点从齐次坐标&#xff08;homogeneous coordinates&#xff09;…...

动态流程图制作方法

动态流程图制作方法 1.方法1 有各种 echars模板 可以自己改代码 https://www.isqqw.com/viewer?id42201echars 在线生成 https://codevtool.com/echarts2. 方法2电脑软件&#xff0c;画图的。 《亿图图示》...

【pytroch】线性回归

构造一个PyTorch数据迭代器 def load_array(data_arrays, batch_size, is_trainTrue): #save"""构造一个PyTorch数据迭代器"""dataset data.TensorDataset(*data_arrays)return data.DataLoader(dataset, batch_size, shuffleis_train)batch_…...

前端请求后端接口报错(blockedmixed-content),以及解决办法

报错原因&#xff1a;被浏览器拦截了&#xff0c;因为接口地址不是https的。 什么是混合内容&#xff08;Mixed Content&#xff09; 混合内容是指在同一页面中同时包含安全&#xff08;HTTPS&#xff09;和非安全&#xff08;HTTP&#xff09;资源的情况。当浏览器试图加载非…...

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 多图推理

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 多图推理 flyfish 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_LoRA配置如何写 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_单图推理 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_原模型_单图推理 基于Q…...

Pull requests 和Merge Request其实是一个意思

Pull requests的定义 在Git中&#xff0c;PR&#xff08;Pull Request&#xff09;是一种协作开发的常用方式。它允许开发者将自己的代码变更&#xff08;通常是一个分支&#xff09;提交到项目的仓库中&#xff0c;然后请求负责代码审查的人员将这些变更合并到主分支中。通过…...

网络原理03

回顾 应用层&#xff1a;应用程序&#xff0c;数据具体如何使用 传输层&#xff1a;关注起点和终点 网络层&#xff1a;关注路径规划 数据链路层&#xff1a;关注相邻节点的转发 物理层&#xff1a;硬件设备 应用层 应用程序 在应用层&#xff0c;很多时候&#xff0c;…...

yarn 安装问题

Couldn’t find package “regenerator-runtime” on the “npm” registry. Error: Couldn’t find package “watch-size” on the “npm” regist 标题Error: Couldn’t find package “babel-helper-vue-jsx-merge-props” on the “npm” registry. Error: Couldn’t f…...

优选算法——分治(快排)

1. 颜色分类 题目链接&#xff1a;75. 颜色分类 - 力扣&#xff08;LeetCode&#xff09; 题目展示&#xff1a; 题目分析&#xff1a;本题其实就要将数组最终分成3块儿&#xff0c;这也是后面快排的优化思路&#xff0c;具体大家来看下图。 这里我们上来先定义了3个指针&…...

深入解析强化学习中的 Generalized Advantage Estimation (GAE)

中文版 深入解析强化学习中的 Generalized Advantage Estimation (GAE) 1. 什么是 Generalized Advantage Estimation (GAE)? 在强化学习中&#xff0c;计算策略梯度的关键在于 优势函数&#xff08;Advantage Function&#xff09; 的设计。优势函数 ( A ( s , a ) A(s, a…...

PostgreSQL/PostGIS中提升空间查询(分析)性能(效率)的一些方法

目录 1. 使用适当的索引 1.1 索引类型 1.2 分析查询计划 1.3 覆盖索引 1.4 复合索引 1.5 维护索引 1.6 删除不必要的索引 1.7 使用适当的数据类型 2. 建立分区表 2.1 分区表的基本概念 2.2 创建分区表的步骤 2.3 空间数据的分区 2.4 分区表优点 3. 简化几何形状 …...

什么是Apache日志?为什么Apache日志分析很重要?

Apache是全球最受欢迎的Web服务器软件&#xff0c;支持约30.2%的所有活跃网站。凭借其可靠性、灵活性和强大的功能&#xff0c;Apache数十年来一直是互联网的中坚力量。 一、Apache Web服务器的工作原理 Apache Web服务器的工作原理如下&#xff1a; 接收HTTP请求&#xff1…...

攻防世界Reversing-x64Elf-100

一、使用Exeinfo PE 查壳 64无壳 二、使用IDA静态分析 1.找main 总览分析到&#xff1a;要使sub_4006FD出0&#xff0c;就可以得到"Nice!" 2.找到关键函数sub_4006FD 总览分析&#xff1a;v3是二维数组&#xff0c;要使if( )里的值1&#xff0c;就可以出0 分析if(…...

MySQL生产环境备份脚本

全量备份脚本&#xff0c;其中BakDir&#xff0c;ZlbakDir&#xff0c;LogFile需要自己创建 #!/bin/bash export LANGen_US.UTF-8# 指定备份目录 BakDir/root/beifen/data/mysqlbak/data/allbak # 指定增量备份目录 ZlbakDir/root/beifen/data/mysqlbak/data/zlbak # 备份日志…...

redis 怎么样删除list

在 Redis 中&#xff0c;可以使用以下方法删除列表或列表中的元素&#xff1a; 1. 删除整个列表 使用 DEL 命令删除一个列表键&#xff1a; DEL mylist这个命令会删除键 mylist 及其值&#xff08;无论 mylist 是一个列表还是其他类型的键&#xff09;。 2. 删除列表中的部分…...

uniapp小程序 slot中无法传递外部参数的解决方案

最近在封装一个List组件&#xff0c;外部传给我数据&#xff0c;我循环后将每个Item部分slot到外部&#xff0c;由调用者自己去写item布局&#xff0c;类似ElementUI、iView的Tabe列表。 List: <view v-if"list.length > 0" class"list-scroll__item&quo…...

Java面试之实现多线程(二)

此篇接上一篇Java面试之什么是多线程(一) Java多线程是Java语言中的一个重要特性&#xff0c;它可以实现并发处理、提高程序的性能和响应能力。开发者需要了解多线程的概念和机制&#xff0c;并采用合适的多线程编程模型和同步机制&#xff0c;以保证程序的正确性和稳定性。Jav…...

论文笔记:Treat Visual Tokens as Text? But Your MLLM Only Needs Fewer Efforts to See

2024 10月的arxiv 1 主要idea 针对多模态大模型&#xff08;如LLaVA&#xff09;&#xff0c;提出了一系列高效的剪枝策略 在显著降低计算开销&#xff08;多达 88%&#xff09;的同时&#xff0c;保持了模型在多模态任务中的性能表现 2 目前的问题 与文本 token 相比&…...

HDOJ 1735:字数统计 ← 贪心

【题目来源】https://acm.hdu.edu.cn/showproblem.php?pid1735【题目描述】 一天&#xff0c;淘气的 Tom 不小心将水泼到了他哥哥 Jerry 刚完成的作文上。原本崭新的作文纸顿时变得皱巴巴的&#xff0c;更糟糕的是由于水的关系&#xff0c;许多字都看不清了。可怜的 Tom 知道他…...

Java常用类(完整版)

其他类 Object类 超类、基类&#xff0c;所有类的直接或间接父类&#xff0c;位于继承树的最高层 任何类&#xff0c;如果没有书写extends显示继承某个类&#xff0c;都默认直接继承Object类 Object类中所定义的方法&#xff0c;是所有对象都具备的方法 Object类型可以存储…...

【JAVA】Java项目实战—Java SE进阶项目:在线考试系统

在数字化教育中&#xff0c;在线考试系统的需求日益增加。它不仅提高了考试的效率&#xff0c;还能方便学生随时随地进行学习和测试。Java作为一种强大的编程语言&#xff0c;因其平台无关性、丰富的类库和强大的社区支持&#xff0c;成为开发在线考试系统的理想选择。 在线考…...

仿iOS日历、飞书日历、Google日历的日模式

仿iOS日历、飞书日历、Google日历的日模式&#xff0c;24H内事件可自由上下拖动、自由拉伸。 以下是效果图&#xff1a; 具体实现比较简单&#xff0c;代码如下&#xff1a; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color;…...

机器人构建详解:售前售后服务客服机器人与广告生成机器人的微调数据处理方法

引言 大模型&#xff08;如BERT、GPT等&#xff09;在自然语言处理任务中展现了强大的能力&#xff0c;但为了使其更贴合特定应用场景&#xff0c;通常需要进行微调。本文将详细讲解如何为售前售后服务的客服机器人和广告生成机器人准备高质量的微调数据&#xff0c;并通过具体…...

【飞机纵向动力学建模与分析】

飞机纵向动力学建模与分析 文章目录 飞机纵向动力学建模与分析前言坐标系定义及转换机体坐标系定义机体坐标系定义气流角定义气流坐标系与机体坐标系相互转化 纵向动力学方程建立力的分解动力学方程的建立纵向动力学方程纵向动力学方程状态空间表达形式纵向运动分析短周期简化处…...

【机器人】控制之稳定性判定: 李雅普诺夫Lyapunov (7) 判定是否是李函数,思维导图

要判断一个函数 V(x)是否可以作为某个动力学方程的 Lyapunov 函数&#xff0c;需要满足特定的数学和物理条件。以下是详细说明&#xff1a; 1. 满足 Lyapunov 函数的基本条件 一个函数 V(x)能否作为 Lyapunov 函数&#xff0c;需要满足以下基本条件&#xff1a; 1.1 正定性 …...

Qwen 论文阅读记录

本文仅作自己初步熟悉大模型&#xff0c;梳理之用&#xff0c;慢慢会更改/增加/删除&#xff0c;部分细节尚未解释&#xff0c;希望不断学习之后&#xff0c;能够完善补充。若有同道之人&#xff0c;欢迎指正探讨。 关于后面的code-qwen and math-qwen&#xff0c;我个人认为依…...

ViewModel

ViewMode是MVVM架构模式中VM层对应的类&#xff0c;它的作用是存储界面数据&#xff0c;并和界面发生数据交互。ViewModel能感知生命周期&#xff0c;并且在界面由于配置问题发生重建时候&#xff0c;可以保持当前的数据不变。生命周期如下&#xff1a; ViewMode由ViewModePr…...

AI和SEO的完美结合关键词策略解析

内容概要 在当今数字营销环境中&#xff0c;AI与SEO的结合已成为提升网站流量和转化率的重要策略。为了更好地理解这一主题&#xff0c;本文将首先介绍AI技术在数字营销中的多种应用&#xff0c;其次分析SEO的基础知识和重要性&#xff0c;以便为后续讨论建立坚实的基础。 提示…...

网络基础 - TCP/IP 五层模型

文章目录 一、OSI 参考模型中各个分层的作用1、应用层2、表示层3、会话层4、传输层5、网络层6、数据链路层7、物理层 二、OSI 参考模型通信处理示例 一、OSI 参考模型中各个分层的作用 1、应用层 2、表示层 负责设备固有数据格式和网络标准数据格式间的转换 实际生活中&#…...

pyenv 管理多个 Python 版本(1)

引言 你是否曾希望参与一个支持多个 Python 版本的项目&#xff0c;但又不知道如何轻松地测试所有这些版本&#xff1f;你是否对 Python 的最新版本感到好奇&#xff1f;或许你想尝试这些新功能&#xff0c;但又不想冒险破坏你的开发环境。幸运的是&#xff0c;如果你使用 pyen…...

LLMs之ICL:《Bayesian scaling laws for in-context learning》翻译与解读

LLMs之ICL&#xff1a;《Bayesian scaling laws for in-context learning》翻译与解读 导读&#xff1a;这篇论文的核心议题是理解和建模大型语言模型&#xff08;LLM&#xff09;的上下文学习&#xff08;ICL&#xff09;能力。文章从贝叶斯学习的角度出发&#xff0c;提出了一…...

泷羽Sec学习笔记-Bp中ip伪造、爬虫审计

ip伪造与爬虫审计 ip伪造 下载插件&#xff1a;burpFakeIP 地址&#xff1a;GitHub - TheKingOfDuck/burpFakeIP: 服务端配置错误情况下用于伪造ip地址进行测试的Burp Suite插件 python版需要配置jython&#xff1a;下载地址&#xff1a;Maven Central: org.python:jython-…...

常用vim命令行-linux008

Vim 是一款功能强大的文本编辑器&#xff0c;广泛应用于编程、配置文件编辑以及日常文本处理。Vim 在其命令行模式下提供了丰富的操作命令&#xff0c;这些命令能够大幅提升编辑效率。以下是 Vim 中常用的命令及操作的总结&#xff0c;覆盖了 Vim 中的基本操作、查找、替换、文…...

Linux相关概念和易错知识点(24)(认识信号、信号捕捉)

目录 1.认识信号 &#xff08;1&#xff09;后台进程和前台进程 ①为什么Ctrl C能终止前台进程&#xff1f; ②如何终止这个后台程序&#xff1f; &#xff08;2&#xff09;信号、异步和同步 ①同步 ②异步 &#xff08;3&#xff09;信号的处理 2.信号捕捉 &#x…...

Scala的导入

//导入 //(1) 创建包&#xff1a;在src上右键&#xff0c;新建软件包 //(2)填写包名&#xff1a;小写 //(3)在包上右键&#xff0c;创建类。自动加入包名 //(4)导入。import 包名.类名 //导入多个类 //import jh.yuanlixueyuan.bigdata.scala03.{A,B,C} //导入包下的所有的类 /…...

strace,tcmalloc,asan使用

1、strace使用 1.1、编译strace strace开源库 解压strace-4.21.tar.xz 编译./configure --hostarm-ca9-linux-gnueabihf --prefix~/out make&&make install 1.2、参数 -c 统计每一系统调用的所执行的时间,次数和出错的次数等. -d 输出strace关于标准错误的调试信息…...

C++中多态性在实际项目中的应用场景;C++中面向对象编程实现数据隐藏的方法

1. C中多态性在实际项目中的应用场景 C中多态性是面向对象编程中的一个重要概念&#xff0c;它允许我们在使用基类指针或引用的情况下&#xff0c;调用派生类对象的特定方法。这种灵活性使得多态性在实际项目中有着广泛的应用场景&#xff0c;具体包括但不限于以下几个方面&am…...

【QT常用技术讲解】使用QMovie+QLabel播放gif动态图片,实现“正在加载”功能(源代码在资源中下载)

前言 界面在实现事件等待时&#xff0c;通过会显示一个转圈圈的动态图片&#xff0c;表示“正在加载”&#xff0c;事件完成之后关闭图片&#xff0c;QT中可以使用QMovieQLabel完成gif动态图片的播放及关闭的效果。 效果图 功能讲解 1、加载动画 void MainWindow::addloadgi…...

iPhone苹果相册视频怎么提取音频?

在数字时代&#xff0c;视频已成为我们记录生活、分享故事的重要方式。然而&#xff0c;有时候我们只想保留视频中的音频部分&#xff0c;比如一段动人的背景音乐或是一段珍贵的对话。那么&#xff0c;苹果相册视频怎么提取音频呢&#xff1f;本文将介绍三种简单且实用的方法&a…...

【PyTorch】动态调整学习率 torch.optim.lr_scheduler.StepLR 调度器

文章目录 1. torch.optim.lr_scheduler.StepLR 官方文档详解2. 使用示例2.1 官方提供使用示例2.2 自己写代码测试方法2.2.1 get_last_lr() 方法2.2.2 state_dict() 方法2.2.3 load_state_dict() 保存和加载调度器 3. 思考3.1 为什么需要state_dict()3.2 get_lr() 与 get_last_l…...