# 智能小车 **Repository Path**: hack_1/smart-car ## Basic Information - **Project Name**: 智能小车 - **Description**: 一个可以用 远程,本地,遥控器 控制 前进/后退/左转/右转 的小车,它还可以检测障碍,自动转向。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-01-23 - **Last Updated**: 2025-03-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能小车 #### 介绍 [相关资料地址](https://www.yuque.com/bingxueqingyuan-fs5mp/nl53ax/mxcv96mh94g60kwk?singleDoc# ) ![项目完成](img/项目完成.jpg) 智能小车,实现了远程控制,红外遥控器控制,还有本地的WebServer的控制,还有自动检测距离自动避障。 ## 材料清单 | 名称 | 数量 | 价格(元,大约) | | ---------------------------------------- | ---- | -------------- | | ESP8266 | 1 | 10~12 | | L298N | 1 | 7~8 | | 智能小车底盘(包含电池盒+4个电机+4个车轮) | 1 | 25~28 | | HY-SRF05超声波(可选) | 1 | 3~4 | | 红外遥控器(可选) | 1 | 2~3 | | ov7670摄像头(可选) | 1 | 5~6 | | 杜邦线 | 1 | 1~2 | #### 软件架构 本地使用 WebServer 来控制. 远程控制使用的是[点灯科技的库](https://diandeng.tech/doc/getting-start-arduino)与APP。 diandeng [点灯设备端开发与SDK(Arduino支持)](https://diandeng.tech/doc/arduino-support) 自动避障 使用的是 HY-SRF05超声波,检测到小于多少距离的时候,就变换方向。(哈哈哈,价值千万的自动驾驶代码) 红外遥控器用的是 21-key IR Controller. **ESP8266 与 L298N 线路连接示意图** diandeng * VCC +12V 引脚,为电机供电电源。输入电压可以在5~35V之间。请记住,如果 5V-EN 跳线已就位,则需要提供比电机实际电压要求多 2 伏的电压,以便获得电机的最大速度。 * GND 引脚,公共接地引脚。 * 5V 引脚,为L298N IC内部电路供电。 * ENA/B 引脚,用于控制电机A的速度,将此引脚拉至高电平(保持跳线到位)将使电机A/B旋转,将其拉低会使电机停止。卸下跳线帽并将此引脚连接到PWM输入将使我们能够控制电机A/B的速度。如果5V - EN A,5V - EN B 跳线帽接上了,则EN A, EN B的电压始终为5V,意味着供给电机的电压始终为最大值。因此,如果我们不需要控制电机转速,就可以将这两个跳线帽接上,就可以省两根控制信号线。 **ESP8266相关GPIO口的图** diandeng diandeng **方向示意图** ![电机方向图1](img/电机方向图1.png) 正常情况4个轮子向前或向后就完成前进和后退。(具体参考代码) ![电机方向图2](img/电机方向图2.png) 小车想要转向,用两侧轮子的差速转动来实现车身整体的转动,上图为右转的示意图,左转同理。(具体参考代码) 顺时针:高(HIGH),低(LOW);逆时针:低(LOW),高(HIGH)。 假设 马达正转顺时针表示前进,IN1与IN2对应左边的马达,IN3与IN4对应右边,如列表: | 方向 | IN1 | IN2 | IN3 | IN4 | | ---- | -------- | ---------------- | -------- | ---------------- | | 前进 | 高(HIGH) | 低(LOW) | 高(HIGH) | 低(LOW) | | 后退 | 低(LOW) | 高(HIGH) | 低(LOW) | 高(HIGH) | | 停止 | 低(LOW) | 低(LOW) | 低(LOW) | 低(LOW) | | 左转 | 低(LOW) | 高(HIGH)/低(LOW) | 高(HIGH) | 低(LOW) | | 右转 | 高(HIGH) | 低(LOW) | 低(LOW) | 高(HIGH)/低(LOW) | 左右都是正转 就是前进,反转就是后退。要转向的时候,左边 与 右边 就是 相反的。 ## 超声波模块 [Arduino 使用NewPin的库(里面封装了很多超声波模块).](https://blog.csdn.net/zzjnlwb/article/details/136996313) | UNO | HY-SRF05 | | ----- | -------- | | D2(4) | Echo | | D1(5) | Trig | [Arduino 測距系列 (二) HY-SRF-05](https://arduino169.blogspot.com/2015/03/arduino-srf-05.html) [【最详细】HC-SR04超声波传感器如何工作并与Arduino连接使用,保姆级教程,附加代码讲解和详细步骤学习_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV19yW8eZErS/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=9767ca4dcfc16447763e8c410e1ce45d) ## 红外遥控器 [相关文档](https://blog.csdn.net/acktomas/article/details/139955566) ## 电池 一般的电池可能不够用,可以使用航模电池,怕电池不够的,换成两个电机+其它的车底。 ![电机方向图1](img/电池.webp) 一般航模电池的插头 都是T插或TX60插头。平衡充必有明显的正负极标识,红线为正级,黑线为负极。黑线可能有多根,一定要用最外边的那跟(绝不可用中间的,会导致电池仅部分使用,锂电内部都是多接串联的)。最后要注意,黑线可先插好,红线一定要等最后,你所用的接线都检查完毕,确认无误后再插! # 参考资料 [L298N - 米克网](https://docs.mekesim.com/esp32/l298n/)