Радары, придуманные британцами еще во время второй мировой войны, сегодня используются достаточно широко. Они служат для заблаговременного обнаружения объектов. Благодаря развитию электроники и компонентной базы сегодня можно сделать некое подобие радара самостоятельно. За его детекторную основу можно взять ультразвуковой сенсор, способный посылать ультразвуковые сигналы в пространство и принимать их отражение. Это напоминает метод работы радиоволновых радаров, также использующих принцип отражения, но не звука, а радиоволн.
Вы можете сделать простой радар своими руками на основе миникомпьютера Intel Edison, ультразвукового датчика и сервомотора.

Шаг 1: компоненты, которые понадобятся вам для создания радара на основе Intel Edison

- Мини-ПК Intel Edison
- Ультразвуковой датчик HC-SR04
- Серводвигатель Tower Pro
- Кусок печатной платы для крепления датчика
- Макетная плата
Шаг 2: крепим датчик


Вам нужно отрезать кусок печатной платы с четырьмя отверстиями по ширине. Длина платы около 15 см. Припаяйте датчик с одной стороны, штыревой переходник с другой стороны и соедините их проводами.
Шаг 3: подключение элементов радара

Для того, чтобы все кабели шли в одно место и не путались лишний раз, желательно взять макетную плату.
Соединение Intel Edison с датчиком HC-SR04:
Vcc-------------------Edison Vcc
GND-----------------GND
Echo---------------- Вывод 6
Trigger--------------Вывод 5
Соединение Intel Edison с сервоприводом:
Vcc-----------------Vcc
GND---------------GND
Signal------------ Вывод 9
Шаг 4: программируем миникомпьютер Intel Edison

После установки макетной платы с датчиком и сервомотором на Intel Edison нужно запрограммировать устройство. Код довольно прост. Он заставляет серводвигатель вращаться слева направо и в обратную сторону, при этом ультразвуковой датчик постоянно считывает расстояние до объектов перед ним. Вся необходимая информация выводится в последовательный порт.
Сначала производим глобальные настройки:
#define ECHOPIN 6
#define TRIGPIN 5
#include
Servo myservo;
int pos = 0;
Затем организуем функцию setup, где настраиваем порт и определяем выводы:
void setup() {
Serial.begin(115200);
myservo.attach(9);
pinMode(ECHOPIN, INPUT);
pinMode(TRIGPIN, OUTPUT);
}
Далее следует основной цикл программы. Если вы хотите изменить угол вращения сервопривода, то просто измените значения pos=10 и pos=170. Значение pos+=3 определяет, сколько градусов будет соответствовать одному шагу сервомотора.
void loop() {
myservo.write(10);
delay(1000);
for(pos = 10; pos <= 170; pos += 3)
{
myservo.write(pos);
Print(Distance() , pos);
delay(15);
}
delay(1000);
for(pos = 170; pos>=10; pos-=3)
{
myservo.write(pos);
Print(Distance() , pos);
delay(15);
}
Чтобы основной цикл был более понятным и не слишком громоздким, вывод информации в порт и определение расстояния были вынесены в отдельные функции.
void Print (int R , int T)
{
Serial.print(R);Serial.print(", ");
Serial.print(T);Serial.println(".");
delay(100);
}
float Distance () {
digitalWrite(TRIGPIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGPIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGPIN, LOW);
// Расчет расстояния
float distance = pulseIn(ECHOPIN, HIGH);
distance= distance/58.2;
return(distance);
}
Шаг 5: запускаем программу
Скачайте Processing 2 и загрузите код из файла в программу. После включения платы запустите код.


Все! Теперь у вас есть собственный радар для детектировании объектов на расстоянии, правда на достаточно коротком расстоянии.
© digitrode.ru