超声波模块Python API完全参考:HCSR04类从构造到distance_cm()全解析(附示例代码)
超声波模块Python API完全参考HCSR04类从构造到distance_cm()全解析附示例代码【免费下载链接】CupCode_HC-SR04超声波传感器模块源师兄扩展项目: 超声波模块 | 由源师兄组织创建项目地址: https://gitcode.com/yuanshixiong/ultrasonic-module源师兄出品的CupCode_HC-SR04 超声波传感器模块是一个基于源师兄主控板的超声波测距扩展只需 Trig / Echo 两根数字引脚连线即可测量前方障碍物的距离并按厘米或毫米输出读数。整个驱动核心就是 library/sonar.py 里的一个HCSR04类——本文带你从构造函数到distance_cm()测距方法完整掌握这份超声波模块 Python API新手也能一次上手 一、HC-SR04 超声波模块是什么如何接线 HC-SR04 是一款四线数字测距传感器不是 I²C 设备向传感器发一个触发脉冲它发出超声波并接收回波用「高电平持续时间」换算出距离。接线只需 4 根线传感器引脚接法VCC5V 电源GNDGND务必与主控共地否则回波无法计时Trig数字引脚积木可选 P0 / P1 / P2 / P8 / P12~P16Echo另一个数字引脚可选范围同上⚠️ 两个易踩的坑① Trig 与 Echo不可接反Trig 是输出、Echo 是输入② Echo 输出为 5V 高电平若主控引脚不耐 5V建议先经电平转换再接入。二、构造 HCSR04 实例2 个必选参数 1 个可选打开 library/sonar.py 可以看到构造函数签名from sonar import HCSR04 sonar HCSR04(0, 1) # TrigP0EchoP1 sonar HCSR04(0, 1, echo_timeout_us30000) # 显式指定回波超时参数说明trigger_pin触发引脚编号数字引脚如0对应 P0内部设为输出初始化时拉低echo_pin回波引脚编号内部设为输入echo_timeout_us可选回波超时时间微秒默认 30000 µs约对应 5 m 量程超时则判定「超出测量范围」构造完成后你就有了一个可以反复调用测距的HCSR04实例。三、核心方法 distance_cm()一次调用拿到厘米距离 d sonar.distance_cm() # 例如返回 23.45厘米这一行背后做了三件事触发Trig 引脚输出 10 µs 高电平脉冲启动一次测距计时测量 Echo 引脚高电平的持续时间time_pulse_us换算按声速 343 m/s即 0.0343 cm/µs计算因声波是往返传播所以除以 2最后保留两位小数返回。返回值的三种情况要记牢返回值含义浮点数如23.45有效距离单位厘米0有回波但距离无效None回波超时超出量程默认约 5 m、目标表面倾斜或为吸音材料 需要毫米读数直接sonar.distance_cm() * 10即可但必须先判断返回值不是None否则乘法会抛异常。四、示例代码连续测距 避障判断 把上面两部分组合起来就是一个最常用的超声波测距程序from sonar import HCSR04 import utime sonar HCSR04(0, 1) # TrigP0EchoP1 while True: d sonar.distance_cm() if d is not None and d 20: print(⚠️ 前方有障碍物距离:, d, cm) else: print(当前距离:, d) utime.sleep_ms(500) # 每 0.5 秒测一次把d 20的阈值改大改小就能快速实现不同灵敏度的超声波避障逻辑。五、零代码方案一块「超声波距离值」积木搞定如果你用图形化积木编程category.json 中注册的超声波分类下自带一块积木无需手写任何代码只需三个下拉选择单位厘米/毫米Trig 为/Echo 为必须与实际接线一一对应。积木生成的 Python 代码定义在 blocksdef.js 中等价于from sonar import HCSR04 ultra_1 HCSR04(0, 1) # 以 Echo 引脚命名实例如 ultra_1 ultra_1.distance_cm() # 选「毫米」时自动 * 10可见积木与手写 API 是完全同源的——理解了HCSR04也就完全看懂了积木底层在做什么。六、一分钟排障读数不对怎么办现象原因与对策读数一直为 0检查 Trig/Echo 是否接反、积木引脚选择是否与接线一致确认 5V 已供电、GND 已共地返回None超出测量范围默认 30000 µs 超时效应约 5 m 量程缩短距离或更换测量目标也可调小echo_timeout_us毫米模式报错超量程时distance_cm()返回NoneNone * 10会抛异常取毫米值前先判空读数跳动明显超声波对角度、表面材质敏感属正常现象建议多次测量取平均或固定传感器避免抖动引脚冲突请从下拉提供的 P0 / P1 / P2 / P8 / P12~P16 中选择避免与板上其他功能冲突七、项目文件速查表 文件作用library/sonar.py核心源码HCSR04类构造 distance_cm()README.md硬件接线、积木与 Python API 完整文档blocksdef.js积木定义及其生成的 Python 代码category.json积木分类「超声波」注册配置config.json扩展名称、描述等元信息images/ohcode_extend_1.png「超声波距离值」积木示意图掌握HCSR04构造函数 distance_cm()这一个方法就掌握了这个超声波模块 Python API 的全部能力三行代码完成构造与测距剩下的只是把距离读数用进你的避障、停车、液位检测等创意项目里吧【免费下载链接】CupCode_HC-SR04超声波传感器模块源师兄扩展项目: 超声波模块 | 由源师兄组织创建项目地址: https://gitcode.com/yuanshixiong/ultrasonic-module创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

IDURAR 开源 ERP/CRM 软件架构全解析:基于 MERN 技术栈的发票、客户与财务管理实战指南

IDURAR 开源 ERP/CRM 软件架构全解析:基于 MERN 技术栈的发票、客户与财务管理实战指南

后端前端企业应用CRM 【免费下载链接】idurar-erp-crm Free Open Source ERP CRM Software Accounting Invoicing | Node.Js React 项目地址: https://gitcode.com/gh_mirrors/id/idurar-erp-crm 点击查看 免费下载 导读 IDURAR 是一个基于 MERN 技术栈&#xff0…

2026/9/25 2:17:01 阅读更多 →
Mage AI 集成指南:配置 BigQuery Source 实现数据集读取与全量同步

Mage AI 集成指南:配置 BigQuery Source 实现数据集读取与全量同步

数据工程数据编排ETL任务调度批处理流处理数据集成后端 【免费下载链接】mage-ai 🧙 Build, run, and manage data pipelines for integrating and transforming data. 项目地址: https://gitcode.com/gh_mirrors/ma/mage-ai 点击查看 免费下载 本指南以…

2026/9/25 2:17:01 阅读更多 →
Calypso Guided Tours 示例导览:用 simple-payments-end-of-year-guide 掌握 Tour 与 Selector 的构建之道

Calypso Guided Tours 示例导览:用 simple-payments-end-of-year-guide 掌握 Tour 与 Selector 的构建之道

前端CMS 【免费下载链接】wp-calypso The JavaScript and API powered WordPress.com 项目地址: https://gitcode.com/gh_mirrors/wp/wp-calypso 点击查看 免费下载 导读 本文以 client/layout/guided-tours/docs/examples/README.md 为骨架,深入剖析 …

2026/9/25 2:17:00 阅读更多 →

最新新闻

Windows-universal-samples 之 SimpleOrientationSensor 示例:UWP 简易方向传感器的事件与轮询实战

Windows-universal-samples 之 SimpleOrientationSensor 示例:UWP 简易方向传感器的事件与轮询实战

示例工程 【免费下载链接】Windows-universal-samples API samples for the Universal Windows Platform. 项目地址: https://gitcode.com/gh_mirrors/wi/Windows-universal-samples 点击查看 免费下载 本指南以 Windows-universal-samples 仓库中的 SimpleOrienta…

2026/9/25 2:57:29 阅读更多 →
GraphQL Java 服务端错误处理实战:graphql-java 错误响应结构、消息脱敏与自定义执行策略

GraphQL Java 服务端错误处理实战:graphql-java 错误响应结构、消息脱敏与自定义执行策略

【免费下载链接】howtographql The Fullstack Tutorial for GraphQL 项目地址: https://gitcode.com/gh_mirrors/ho/howtographql 点击查看 免费下载 导读 本篇基于 howtographql 仓库中 graphql-java 后端教程 的「错误处理」章节,系统讲解在使用 gra…

2026/9/25 2:57:29 阅读更多 →
机械臂双相机协同标定:Kinect2+Astra手眼统一方案

机械臂双相机协同标定:Kinect2+Astra手眼统一方案

简介:本资源是一套面向计算机、自动化、人工智能等专业学生的高分毕业设计项目,聚焦多模态视觉-机械臂协同标定实践,完整实现Kinect2相机眼在手外标定与Astra奥比中光相机眼在手上标定,并集成aubo机械臂控制。适用于课程设计、期末…

2026/9/25 2:57:29 阅读更多 →
Graspness推理服务接入ROS2:从点云到机械臂抓取实战

Graspness推理服务接入ROS2:从点云到机械臂抓取实战

简介:这份资源面向机器人抓取方向的研究者与工程开发者,聚焦无序3D场景下的6自由度抓取难题。其核心是集成Graspness推理服务完成抓取姿态预测,并借助ROS2与MoveIt2打通从姿态输出到机械臂运动规划、避障与执行的全链路,可用于家庭…

2026/9/25 2:57:29 阅读更多 →
异构数控机床数据采集实战:FANUC、西门子海德汉接入与Oracle统一存储

异构数控机床数据采集实战:FANUC、西门子海德汉接入与Oracle统一存储

简介:本资源是一套面向制造车间设备联网与数字化改造的异构数控机床数据采集系统,适合设备工程师、信息化实施人员及中高级自动化开发者使用。系统针对车间内FANUC、西门子、海德汉等主流数控系统进行统一数据采集与集成,能有效解决多品牌设备…

2026/9/25 2:57:28 阅读更多 →
urql 订阅(Subscriptions)完整实战指南:subscriptionExchange、fetch 流式传输与多框架 useSubscription 深入解析

urql 订阅(Subscriptions)完整实战指南:subscriptionExchange、fetch 流式传输与多框架 useSubscription 深入解析

前端 【免费下载链接】urql The highly customizable and versatile GraphQL client with which you add on features like normalized caching as you grow. 项目地址: https://gitcode.com/gh_mirrors/ur/urql 点击查看 免费下载 urql 在“基础(Basic…

2026/9/25 2:56:28 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →