Spisu treści:
- Krok 1: Rzeczy do zrobienia
- Krok 2: Zrozumienie pojęć
- Krok 3: Potrzebne narzędzia
- Krok 4: Zasady kodowania AVR
- Krok 5: Połączenia sprzętowe:
- Krok 6: Kod
- Krok 7: Wideo
Wideo: Ultradźwiękowy robot unikający za pomocą Arduino: 7 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
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
Do tego projektu będziesz potrzebować:
- Arduino UNO (kup na Gearbest.com)
- Mini płytka do krojenia chleba (kup na Gearbest.com)
- Moduł sterownika silnika L298 (kup go z gearbest.com)
- 2x silniki prądu stałego z kołami Czujnik ultradźwiękowy HC-SR04 (kup na gearbest.com)
- Mikrosilnik serwo (kup go na gearbest.com)
- Przycisk Czerwona dioda LED220 Ohm uchwyt baterii 9V (z gniazdem zasilania lub bez)
- 8 przekładek (męsko-damskich),
- 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ęć
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
- Multimetr
- Deska do krojenia chleba
- Szczypce półokrągłe
- Narzędzie do ściągania izolacji
- Przecinak do drutu
- 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
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:
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:
Robot unikający przeszkód za pomocą czujnika ultradźwiękowego (Proteus): 12 kroków
Robot omijający przeszkody korzystający z czujnika ultradźwiękowego (Proteus): Zazwyczaj wszędzie spotykamy robota omijającego przeszkody. Symulacja sprzętowa tego robota jest częścią rywalizacji na wielu uczelniach i na wielu imprezach. Ale symulacja programowa robota przeszkodowego jest rzadka. Nawet jeśli gdzieś to znajdziemy
Robot unikający przeszkód za pomocą Arduino Nano: 5 kroków
Robot unikający przeszkód za pomocą Arduino Nano: W tej instrukcji opiszę, jak można zrobić przeszkodę unikającą robota za pomocą Arduino
Robot unikający przeszkód za pomocą czujników ultradźwiękowych: 9 kroków (ze zdjęciami)
Robot unikający przeszkód za pomocą czujników ultradźwiękowych: jest to prosty projekt dotyczący robota unikającego przeszkód za pomocą czujników ultradźwiękowych (HC SR 04) i płytki Arduino Uno. Robot porusza się, unikając przeszkód i wybierając najlepszy sposób podążania za czujnikami. I proszę zauważyć, że nie jest to projekt samouczka, udostępnij
Robot unikający przeszkód za pomocą Arduino Uno: 5 kroków (ze zdjęciami)
Robot unikający przeszkód za pomocą Arduino Uno: Cześć, to bardzo prosty i działający projekt zwany robotem unikającym przeszkód używającym Arduino, a specjalnością tego projektu jest wydawanie poleceń, w jaki sposób porusza się na smartfonie przez bluetooth
Robot unikający przeszkód za pomocą EBot8: 4 kroki (ze zdjęciami)
Unikanie przeszkód robota za pomocą EBot8: W tym samouczku dowiesz się, jak zbudować samochód robota, który będzie unikał przeszkód na swojej drodze. Koncepcja może być używana i stosowana na różne sposoby w zależności od warunków.Wymagane materiały:1.Koła x4 2.Podwozie (można kupić