Spisu treści:

Projekt 3: SonarDuino: 9 kroków
Projekt 3: SonarDuino: 9 kroków

Wideo: Projekt 3: SonarDuino: 9 kroków

Wideo: Projekt 3: SonarDuino: 9 kroków
Wideo: Lesson 01 Arduino Boards | Robojax Arduino Step By Step Course 2024, Wrzesień
Anonim
Image
Image

Drogi kolego hobbyście, W tym projekcie zbadamy możliwość posiadania systemu radarowego 360 stopni do wykrywania obiektów. Posiadanie tego modułu osobno pozwoli Twojemu robotowi lokomocyjnemu wykrywać granice jego otoczenia. Może również służyć jako narzędzie nawigacyjne po zmroku, ale tylko wtedy, gdy chodzisz wystarczająco wolno;p

Krok 1: Czego będziesz potrzebować

Przygotuj wsparcie czujnika ultradźwiękowego
Przygotuj wsparcie czujnika ultradźwiękowego

Aby wykonać tę kompilację, musisz kupić następujące elementy:

Arduino Nano:

Płytki prototypowe: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item2cb8a70ef4:g:cQ4AAOSwN ~Zbl232:rk:13:pf:0

Serwosilniki:

Czujniki ultradźwiękowe: https://www.ebay.com/itm/5PCS-Ultrasonic-Sensor-Module-HC-SR04-Distance-Measuring-Sensor-for-arduino-SR04/170897438205?epid=18020663283&hash=item27ca47f5fd:g:w ~IAAOSw--xbD5Fp:rk:2:pf:0

Krok 2: Dokumentacja

Jak niektórzy z was mogą już to wiedzieć, ten projekt jest inspirowany innym projektem open-source o nazwie „Arduino Radar Project” stworzonym przez Dejana z „How to Mechatronics” @ poniższy link: https://howtomechatronics.com/projects/arduino -projekt-radarowy/

Inną kwestią wymagającą dokumentacji jest pobranie następujących dwóch bibliotek do środowiska programistycznego:

Adafruit-GFX-Library:

Adafruit_SSD1306:

Biorąc to pod uwagę, aby naprawdę zrozumieć kod C, będziesz potrzebować dokumentacji obu powyższych bibliotek. Poza tym funkcje, których użyłem w moim kodzie, mają nazwy, które są charakterystyczne dla tego, co robią.

Krok 3: Przygotuj wspornik czujnika ultradźwiękowego

Przygotuj wsparcie czujnika ultradźwiękowego
Przygotuj wsparcie czujnika ultradźwiękowego
Przygotuj wsparcie czujnika ultradźwiękowego
Przygotuj wsparcie czujnika ultradźwiękowego
Przygotuj wsparcie czujnika ultradźwiękowego
Przygotuj wsparcie czujnika ultradźwiękowego

Weź dowolny kawałek tektury i przytnij go zgodnie z wymiarami kabli połączeniowych dołączonych do czujnika, jak pokazano na pierwszym rysunku. Następnie złóż ten ostatni i przyklej go do wspornika serwomotoru. Gdy to zrobisz, sklej dwa czujniki ultradźwiękowe zgodnie z ostatnim zdjęciem. Zwróć uwagę, że główka czujników powinna być przylutowana w taki sposób, aby kable wychodziły na zewnątrz przed czujnikiem. Pozwoli to przewodom czujnika nie kolidować ze sobą podczas obrotu o 360 stopni.

Krok 4: Zamontuj wszystko na płytce prototypowej

Zamontuj wszystko na tablicy prototypowej
Zamontuj wszystko na tablicy prototypowej
Zamontuj wszystko na tablicy prototypowej
Zamontuj wszystko na tablicy prototypowej
Zamontuj wszystko na tablicy prototypowej
Zamontuj wszystko na tablicy prototypowej

W tym kroku zaczniesz od zamontowania przygotowanej w poprzednim kroku głowicy do odpowiedniego serwomotoru. Po dokładnym przyzwyczajeniu serwonapędu zmontujesz wszystko razem na płytce prototypowej. Zaczniesz od przylutowania Arduino Nano, a następnie przyklejenia serwa tuż obok niego. Na koniec przylutujesz mały wyświetlacz OLED na drugiej krawędzi płytki.

Krok 5: Dokonywanie ostatecznych połączeń

Dokonywanie ostatecznych połączeń
Dokonywanie ostatecznych połączeń
Dokonywanie ostatecznych połączeń
Dokonywanie ostatecznych połączeń
Dokonywanie ostatecznych połączeń
Dokonywanie ostatecznych połączeń

Ten krok zakończy sprzętową stronę tego projektu. Będziesz musiał postępować zgodnie z dostarczonymi schematami, aby ustanowić wszystkie wymagane połączenia.

Krok 6: Uruchamianie programu

Uruchamianie programu
Uruchamianie programu

Istnieją dwa kody, które musisz uruchomić

Arduino (C):

Przetwarzanie (java):

Podczas uruchamiania kodu będziesz miał do wyboru dwie opcje:

Opcja 1: Za pomocą wyświetlacza OLED należy w tym celu ustawić zmienną MODE w kodzie C na 0.

Opcja 2: Używając monitora, w tym celu należy ustawić zmienną MODE w kodzie C na 1. Ponadto należy pobrać i zainstalować środowisko programistyczne Processing oraz pobrać czcionkę radaru z tego linku: https:// github.com/lastralab/ArduinoRadar/blob/ma…

I dodaj ten plik do pliku kodu przetwarzania, aby kod Java rozpoznał czcionkę po wywołaniu.

Krok 7: Zrozumienie kodu C

Zrozumienie kodu C
Zrozumienie kodu C

Kod składa się głównie z dwóch pętli „for”. Jedno jest skorelowane z podaniem w przód, a drugie z podaniem w tył. Wewnątrz obu, główna funkcja draw_scanner(), która będzie rysować linie radaru na ekranie, jest wielokrotnie wywoływana. Po przetestowaniu wielu konfiguracji doszedłem do wniosku, że musimy nadpisać białe linie radarowe w czasie t tymi samymi czarnymi liniami radarowymi w czasie t+1, aby je usunąć. W przeciwnym razie migotanie wystąpi za każdym razem, gdy wyczyścisz wyświetlacz za pomocą funkcji „clearDisplay()” przed wypchnięciem nowej siatki pikseli. Ponieważ miałem do czynienia z 7 liniami – w celach projektowych – musiałem zapisywać i przekazywać 7-elementową tablicę całkowitą, w której każdy element oznacza promień pomiędzy środkiem radaru a wykrywanym obiektem, jeśli taki istnieje. Mając to na uwadze, reszta kodu powinna być prosta do zrozumienia.

Krok 8: Zrozumienie kodu Java

W Processing musiałem ominąć wywołanie funkcji dla serialEvent(), która działa tylko z portami szeregowymi o nazwie COM. Kiedy pracowałem na Macu, moje porty szeregowe otrzymały inną nazwę. Biorąc to pod uwagę, rozpakowałem tę funkcję do głównej funkcji w przetwarzaniu „draw()”. Jeśli chodzi o wszystko inne, zaktualizowałem aplikację tak, aby spełniała projekt pełnej rewolucji. Na koniec zaktualizowałem wszystkie narysowane kształty i teksty pod kątem szerokości ekranu, aby finalny produkt pasował do różnych rozdzielczości ekranu. Osobiście przetestowałem go zarówno dla rozdzielczości 1000X1000, jak i 500X500 i działał dobrze:).

Krok 9: Wniosek

Ta praca może zostać uaktualniona do posiadania 3 czujników ultradźwiękowych, z których każdy obejmuje kąt widzenia 120, lub nawet 4 czujniki (90 stopni * 4) -> szybsze 360 stopni. skanowanie.

Możesz także zwiększyć zasięg radaru z 40 cm do 60 cm, a nawet 80 cm. Osobiście przetestowałem funkcję pulseIn i wyregulowałem zmienną TIMEOUT w odniesieniu do 40 cm. Zmienna ta zależy od wielu czynników, w tym od długości wysyłanego impulsu i powierzchni obiektu, na którym impuls zostaje odbity.

Wreszcie, jak wspomniano wcześniej, następnym krokiem jest połączenie radaru Duino z robotem lokomocyjnym, aby zeskanować otaczający obwód.

Zalecana: