Jak zrobić przeszkodę unikając robota za pomocą Arduino?

Świat szybko się rozwija, a wraz z nim technologia w dziedzinie robotyki. Zastosowania robotyki można zobaczyć na całym świecie. Koncepcja robotów mobilnych lub autonomicznych, które poruszają się bez żadnej pomocy z zewnątrz, jest najbardziej wciągającą dziedziną badań. Istnieje wiele rodzajów robotów mobilnych, na przykład tłumacze Self Localization and Mapping (SLAM), śledzenie linii, boty sumo itp. Jednym z nich jest robot omijający przeszkodę. Używa techniki do zmiany ścieżki, jeśli wykryje jakąkolwiek przeszkodę na swojej drodze.



(Zdjęcie dzięki uprzejmości: Podsumowanie obwodu)

W tym projekcie zaprojektowano robota omijającego przeszkody opartego na Arduino, który będzie używał czujnika ultradźwiękowego do wykrywania wszystkich przeszkód na swojej drodze.



Jak unikać przeszkód za pomocą czujnika ultradźwiękowego?

Znając streszczenie naszego projektu, przejdźmy o krok do przodu i zbierzmy trochę informacji, aby rozpocząć projekt.



Krok 1: Zbieranie składników

Najlepszym podejściem do rozpoczęcia każdego projektu jest sporządzenie listy kompletnych komponentów na początku i przeprowadzenie krótkiej analizy każdego z nich. Pomaga nam to uniknąć niedogodności w trakcie realizacji projektu. Pełna lista wszystkich komponentów użytych w tym projekcie znajduje się poniżej.



  • Podwozie koła samochodu
  • Bateria

Krok 2: Badanie komponentów

Teraz, gdy mamy pełną listę wszystkich komponentów, przejdźmy o jeden krok do przodu i przeprowadźmy krótkie badanie działania każdego komponentu.

Arduino nano to przyjazna dla płytki prototypowej płytka mikrokontrolera, która służy do sterowania lub wykonywania różnych zadań w obwodzie. Spalamy Kod C. na Arduino Nano, aby poinformować płytkę mikrokontrolera, jak i jakie operacje wykonać. Arduino Nano ma dokładnie taką samą funkcjonalność jak Arduino Uno, ale w dość niewielkich rozmiarach. Mikrokontroler na płycie Arduino Nano to ATmega328p.

Arduino Nano



L298N to wysokoprądowy i wysokonapięciowy układ scalony. Jest to podwójny pełny mostek zaprojektowany do akceptowania standardowej logiki TTL. Posiada dwa wejścia umożliwiające niezależne działanie urządzenia. Jednocześnie można podłączyć i obsługiwać dwa silniki. Prędkość silników jest zmieniana za pomocą pinów PWM. Modulacja szerokości impulsu (PWM) to technika, w której można kontrolować przepływ napięcia w dowolnym elemencie elektronicznym. Moduł ten posiada mostek H, który jest odpowiedzialny za sterowanie kierunkiem obrotów silników poprzez odwracanie kierunku prądu. Styk aktywacji A i styk aktywacji B służą do zmiany prędkości obu silników. Ten moduł może pracować w zakresie od 5 do 35 V i prądem szczytowym do 2 A. Wejściowy pin1 i wejściowy pin2 i dla pierwszego silnika oraz wejściowy pin3 i wejściowy pin4 są przeznaczone dla drugiego silnika.

Sterownik silnika L298N

Płytka HC-SR04 to czujnik ultradźwiękowy służący do określania odległości między dwoma obiektami. Składa się z nadajnika i odbiornika. Nadajnik przekształca sygnał elektryczny w sygnał ultradźwiękowy, a odbiornik przetwarza sygnał ultradźwiękowy z powrotem na sygnał elektryczny. Kiedy nadajnik wysyła falę ultradźwiękową, odbija się ona po zderzeniu z określonym obiektem. Odległość jest obliczana na podstawie czasu potrzebnego na przejście sygnału ultradźwiękowego z nadajnika i powrotu do odbiornika.

Czujnik ultradźwiękowy

Krok 3: Montaż komponentów

Teraz, gdy już znamy działanie większości używanych komponentów, zacznijmy składać wszystkie komponenty i stworzyć robota omijającego przeszkodę.

  1. Weź podwozie samochodu i przyklej na nim płytkę prototypową. Zamontuj czujnik ultradźwiękowy z przodu podwozi i nasadkę akumulatora za podwoziami.
  2. Zamocuj płytkę Arduino Nano na płytce stykowej i przymocuj sterownik silnika tuż za płytką stykową, na podwoziach. Podłącz piny Enable w silnikach do Pin6 i Pin9 Arduino nano. Piny In1, In2, In3 i In4 modułu sterownika silnika są połączone odpowiednio z pin2, pin3, pin4 i pin5 Arduino nano.
  3. Styk wyzwalania i echa czujnika ultradźwiękowego jest podłączony odpowiednio do pinów 11 i in10 Arduino nano. Vcc i pin uziemienia czujnika ultradźwiękowego są podłączone do 5 V i masy Arduino Nano.
  4. Moduł sterownika silnika jest zasilany z akumulatora. Płytka Arduino Nano pobiera zasilanie z portu 5 V modułu sterownika silnika, a czujnik ultradźwiękowy pobiera zasilanie z płyty Arduino nano. waga i energia akumulatorów mogą stać się decydującym czynnikiem ich wydajności.
  5. Upewnij się, że połączenia są takie same, jak pokazano poniżej na schemacie połączeń.

    Schemat obwodu

Krok 4: Pierwsze kroki z Arduino

Jeśli nie jesteś zaznajomiony z Arduino IDE, nie martw się, ponieważ poniżej wyjaśniono procedurę krok po kroku konfiguracji i używania Arduino IDE z płytą mikrokontrolera.

  1. Pobierz najnowszą wersję Arduino IDE ze strony Arduino.
  2. Podłącz płytkę Arduino Nano do laptopa i otwórz panel sterowania. w panelu sterowania kliknij Sprzęt i dźwięk . Teraz kliknij Urządzenia i drukarki. Tutaj znajdź port, do którego jest podłączona płyta mikrokontrolera. W moim przypadku tak COM14 ale jest inaczej na różnych komputerach.

    Znajdowanie portu

  3. Kliknij menu Narzędzie. i ustaw tablicę na Arduino Nano z menu rozwijanego.

    Tablica nastawcza

  4. W tym samym menu narzędzi ustaw port na numer portu, który zaobserwowałeś wcześniej w Urządzenia i drukarki .

    Ustawianie portu

  5. W tym samym menu Narzędzia ustaw procesor na ATmega328P (stary program ładujący).

    Edytor

  6. Pobierz załączony poniżej kod i wklej go do swojego Arduino IDE. Kliknij na Przekazać plik przycisk, aby wypalić kod na płycie mikrokontrolera.

    Przekazać plik

Aby pobrać kod, Kliknij tutaj.

Krok 5: Zrozumienie Kodeksu

Kod jest dobrze skomentowany i nie wymaga objaśnień. Ale nadal jest to wyjaśnione poniżej

1. Na początku kodu inicjalizowane są wszystkie piny płyty Arduino Nano, które są podłączone do czujnika ultradźwiękowego i modułu sterownika silnika. Pin6 i Pin9 to piny PWM, które mogą zmieniać przepływ napięcia, aby zmieniać prędkość robota. Dwie zmienne, Trwanie, i dystans są inicjalizowane w celu przechowywania danych, które zostaną później wykorzystane do obliczenia odległości czujnika ultradźwiękowego od przeszkody.

int enable1pin = 6; // Kołki do pierwszego silnika int motor1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // Kołki do drugiego silnika int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Wyzwalacz sondy ultradźwiękowej const int echoPin = 10; // Echo Pin Of Ultradźwiękowy Sesnor długi czas trwania; // zmienne, aby obliczyć odległość zmienną odległość;

2. void setup () jest funkcją używaną do ustawiania wszystkich używanych pinów jako WEJŚCIE i WYNIK. Szybkość transmisji jest definiowana w tej funkcji. Szybkość transmisji to szybkość komunikacji, z jaką płytka mikrokontrolera komunikuje się ze zintegrowanymi z nią czujnikami.

void setup () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (enable1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (motor1pin1, WYJŚCIE); pinMode (motor1pin2, WYJŚCIE); pinMode (motor2pin1, WYJŚCIE); pinMode (motor2pin2, WYJŚCIE); }

3. void loop () to funkcja, która działa wielokrotnie w jednym cyklu. W tej funkcji informujemy płytkę mikrokontrolera, jak i jakie operacje wykonać. Tutaj, po pierwsze, pin wyzwalający jest ustawiony na wysyłanie sygnału, który zostanie wykryty przez pin echa. Następnie obliczany jest czas potrzebny na przejście sygnału ultradźwiękowego do iz powrotem do czujnika i zapisywany w zmiennej Trwanie. Następnie ten czas jest używany w formule do obliczenia odległości przeszkody i czujnika ultradźwiękowego. Następnie stosuje się warunek, że jeśli odległość jest większa niż 5ocm, robot będzie poruszał się do przodu w linii prostej, a jeśli odległość jest mniejsza niż 50 cm, robot wykona ostry skręt w prawo.

void loop () {digitalWrite (trigPin, LOW); // Wysyłanie i wykrywanie opóźnienia sygnału ultradźwiękowegoMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duration = pulseIn (echoPin, HIGH); // Obliczanie czasu potrzebnego fali ultradźwiękowej do odbicia odległości wstecznej = 0,034 * (czas trwania / 2); // Obliczanie odległości między tobą robbotem a przeszkodą. if (odległość> 50) // Przesuń do przodu, jeśli odległość jest większa niż 50 cm {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, HIGH); digitalWrite (motor2pin2, LOW); } else if (odległość<50) // Sharp Right Turn if the distance is less than 50cm { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); }

Aplikacje

Oto procedura tworzenia robota omijającego przeszkodę Tę technologię omijania przeszkód można wykorzystać również w innych zastosowaniach. Oto niektóre z tych aplikacji.

  1. System namierzający.
  2. Cele pomiaru odległości.
  3. Może to być stosowane w automatycznych robotach odkurzających.
  4. Może to być używane w kijach dla niewidomych.