Spisu treści:

Ultradźwiękowy robot unikający za pomocą Arduino: 7 kroków
Ultradźwiękowy robot unikający za pomocą Arduino: 7 kroków

Wideo: Ultradźwiękowy robot unikający za pomocą Arduino: 7 kroków

Wideo: Ultradźwiękowy robot unikający za pomocą Arduino: 7 kroków
Wideo: Arduino Tutorial 27 - Measuring Distanc with Ultrasonic Sensor | SunFounder's ESP32 IoT Learnig kit 2024, Listopad
Anonim
Image
Image
Ultradźwiękowy robot unikający za pomocą Arduino
Ultradźwiękowy robot unikający za pomocą Arduino

W tym samouczku pokażę Ci, jak zrobić własnego robota omijającego przeszkody! Wykorzystamy płytkę Arduino UNO oraz czujnik ultradźwiękowy. Jeśli robot wykryje przed sobą obiekt, za pomocą małego serwomotoru skanuje obszar z lewej i prawej strony, aby znaleźć najlepszy sposób skrętu. Posiada również diodę powiadomień, brzęczyk odtwarzający dźwięk po wykryciu obiektu oraz przycisk zmiany funkcji robota (zatrzymany/przemieszczony do przodu).

Bardzo łatwo to zrobić!

Krok 1: Rzeczy do zrobienia

Rzeczy potrzebne do zrobienia!
Rzeczy potrzebne do zrobienia!
Rzeczy potrzebne do zrobienia!
Rzeczy potrzebne do zrobienia!
Rzeczy potrzebne do zrobienia!
Rzeczy potrzebne do zrobienia!
Rzeczy potrzebne do zrobienia!
Rzeczy potrzebne do zrobienia!

Do tego projektu będziesz potrzebować:

  1. Arduino UNO (kup na Gearbest.com)
  2. Mini płytka do krojenia chleba (kup na Gearbest.com)
  3. Moduł sterownika silnika L298 (kup go z gearbest.com)
  4. 2x silniki prądu stałego z kołami Czujnik ultradźwiękowy HC-SR04 (kup na gearbest.com)
  5. Mikrosilnik serwo (kup go na gearbest.com)
  6. Przycisk Czerwona dioda LED220 Ohm uchwyt baterii 9V (z gniazdem zasilania lub bez)
  7. 8 przekładek (męsko-damskich),
  8. 8 nakrętek i 8 śrub, będziesz potrzebować również jednej dużej (metalowej)

spinacz do papieru i koralik do wykonania tylnego koła podporowego.

Do podstawy robota użyłem Acryllic Chasis z Aliexpress. Możesz także użyć kawałka drewna lub metalu (lub dwóch płyt elektrycznych).

Koszt całego projektu to około 20$

Narzędzia: Wiertarka do kleju z załogą super kleju, pistolet do kleju na gorąco (opcjonalnie) Moc:

Do zasilania naszego robota użyjemy baterii 9V, ponieważ jest mały i tani, ale nie ma dużej mocy i wyczerpie się po około godzinie. Zastanów się, czy chcesz użyć akumulatora (min. 6V, maks. 7V), który będzie mocniejszy, ale będzie też droższy i większy niż bateria 9V. SubskrybujNasz kanał YouTube Kliknij tutaj

Krok 2: Zrozumienie pojęć

Zrozumienie pojęć
Zrozumienie pojęć
Zrozumienie pojęć
Zrozumienie pojęć
Zrozumienie pojęć
Zrozumienie pojęć

Celem jest uświadomienie robotowi przeszkód przed nim, aby mógł zmieniać kierunek i ich unikać. W poprzednim artykule wykonaliśmy ruch robota – teraz damy mu trochę autonomii.

Czujnik ultradźwiękowy

HC-SR04 to obwód zdolny do pomiaru odległości do obiektów do 4 metrów za pomocą fal ultradźwiękowych. Wysyła ping (jak łódź podwodna) i mierzy czas (w mikrosekundach) między wysłaniem a otrzymaniem czegokolwiek z powrotem. Ten czas jest następnie dzielony przez 2, gdy fala przemieszcza się tam iz powrotem. A następnie podziel przez 29, aby otrzymać odległość w centymetrach (lub 74 dla cali), ponieważ dźwięk przemieszcza się 29,4 µs na centymetr (340 m/s). Czujnik jest bardzo dokładny z tolerancją ~3 mm i łatwy do zintegrowania z Arduino.

Połączenie czujnika ultradźwiękowego z mikrokontrolerem AVR

Każdy autonomiczny robot powinien być wyposażony w omijanie przeszkód oraz zamontowany czujnik pomiaru odległości. Para nadajników IR lub czujnik w skali szarości może z łatwością pracować w celu wykrywania przeszkód w zakresie 1cm-10cm. Dalmierze IR (na przykład te firmy Sharp) mogą mierzyć odległość do najbliższej przeszkody z zasięgiem do 100cm. Jednak na czujniki podczerwieni wpływa światło słoneczne i inne źródła światła. Dalmierze IR mają mniejszy zasięg, a także są drogie jak na to, co robią. Czujniki ultradźwiękowe (znane również jako ultradźwiękowe czujniki zbliżeniowe lub sonar dla geeków) wykonują oba te zadania przy rozsądnych kosztach i wyjątkowej dokładności. Zasięg wynosi od 3 cm do 350 cm z dokładnością ~3 mm. Podłączając jeden z tych czujników ultradźwiękowych do naszego robota, może on działać zarówno jako omijacz przeszkód, jak i czujnik pomiaru odległości.

Dźwięk „ultradźwiękowy” odnosi się do wszystkiego powyżej częstotliwości dźwięku słyszalnego, a nominalnie obejmuje wszystko powyżej 20 000 Hz lub 20 kHz! Niedrogie czujniki ultradźwiękowe używane w robotyce na ogół działają w zakresie od 40 kHz do 250 kHz, podczas gdy te stosowane w sprzęcie medycznym sięgają do 10 MHz.

Krok 3: Potrzebne narzędzia

Potrzebne narzędzia
Potrzebne narzędzia
Potrzebne narzędzia
Potrzebne narzędzia
Potrzebne narzędzia
Potrzebne narzędzia
Potrzebne narzędzia
Potrzebne narzędzia
  1. Multimetr
  2. Deska do krojenia chleba
  3. Szczypce półokrągłe
  4. Narzędzie do ściągania izolacji
  5. Przecinak do drutu
  6. Pistolet na klej

Multimetr Multimetr jest w rzeczywistości prostym urządzeniem używanym głównie do pomiaru napięcia i rezystancji oraz do określenia, czy obwód jest zamknięty. Podobnie jak w przypadku debugowania kodu komputerowego, multimetr pomaga „debugować” obwody elektroniczne.

Materiały budowlane

Łatwo dostępny zapas cienkiego drewna i/lub pleksiglasu do wykonania mechanicznej ramy jest bardzo przydatny. Metale takie jak aluminium i stal są często ograniczone do osób mających dostęp do warsztatu mechanicznego, chociaż cienkie aluminium można ciąć nożycami i zginać ręcznie. Ramy mechaniczne można nawet zbudować z przedmiotów gospodarstwa domowego, takich jak plastikowe pojemniki.

Chociaż możliwe są inne materiały, takie jak tworzywa sztuczne (oprócz pleksi) lub bardziej egzotyczne materiały, takie jak włókno szklane i włókno węglowe, nie będą one brane pod uwagę w tym przewodniku. Kilku producentów zauważyło, że większości hobbystów nie jest łatwo produkować własne części mechaniczne i stworzyli modułowe części mechaniczne. Liderem w tym jest Lynxmotion, który oferuje szeroką gamę projektów robotów, a także części potrzebne do tworzenia własnych niestandardowych robotów.

Narzędzia ręczne

Niezbędne są śrubokręty i szczypce różnych typów i rozmiarów (w tym jubilerski zestaw narzędzi: małe śrubokręty powszechnie dostępne w sklepach dolarowych). Ważna jest również wiertarka (najlepiej wiertarka do prostych otworów). Ważnym atutem jest również ręczna piła do cięcia materiałów budowlanych (lub frezarka). Jeśli pozwala na to budżet, mała piła taśmowa stołowa (zakres 200 USD) jest zdecydowanie narzędziem do rozważenia.

Płytka chlebowa bez lutowania

Płytka stykowa bez lutowania pozwala zoptymalizować układ i z łatwością łączyć komponenty. Wraz z płytką stykową bez lutowania należy zakupić wstępnie uformowany zestaw przewodów połączeniowych, który składa się z wstępnie przyciętych i wygiętych przewodów przeznaczonych do użycia z płytką stykową bez lutowania. To sprawia, że połączenia są bardzo łatwe.

Mały zestaw śrubokrętów

Te małe śrubokręty są niezbędne podczas pracy z elektroniką. Nie zmuszaj ich jednak za bardzo – ich rozmiar sprawia, że są bardziej kruche.

Zwykły zestaw śrubokrętów

Wszystkie warsztaty potrzebują multinarzędzia lub zestawu narzędzi, który zawiera płaskie / krzyżakowe i inne głowice śrubokrętów.

Szczypce półokrągłe

Zestaw szczypiec igłowych jest niezwykle przydatny podczas pracy z małymi komponentami i częściami oraz jest bardzo tanim dodatkiem do Twojej skrzynki narzędziowej. Różnią się one od zwykłych szczypiec, ponieważ dochodzą do punktu, który może docierać do małych obszarów.

Ściągacze/przecinaki do przewodów

Planujesz ciąć jakiekolwiek przewody, ściągacz izolacji zaoszczędzi Ci sporo czasu i wysiłku. Narzędzie do ściągania izolacji, jeśli jest używane prawidłowo, usunie jedynie izolację kabla i nie spowoduje żadnych załamań ani uszkodzeń przewodów. Inną alternatywą dla ściągacza izolacji są nożyczki, choć efekt końcowy może być niechlujny. Nożyczki, linijka, długopis, ołówek, nóż Exacto (lub inne ręczne narzędzie do cięcia) To niezbędne elementy w każdym biurze.

Krok 4: Zasady kodowania AVR

Zasady kodowania AVR
Zasady kodowania AVR

Obliczanie prędkości dźwięku względem czujników ultradźwiękowych

Trochę matematyki, ale nie bój się. To prostsze niż myślisz.

Prędkość dźwięku w suchym powietrzu w temperaturze pokojowej (~20°C) = 343 metry/sekundę

Aby fala dźwiękowa uderzyła i przemieściła się w obie strony do pobliskiego obiektu wynosi = 343/2 = 171,5 m/ponieważ maksymalny zasięg taniego czujnika ultradźwiękowego nie przekracza 5 metrów (w obie strony), bardziej sensowne byłoby zmień jednostki na centymetry i mikrosekundy.

1 metr = 100 centymetrów1 sekunda = 10^6 mikrosekund = (s / 171,5) x (m / 100 cm) x ((1x10^6)/s) = (1/171,5) x (1/100) x (1000000/ 1) = 58,30903790087464 us/cm = 58,31 us/cm (zaokrąglenie do dwóch cyfr w celu ułatwienia obliczeń)Dlatego czas potrzebny na dotarcie impulsu do obiektu i odbicie się o 1 centymetr wynosi 58,31 mikrosekundy.

małe tło na temat cykli zegara AVR

Zrozumienie cykli zegara AVR zajmuje zupełnie inny rozdział, ale pokrótce zrozumiemy, jak to działa, aby ułatwić nasze obliczenia

W naszym przykładzie użyjemy płytki AVR Draco, która posiada 8-bitowy mikrokontroler AVR – Atmega328P. Aby uprościć sprawę, nie będziemy modyfikować ustawień mikrokontrolera. Żadne bezpieczniki nie zostały dotknięte; Brak dołączonego zewnętrznego kryształu; Brak bólu głowy. W ustawieniach fabrycznych działa na wewnętrznym oscylatorze 8 MHz z preskalerem /8; Jeśli nie rozumiesz tego wszystkiego, oznacza to po prostu, że mikrokontroler działa na wewnętrznym oscylatorze RC o częstotliwości 1 MHz, a każdy cykl zegara trwa 1 mikrosekundę.

1 2 1MHz = 1000000 cykli na sekundę Zatem 1s/1000000 = 1/1000000 = 1us

Zegary AVR i konwersja odległości

Jesteśmy prawie na miejscu! Kiedy już wiemy, jak przekonwertować cykle zegara AVR na odległość przebytą przez fale dźwiękowe, implementacja logiki w programie jest łatwa.

Wiemy, że prędkość dźwięku ultradźwiękowego w idealnym środowisku wynosi: 58,31 us/cm

Wiemy, że rozdzielczość mikrokontrolera AVR to 1us/cykl (CLK)

Dlatego odległość przebyta przez dźwięk na cykl zegara (CLK) wynosi:

1 2 3 = (58,31 us/cm) x (1us/clk) = 58,31 cykli zegarowych/cm lub = 1/58,31 cm/clk

Jeśli znana jest liczba cykli zegara potrzebnych do przemieszczenia się dźwięku i odbicia, możemy łatwo obliczyć odległość. Na przykład, jeśli czujnik potrzebuje 1000 cykli zegara na podróż i odbicie, odległość od czujnika do najbliższego obiektu wynosi = 1000/58,31 = 17,15 cm (w przybliżeniu)

Czy teraz wszystko ma sens? Nie? Przeczytaj to ponownie

Jeśli masz jasność co do całej powyższej logiki, zaimplementujemy ją w rzeczywistym scenariuszu, podłączając niedrogi czujnik ultradźwiękowy HC-SR04 do naszej płyty AVR Arduino.

Krok 5: Połączenia sprzętowe:

Połączenia sprzętowe
Połączenia sprzętowe
Połączenia sprzętowe
Połączenia sprzętowe
Połączenia sprzętowe
Połączenia sprzętowe
Połączenia sprzętowe
Połączenia sprzętowe

Arduino Board ułatwia podłączenie dowolnych zewnętrznych czujników, a także podgląd wyników na wyświetlaczu LCD. Do ultradźwiękowego wykrywania zasięgu używamy niedrogiego modułu HC-SR04. Moduł posiada 4 piny, które można podłączyć do płytki mikrokontrolera: VCC, TRIG, ECHO i GND.

Podłącz pin VCC do 5 V i pin GND do masy na płycie Arduino.

Pin TRIG i pin ECHO można podłączyć do dowolnych dostępnych pinów na płytce. Wysłanie minimum 10us „wysokiego” sygnału do pinu wyzwalającego wysyła osiem fal dźwiękowych 40 kHz i podnosi pin echo. Jeśli dźwięk odbije się od pobliskiego obiektu i powróci, zostanie przechwycony przez przetwornik odbiorczy, a pin echa zostanie pociągnięty do niskiego poziomu.

Inne warianty modułów czujników ultradźwiękowych są również dostępne z zaledwie 3 pinami. Zasada działania jest nadal taka sama, ale funkcjonalność pinów wyzwalacza i echa jest połączona w jeden pin.

Po podłączeniu piny wyzwalacza i echa można skonfigurować za pomocą oprogramowania. Aby uprościć ten przykład, w tym przykładzie nie będziemy używać żadnych pinów przerwań (ani pinów Input Capture). Nieużywanie wyznaczonych pinów przerwań daje nam również swobodę podłączenia modułu do dowolnych dostępnych pinów na płytce.

Krok 6: Kod

Kod Poniższy kod zawiera tylko „ultradźwiękowe” rozszerzenie sterowania silnikiem prądu stałego za pomocą mostka H z poprzedniego artykułu. Gdy robot wykryje przed sobą przeszkodę, odwraca się (losowy stopień) i kontynuuje ruch do przodu. Funkcjonalność tę można łatwo rozszerzyć, aby jednocześnie skręcać i wykrywać przeszkody – aby robot nie obracał się losowo, ale zaczynał poruszać się do przodu dopiero wtedy, gdy nie zostanie wykryty żaden obiekt.

Aby uzyskać wyjaśnienie kodu, zapoznaj się z filmami wideo na YouTube wymienionymi na kanale.

Krok 7: Wideo

Obejrzyj film przedstawiający cały proces.

Zalecana: