Spisu treści:

OUCH: 6 kroków
OUCH: 6 kroków

Wideo: OUCH: 6 kroków

Wideo: OUCH: 6 kroków
Wideo: Odc 23: 6 kroków by nauczyć się szybko programowania w PL/SQL. 2024, Lipiec
Anonim
AUĆ
AUĆ
AUĆ
AUĆ

Ouch to Twój osobisty wielokierunkowy bezużyteczny pomocnik zaćmy. Gdy rozpoznawanie twarzy uderza w Zeitgeist, OUCH uderza w Ciebie! OUCH nie tylko wie, jak wyglądasz, ale także wie, jak być bardzo denerwującym! W przeciwieństwie do starszego brata, ta maszyna jest bardzo widoczna i spełnia tylko jeden cel: sprawić, by twoje życie było trochę bardziej gówniane. Czy zdarzyło Ci się zapomnieć o okularach przeciwsłonecznych w domu i zaskoczyło Cię jasne odbicie? OUCH pozwala Ci na nowo przeżywać tę chwilę. Odbijając światło z najjaśniejszego źródła światła wokół ciebie prosto na twoją twarz, sprawi, że nie będziesz cieszyć się ani jedną chwilą wokół niego.

Uważaj, bo OUCH może być ostatnią rzeczą, jaką zobaczysz!

Projekt był realizowany w ramach seminarium Computational Design and Digital Fabrication w programie magisterskim ITECH.

Sierpień Lehrecke | Max Zorn

Kieszonkowe dzieci

Części elektroniczne:

Arduino

  • Arduino UNO

    • 2x Mini-serwo Reely S0009
    • 4x fotorezystory
    • 4x rezystory 10k
    • 2x potencjometry
    • 1x kabel USB do drukarki

Malina Pi

  • Malina Pi 4

    • 1x RaspiCam
    • 4x Mini-serwo Reely S0009
    • 1x PCA9685 16-kanałowy 12-bitowy sterownik serwo PWM
    • Zewnętrzny zasilacz 5v DC
    • 1x zasilacz Rasberry Pi 5.1V - 3Amp (lub zewnętrzny odpowiednik)
    • 1x czujnik ultradźwiękowy MAKERFACTORY HC-SR05 (MF-6402156)
    • 1x 470 Ohm rezystor
    • 1x rezystor 320 Ohm

Części drukowane 3D:

OUCHy występują w różnych kształtach i rozmiarach. W tej wersji wykorzystaliśmy drukarkę 3D do drukowania niestandardowych mechanizmów.

  • 4 x stojak
  • 2 x podstawa S
  • 1 x podstawa L
  • 2 x podstawa obrotowa podwójna
  • 1 x podstawa obrotowa pojedyncza
  • 1 x zestaw podpór osi S
  • 1 x zestaw wsporników osi M
  • 1 x zestaw wsporników osi L
  • 1 x mocowanie kamery
  • 1 x mocowanie światła
  • 1 x mocowanie lustra

Opcjonalnie możesz użyć dostarczonego projektu Tower, aby zmierzyć komponenty do:

  • 1 x wieża (zamiast 4 x stojak)
  • 1 x Baza S i 1x Baza M (zamiast 2 x Baza S)

Inne części:

  • Mylar
  • 1 x gumka
  • 1 x krawat na suwak
  • 12 śrub z łbem płaskim M5 x 160
  • 2 śruby z łbem płaskim M5 x 80

Narzędzia:

  • drukarka 3d
  • Śrubokręt H3.0
  • Pistolet na gorący klej

Krok 1: Krok 1: Drukowanie części

Jeśli masz dostęp do drukarki 3D, możesz wydrukować niestandardowe mechanizmy, aby pomieścić serwonapędy i zamontować trzy główne komponenty.

Dla komponentu Face potrzebujemy:

  • 2 x stojaki
  • 1 x podstawa L
  • 1 x obrotowa podstawa podwójna
  • 1 x zestaw wsporników osi M
  • 1 x mocowanie kamery i czujnika odległości

Komponent Światło wymaga:

  • 1 x stojak
  • 1 x podstawa S
  • 1 x obrotowa podstawa podwójna
  • 1 x zestaw podpór osi S
  • 1 x mocowanie światła

Komponenty lustrzane składają się z następujących elementów:

  • 1 x stojak
  • 1 x podstawa S
  • 1 x obrotowa podstawa pojedyncza
  • 1 x zestaw wsporników osi L
  • Mocowanie do lustra

Na koniec możesz również wydrukować dostarczoną wieżę.

Jeśli chcesz użyć go jako podstawy dla wszystkich trzech komponentów, będziesz musiał odpowiednio dostosować matematykę wektorową w kodzie. Następnie połącz komponent Face z podstawą M zamiast podstawy L z wieżą.

Krok 2: Krok 2: Tworzenie lustra

Krok 2: Tworzenie lustra
Krok 2: Tworzenie lustra
Krok 2: Tworzenie lustra
Krok 2: Tworzenie lustra

Aby stworzyć własny element lustrzany, wytnij okrągły kawałek Mylaru i umieść go na wierzchu drukowanej w 3D części lustrzanej. Następnie najpierw użyj gumki, aby ją zamocować. Gumka powinna pasować do rowka wokół elementu. Następnie użyj opaski na suwak, aby delikatnie zabezpieczyć połączenie, nie dokręcaj go jeszcze zbyt mocno. Teraz możesz zacząć rozciągać Mylar, aż uzyskasz błyszczącą, lustrzaną powierzchnię. Na koniec zaciągnij suwak i ciesz się odbiciem swojej pięknej twarzy!

Krok 3: Krok 3: Montaż komponentów

Krok 3: Montaż komponentów
Krok 3: Montaż komponentów
Krok 3: Montaż komponentów
Krok 3: Montaż komponentów
Krok 3: Montaż komponentów
Krok 3: Montaż komponentów
Krok 3: Montaż komponentów
Krok 3: Montaż komponentów

Komponent twarzy

  1. Przyklej na gorąco pięść Servo w odpowiednim wycięciu obrotowej podstawy
  2. Przyklej złącze Servo do rowka znajdującego się w dolnej części podstawy
  3. Połącz ze sobą dwie części podstawy, aby serwo zazębiało się ze złączem
  4. Użyj śruby Servo, aby przymocować złącze do Servo
  5. Przyklej na gorąco drugi łącznik do odpowiedniego rowka, znajdującego się w górnej części wspornika osi
  6. Użyj 4 śrub M5, aby przykręcić wspornik osi do obrotowej podstawy
  7. Przyklej na gorąco drugi serwo do mocowania
  8. Wsuń aparat na szpilki
  9. Przymocuj ultradźwiękowy czujnik odległości do uchwytu za pomocą śrub lub kleju na gorąco
  10. Podłącz uchwyt kamery/czujnika do wspornika osi, serwo ponownie musi wsunąć się w element złącza
  11. Użyj śruby Servo, aby przymocować złącze do Servo
  12. Przykręć Raspberry Pi i sterownik serwomechanizmu do kawałka sklejki (upewnij się, że rozstaw pasuje do otworów podstawy L)
  13. Przykręć element czołowy do stojaków za pomocą śrub M5

Element lustrzany

  1. Wykonaj kroki od 1 do 7
  2. Podłącz lustro do wspornika osi
  3. Przyklej podstawkę pod lustro do sklejki, tak aby elementy lustra i twarzy były wyrównane
  4. Przykręć element Mirror do stojaka za pomocą śrub M5

Lekki komponent

  1. Wykonaj kroki od 1 do 7 od góry
  2. Przełóż czujniki światła przez otwory montażowe w dolnej części krzyża zacieniającego
  3. Podłącz krzyżyk cieniujący do wspornika osi, serwo ponownie musi wsunąć się w element złącza
  4. Użyj śruby Servo, aby przymocować złącze do Servo
  5. Przyklej stojak do sklejki, tak aby komponenty Światło, Lustro i Twarz były wyrównane, a Lustro znajdowało się pomiędzy komponentami Twarzy i Światła
  6. Przykręć element czołowy do stojaków za pomocą śrub M5

*Wszystkie komponenty mogą być również dołączone do wieży, należy jednak wziąć pod uwagę zwiększoną złożoność kodowania i okablowania oraz czas drukowania. Jeśli chcesz użyć wieży, użyj podstawy M zamiast podstawy L dla komponentu Face i przykręć części podstawy do wieży za pomocą oczek i śrub M5.

Krok 4: Krok 4: Skonfiguruj tablice

Krok 4: Skonfiguruj tablice
Krok 4: Skonfiguruj tablice
Krok 4: Skonfiguruj tablice
Krok 4: Skonfiguruj tablice
Krok 4: Skonfiguruj tablice
Krok 4: Skonfiguruj tablice

Oto schemat połączeń dla trzech komponentów. Sun Tracker działa w swojej własnej pętli na Arduino i wysyła swoje pozycje serwo do Rasberry Pi przez port szeregowy USB. Opcjonalny czujnik odległości można podłączyć z przodu kamery pan/tilt piCamera, aby stworzyć bardziej niezawodną triangulację celu. Tutaj ustawimy je w linii prostej i po prostu uśrednimy wektory, więc nie jest to wymagane.

Cztery serwa są podłączone do sterownika serwo PCA9685, który jest zasilany z zewnętrznego zasilacza 5V. Dwa serwa kontrolują obrót i pochylenie kamery śledzącej twarz, a pozostałe dwa kontrolują obrót i pochylenie lustra.

Krok 5: Kodeks:

Kod
Kod

Kod tego projektu można podzielić na dwie części: kod śledzenia światła Arduino i kod śledzenia twarzy / pozycjonowania lustra w Pythonie.

Kod Arduino:

Ten kod jest nieco zmodyfikowaną wersją projektu śledzenia słońca z geobruce. Jest to świetny punkt odniesienia, aby dowiedzieć się więcej o komponencie śledzenia słońca, a więcej szczegółów można znaleźć na tej stronie z instrukcjami. Wartości natężenia światła są pobierane z 4 fotorezystorów i uśredniane, aby znaleźć najjaśniejszy obszar i odpowiednio dostosować serwa. Następnie wypisujemy wartości kąta serwomechanizmu do portu szeregowego.

Kod Pythona:

Ten kod integruje otwarte CV, aby stworzyć mechanizm przechyłu panoramowania twarzy, a także steruje serwomechanizmami lustra. Będziesz musiał wykonać kilka kroków, aby pobrać otwarte CV na swoje Raspberry pi. Jest na to wiele zasobów, ale bardzo podoba mi się ten z pyimagesearch. Pełny opis tego procesu można znaleźć tutaj. Uwaga: Pobraliśmy otwarte biblioteki CV do środowiska wirtualnego, na którym uruchamiamy cały kod, jeśli zdecydowałeś się to zrobić, upewnij się, że pobierasz wszystkie zależności do środowiska wirtualnego, na którym uruchamiasz program, a nie samo Pi.

Po pobraniu otwartego CV ten kod będzie również wymagał kilku dodatkowych zależności (zainstalowanych w konkretnym środowisku, w którym działasz):

  • Adafruit ServoKit: Pełną stronę na temat procesu pobierania na Raspberry Pi można znaleźć tutaj.
  • imutyl
  • numpy
  • gpiozero (w przypadku korzystania z czujnika odległości)

Do śledzenia twarzy skrypt wymaga argumentu (--faces), który jest plikiem.xml używanym przez openCv do wyszukiwania twarzy. Będziesz musiał umieścić ten plik w tym samym katalogu, co skrypt Pythona. Udostępniłem go w plikach do pobrania i można go również znaleźć tutaj.

Krok 6: Uruchamianie kodu

Uruchamianie kodu
Uruchamianie kodu
Uruchamianie kodu
Uruchamianie kodu

Po pobraniu całego kodu do tego samego katalogu i skonfigurowaniu środowiska wirtualnego z otwartym CV, jesteś gotowy do jego uruchomienia.

  1. Otwórz wiersz poleceń na swoim pi
  2. Wpisz workon cv (lub dowolną nazwę wybraną dla środowiska wirtualnego)
  3. Zmień katalog na miejsce, w którym przechowujesz pliki (cd (ścieżka do plików))
  4. Ostatnia linia uruchamia program i określa plik kaskadowy haar. (python Face3.py --faces haarcascade_frontalface_default.xml)

Po uruchomieniu powinieneś zobaczyć strumień wideo z pikamu na ekranie, a wiersz poleceń rozpocznie drukowanie wartości serwa ze wszystkich sześciu serwomechanizmów.

I gotowe! W zależności od jakości serw, które posiadasz, możesz chcieć skalibrować je specjalnie, aby poprawić dokładność systemu. Skończyło się na tym, że musieliśmy dostosować wszystkie zakresy PWM, aby działały poprawnie.

Zalecana: