雷达车上的天线转来转去的扫描,是不是感觉很高科技。我们也可以制作一个,只是我们这里用的是超声波扫描。利用舵机来做巡航动作,超声波来扫描物体。当超声波扫描到障碍物时,就会停下来,并且显示障碍物的距离。

# 部署

  1. 超声波模块VCC接OSEPP UNO的5V
  2. 超声波模块GND接OSEPP UNO的GND
  3. 超声波模块ECHO接到OSEPP UNO的9号引脚。
  4. 超声波模块TRIG接到OSEPP UNO的8号引脚。
  5. LCD的接口RS-D7分别连接到OSEPP UNO的2~7号引脚。
  6. LED1连接到OSEPP UNO的13号引脚。
  7. 舵机连接到OSEPP UNO的10号引脚。
  8. 蜂鸣器连接到OSEPP UNO的A5引脚。

# 程序搭建

  • oseppBlock程序

  • Arduino程序
#include <LiquidCrystal.h>
#include <Servo.h>
#include <oseppRobot.h>

LiquidCrystal lcd1(2, 3, 4, 5, 6, 7); //定义LCD引脚
Servo servo1;
OseppUltrasonic ultrasonic1(8, 9); //定义超声波模块引脚
int i = 0;                          //定义变量i

void saomiao() //子程序,巡航扫描
{
    servo1.write(i); //舵机转到变量i
    delay(500);      //延时500毫秒
}

void xianshi() //显示子程序
{
    lcd1.clear();                               //LCD清屏
    lcd1.setCursor(0, 0);                       //LCD光标定位
    lcd1.print(ultrasonic1.ping());             //LCD显示当前距离
    lcd1.print("mm");                           //距离单位
    lcd1.setCursor(0, 1);                       //LCD光标定位
    lcd1.print(i);                              //LCD显示当前舵机角度
    digitalWrite(13, ultrasonic1.ping() < 400); //距离小于400,LED点亮
}

void baojin() //报警声音子程序
{
    digitalWrite(A5, HIGH); //蜂鸣器输出声音
    delay(20);             //延时20毫秒
    digitalWrite(A5, LOW);  //蜂鸣器停止输出
}

void setup()
{
    lcd1.begin(16, 2); //LCD初始化
    //buzzer1
    pinMode(A5, OUTPUT);
    servo1.attach(10); //定义蜂鸣器引脚
    //led1
    pinMode(13, OUTPUT); //定义LED1引脚
}

void loop()
{
    while (i < 180) //如果变量i小于180
    {
        saomiao();                    //执行扫描子程序
        xianshi();                    //执行显示子程序
        if (ultrasonic1.ping() < 400) //如果距离小于400
        {
            baojin(); //执行报警程序
        }
        else
        {
            i += 10; //否则变量i加10
        }
    }
    while (i > 0) //如果变量i大于0
    {
        saomiao();                    //执行扫描子程序
        xianshi();                    //执行显示子程序
        if (ultrasonic1.ping() < 400) //如果距离小于400
        {
            baojin(); //执行报警程序
        }
        else
        {
            i -= 10; //否则变量i减去10
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

# 运行结果

程序启动后,安装在舵机上面的超声波模块会在0-180度之间巡航扫描。如果在0-180度这个范围内有障碍物,并且障碍物的距离小于400mm时,舵机会停下,LED发光同时蜂鸣器发出报警声。当障碍物被移除后,LED熄灭报警声解除,继续巡航扫描。

# 操作视频