机器人AGV小车避障传感器测距
一、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-Thread 下UART受控输出方式 代码示例:
- 定时器每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;
}
- 在串口接收中断函数中释放信号量
static rt_err_t uart_input(rt_device_t dev, rt_size_t size)
{rt_sem_release(&rx_sem);return RT_EOK;
}
- 在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));}}

相关文章:
机器人AGV小车避障传感器测距
一、A22超声波传感器 该模块是基于机器人自动控制应用而设计的超声波避障传感器,针对目前市场上对于超声波传感器模组盲区大、测量角度大、响应时间长、安装适配性差等问题而着重设计。 具备了盲区小、测量角度小、响应时间短、过滤同频干扰、体积小、安装适配性高…...
Boost:进程间共享内存
Linux编程:进程间共享内存_linux 判断共享内存是否存在-CSDN博客 介绍了如何在linux的进程间共享内存。 Boost对共享内存进行了封装,可以更为方便的使用共享内存。 1.创建共享内存 #include <boost/interprocess/shared_memory_object.hpp> using namespace boost::i…...
Android Camera Surface显示相关问题总结
1.默认创建的Preview Surface填充RGBA数据显示异常。 //界面创建的Surface format默认为4(RGB_565),而预览界面所需的格式是RGBA_8888 ANativeWindow_setBuffersGeometry(window, width, height, WINDOW_FORMAT_RGBA_8888); 2.调用ANativeWindow的dequeueBuffer出错ÿ…...
php通过curl方式发送接受xml数据
目录 1、php通过curl方式发送xml数据 2、php通过file_get_contents接受curl方式发送xml数据 1、php通过curl方式发送xml数据 <?php function sendXmlData($url, $xmlData) {$ch curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFE…...
【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(1)项目搭建
项目笔记为项目总结笔记,若有错误欢迎指出哟~ 【项目专栏】 【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(1)项目搭建 持续更新中… java+vue+微信小程序项目】从零开始搭建——健身房管理平台 项目简介Java项目搭建(IDEA)1.新建项目2.项目类型3.项目设置4…...
Python语言创建爬虫代理IP池详细步骤和代码示例
目录 一、引言 二、代理IP的选择 三、使用代理IP的代码示例 四、创建代理IP池的代码示例 五、总结 一、引言 在爬虫程序中,代理IP的使用是避免IP被封禁、提高爬取效率的重要手段。本文将详细介绍如何使用Python语言创建一个爬虫代理IP池,包括代理I…...
Oracle研学-介绍及安装
一 ORACLE数据库特点: 支持多用户,大事务量的事务处理数据安全性和完整性控制支持分布式数据处理可移植性(跨平台,linux转Windows) 二 ORACLE体系结构 数据库:oracle是一个全局数据库,一个数据库可以有多个实例,每个…...
建设银行新余市分行积极开展国债下乡宣传活动
近日,为了普及国债知识,提高农村居民对国债的认知度和投资意识,建设银行新余市分行组织员工前往下村开展了一场国债下乡宣传活动。 活动当天,工作人员早早地来到了下乡地点,悬挂起了国债宣传横幅,并摆放了…...
【javascript】如何判断一个对象属性是否存在
前言 在javascript里,可以有多种判断对象属性是否存在的方法,使用哪种方法来判断,取决于对 “存在” 两个字的定义是什么。 方法1:对比undefined const obj {} if (obj.id ! undefined) {console.log(存在) } else {console.l…...
Linux-hid
/kernel/drivers/hid/hid-core.c hid总线驱动/kernel/drivers/hid/hid-generic.c hid通用驱动/kernel/drivers/hid/hid-multitouch.c 多点触控面板驱动/kernel/drivers/hid/hid-quirks.c hid-quirks.c 是 Linux 内核中的一个文件,用于实现 HID(Human…...
Paraformer 语音识别原理
Paraformer(Parallel Transformer)非自回归端到端语音系统需要解决两个问题: 准确预测输出序列长度,送入预测语音信号判断包含多少文字。 如何从encoder 的输出中提取隐层表征,作为decoder的输入。 采用一个预测器(Predictor&…...
用户注册这样玩,保你平安
前言 基本上每个系统系统都包含用户注册、发送验证码等基本操作。在前些年,我还记得我在逛 csdn、贴吧、网易新闻等网站的时候是可以不登陆也能浏览完网页内容的,但是近几年这些网站已经改成了不登陆不让用,浏览网页时不时提醒你要进行登录&…...
QXDM Filter使用指南
QXDM Filter使用指南 1. QXDM简介2 如何制作和导入Filter2.1 制作Filter2.1.1 制作Windows环境下Filter2.1.2 制作Linux环境下Filter 2.2 Windows环境下导入Filter 3 Filter配置3.1 注册拨号问题3.1.1 LOG Packets(OTA)3.1.2 LOG Packets3.1.3 Event Reports3.1.4 Message Pack…...
智能优化算法应用:基于蝴蝶算法无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于蝴蝶算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于蝴蝶算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蝴蝶算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…...
3dsMax插件Datasmith Exporter安装使用方法
3dsMax插件Datasmith Exporter安装使用方法 某些文件格式无法用Datasmith直接导入虚幻引擎,这些数据必须先被转换为Datasmith能够识别的文件格式。Datasmith Exporter插件就可以帮助您的软件导出可以被Datasmith导入虚幻引擎的.udatasmith格式文件。 在开始使用虚幻…...
Rocketmq架构
NameServer:作为注册中心,提供路由注册、路由踢出、路由发现功能,舍弃强一致,保证高可用,集群中各个节点不会实时通讯,其中一个节点下线之后,会提供另外一个节点保证路由功能。 Rocket mq name…...
中兴亮相中国国际现代化铁路技术装备展览会 筑智铁路5G同行
近日,第十六届中国国际现代化铁路技术装备展览会在北京中国国际展览中心举办,中兴以“数智铁路,5G同行”主题亮相本次展览会,并全面展示了“数字铁路网络基础设施”、“云边结合的铁路行业云”、“数字铁路赋能赋智”等方面的最新…...
从零学算法15
15.给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 …...
《Effective C++》条款27
尽量少做转型动作 class A { public:A(int x) :a(x) {};virtual void add(){a;} private:int a; }; class B :public A { public:B(int x) :b(x),A(x) {};virtual void add(){static_cast<A>(*this).add();b;}private:int b; }; 如上描述把子类转型为A类,调用…...
无图谱不AI之三元组数据保存Neo4j
目录 1. 代码学习1.1 源代码1.2 代码解读 没有图谱称为弱人工智能,有图谱的称为强人工智能。 图谱可以让机器学习和人工智能具备推理能力。 1. 代码学习 1.1 源代码 # -*- coding: utf-8 -*- from py2neo import Node, Graph, Relationship# 可以先阅读下文档&a…...
Blueman:Linux系统蓝牙管理的高效解决方案
Blueman:Linux系统蓝牙管理的高效解决方案 【免费下载链接】blueman Blueman is a GTK Bluetooth Manager 项目地址: https://gitcode.com/gh_mirrors/bl/blueman 在Linux桌面环境中,蓝牙设备管理长期面临着易用性与功能性难以兼顾的挑战。Bluema…...
2026届最火的六大AI辅助论文平台实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 基于自然语言处理技术的智能工具是AI写作软件,它能够辅助用户快速生成各类不同的…...
G-Helper:轻量级华硕硬件控制的性能优化解决方案
G-Helper:轻量级华硕硬件控制的性能优化解决方案 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar, a…...
Meshroom终极指南:零基础学会开源3D重建,从照片到模型的完整方案
Meshroom终极指南:零基础学会开源3D重建,从照片到模型的完整方案 【免费下载链接】Meshroom Node-based Visual Programming Toolbox 项目地址: https://gitcode.com/gh_mirrors/me/Meshroom 想要从普通照片创建专业级3D模型吗?Meshro…...
MegSpot专业视觉分析工具:从基础操作到高级应用全指南
MegSpot专业视觉分析工具:从基础操作到高级应用全指南 【免费下载链接】MegSpot MegSpot是一款高效、专业、跨平台的图片&视频对比应用 项目地址: https://gitcode.com/gh_mirrors/me/MegSpot 在数字媒体创作与分析领域,如何高效对比图片细节…...
Java微服务Istio配置必须立即更新的4个安全补丁:CVE-2024-23652等高危漏洞绕过配置详解
第一章:Java微服务Istio配置安全补丁的紧急性与背景近年来,Java微服务架构在云原生环境中广泛应用,而Istio作为主流服务网格控制平面,承担着流量管理、可观测性与零信任安全策略实施的关键角色。然而,2024年披露的CVE-…...
别急着重烧系统!卡在Starting Kernel时,先检查uboot的mmc分区表(以imx6ull为例)
嵌入式系统启动卡在Starting Kernel?先别急着重烧系统! 当你满怀期待地按下开发板电源键,串口终端却无情地定格在"Starting kernel..."这一行时,那种挫败感每个嵌入式开发者都深有体会。大多数人的第一反应是怀疑内核镜…...
SAM 3图像视频分割实战:上传图片视频,输入英文名称一键搞定
SAM 3图像视频分割实战:上传图片视频,输入英文名称一键搞定 1. 引言:认识SAM 3的强大能力 想象一下,你有一张复杂的街景照片,想要单独提取其中的行人、车辆或建筑物。传统方法可能需要复杂的PS操作或专业标注工具&am…...
3分钟破解百度网盘提取码难题:智能解析工具完全指南
3分钟破解百度网盘提取码难题:智能解析工具完全指南 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘加密资源的提取码而烦恼吗?每次点击分享链接却卡在"请输入提取码"的弹窗前…...
Docker测试学习思路
Docker 核心概念学习与实战指南本文系统梳理 Docker 学习的核心思路与方法,用通俗类比帮助理解 Docker 的本质,涵盖镜像构建、容器运行、网络通信、数据持久化、资源限制五大核心能力,适合初学者建立清晰的 Docker 知识框架。一、Docker 到底…...
