Spisu treści:

Begging Robot ze śledzeniem twarzy i sterowaniem przez kontroler Xbox - Arduino: 9 kroków (ze zdjęciami)
Begging Robot ze śledzeniem twarzy i sterowaniem przez kontroler Xbox - Arduino: 9 kroków (ze zdjęciami)

Wideo: Begging Robot ze śledzeniem twarzy i sterowaniem przez kontroler Xbox - Arduino: 9 kroków (ze zdjęciami)

Wideo: Begging Robot ze śledzeniem twarzy i sterowaniem przez kontroler Xbox - Arduino: 9 kroków (ze zdjęciami)
Wideo: Gry na Sony Playstation Część III - Gralogi Podcast #006 (polskie napisy / english subtitles) 2024, Lipiec
Anonim
Image
Image
Instalacja i konfiguracja OpenCV i C++
Instalacja i konfiguracja OpenCV i C++

Zrobimy robota żebrzącego. Ten robot będzie próbował drażnić lub zwracać uwagę przechodzących ludzi. Wykryje ich twarze i spróbuje wystrzelić w nie laserami. Jeśli dasz robotowi monetę, zaśpiewa piosenkę i zatańczy. Robot będzie potrzebował arduino, obrazu na żywo z kamery i komputera do uruchomienia openCV. Robot będzie również mógł być sterowany za pomocą kontrolera xBox, jeśli zostanie podłączony do komputera.

Krok 1: Materiały

Sprzęt elektroniczny

  • Arduino NANO lub UNO
  • Kamera USB 2.0
  • Kable rozruchowe (męskie i żeńskie)
  • 2 x serwo - ogólne (rozmiar sub-mikro)
  • 2 x LED - KATODA RGB 5mm
  • Lasery 2x5mW
  • 1 x czerwona dioda LED 5mm
  • 1 x deska do krojenia chleba
  • Rezystor 4x220Ω
  • Rezystor 1x1KΩ
  • 1 x płyta prototypowa
  • 1 x czujnik sonaru 4 piny
  • Kontroler Xbox

Sprzęt analogowy

  • Pudełko drewniane (15 x 15 x 7 cm)
  • Klej
  • Taśma elektryczna

Oprogramowanie

  • IDE Arduino
  • Studio wizualne 2017
  • 3Ds Max (lub inne oprogramowanie do modelowania 3D)
  • Preform 2.14.0 lub nowszy
  • OpenCV 3.4.0 lub nowszy

Narzędzia

  • Sprzęt do lutowania
  • Piła i wierci
  • Przecinak do drutu

Krok 2: Instalacja i konfiguracja OpenCV i C++

Instalacja i konfiguracja OpenCV i C++
Instalacja i konfiguracja OpenCV i C++

Krok 2.1: Zdobycie oprogramowania

Visual studio 2017: Pobierz Visual studio Community 2017openCV 3.4.0 Pakiet wygranych: Przejdź do oficjalnej strony pobierania

Krok 2.2: Instalacja OpenCV2.2.1: Rozpakuj plik zip na dysk Windows(:C) 2.2.2: Przejdź do zaawansowanych ustawień systemu. Można to znaleźć w funkcji wyszukiwania win10 2.2.3: Musimy ustawić nowe zmienne środowiskowe. Zlokalizuj środowisko „Path” i naciśnij edit.2.2.4: Teraz musimy dodać lokalizację „mapy kosza” do nowej zmiennej w środowisku Path. Jeśli zainstalowałeś openCV na dysku C, ścieżka może wyglądać tak: C:\opencv\build\x64\vc14\bin Wklej ścieżkę i naciśnij "OK" we wszystkich oknach, które mogłeś otworzyć podczas tego procesu.

Krok 2.3: konfiguracja Visual Studio C++2.3.1: Utwórz nowy projekt wizualny C++. Uczyń go pustym projektem aplikacji konsolowej win32.2.3.2: W zakładce pliki źródłowe kliknij prawym przyciskiem myszy i dodaj nowy plik C++ (.cpp) i nazwij go „main.cpp”.2.3.3: Kliknij prawym przyciskiem myszy projekt- nazwę w eksploratorze rozwiązań i wybierz Properties.2.3.4: Musimy dodać dodatkowe katalogi Include. Można to znaleźć ogólnie w zakładce C/C++. Skopiuj następującą ścieżkę: C:\opencv\build\include i wklej ją za „AID” i kliknij Apply.2.3.5: W tym samym oknie musimy wybierz zakładkę „Linker”. w ramach ogólnych musimy zrobić inne dodatkowe katalogi bibliotek. Wklej następującą ścieżkę za "AID" C:\opencv\build\x64\vc14\lib i naciśnij ponownie Apply.2.3.6: W tej samej zakładce Linker wybierz zakładkę "Input". I naciśnij „Dodatkowe zależności> edytuj” i wklej następujący plik opencv_world320d.lib i xinput.lib (dla kontrolera) i ponownie naciśnij Zastosuj. Zamknij okno. Teraz Twój plik C++ jest gotowy do pracy.

Krok 3: Konfiguracja Arduino

Konfiguracja Arduino
Konfiguracja Arduino
Konfiguracja Arduino
Konfiguracja Arduino
Konfiguracja Arduino
Konfiguracja Arduino
Konfiguracja Arduino
Konfiguracja Arduino

Spotkanie z serwomechanizmami: Serwa mogą obracać się o ~160°. Aby normalnie działać, muszą mieć napięcie od 4, 8 do 6,0 V. Serwomechanizm ma 3 piny: uziemienie, 4, 8 - 6, pin 0 V i dane Szpilka. W naszym projekcie ustawimy piny danych dla serw na DigitalPin 9 i 10.

Spotkanie z diodami RGB: Diody RGB mają 4 piny. Czerwony, zielony, niebieski i uziemienie. W celu zaoszczędzenia miejsca na arduino możemy połączyć ze sobą 2 diody RGB. Czyli użyjemy tylko 3 pinów. Możemy podłączyć i przylutować diody RGB na płytce prototypowej jak na obrazku. Czerwony pin => DigitalPin 3(PWM)Zielony pin => DigitalPin 4Niebieski pin => DigitalPin 7

Spotkanie z brzęczykiem Piezo: Nasz mały robot będzie trochę hałasował. Aby to zrobić, musimy dać mu głos! Możemy wybrać, żeby był naprawdę głośny. Albo możemy umieścić rezystor 220Ω przed brzęczykiem piezo, aby był trochę mniej uciążliwy. Zostawiamy brzęczyk Piezo na płytce stykowej. Więc nie ma potrzeby lutowania. Podłączamy pin danych (+) do DigitalPin 2, a pin uziemienia do masy na płytce stykowej.

Spotkanie z sonarem: Aby robot nie próbował celować w osobę oddaloną o 10 metrów. Możemy nadać robotowi zasięg odległości, z którego będzie mógł celować w ludzi. Robimy to za pomocą czujnika sonaru. VCC => 5 voltTrig => DigitalPin 6Echo => DigitalPin 5GND => masa

Spotkanie z wykrywaczem monet: Stworzymy wykrywacz monet. Wykrywacz monet będzie działać, wykrywając, czy obwód jest zamknięty lub uszkodzony. Będzie działać prawie jak przełącznik. Ale musimy być ostrożni. Jeśli zrobimy to źle, będzie to kosztować arduino. Po pierwsze: Podłącz AnalogPin A0 do kabla 5 V. Ale pamiętaj, aby umieścić między nimi rezystor 1KΩ. Po drugie: Podłącz przewód do uziemienia. Możemy od razu przylutować przewody i rezystor do tej samej płytki prototypowej, co diody RGB. Teraz, jeśli zetkniemy 2 przewody razem, arduino wykryje zamknięty obwód. Oznacza to, że jest moneta!Spotkanie laserów zagłady. Robot potrzebuje swojej broni do strzelania! Aby zaoszczędzić trochę miejsca, zlutowałem ze sobą 2 lasery. Idealnie zmieszczą się w ramie aparatu. Podłącz je do DigitalPin 11 i do masy. Odwal mały koleś!

Opcjonalna sztuczka. Pod slotem możemy umieścić czerwoną diodę LED. To będzie zabawna sztuczka, gdy jest ciemno. Podłącz przewód do DigitalPin 8 i umieść rezystor 220 Ω między diodą LED a przewodem, aby zapobiec jego wysadzeniu. Podłącz krótki pin diody LED do masy.

Krok 4: Kod C++

Krok 4.1: Konfiguracja kodu main.cpp4.1.1: Pobierz "main.cpp" i skopiuj kod do własnego main.cpp.4.1.2: W linii 14 zmień "com" na com, którego używa arduino. "\.\COM(zmień to)"4.1.3: W liniach 21 i 22 ustaw właściwą ścieżkę do plików "haarcascade_frontalface_alt.xml" i "haarcascade_eye_tree_eyeglasses.xml"Jeśli openCV jest zainstalowany na dysku C, pliki te można znaleźć tutaj: "C:\opencv\build\etc\haarcascades\" Zachowaj podwójne odwrotne ukośniki lub dodaj jeden tam, gdzie jest tylko jeden.

Krok 4.2: Dodaj tserial.h i Tserial.cpp Te 2 pliki zadbają o komunikację między arduino a PC.4.2.1: Pobierz tserial.h i Tserial.cpp.4.2.2: Umieść te 2 pliki w projekcie informator. W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy projekt i wybierz Dodaj > istniejący element. W wyskakującym okienku wybierz dwa pliki do dodania.

Krok 4.2: Dodaj CXBOXController.h i CXBOXController.hPliki te przejmą część kontrolera projektu. 4.2.1: W eksploratorze rozwiązań kliknij prawym przyciskiem myszy projekt i wybierz dodaj > istniejący element. W wyskakującym okienku wybierz dwa pliki do dodania. Pliki C++ są skonfigurowane.

Krok 5: Kod Arduino

Krok 5.1: Biblioteka NewPing5.1.1: Pobierz ArduinoCode.ino i otwórz go w arduino IDE.5.1.2: Przejdź do „Sketch> Include libary> Manage libaries”.5.1.3: Wyszukaj w polu filtra „NewPing” i zainstaluj tę bibliotekę.

Krok 5.2: Biblioteka pitchs5.2.1: Pobierz pitches.txt i skopiuj zawartość pitches.txt.5.2.2: W Arduino IDE naciśnij CTRL+Shift+N, aby otworzyć nową kartę. 5.2.3: Wklej kod z pitches.txt w nowej karcie i zapisz go jako „pitches.h”. Kod Arduino został skonfigurowany

Krok 6: Drukowanie 3D i uszlachetnianie wydruku

Drukowanie 3D i uszlachetnianie wydruku
Drukowanie 3D i uszlachetnianie wydruku
Drukowanie 3D i uszlachetnianie wydruku
Drukowanie 3D i uszlachetnianie wydruku

Krok 6.1: Wydrukuj plik 3D Otwórz printfile.form i sprawdź, czy wszystko jest w porządku. Jeśli wszystko wydaje się w porządku, wyślij zadanie drukowania do drukarki. Jeśli coś się wydaje lub chcesz zmienić model. Dołączyłem pliki 3Ds Max i pliki OBJ do edycji.

Krok 6.2: Popraw model 6.2.1: Po zakończeniu drukowania namocz 2 modele w około 70% alkoholu, aby usunąć wszelkie nadruki. 6.2.2: Po wydrukowaniu połóż model na słońcu na kilka godzin, aby światło UV utwardź model. Lub możesz użyć lampy UV, aby utwardzić model. Należy to zrobić, ponieważ model będzie lepki.

6.2.3: Usuń ramę nośną. Można to zrobić za pomocą przecinaka do drutu. Lub jakiekolwiek inne narzędzie, które może ciąć plastik. 6.2.4: Niektóre części wydruku 3D mogą nadal być miękkie. Nawet jeśli model był mocno naświetlony światłem UV. Części, które mogą być miękkie, to te, które znajdują się blisko ram nośnych. Połóż model w większej ilości promieni UV, aby stwardniał. 6.2.5: Za pomocą „dremel” możesz zeszlifować wszystkie małe nierówności powstałe na podbudowie. Możesz spróbować dopasować serwa do ramy. Jeśli nie będą pasować, możesz użyć narzędzia Dremel do przeszlifowania materiału. dopasuj go.

Krok 7: Budowanie pudełka

Budowanie pudełka
Budowanie pudełka
Budowanie pudełka
Budowanie pudełka

Krok 7.1: Wykonywanie otworów Załączyłem projekt pudełka, o którym mowa. Plan nie jest w odpowiedniej skali, ale wszystkie rozmiary są prawidłowe. 7.1.1: Zacznij od zaznaczenia wszystkich otworów we właściwych miejscach. 7.1.2: Wywierć wszystkie otwory. Większe otwory można wykonać za pomocą narzędzia Dremel.7.1.3: Można również wiercić otwory kwadratowe. Aby jednak były kwadratowe, możesz przymocować do narzędzia Dremel mały pilnik i spiłować ostre rogi. 7.1.4: Spróbuj dopasować wszystkie elementy. jeśli pasują, dobrze jest iść! 7.1.5: Uważaj na odłamki drewna. Użyj papieru ściernego, aby się ich pozbyć.

Krok 7.2: Malowanie 7.2.1: Zacznij od szlifowania pokrywki. Potrzebujemy, żeby farba się przykleiła. 7.2.2: Weź szmatkę i nałóż na nią trochę terpentyny, aby wyczyścić pudełko. 7.2.3: Teraz możesz spryskać pudełko dowolnym kolorem.

Krok 8: Wykończenie

Kończąc
Kończąc
Kończąc
Kończąc
Kończąc
Kończąc

Teraz musimy umieścić wszystko na swoim miejscu i pozwolić mu zrobić to. Krok 8.1: Wykrywacz monet8.1.1: Przyklej metalowe klamry do detektora monet.8.1.2: Przylutuj każdy przewód od złącza do klamry.8.1.3: Sprawdź połączenie za pomocą monety. Jeśli nie ma obwodu zamkniętego, przylutuj przewody bardziej do krawędzi. Krok 8.2: Płytka prototypowa i diody RGB8.2.1: Umieść płytkę prototypową w prawym górnym rogu i przyklej ją taśmą!8.2.2: Podłącz diody RGB do przewodów z płyty prototypowej! 8.2.3: Podłącz wszystkie przewody od płyty prototypowej do arduino. Krok 8.3: Czujnik sonaru 8.3.1: Umieść czujnik w otworach, które dla niego zrobiliśmy. Jeśli masz przewody łączące męskie i żeńskie, możesz pominąć 8.3.28.3.2: Przeciąć kilka przewodów męskich i żeńskich na pół i zlutować ze sobą przewody żeńskie i męskie, aby uzyskać jeden kabel, którego możemy użyć do podłączenia czujnika do arduino. 8.3.3: Podłącz czujnik do arduino

Krok 8.4: Lasery i kamera 8.4.1: Przyklej małą ramkę do kamery. Upewnij się, że jest w pozycji pionowej. 8.4.2: Umieść również lasery w ramie. Przyklej je, aby wróg ich nie ukradł!

Krok 8.5: Serwa i druk 3D 8.5.1: Przyklej serwo w otworze pokrywy 8.5.2: Prześlij plik arduino do arduino (dzięki temu serwa stoją we właściwej pozycji) 8.5.3: Wraz z serwo przyszło mały okrągły płaskowyż. Umieść to na serwo w pokrywie. 8.5.4: Umieść duży wydruk 3D na serwo i plateau i skręć je mocno śrubą. 8.5.5: Umieść drugi serwo na małym wydruku 3D i sklej je razem. 8.5.6: Umieść kamerę na miejscu i wszystko gotowe!

Krok 9: Uruchom program

Aby uruchomić robota otwórz plik C++ w Visual studio. Upewnij się, że jesteś w "trybie debugowania"Prześlij plik arduino do arduino. Po przesłaniu naciśnij i zagraj w Visual Studio. A robot wystrzeli i zbierze wszystkie monety na świecie !!!

Zalecana: