Innholdsfortegnelse:

Godteri-kast-robot med Arduino, resirkulerte deler og Dlib .: 6 trinn
Godteri-kast-robot med Arduino, resirkulerte deler og Dlib .: 6 trinn

Video: Godteri-kast-robot med Arduino, resirkulerte deler og Dlib .: 6 trinn

Video: Godteri-kast-robot med Arduino, resirkulerte deler og Dlib .: 6 trinn
Video: Speedboat с паровым двигателем - POP POP BOAT 2.0 2024, November
Anonim
Godteri-kast-robot med Arduino, resirkulerte deler og Dlib
Godteri-kast-robot med Arduino, resirkulerte deler og Dlib

Med noen få resirkulerte deler, et Arduino + motorskjerm og Dlib dataprogramvare, kan du lage en fungerende ansiktsdetekterende godterikaster.

Materialer:

  • Ramme av tre
  • Bærbar datamaskin/datamaskin (helst en kraftigere enn en Raspberry Pi!).
  • Arduino (helst Uno, eller en som passer til motorskjermen din.)
  • Arduino motorskjold (jeg brukte det gamle Adafruit -skjoldet, som det fortsatt selges her)
  • Ethvert standard webkamera
  • Liten vaskemaskin

Resirkulerte deler:

  • Hylster (gammel metallboks fungerer bra.)
  • Trinnmotor, likestrømsmotor fra demontert gammel skriver.
  • Gammel skriverstrømforsyning
  • Godteridispenser (stor yoghurtbeholder).

Innsiden av det ferdige produktet vil se litt ut som vedlagt oversikt.

Advarsel

Sørg for å koble fra strømmen til Arduino/motoroppsettet før du kobler til/om. Sørg for å koble strømmen til riktig polaritet!

Dette er et mellomliggende prosjekt med Arduino og programvare du trenger for å installere eller kompilere på datamaskinen din. Instruksjonene kan variere og ble testet på Ubuntu.

Du må kanskje justere Arduino -koden til hvilken motorskjerm du bruker, hvis du ikke bruker den gamle Adafruit -motorskjermen.

Trinn 1: Bor, koble til og monter motoren

Bor, koble til og monter motoren
Bor, koble til og monter motoren
Bor, koble til og monter motoren
Bor, koble til og monter motoren

Bor hull i etuiet, fest trinnmotor slik at webkameraet kan bevege seg på toppen, og dispenseren kan rotere rundt i bunnen.

Steppermotorer kan bevege seg i små trinn (4 ledninger), i motsetning til likestrømsmotorer (2 ledninger) som går bakover/fremover, ikke i trinn.

DC -motoren har 2 ledninger (går begge veier), den valgfrie trinnmotoren vil ha 4 i to spoler (test med multimeter motstandsmåler for å se hvor spolene er koblet, som beskrevet her.)

Hvis du bruker det gamle Adafruit -skjoldet som i mitt eksempel, bør du koble DC -godteri -spinnermotoren til motor nr. 3 og trinnmaskinen til de to første motorene (nr. 1, nr. 2) som beskrevet i dokumentasjonen.

Når du er koblet til, koble motorene til et Arduino Motor Shield festet til en Arduino. For best resultat anbefales det å ha en ny strømforsyning til motorene, som du kan koble til DC -utgangen på en $ 2 veggvorter fra en bruktbutikk.

Trinn 2: Fest beholderen

Fest beholderen
Fest beholderen
Fest beholderen
Fest beholderen
Fest beholderen
Fest beholderen
Fest beholderen
Fest beholderen

Mål ut midten av en yoghurtbeholder eller en annen stor plastbeholder, og bor et grep som er bare større enn enden av motoren.

Fest beholderen til esken med en liten skive - Krazy -lim den til bunnen av beholderen og til den elektriske motorspindelen.

La limet tørke i en dag eller to for å helbrede helt - det kan være lurt å plassere et lite mellomrom mellom esken og spinnebeholderen for å sikre at det ikke setter seg skjevt.

Trinn 3: Lag et lite hull for godterikaster

Lag et lite hull til godterikaster
Lag et lite hull til godterikaster

Når spinneren er festet ordentlig, bruk enden av en skarp kniv til å skissere et lite hull for godteri som skal kastes ut av enden - dette skal være like over bunnen, der leppen er.

(For best resultat kan omtrent 30 godteribiter legges på lokkenden av dispenseren, som blir bunnen.)

Fortsett forsiktig med en skarp kniv til den spretter ut, og etterlater et lite hull (du kan utvide hullet senere etter behov).

Trinn 4: Arduino -oppsett

Hvis du ikke allerede har installert Arduino -programvaren, kan du få den fra

www.arduino.cc/en/Main/Software

Enhver ny versjon bør fungere.

Test DC/Stepper -motoren med eksemplene i Arduino Shields eksempelkode.

Hvis du tilfeldigvis bruker dette skjoldet (fortsatt tilgjengelig fra noen forhandlere) kan du bruke koden min direkte:

github.com/programmin1/HowToTrainYourRobot …

Når du har testet og kan levere godteri ved å skrive inn "d" i Arduino -serievinduet, er det på tide å koble dette til Dlibs gjenkjenner.

Trinn 5: Dlib -oppsett

Dlib (https://dlib.net/) gir et åpen kildekode, brukervennlig bibliotek for bildegjenkjenning. Installer Python Dlib -modulen ved hjelp av:

sudo pip installer Dlib

- eller -

sudo easy_install Dlib

Vent til Dlib installeres og kompileres. (Du trenger en datamaskin med fortrinnsvis et par gigabyte RAM, eller du må vente lenge og utvide bytteplass). Koden bruker også OpenCV for webkamera -modulen, så kjør:

sudo apt-get install python-opencv

Installasjonstrinnene kan variere hvis du bruker MacOS eller andre operativsystemer.

Ta nå dataene fra landemerker for ansiktsgjenkjenning fra

dlib.net/files/shape_predictor_68_face_land…

Pakk den ut (med Archive Manager/7zip) og plasser den i HOME/Downloads/shape_predictor_68_face_landmarks.dat

Trinn 6: Koble ansiktsgjenkjenning til roboten din

Koble ansiktsgjenkjenning til roboten din
Koble ansiktsgjenkjenning til roboten din

Plugg den Arduino-kontrollerende USB-en til datamaskinen og kontroller at "/dev/ttyACM0" -filen finnes (dette er enheten du skal sende de serielle kommandoene til). Hvis den ikke fungerer og en annen katalog med lignende navn som dukker opp i /dev når du kobler den til, erstatter /dev /ttyACM0 i filen faceDetectThreadCorrelationCV2FaceSmile.py i repoen.

Koble til webkameraet (hvis det ikke er noe innebygd webkamera på datamaskinen du bruker), og kjør den.py -filen på kommandolinjen eller med Run/F5 -kommandoen i Geany tekstredigerer. Hvis du vil bruke et andre/eksternt webkamera på en bærbar datamaskin, kan det være lurt å endre "VideoCapture (0)" til "VideoCapture (1)" for å bruke et andre webkamera, som du kan plassere på trinnmotoren på toppen av robotens boks.

Hvis alt går bra, vil du se en oversikt over et smil når et ansikt er foran webkameraet.

Les oversikten og kildekoden til.py -filen for å se matematikken til hvordan smildeteksjon fungerer fra punktene Dlib gir fra ansiktets landemerkefunksjonalitet.:)

Anbefalt: