机器人AGV小车避障传感器测距

news2025/1/13 3:38:23

一、A22超声波传感器

在这里插入图片描述

该模块是基于机器人自动控制应用而设计的超声波避障传感器,针对目前市场上对于超声波传感器模组盲区大、测量角度大、响应时间长、安装适配性差等问题而着重设计。

具备了盲区小、测量角度小、响应时间短、过滤同频干扰、体积小、安装适配性高、防尘防水、寿命长、可靠性高等一系列优点。

参数

  • 宽电压供电,工作电压 3.3~12V;
  • 1cm 标准盲区(产品盲区最小可达 0.8cm);
  • 最远量程可设置,可通过指令设置 50cm、150cm、250cm、350cm 共 4 级量程等级;
  • 多种输出方式可选,UART 自动/受控、PWM 受控、开关量 TTL 电平、RS485、IIC 等,输出方式不一样但功能完全一致;
  • 默认波特率为 115200,可支持修改为 4800、9600、14400、19200、38400、57600、76800;
  • ms 级响应时间,数据输出时间最快可达 13ms;
  • 角度可设置区域范围 30°、40°、50°、60°共 4 级角度等级,以适用不同应用场景;
  • 内置降噪功能,可支持 5 级降噪等级设置,适用电池供电、短/长距离 USB 供电、开关电源供电以及较大噪声电源供电;

引脚

四根线,分别是VCC、GND、TX、RX。

输出方式

支持多种输出方式:

  • 1. UART自动输出
    当触发输入引线“RX”悬空或者输入高电平时,模组按照处理值输出,数据更稳定,响应时间为 100~140ms;当输入低电平时模组按照实时值输出,响应时间为 100~130ms(注意:“RX”电平检测仅在上电 500ms 内检测有效,之后将不做电平检测)。

  • 2. UART受控输出
    当触发输入引线“RX” 接收到一个有下降沿的触发脉冲或任意一个串口数据,下降沿会触发模组工作一次,输出引线“TX”将输出一次测量数据,模组的触发周期必须大于150ms。当超过5秒未收到“RX”脚的触发脉冲,模组将进入休眠状态,功耗最低。当休眠时收到“RX”触发脉冲,将立即唤醒工作,但响应时间会比未休眠时增加12ms。

  • 3. PWM输出
    当触发输入引线“RX” 接收到一个有下降沿的触发脉冲,下降沿会触发模组工作一次,输出引线“TX”将输出一次TTL电平的PWM高电平脉宽信号,模组的触发周期必须大于50ms, 如果模组没有检测到物体,输出引线“TX”将输出约21ms的固定脉宽(量程等级4)。当超过5秒未收到“RX”脚的触发脉冲,模组将进入休眠状态,功耗最低。当休眠时收到“RX”触发脉冲,将立即唤醒工作,但响应时间会比未休眠时增加12ms。

  • 。。。。。。

输出格式

UART

输出为4个字节数据,分为是帧头+数据高八位+数据第八位+通讯校验和
在这里插入图片描述
距离值= Data_H*256+ Data_L=0X07A1; 转换成十进制等于1953;
当modbus寄存器0x0209的参数值为0x00时,单位为mm,表示当前测量的距离值为1953mm;
当modbus寄存器0x0209的参数值为0x01时,单位为us,表示当前测量的距离回波时间值为1953us,此值除以5.75得mm单位的距离值=1953/5.75≈340mm。

PWM

公式:S=T*V/2(S为距离值,T为PWM高电平脉宽时间,V为声音在空气中的传播速度)。
在常温下得声速V为348M/S,可简化公式得S= T/57.5 (此时距离S单位为厘米,时间T单位为微秒)。

举例:当输出引线“TX”的PWM高电平脉宽时间T3为10000us时,
得S= T/57.5=10000/57.5≈173.9(cm),表示当前测量的距离值为173.9cm。

软件设计

以下为RT-ThreadUART受控输出方式 代码示例:

  1. 定时器每200ms向传感器发送一次触发信号
rt_device_set_rx_indicate(hw_dev, timeout_cb);

/* 设置计数频率(若未设置该项,默认为1Mhz 或 支持的最小计数频率) */
rt_device_control(hw_dev, HWTIMER_CTRL_FREQ_SET, &freq);

/* 设置模式为周期性定时器(若未设置,默认是HWTIMER_MODE_ONESHOT)*/
mode = HWTIMER_MODE_PERIOD;
ret = rt_device_control(hw_dev, HWTIMER_CTRL_MODE_SET, &mode);
if (ret != RT_EOK)
{
  rt_kprintf("set mode failed! ret is :%d\n", ret);
}

/* 设置定时器超时值为1s并启动定时器 */
timeout_s.sec = 0;      /* 秒 */
timeout_s.usec = 200000;     /* 微秒 */
if (rt_device_write(hw_dev, 0, &timeout_s, sizeof(timeout_s)) != sizeof(timeout_s))
{
    rt_kprintf("set timeout value failed\n");
}

static rt_err_t timeout_cb(rt_device_t dev, rt_size_t size)  
{
    rt_device_write(serial, 0, "1", 1);   //触发信号
    return 0;
}
  1. 在串口接收中断函数中释放信号量
static rt_err_t uart_input(rt_device_t dev, rt_size_t size)
{
    rt_sem_release(&rx_sem);

    return RT_EOK;
}
  1. 在main线程中接收数据,并判断帧数据
        if(rt_device_read(serial, 0, &ch[t], 1) != 0)
        {
            /* 阻塞等待接收信号量,等到信号量后再次读取数据 */
            rt_sem_take(&rx_sem, RT_WAITING_FOREVER);

            t++;
            if(t==4)
            {
                t=0;
                if(ch[0]==0xFF )
                {
                    int a=(int)ch[1];
                    int b=(int)ch[2];
                    long int c=a*256+b;
                    int d=c%10;
                    c/=10;
                    rt_kprintf("%d.%d\n",c,d);
                }
                memset(ch, 0, sizeof(ch));
            }
        }

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1274509.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

邀请函 | 合作发展,赋能增效--新架构下汽车电子软件研发技术研讨会

会议介绍 随着汽车智能化、网联化快速演进,“软件定义汽车、架构定义软件”愈发形成行业共识。汽车上的软件应用在提升用户体验、推动行业技术创新方面发挥着至关重要的作用。 在此背景下,如何有效地提升软件开发效率、更好地管理软件质量、满足行业安全…

iOS Swift 代码格式化工具

如果你的代码写得很乱,想一键盘整理代码,像大家推荐一款工具 (PS:Xcode本身并没有代码格式化工具,这款工具为第三方开发的) 这款工具名为:SwiftFormat 1:在GitHub上搜索“SwiftFo…

YOLOv8改进 | 2023 | SCConv空间和通道重构卷积(精细化检测,又轻量又提点)

一、本文介绍 本文给大家带来的改进内容是SCConv,即空间和通道重构卷积,是一种发布于2023.9月份的一个新的改进机制。它的核心创新在于能够同时处理图像的空间(形状、结构)和通道(色彩、深度)信息&#xf…

中国毫米波雷达产业分析5——毫米波雷达应用案例介绍

一、上海某区康养标杆工程 项目甲方:上海某康养中心 项目地点:上海徐汇区 项目时间:2023年8月 供应商:南京苗米科技有限公司 (一)项目需求 该康养社区集中收治了区内75岁以上老龄化人群和部分阿尔茨海默…

RubyMine 2023 年下载、安装、使用教程,详细图解

大家好,今天为大家带来的是RubyMine 2023 年下载、安装、使用教程,详细图解。 文章目录 1 RubyMine 简介2 RubyMine 下载、安装教程RubyMine 下载RubyMine 安装 3 RubyMine 汉化4. 常用快捷键一级必会二级进阶 1 RubyMine 简介 RubyMine 是一个为 Ruby …

CRM系统:让企业商机管理变得轻松愉快

传统企业的经常出现团队分工不合理、实施过程不可见、进度难以把控等情况。这样不仅会让项目实施周期变长,还会导致客户满意度降低,给企业的发展带来了不好的影响。因此,进行商机管理至关重要。那么,CRM系统如何进行企业的商机阶段…

做热衷的事情,看向往的风景,遇见更多美好,早安

①‍ ʍօʀռɨռɢ ☼ (˘͈ᵕ ˘͈❀) ♡ ༘⋆ 岁月覆盖成长,而你愈发完满; 做热衷的事情,看向往的风景。 每天醒来将微笑别在衣襟, 就会遇见更多的美好事物。早安🌤️ ②生活就是这样,边失去边补偿&…

Redis7--基础篇5(管道、发布订阅)

管道是什么 管道(pipeline)可以一次性发送多条命令给服务端,服务端依次处理完完毕后,通过一条响应一次性将结果返回,通过减少客户端与redis的通信次数来实现降低往返延时时间。pipeline实现的原理是队列,先进先出特性就保证数据的…

【数据结构】—AVL树(C++实现)

🎬慕斯主页:修仙—别有洞天 💜本文前置知识: 搜索二叉树 ♈️今日夜电波:Letter Song—ヲタみん 1:36━━━━━━️💟──────── 5:35 …

TikTok美食狂潮:短视频如何塑造食物文化新趋势

短视频不仅成为分享美食的平台,更是塑造了一种全新的食物文化趋势。本文将深入探讨TikTok如何通过短视频影响食物文化,并推动美食体验的创新。 创意美食视频的崛起 传统的美食呈现方式通常通过图片或文字,而短视频带来了全新的美食呈现方式。…

ESP32-Web-Server编程- 使用表格(Table)实时显示设备信息

ESP32-Web-Server编程- 使用表格(Table)实时显示设备信息 概述 上节讲述了通过 Server-Sent Events(以下简称 SSE) 实现在网页实时更新 ESP32 Web 服务器的传感器数据。 本节书接上会,继续使用 SSE 机制在网页实时显…

(2)(2.2) Lightware SF45/B(350度)

文章目录 前言 1 安装SF45/B 2 连接自动驾驶仪 3 通过地面站进行配置 4 参数说明 前言 Lightware SF45/B 激光雷达(Lightware SF45/B lidar)是一种小型扫描激光雷达(重约 50g),扫描度可达 350 度,扫描范围 50m。 1 安装SF45…

CRM系统:实现精细化的客户管理,提升客户满意度

近年来,CRM系统在国内企业的普及度逐渐提高,越来越多的企业选择使用CRM系统来管理客户关系,优化业务流程。那么,CRM系统到底有什么魔力,让众多企业青睐呢?下面我们来说说,为什么建议使用CRM系统…

同一个公众号下的同一个用户,openid不一致?

背景 公众号授权页面,前端采用的snsapi_userinfo,在用户尚未点击“获取完整性服务”的时候,服务端通过前端的code拿到了一个openid。在用户点击了“获取完整性服务”之后,服务端通过前端的code拿到了另一个openid。同一个用户在同…

计算机网络之Socket编程

文章目录 前言一、Socket编程二、TCP套接字编程三、UDP套字编程总结 前言 TCP、UDP套接字编程 一、Socket编程 应用进程使用传输层提供的服务才能够交换报文,实现应用协议,实现应用 TCP/IP:应用进程使用Socket API访问传输服务地点&#xff…

11-30 SpringBoot

内嵌的tomcat tomcat的依赖 对于tomcat其实还是一个jar包 spring是一个IOC容器 tomcat的核心对象交给Spring容器 调用核心对象方法 启动Tomcat 1.添加依赖 tomcat-embed-core,叫做tomcat内嵌核心。就是这个东西把tomcat功能引入到了我们的程序中的 排除tomcat&a…

改造python3中的http.server为简单的文件下载服务

改造 修改python3中的http.server.SimpleHTTPRequestHandler,实现简单的文件上传下载服务 simple_http_file_server.py: # !/usr/bin/env python3import datetime import email import html import http.server import io import mimetypes import os …

游戏反Frida注入检测方案

在游戏安全对抗过程中,有不少外挂的实现基于对游戏内存模块进行修改,这类外挂通常会使用内存修改器,除此之外,还有一种门槛相对更高、也更难检测的「注入挂」。 据FairGuard游戏安全数据统计,在游戏面临的众多安全风险…

uniapp微信小程序实现地图展示控件

最终实现效果: 地图上展示控件,并可以点击。 目录 一、前言 二、在地图上展示控件信息 点击后可进行绘制面图形 1.使用cover-view将控件在地图上展示 2.设置控件样式,使用好看的图标 3.控件绑定点击事件 一、前言 原本使用的是control…

应用于智慧城管的AI边缘盒子+AI算法一体化解决方案

智慧城管支持十几种城市违规违法场景的识别,覆盖着市容环境、街面秩序、宣传广告、市政设施等类别,能够在很大程度上引导责任单位进行自动整改和自治,积极引导市民加强自我约束、自我教育、自我管理,努力增强市民参与城市管理的责…