使用超声波模块做小车跟随

这里小龟和大家分享使用常见的HC-SR04超声波模块让小龟小车实现跟随功能。

HC-SR04超声波模块简单讲解

HC-SR04是一款非常常见的超声波模块,它的原理就是通过一个超声波发射器发射出超声波,然后另一边的接收器等待反射回来的超声波信号,并输出与超声波传播时间相一致的高电平长度,而后我们再根据这个电平持续时间长度计算出障碍物离传感器的距离。
小龟小车以简单易用做为自己的设计目标,所以只需下面简单的语句,即可使用超声波模块获得障碍物的距离。

car.hcsr04(Trig接的管脚名,Echo接的管脚名)

返回值是障碍物相对传感器的距离,单位是厘米。

 

接线与模块安装说明

在安装超声波模块前,请先准备四根杜邦线(小车配套的传感器盒子里面有的)。
然后按下图用小车配套的两个固定片和螺丝把超声波模块固定到小车车头位置,用两个固定片压住连接超声波用的杜邦线和小车面板插槽。

  

 

接下来请按一下次序连接超声波模块和小车扩展口。
一个简单的方法,连接超声波模块的杜邦线有序排序即可,这样只需按下面次序插对杜邦线和小车扩展口。

<

  • 7
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Arduino超声波跟随小车代码主要包括以下几个部分: 1. 引入所需的库文件。在代码的开头部分,需要引入与超声波传感器和电机驱动器相关的库文件,例如"Ultrasonic.h"和"AFMotor.h"。 2. 初始化超声波传感器和电机驱动器。在"void setup()"函数中,需要初始化超声波传感器和电机驱动器的引脚和设置其工作模式。 3. 编写测距函数。创建一个名为"getDistance()"的函数,用于获取超声波传感器测得的距离值。 4. 编写控制小车行驶的函数。创建一个名为"follow()"的函数,通过控制电机驱动器的引脚输出来实现小车跟随。可以根据测得的距离值来判断小车前进、停止或者转向。 5. 主循环中调用函数。在"void loop()"函数中,通过调用"getDistance()"函数获取距离值,然后根据距离值调用"follow()"函数来控制小车行驶。 总结起来,以上就是实现Arduino超声波跟随小车的基本代码。当代码运行时,超声波传感器不断测量前方的距离,并根据测得的距离值来控制电机驱动器引脚的输出,从而实现小车跟随。具体的代码细节还需要根据具体的硬件和需求进行调整和修改。 ### 回答2: Arduino超声波跟随小车代码的主要实现思路是利用超声波传感器测量子前方障碍物的距离,并根据距离调整子的行进方向。以下是一种可能的Arduino超声波跟随小车代码示例: 首先,我们需要定义引脚连接: int trigPin = 2; // 设置超声波传感器的TRIG引脚连接到Arduino的2号引脚 int echoPin = 3; // 设置超声波传感器的ECHO引脚连接到Arduino的3号引脚 int leftMotor = 4; // 设置左侧电机的引脚连接到Arduino的4号引脚 int rightMotor = 5; // 设置右侧电机的引脚连接到Arduino的5号引脚 int speed = 255; // 设置子的速度值 在setup()函数中初始化设置: void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(leftMotor, OUTPUT); pinMode(rightMotor, OUTPUT); Serial.begin(9600); // 设置串口通信 } 然后,在loop()函数中进行主要的操作: void loop() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); float duration = pulseIn(echoPin, HIGH); // 通过pulseIn函数测量返回超声波传感器的信号脉冲宽度 float distance = duration * 0.034 / 2; // 根据脉冲宽度计算距离值,声波速度大约为每毫秒34厘米,除以2得到单程距离 if (distance <= 20) { // 如果距离小于等于20厘米,说明有障碍物 digitalWrite(leftMotor, HIGH); // 左侧电机停止 digitalWrite(rightMotor, HIGH); // 右侧电机停止 } else { // 如果距离大于20厘米,说明没有障碍物 digitalWrite(leftMotor, HIGH); // 左侧电机向前 digitalWrite(rightMotor, HIGH); // 右侧电机向前 } delay(100); // 延时一段时间后重新进行测量和判断 } 通过以上代码,就实现了一个简单的超声波跟随小车。当子前方有障碍物时,子会停下来;当子前方没有障碍物时,子会向前行驶。你可以根据自己的需要调整距离阈值和速度值来适应不同场景的要求。 ### 回答3: 以下是一个简单的Arduino超声波跟随小车代码示例: 首先,连接超声波模块的Trig引脚到Arduino的数字引脚9,Echo引脚连接到Arduino的数字引脚10。 然后,将左马达(电机)连接到Arduino的数字引脚5和6,将右马达连接到数字引脚10和11。 接下来,我们需要声明一些变量,包括超声波引脚和马达引脚的定义。 #include <NewPing.h> #define TRIGGER_PIN 9 #define ECHO_PIN 10 #define MAX_DISTANCE 200 #define LEFT_MOTOR_1 5 #define LEFT_MOTOR_2 6 #define RIGHT_MOTOR_1 10 #define RIGHT_MOTOR_2 11 NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); 然后,在setup()函数中设置马达引脚为输出模式。 void setup() { pinMode(LEFT_MOTOR_1, OUTPUT); pinMode(LEFT_MOTOR_2, OUTPUT); pinMode(RIGHT_MOTOR_1, OUTPUT); pinMode(RIGHT_MOTOR_2, OUTPUT); } 接下来,在loop()函数中,我们需要获取超声波传感器的测量距离,并根据距离调整小车的行动。 void loop() { int distance = sonar.ping_cm(); if (distance < 20) { // 如果距离小于20厘米 // 后退 digitalWrite(LEFT_MOTOR_1, LOW); digitalWrite(LEFT_MOTOR_2, HIGH); digitalWrite(RIGHT_MOTOR_1, LOW); digitalWrite(RIGHT_MOTOR_2, HIGH); } else if (distance > 20 && distance < 50) { // 如果距离介于20到50厘米之间 // 向右转 digitalWrite(LEFT_MOTOR_1, HIGH); digitalWrite(LEFT_MOTOR_2, LOW); digitalWrite(RIGHT_MOTOR_1, LOW); digitalWrite(RIGHT_MOTOR_2, HIGH); } else { // 如果距离大于50厘米 // 向前走 digitalWrite(LEFT_MOTOR_1, HIGH); digitalWrite(LEFT_MOTOR_2, LOW); digitalWrite(RIGHT_MOTOR_1, HIGH); digitalWrite(RIGHT_MOTOR_2, LOW); } } 以上就是一个简单的Arduino超声波跟随小车代码。当距离小于20厘米时,小车会后退;当距离介于20到50厘米之间时,小车会向右转;当距离大于50厘米时,小车会向前走。可以根据实际情况进行调整和优化代码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值