Система позиционирования на основе ультразвука: 4 шага (с изображениями)
Система позиционирования на основе ультразвука: 4 шага (с изображениями)
Anonim
Ультразвуковая система позиционирования
Ультразвуковая система позиционирования

Все версии ультразвуковых радаров, которые я нашел для устройств Arduino (Arduino - Radar / Ultrasonic Detector, Arduino Ultrasonic Radar Project), очень хорошие радары, но все они «слепые». Я имею в виду, радар что-то обнаруживает, но что он обнаруживает?

Поэтому я предлагаю разработать систему, способную обнаруживать объекты и идентифицировать их. Другими словами, система позиционирования без использования устройств GPS, а только ультразвуковых детекторов.

Это результат, надеюсь, вам понравится.

Шаг 1. Как это работает?

Как это работает?
Как это работает?

Системы позиционирования образованы тремя сенсорными станциями с ультразвуковыми детекторами и id_node 1, 2 и 3, образующими прямоугольник или квадрат, охватывающий угол 90º, а расстояния между ними известны, как показано на рисунке 1.

const float distancebetween1and2 = 60.0;

const float distancebetween2and3 = 75.0;

Эти датчики измеряют расстояние и угол до других объектов с id_node больше 3, которые также имеют ультразвуковой детектор, охватывающий угол 170 °.

Все они отправляют расстояния, измеренные углы и id_node на другую главную станцию, используя беспроводную связь, для анализа, вычисления положения объектов с использованием тригонометрических вычислений и их идентификации.

Чтобы избежать помех, главная станция синхронизирует все ультразвуковые детекторы таким образом, что только один ультразвуковой детектор выполняет измерения в каждый момент.

После этого, используя последовательную связь, главная станция отправляет информацию (угол, расстояние, id_object) в эскиз обработки для построения результатов.

Шаг 2: Как настроить три сенсорных станции и объекты

Как настроить три сенсорных станции и объекты
Как настроить три сенсорных станции и объекты
Как настроить три сенсорных станции и объекты
Как настроить три сенсорных станции и объекты

Единственная функция каждой сенсорной станции - обнаруживать объекты и отправлять список расстояний, углов и идентификаторов узлов, измеренных на главную станцию.

Таким образом, вы должны обновить максимально допустимое расстояние обнаружения («valid_max_distance») и минимальное («valid_min_distance») (сантиметры), чтобы улучшить обнаружение и ограничить зону обнаружения:

int valid_max_distance = 80;

int valid_min_distance = 1;

Узел id этих сенсорных станций («this_node» в приведенном ниже коде) - 1, 2 и 3, а узел id главной станции - 0.

const uint16_t this_node = 01; // Адрес нашего узла в восьмеричном формате (Node01, Node02, Node03)

const uint16_t other_node = 00; // Адрес главного узла (Node00) в восьмеричном формате

Каждая сенсорная станция проходит под углом 100º («max_angle» в коде ниже)

#define min_angle 0

#define max_angle 100

Как указано выше, единственной функцией объекта является обнаружение объектов и отправка списка расстояний, углов и идентификаторов измеренных объектов на главную станцию. Идентификатор одного объекта («this_node» в приведенном ниже коде) должен быть больше 3.

Каждый объект движется под углом 170º и, как указано выше, можно обновить максимальное и минимальное расстояние обнаружения.

const uint16_t this_node = 04; // Адрес нашего узла в восьмеричном формате (Node04, Node05,…)

const uint16_t other_node = 00; // Адрес главного узла (Node00) в восьмеричном формате int valid_max_distance = 80; int valid_min_distance = 1; #define min_angle 0 #define max_angle 170

Шаг 3: Как настроить мастер-станцию

Как настроить мастер-станцию
Как настроить мастер-станцию
Как настроить мастер-станцию
Как настроить мастер-станцию
Как настроить мастер-станцию
Как настроить мастер-станцию

Функция главной станции состоит в том, чтобы принимать передачи сенсорных станций и объектов и отправлять результаты через последовательный порт на обрабатывающий эскиз для их построения. Более того, синхронизирует все объекты и три сенсорные станции таким образом, что только один из них производит измерения в каждый момент времени, чтобы избежать помех.

Во-первых, вам нужно обновить расстояние (в сантиметрах) между датчиками 1 и 2 и расстояние между 2 и 3.

const float distancebetween1and2 = 60.0;

const float distancebetween2and3 = 70.0;

Эскиз рассчитывает положение объектов следующим образом:

  • Для всех передач объектов (id_node больше 3) ищите одинаковое расстояние в каждой передаче ультразвуковых датчиков (id_node 1, 2 или 3).
  • Все эти точки образуют список «кандидатов» (расстояние, угол, id_node) на позицию одного объекта («process_pointobject_with_pointssensor» в эскизе).
  • Для каждого «кандидата» из предыдущего списка функция «chapter_selected_between_sensor2and3» вычисляет с точки зрения ультразвуковых датчиков 2 и 3, какие из них соответствуют следующему условию тригонометрии (см. Рисунки 2 и 3)

float distancefroms2 = sin (радианы (угол)) * расстояние;

float distancefroms3 = cos (радианы (angle_candidate)) * distance_candidate; // Условие тригонометрии 1 абс (distancefroms2 + distancefroms3 - distancebetween2and3) <= float (max_diference_distance)

Как и выше, для каждого «кандидата» из предыдущего списка функция «chapter_selected_between_sensor1and2» вычисляет с точки зрения ультразвуковых датчиков 1 и 2, какие из них соответствуют следующему тригонометрическому соотношению (см. Рисунки 2 и 3)

float distancefroms1 = sin (радианы (угол)) * расстояние; float distancefroms2 = cos (радианы (angle_candidate)) * distance_candidate; // Условие тригонометрии 2 abs (distancefroms1 + distancefroms2 - distancebetween1and2) <= float (max_diference_distance)

Только кандидаты (расстояние, угол, id_node), которые соответствуют условиям тригонометрии 1 и 2, являются идентифицированными объектами, обнаруженными сенсорными станциями 1, 2 и 3

После этого результаты отправляются мастер-станцией в обрабатывающий эскиз для их построения.

Шаг 4: Список материалов

Image
Image

Перечень материалов, необходимых для одной сенсорной станции или одного объекта, следующий:

  • Нано-доска
  • Ультразвуковой датчик
  • Микро серводвигатель
  • Беспроводной модуль NRF24L01
  • Адаптер NRF24L01

а список материалов для мастер-станции следующий:

  • Нано-доска
  • Беспроводной модуль NRF24L01
  • Адаптер NRF24L01

Рекомендуемые: