Spisu treści:
- Krok 1: Materiały
- Krok 2: Instalacja i konfiguracja OpenCV i C++
- Krok 3: Konfiguracja Arduino
- Krok 4: Kod C++
- Krok 5: Kod Arduino
- Krok 6: Drukowanie 3D i uszlachetnianie wydruku
- Krok 7: Budowanie pudełka
- Krok 8: Wykończenie
- Krok 9: Uruchom program
Wideo: Begging Robot ze śledzeniem twarzy i sterowaniem przez kontroler Xbox - Arduino: 9 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
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++
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
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
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
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
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:
Oscyloskop z podwójnym śledzeniem: 11 kroków (ze zdjęciami)
Oscyloskop z podwójnym śledzeniem: Kiedy budowałem mój poprzedni mini oscyloskop, chciałem zobaczyć, jak dobrze mogę wykonać mój najmniejszy mikrokontroler ARM, STM32F030 (F030), i wykonał dobrą robotę. W jednym z komentarzy sugerowano, że „Niebieska pigułka” z STM32F103
Sterowany joystickiem wózek inwalidzki wspomagany śledzeniem przeszkód: 3 kroki (ze zdjęciami)
Wózek inwalidzki sterowany joystickiem z funkcją śledzenia przeszkód: Aby ułatwić osobom niepełnosprawnym fizycznie bezpieczną jazdę, czujnik ultradźwiękowy służy do śledzenia przeszkód na drodze. W oparciu o ruch joysticka silniki będą napędzać wózek w dowolnych czterech kierunkach i prędkość na każdym d
Konwersja Tonka Truck RC z wywrotem i sterowaniem 4WS Quad: 6 kroków (ze zdjęciami)
Konwersja Tonka Truck RC z wywrotem i 4WS Quad Steering: Przyznaję, że konwersja na ciężarówkę Tonka RC nie jest oryginalnym pomysłem, ale kiedy o tym pomyślałem, pomyślałem, że jestem pierwszy … to jest, dopóki nie przeszukałem sieci, Doh. Tak, robiono to wcześniej, ale moim zdaniem wszyscy inni zrobili to na własnej skórze i zawiedli
Raspberry Pi - autonomiczny łazik marsjański ze śledzeniem obiektów OpenCV: 7 kroków (ze zdjęciami)
Raspberry Pi - autonomiczny łazik marsjański z śledzeniem obiektów OpenCV: Zasilany przez Raspberry Pi 3, rozpoznawanie obiektów Open CV, czujniki ultradźwiękowe i motoreduktory prądu stałego. Ten łazik może śledzić każdy obiekt, do którego jest wyszkolony, i poruszać się po dowolnym terenie
Automatyka domowa: automatyczna tablica rozdzielcza ze sterowaniem ściemniaczem przez Bluetooth za pomocą Tiva TM4C123G: 7 kroków
Automatyka domowa: automatyczna tablica rozdzielcza ze sterowaniem ściemniaczem przez Bluetooth Korzystanie z Tiva TM4C123G: Obecnie mamy piloty do naszych telewizorów i innych systemów elektronicznych, dzięki którym nasze życie jest naprawdę łatwe. Czy kiedykolwiek zastanawiałeś się nad automatyką domową, która dałaby możliwość sterowania lampami, wentylatorami i innymi urządzeniami