150元、3小时:用ESP32开发板拼装一台自动避障智能小车
150元、3小时用ESP32开发板拼装一台自动避障智能小车【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32这是一篇ESP32智能小车的完整落地记录。不到3小时我用一块ESP32开发板、一对N20减速电机和一个HC-SR04超声波模块拼出一台能自己躲障碍的小车配件总价150元上下。下面按选料→接线→烧录→跑通的顺序讲清楚每一步踩过的坑也一并交代。 开盘子这台ESP32智能小车要花多少钱动手之前先算账。物料一共六项全部摊开ESP32开发板我用的DevKitCS3也行55元左右N20减速电机套装带轮子一对42元左右HC-SR04超声波测距模块几块钱搞定8元上下亚克力底盘、万向轮等附件40元左右L298N电机驱动板TB6612FNG也可以几块钱18650锂电池加电池盒20元以内驱动板为什么选L298NN20电机的工作电流能到1AESP32那几个GPIO直接扛不住必须隔一级。L298N是现成的成品方案TB6612FNG更轻更小二选一即可接口用法基本通用。 接线时GPIO怎么分ESP32电机控制接线接线最费神的其实是那6根信号线先上分配表用途ESP32引脚左电机PWM接L298N的ENAGPIO12左电机方向IN1/IN2GPIO13右电机PWMENBGPIO14右电机方向IN3/IN4GPIO15超声波TrigGPIO16超声波EchoGPIO17开发板上每个焊盘对应什么引脚官方文档里有一张布局图可以直接对着看电源上有两处容易翻车。第一HC-SR04吃5V从ESP32的3.3V口喂它会测不准直接接5V和GND。第二电机电源千万别走ESP32的5V口——18650串起来的电池组7.4V直驱驱动板VCC再和ESP32共GND就够了。顺序上建议先架底盘N20两侧固定、前部装万向轮再装驱动板最后拉信号线。上电前先用手挡着轮子试一下方向接反了换两根电机线就行我当时就这么干过。⚙️ 它凭什么能转差速转向加PWM调速这车没有转向机构所谓转弯全靠两个轮子转速差行话叫差速转向左快右慢就向左画弧两边同速就直行。ESP32用LEDC硬件PWM出速度我设的是5kHz频率、10位分辨率取值0到1023两路分别压到驱动板的ENA和ENB。写法参考官方示例目录 libraries/ESP32/examples/AnalogOut/核心就几行ledcSetup(0, 5000, 10); // 通道05kHz10位 ledcAttachPin(12, 0); // GPIO12 接左电机 ledcSetup(1, 5000, 10); ledcAttachPin(14, 1); // GPIO14 接右电机 void setSpeed(int l, int r) { ledcWrite(0, l); ledcWrite(1, r); }换向不走PWM是给GPIO13和GPIO15写0/1改变IN哪一路高电平。至于ESP32内部怎么把这些信号送到不同引脚看这张GPIO复用矩阵图最直观162路外设输入信号经过IO_MUX多路复用压到34个GPIO上所以大部分引脚可以随意改派。 超声波阈值调多少避障决策距离表HC-SR04的用法很朴素Trig发10微秒脉冲Echo回显的高电平持续时间除以2再乘声速340m/s就是距离。我给自己定了三档距离表大于20cm150的PWM值巡航10到20cm降到60慢慢挪小于10cm刹停原地转个向再走侧向补一条左右任一方向小于15cm就修正一下航向循环50ms跑一圈从看见障碍到电机动作总耗时压在100ms以内按最高0.5m/s的车速算这个反应时间内最多往前蹭5厘米。long d readUltrasonic(); // 返回厘米 if (d 20) { setSpeed(150, 150); // 巡航 } else if (d 10) { setSpeed(60, 60); // 减速 } else { setSpeed(0, 0); // 先刹住再翻方向重新给速 }烧录之前把超声波对着30cm外的墙读一次数落在30±2cm就可以放心。模块规格下限是2cm比这再近读数会跳属正常现象。 烧录前配置让Arduino IDE认出ESP32IDE这边两个动作。先去 文件 → 首选项在附加开发板管理器网址里加上ESP32官方开发板包地址具体写法见仓库内的安装文档 docs/en/installing.rst然后 工具 → 开发板 → 开发板管理器搜esp32点安装。开发板选项选ESP32 Dev Module插上USB选对口径就能上传。我这边第一次卡了十分钟最后发现是按住BOOT键再点上传才进去的第一次玩的同学多半也会在这一步多折腾一会儿。基础操作流程可以对照 docs/en/tutorials/basic.rst 走一遍。 进阶玩法用WiFi把车遥控起来ESP32的WiFi才是它身上最值钱的部分。小车以StationSTA身份挂上家里路由器同时起一个网页或UDP服务手机就能下发前进、左转、停止指令参考实现放在 libraries/WiFi/examples/。连接本身不复杂WiFi.begin(ssid, password)之后轮询WiFi.status()等到WL_CONNECTED就把IP打到串口。接下来可以在主循环里再塞一条2Hz的传感器数据流——当前距离、车速、电池电压——手机端画个简易仪表盘。这部分我留给下一轮迭代了。 算总账这次ESP32避障小车DIY的完整账单收个尾。物料150元从焊第一根线到车跑通3小时整。换回来的东西避障响应小于100ms最小可测2cm最高车速0.5m/s18650电池组供电满电巡航2到3小时双核都派上了用场一个核管电机控制循环另一个核管测距和串口数据后面加功能还有余量接下来可以做什么左右两侧各加一只HC-SR04沿用上面15cm的侧向阈值把单一超声波避障升级成三向融合判断接线方法和距离表本文第四节已经给全。挂一个DHT11温湿度传感器到5V和任意两个数字口让手机页面同时显示车况和环境数据。把主控换成ESP32-S3再挂一块OV2640摄像头用视觉方案替掉超声波官方摄像头示例在 libraries/ESP32/examples/Camera/。【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

bokeh.sampledata 完全指南:数据集模块的安装方式、代理加载机制与全部内置数据集目录

bokeh.sampledata 完全指南:数据集模块的安装方式、代理加载机制与全部内置数据集目录

bokeh.sampledata 完全指南:数据集模块的安装方式、代理加载机制与全部内置数据集目录 【免费下载链接】bokeh Interactive Data Visualization in the browser, from Python 项目地址: https://gitcode.com/GitHub_Trending/bo/bokeh bokeh.sampledata 是 B…

2026/9/13 18:56:49 阅读更多 →
Label Studio TextArea 标签完全指南:从文本标注配置到源码级提交机制

Label Studio TextArea 标签完全指南:从文本标注配置到源码级提交机制

Label Studio TextArea 标签完全指南:从文本标注配置到源码级提交机制 【免费下载链接】label-studio Label Studio is a multi-type data labeling and annotation tool with standardized output format 项目地址: https://gitcode.com/GitHub_Trending/la/labe…

2026/9/14 21:56:15 阅读更多 →
浏览器缓存机制详解:从强缓存到nginx配置,解决页面不更新问题

浏览器缓存机制详解:从强缓存到nginx配置,解决页面不更新问题

你有没有遇到过这种场景:前端刚上线一个版本,自己也拿手机开飞行模式再关掉,清了好几次缓存,结果用户群里还是有人截图说“页面怎么还是老样子”“新功能去哪了”。或者你自己在公司电脑上验证一切正常,回家一打开还是…

2026/9/13 18:56:49 阅读更多 →

最新新闻

基于灰狼算法的PID参数整定Matlab实现与仿真分析

基于灰狼算法的PID参数整定Matlab实现与仿真分析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/15 2:06:13 阅读更多 →
PLC与组态软件协同控制工业滤水器实践

PLC与组态软件协同控制工业滤水器实践

1. 项目概述:PLC与组态软件协同控制的工业实践在工业自动化领域,旋转式滤水器作为水处理系统的关键设备,其控制可靠性直接影响整个生产线的运行效率。传统继电器控制方式已难以满足现代工业对故障诊断、远程监控和数据记录的需求。基于西门子…

2026/9/15 2:06:13 阅读更多 →
S7-200 PLC与组态王在恒压供水系统中的应用

S7-200 PLC与组态王在恒压供水系统中的应用

1. 项目概述:S7-200与组态王在恒压供水系统中的应用在工业自动化领域,恒压供水系统是典型的闭环控制应用场景。我最近完成了一个基于西门子S7-200 PLC和组态王软件的三泵变频恒压供水系统设计项目,这个方案特别适合中小型水厂、住宅小区和高层…

2026/9/15 2:06:13 阅读更多 →
算力落地实践:从云平台选型到本地推理的避坑指南

算力落地实践:从云平台选型到本地推理的避坑指南

邬贺铨院士那句“2030年中国算力有望占到全球30%”,乍一听是个宏观判断,但真往细里想,背后全是产业机会和落地问题。算力这个词最近几年被反复提起,从AI大模型训练到日常用的智能应用,本质上都是算力在支撑。做开发和搞…

2026/9/15 2:06:13 阅读更多 →
从QSignalMapper到lambda:Qt信号处理的现代化演进

从QSignalMapper到lambda:Qt信号处理的现代化演进

1. QSignalMapper的兴衰与lambda的崛起在Qt框架的发展历程中,QSignalMapper曾经是信号处理的重要工具类。我第一次接触这个类是在2010年开发一个多媒体控制面板时,当时需要处理十几个按钮的点击事件,每个按钮需要触发相同的槽函数但携带不同的…

2026/9/15 2:06:13 阅读更多 →
C语言核心基础:彻底搞懂分支与循环语句

C语言核心基础:彻底搞懂分支与循环语句

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/15 2:05:13 阅读更多 →

日新闻

Java高级技术:从语言特性到性能优化全解析

Java高级技术:从语言特性到性能优化全解析

1. Java高级技术概述Java作为一门成熟的编程语言,经过二十多年的发展已经形成了完整的生态系统。在企业级应用开发、大数据处理、移动开发等领域,Java都占据着重要地位。掌握Java高级技术不仅意味着能够编写更高效的代码,更代表着开发者能够解…

2026/9/15 0:00:23 阅读更多 →
C#与Halcon结合的工业视觉处理实战指南

C#与Halcon结合的工业视觉处理实战指南

1. 项目概述:C#与Halcon强强联合的视觉处理利器这个基于C#和Halcon的视觉处理Demo项目,是我在工业质检领域摸爬滚打多年后提炼出的实战精华。它完美融合了C#的界面开发优势与Halcon强大的图像处理能力,就像给视觉工程师配上了一把瑞士军刀。项…

2026/9/15 0:00:23 阅读更多 →
32路工业串口服务器的硬核选型指南:确定性、鲁棒性与协议下沉

32路工业串口服务器的硬核选型指南:确定性、鲁棒性与协议下沉

1. 为什么“32路复合型”不是营销话术,而是工业现场真实痛点的硬解你有没有遇到过这样的场景:在某大型能源站的PLC机柜里,十几台不同年代、不同品牌的温控仪、电表、气体分析仪、阀门控制器,全靠RS-485总线挂在一根线上&#xff0…

2026/9/15 0:00:23 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/14 5:45:49 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/15 1:32:25 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/15 1:32:21 阅读更多 →

月新闻

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

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

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

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

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

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

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

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

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

2026/9/14 5:45:14 阅读更多 →