Съдържание:

Ултразвукова система за позициониране: 4 стъпки (със снимки)
Ултразвукова система за позициониране: 4 стъпки (със снимки)

Видео: Ултразвукова система за позициониране: 4 стъпки (със снимки)

Видео: Ултразвукова система за позициониране: 4 стъпки (със снимки)
Видео: Свършвам бързо! Как да правя секс по-дълго? 2024, Ноември
Anonim
Ултразвукова система за позициониране
Ултразвукова система за позициониране

Всички версии на ултразвукови радари, които открих за устройства arduino (Arduino - Radar/Ultrasonic Detector, Arduino Ultrasonic Radar Project) са много хубави радари, но всички те са „слепи“. Искам да кажа, радарът открива нещо, но какво открива?

Затова предлагам да разработя система, способна да открива обекти и да ги идентифицира. С други думи, система за позициониране без използване на GPS устройства, а ултразвукови детектори.

Това е резултатът, надявам се да ви хареса.

Стъпка 1: Как работи?

Как работи?
Как работи?

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

const плаващо разстояние между 1 и 2 = 60,0;

const плаващо разстояние между 2 и 3 = 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;

Идентификационният възел на тези сензорни станции („this_node“в кода по -долу) е 1, 2 и 3, а идентификационният възел на главната станция е 0.

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

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

Всяка сензорна станция преминава под ъгъл от 100º („max_angle“в кода по -долу)

#define min_angle 0

#дефинирайте max_angle 100

Както по -горе единствената функция на обекта е да открива обекти и да изпраща списъка с разстояния, ъгли и id обект, измерен до главната станция. Идентификаторът на един обект („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 плаващо разстояние между 1 и 2 = 60,0;

const плаващо разстояние между 2 и 3 = 70,0;

Скицата изчислява позицията на обектите по следния начин:

  • За всички предавания на обектите (id_node по -голям от 3) потърсете същото разстояние във всяко предаване на ултразвуковите сензори (id_node 1, 2 или 3).
  • Всички тези точки образуват списък с „кандидати“(разстояние, ъгъл, id_node), които да бъдат позицията на един обект („process_pointobject_with_pointssensor“в скицата).
  • За всеки „кандидат“от предишния списък функцията „kandidat_selected_between_sensor2and3“изчислява от гледна точка на ултразвуковия сензор 2 и 3 кое от тях отговаря на следното условие на тригонометрия (вижте снимките 2 и 3)

плаващо разстояние от2 = sin (радиани (ъгъл)) * разстояние;

float distancefroms3 = cos (радиани (ъгъл_кандидат)) * distance_candidate; // Условие за тригонометрия 1 abs (разстояние от2 + разстояние от3 - разстояние между2 и 3) <= поплавък (макс_разстояние_разстояние)

Както по -горе, за всеки "кандидат" от предишния списък, функцията "kandidat_selected_between_sensor1and2" изчислява от гледна точка на ултразвуковия сензор 1 и 2 кой от тях съответства на следната тригонометрична връзка (вижте снимките 2 и 3)

float distancefroms1 = sin (радиани (ъгъл)) * разстояние; float distancefroms2 = cos (радиани (ъгъл_кандидат)) * distance_candidate; // Условие за тригонометрия 2 abs (разстояние от 1 + разстояние от 2 - разстояние между1 и 2) <= поплавък (max_diference_distance)

Само кандидатите (разстояние, ъгъл, id_node), които отговарят на условията на тригонометрия 1 и 2, са идентифицирани обекти, открити от сензорните станции 1, 2 и 3

След това резултатите се изпращат от главната станция до обработваща скица, за да ги начертаят.

Стъпка 4: Списък на материалите

Image
Image

Списъкът с материали, необходими за една сензорна станция или един обект, е следният:

  • Нано дъска
  • Ултразвуков сензор
  • Микро серво мотор
  • Безжичен модул NRF24L01
  • NRF24L01 адаптер

и списъкът с материали за главната станция е следният:

  • Нано дъска
  • Безжичен модул NRF24L01
  • NRF24L01 адаптер

Препоръчано: