Радар Shield2Go определяющий направление и скорость движения

Радары, кроме военной техники, есть в большем количестве устройств, например в самолетах, автомобилях, системах управлении дорожным движением, метеостанциях и так далее. Почти все что связано с обнаружением объектов, движения, измерением расстояния или измерением скорости, может включать радар. Итак, как определить, движется ли что-то и в каком направлении? С помощью Radar Shield2Go от Infineon и Arduino IDE.

Что значит радар

Радар — это сокращение от Radio Detection and Ranging, технология которая использует радиоволны для обнаружения и определения местоположения объектов в окружающей среде. Он работает излучая радиоволны в виде импульсов, которые распространяются в пространстве. Когда эти волны сталкиваются с объектом, они как бы отскакивают или отражаются в направлении радиолокационной системы. Можно измерить время, необходимое волнам для возвращения, и определить расстояние, скорость и даже размер объекта.

Короче, радар посылает радиоволны и слушает их отражение. Анализируя эти эхо, можно выяснить где находятся объекты, как далеко, и как быстро они движутся.

Радар работает в радиочастотном диапазоне с большей проникающей способностью, в то время как ультразвук работает в УЗ диапазоне частот. Он имеет ограниченное проникновение, но более высокое разрешение.

Спецификации Radar Shield2Go

Shield2Go предлагает простое определение цели и фазы объекта, используя всего два GPIO. Кратко по некоторым характеристикам Shield:

  • Программируется в Arduino IDE
  • Настраиваемый диапазон обнаружения от 0,5 до 7 м
  • Потенциометры и переключатели для регулировки настроек радара
  • Очень маленькая (5 см х 2,5 см) конструкция платы.
  • Приемопередатчик 60 ГГц BGT60LTR11AIP MMIC с одним передатчиком и приемником

Распиновка радарного модуля

Распиновка показана на фото. TD и PD являются здесь основными элементами, TD означает обнаружение цели, а PD — обнаружение фазы.

Радар Shield2Go определяющий направление и скорость движения

  • TD: логический высокий уровень, когда цель/движение не обнаружены, и логический низкий, если обнаружены.
  • PD: Если обнаружено движение: логический ВЫСОКИЙ уровень когда цель приближается к радару, и логический НИЗКИЙ когда цель удаляется.

Внимание: не пытайтесь подключить shield2go напрямую к плате arduino или любой плате с рабочим напряжением 5 В. Для этого надо применить преобразование 5V => 3V3.

Настройка и код

Есть некоторые моменты, которые нужно сначала настроить, чтобы получить от модуля нужную информацию:

  1. Настройка жестко заданных параметров (Hardware Setup)
  2. Программирование Shield2Go с помощью библиотеки Arduino r adar-bgt60.

Радар Shield2Go определяющий направление и скорость движения

Радар имеет некоторые входные параметры (QS1-QS4), которые настраиваются аппаратно с помощью двух потенциометров и двух переключателей. Можно разбить эти параметры на:

  1. QS1: отвечает за режим работы радара; либо слева для автономного (расширенного) режима, либо справа для режима SPI.
  2. QS2: регулирует порог для радара, в основном дальность обнаружения, чем ниже значение — тем выше дальность.
  3. QS3: определяет время удержания выхода TD. Это определяет как долго будет сохраняться состояние выхода после обнаружения цели.
  4. QS4: переключатель с тремя состояниями, он имеет 3 варианта и устанавливает рабочую частоту радара. Левое положение соответствует 61,1 ГГц, среднее соответствует 61,2 ГГц, а правое положение 61,4 ГГц.

Ниже приведен пример настроек (эти настройки также используются в программной части):

  1. QS1 => лево
  2. QS2 => вертикально (дальность обнаружения цели около 2,48 м)
  3. QS3 => диагональ (время удержания около 5 минут)
  4. QS4 => среднее положение

Пробуйте настраивать эти входы чтобы откалибровать желаемое поведение, просто убедитесь что настроили параметры, когда плата выключена.

Радар Shield2Go определяющий направление и скорость движения

После настройки Radar Shield2Go можем перейти к программному обеспечению. Откройте Arduino IDE и загрузите библиотеку радара-bgt60 от Infineon. Теперь можете установить Shield2Go на адаптер XMC2Go или MyIoT и открыть среду разработки Arduino IDE. Начните код, введя следующее:

#include <Arduino.h>

#include <bgt60-ino.hpp>

#include <bgt60-platf-ino.hpp>

Первая библиотека предназначена для использования базовых функций Arduino, вторая — для использования основных функций Radar Shield2Go, а третья — для идентификации используемой вами платформы.

Если вы используете XMC2Go для Radar Shield2Go, введите:

#ifndef TD
#define TD 4
#endif

#ifndef PD
#define PD 8
#endif

Или если используете плату, отличную от следующих:

  • Arduino MKR1000
  • Arduino MRK WIFI 1010
  • Arduino Uno
  • XMC1100 Boot Kit
  • XMC4700 Relax Kit

Затем нужно будет определить контакты, подключенные к TD и PD соответственно.

После определения этих выводов определите BGT объект и вызовите его конструктор с помощью:

Bgt60Ino radarShield(TD, PD);

Теперь основными функциями Radar Shield2Go являются:

  • Инициализация радара
  • Обнаружение цели
  • Обнаружение фазы (направление)

Инициализация радара довольно проста и относится к setup()разделу кода:

Error_t init_status = radarShield.init();

if (OK != init_status) {
Serial.println(«Init failed.»);
}
else {
Serial.println(«Init successful.»);
}

init_status- это переменная пользовательского типа данных: Error_t,в которой хранится, init()было ли оно успешным или нет.

Обнаружение цели

Radar Shield2Go предварительно запрограммирован на включение СИНЕГО светодиода всякий раз, когда обнаруживается цель (или движение). Имейте в виду, что основные параметры уже определены входными данными QS, упомянутыми ранее. Он будет оставаться включенным некоторое время, придется подождать около 5 минут (из-за QS3) без движения, чтобы светодиод погас.

Чтобы извлечь эту информацию с помощью Arduino, нужно использовать следующую функцию в -разделе loop():

Bgt60::Motion_t motion = Bgt60::NO_MOTION;

radarShield.getMotion(motion);

getMotion(motion): метод из Bgt60класса в библиотеке. Считывает вывод TD и определяет, был ли он обнаружен MOTION или NO_MOTION, и сохраняет его в motion переменной, созданной выше.

Обнаружение фазы

Обнаружение фазы — это почти та же концепция, что и обнаружение цели (также запрограммирована заранее), и оно также связано с настройками ввода QS, которые вы используете. Над переключателем QS1 находится КРАСНЫЙ светодиод который включается, когда радар обнаруживает удаляющуюся цель, и выключается когда цель приближается.

Чтобы использовать это в программе Arduino, введите в секции — следующее loop():

Bgt60::Direction_t direction = Bgt60::NO_DIR;

radarShield.getDirection(direction);

getDirection(direction):определяет, является ли цель APPROACHING, DEPARTING, или имеет NO_DIR из-за отсутствия движения, и сохраняет результат в direction переменной.

Оцените полезность информации:

5 / 5. Голосов: 1

Расскажите, что надо исправить?