Ultradźwiękowy system pozycjonowania: 4 kroki (ze zdjęciami)
Ultradźwiękowy system pozycjonowania: 4 kroki (ze zdjęciami)
Anonim
Ultradźwiękowy system pozycjonowania
Ultradźwiękowy system pozycjonowania

Wszystkie wersje radarów ultradźwiękowych, które znalazłem dla urządzeń arduino (Arduino - Radar/Ultrasonic Detector, Arduino Ultrasonic Radar Project) są bardzo ładnymi radarami, ale wszystkie są "ślepe". To znaczy radar coś wykrywa, ale co wykrywa?

Proponuję więc opracowanie systemu zdolnego do wykrywania obiektów i ich identyfikacji. Innymi słowy system pozycjonowania bez użycia urządzeń GPS, ale detektorów ultradźwiękowych.

To jest wynik, który mam nadzieję Ci się spodoba.

Krok 1: Jak to działa?

Jak to działa?
Jak to działa?

Systemy pozycjonowania składają się z trzech stacji czujników z detektorami ultradźwiękowymi i id_node 1, 2 i 3 tworzących prostokąt lub kwadrat o kącie 90º, a odległości między nimi są znane, jak pokazano na rysunku 1.

stała odległość zmiennoprzecinkowa między 1 i 2 = 60,0;

stała odległość zmiennoprzecinkowa między 2 i 3 = 75,0;

Czujniki te mierzą odległość i kąt innych obiektów z id_node większym niż 3, które mają również detektor ultradźwiękowy, który omiata kąt 170°.

Wszystkie z nich przesyłają odległości, zmierzone kąty i id_node do innej stacji głównej za pomocą komunikacji bezprzewodowej w celu analizy, obliczenia pozycji obiektów za pomocą obliczeń trygonometrycznych i ich identyfikacji.

Aby uniknąć zakłóceń, stacja główna synchronizuje wszystkie detektory ultradźwiękowe w taki sposób, że tylko jeden detektor ultradźwiękowy mierzy w danym momencie

Następnie, korzystając z komunikacji szeregowej, stacja główna wysyła informacje (kąt, odległość, id_object) do szkicu przetwarzania, aby wykreślić wyniki.

Krok 2: Jak skonfigurować trzy stacje czujników i obiekty?

Jak skonfigurować trzy stacje czujników i obiekty?
Jak skonfigurować trzy stacje czujników i obiekty?
Jak skonfigurować trzy stacje czujników i obiekty?
Jak skonfigurować trzy stacje czujników i obiekty?

Jedyną funkcją każdej stacji czujnikowej jest wykrywanie obiektów i wysyłanie listy zmierzonych odległości, kątów i identyfikatorów do stacji głównej.

Musisz więc zaktualizować maksymalną dozwoloną odległość wykrywania („valid_max_distance”) i minimalną („valid_min_distance”) (w centymetrach), aby poprawić wykrywanie i ograniczyć strefę wykrywania:

int valid_max_distance = 80;

int valid_min_distance = 1;

Węzeł id tych stacji czujników („this_node” w poniższym kodzie) to 1, 2 i 3, a węzeł id stacji głównej to 0.

const uint16_t this_node = 01; // Adres naszego węzła w formacie ósemkowym (Node01, Node02, Node03)

const uint16_t inny_węzeł = 00; //Adres węzła głównego (Node00) w formacie ósemkowym

Każda stacja czujnika omiata i kąt 100º ("max_angle" w kodzie poniżej)

#define min_angle 0

#define max_angle 100

Jak wyżej, jedyną funkcją obiektu jest wykrywanie obiektów i wysyłanie do stacji głównej listy odległości, kątów i id obiektu. Identyfikator jednego obiektu („this_node” w poniższym kodzie) musi być większy niż 3.

Każdy obiekt przesuwa się pod kątem 170º i jak wyżej, można zaktualizować maksymalną i minimalną odległość wykrywania.

const uint16_t this_node = 04; // Adres naszego węzła w formacie ósemkowym (Node04, Node05, …)

const uint16_t inny_węzeł = 00; // Adres węzła głównego (Node00) w formacie ósemkowym int valid_max_distance = 80; int valid_min_distance = 1; #define min_angle 0 #define max_angle 170

Krok 3: Jak skonfigurować stację główną?

Jak skonfigurować stację główną?
Jak skonfigurować stację główną?
Jak skonfigurować stację główną?
Jak skonfigurować stację główną?
Jak skonfigurować stację główną?
Jak skonfigurować stację główną?

Funkcją stacji głównej jest odbieranie transmisji ze stacji czujnikowych i obiektów oraz wysyłanie wyników za pomocą portu szeregowego do szkicu obróbki w celu ich wykreślenia. Ponadto synchronizuje wszystkie obiekty i trzy stacje czujników w taki sposób, że tylko jeden z nich mierzy za każdym razem, aby uniknąć zakłóceń.

Najpierw musisz zaktualizować odległość (w centymetrach) między czujnikiem 1 i 2 oraz odległość między 2 i 3.

stała odległość zmiennoprzecinkowa między 1 i 2 = 60,0;

stała odległość zmiennoprzecinkowa między 2 i 3 = 70,0;

Szkic oblicza położenie obiektów w następujący sposób:

  • Dla wszystkich transmisji obiektów (id_node większe niż 3) szukaj tej samej odległości w każdej transmisji czujników ultradźwiękowych (id_node 1, 2 lub 3).
  • Wszystkie te punkty tworzą listę „kandydatów” (odległość, kąt, id_node) na pozycję jednego obiektu („process_pointobject_with_pointssensor” w szkicu).
  • Dla każdego „kandydata” z poprzedniej listy funkcja „candidate_selected_between_sensor2and3” oblicza z punktu widzenia czujnika ultradźwiękowego 2 i 3, który z nich spełnia następujące warunki trygonometrii (patrz rysunki 2 i 3)

float distancefroms2 = sin(radiany(kąt)) * odległość;

float distancefroms3 = cos(radiany(angle_candidate)) * distance_candidate; // Warunek trygonometrii 1 abs(odległośćod2 + odległośćod3 - odległośćmiędzy2a3) <= float(max_diference_distance)

Jak wyżej, dla każdego „kandydata” z poprzedniej listy funkcja „candidate_selected_between_sensor1and2” oblicza z punktu widzenia czujnika ultradźwiękowego 1 i 2, który z nich pasuje do poniższej zależności trygonometrii (patrz rysunek 2 i 3)

zmiennoprzecinkowa odległośćod1 = sin(radiany(kąt)) * odległość;zmienna odległośćods2 = cos(radiany(kąt_kandydat)) * odległość_kandydat; // Warunek trygonometrii 2 abs(odległośćod1 + odległośćod2 - odległośćmiędzy1a2) <= float(max_diference_distance)

Tylko kandydaci (odległość, kąt, id_node), które pasują do warunków trygonometrii 1 i 2, są zidentyfikowanymi obiektami wykrytymi przez stacje czujnikowe 1, 2 i 3

Następnie wyniki są wysyłane przez stację główną do szkicu obróbki w celu ich wykreślenia.

Krok 4: Lista materiałów

Image
Image

Lista materiałów potrzebnych na jedną stację czujnikową lub jeden obiekt jest następująca:

  • Tablica nano
  • Czujnik ultradźwiękowy
  • Mikrosilnik serwo
  • Moduł bezprzewodowy NRF24L01
  • Adapter NRF24L01

a lista materiałów dla stacji głównej jest następująca:

  • Tablica nano
  • Moduł bezprzewodowy NRF24L01
  • Adapter NRF24L01

Zalecana: