Indholdsfortegnelse:

Candy-throwing robot med Arduino, genbrugsdele og Dlib .: 6 trin
Candy-throwing robot med Arduino, genbrugsdele og Dlib .: 6 trin

Video: Candy-throwing robot med Arduino, genbrugsdele og Dlib .: 6 trin

Video: Candy-throwing robot med Arduino, genbrugsdele og Dlib .: 6 trin
Video: Prototype Ai Robot beating the humans in the track event 👀 #shorts 2024, November
Anonim
Slikkaster-robot med Arduino, genbrugsdele og Dlib
Slikkaster-robot med Arduino, genbrugsdele og Dlib

Med et par genbrugsdele, et Arduino + motorskærm og Dlib-computersoftware kan du lave en fungerende ansigtsdetekterende slikkaster.

Materialer:

  • Træramme
  • Bærbar computer/computer (helst en mere kraftfuld end en Raspberry Pi!).
  • Arduino (helst Uno, eller en der passer til dit motorskærm.)
  • Arduino motorskjold (jeg brugte det gamle Adafruit -skjold, som det stadig sælges her)
  • Ethvert standard webcam
  • Lille vaskemaskine

Genanvendte dele:

  • Kabinet (gammel metalboks fungerer godt.)
  • Stepper motor, DC motor fra demonteret gammel printer.
  • Gammel printer strømforsyning
  • Slikdispenser (stor yoghurtbeholder).

Indersiden af det færdige produkt vil lidt ligne vedhæftet oversigt.

Advarsel

Sørg for at frakoble strøm til Arduino/motoropsætning, før du tilslutter/genopretter. Sørg for at tilslutte strømmen i den rigtige polaritet!

Dette er et mellemliggende projekt med Arduino og software, du skal installere eller kompilere på din computer. Instruktionerne kan variere og blev testet med at arbejde på Ubuntu.

Du skal muligvis justere Arduino -koden til det motorskærm, du bruger, hvis du ikke bruger det gamle Adafruit -motorskærm.

Trin 1: Bor, tilslut og monter motoren

Bor, tilslut og monter motor
Bor, tilslut og monter motor
Bor, tilslut og monter motor
Bor, tilslut og monter motor

Bor huller i sagen og fastgør trinmotor, så webkameraet kan bevæge sig ovenpå, og dispenseren kan rotere rundt i bunden.

Steppermotorer kan bevæge sig i små trin (4 tråde), i modsætning til jævnstrømsmotorer (2 ledninger), der kører baglæns/fremad, ikke i trin.

DC -motoren har 2 ledninger (kører begge veje), den valgfri trinmotor vil have 4 i to spoler (test med multimeter modstandsmåler for at se, hvor spolerne er tilsluttet, som beskrevet her.)

Hvis du bruger det gamle Adafruit -skjold som i mit eksempel, skal du forbinde DC candy -spindermotoren til motor nr. 3 og stepper til de to første motorer (#1, #2) som beskrevet i deres dokumentation.

Når de er tilsluttet, skal du koble motorerne til et Arduino -motorskærm, der er fastgjort til en Arduino. For de bedste resultater anbefales det at have en anden strømforsyning til motorerne, som du kan koble op til DC -udgangen på en $ 2 vægvorte fra en brugt butik.

Trin 2: Montering af beholderen

Montering af beholderen
Montering af beholderen
Montering af beholderen
Montering af beholderen
Montering af beholderen
Montering af beholderen
Montering af beholderen
Montering af beholderen

Mål midten af en yoghurtbeholder eller en anden stor plastbeholder, og bor et greb, der er lige større end motorens ende.

Fastgør beholderen til kassen med en lille skive - Krazy -lim den til bunden af beholderen og til elmotorspindlen.

Lad limen tørre i et par dage for at hærde fuldstændigt - det kan være en god idé at placere en lille afstandsstykke mellem æsken og spindebeholderen for at sikre, at den ikke sætter sig skæv.

Trin 3: Lav et lille hul til slikkaster

Lav et lille hul til slikkaster
Lav et lille hul til slikkaster

Når spinneren er fastgjort korrekt, skal du bruge enden af en skarp kniv til at skitsere et lille hul til slik, der kan smides ud af enden - dette skal være lige over bunden, hvor læben er.

(For de bedste resultater kan cirka 30 stykker slik lægges på lågenden af dispenseren, som vil være bunden.)

Hold forsigtigt omridset med en skarp kniv, indtil det springer ud og efterlader et lille hul (du kan udvide hullet senere efter behov).

Trin 4: Arduino -opsætning

Hvis du ikke allerede har installeret Arduino -softwaren, skal du hente den fra

www.arduino.cc/en/Main/Software

Enhver nyere version skal fungere.

Test DC/Stepper motoren med eksemplerne i din Arduino Shields eksempelkode.

Hvis du tilfældigvis bruger dette skjold (stadig tilgængeligt fra nogle forhandlere), kan du bruge min kode direkte:

github.com/programmin1/HowToTrainYourRobot …

Når du har testet og kan dispensere slik ved at indtaste "d" i Arduino serielle vindue, er det tid til at forbinde dette med Dlibs genkender.

Trin 5: Dlib -opsætning

Dlib (https://dlib.net/) giver et open-source, brugervenligt bibliotek til billedgenkendelse. Installer Python Dlib -modulet ved hjælp af:

sudo pip installer Dlib

- eller -

sudo easy_install Dlib

Vent på, at Dlib installeres og kompileres. (Du skal bruge en computer med fortrinsvis et par gig RAM, eller du skal vente længe og udvide bytteplads). Koden bruger også OpenCV til webcam -modulet, så kør:

sudo apt-get install python-opencv

Installationstrin kan variere, hvis du bruger MacOS eller andre operativsystemer.

Grib nu data fra ansigtsgenkendelsesmærker fra

dlib.net/files/shape_predictor_68_face_land…

Pak den ud (med Archive Manager/7zip) og placer den i HOME/Downloads/shape_predictor_68_face_landmarks.dat

Trin 6: Tilslutning af ansigtsgenkender til din robot

Tilslutning af ansigtsgenkender til din robot
Tilslutning af ansigtsgenkender til din robot

Slut den Arduino-styrende USB til computeren, og kontroller, at filen "/dev/ttyACM0" findes (dette er enheden, som de serielle kommandoer skal sendes til). Hvis det ikke virker, og en anden lignende mappe, der vises i /dev, når du tilslutter den, skal du erstatte /dev /ttyACM0 i filen faceDetectThreadCorrelationCV2FaceSmile.py i repoen.

Tilslut webkameraet (hvis der ikke er noget indbygget webcam i den computer, du bruger), og kør den.py -fil på kommandolinjen eller med kommandoen Kør/F5 i Geany -teksteditor. Hvis du vil bruge et andet/eksternt webcam på en bærbar computer, kan du ændre "VideoCapture (0)" til "VideoCapture (1)" for at bruge et andet webcam, som du kan placere på trinmotoren oven på robotens boks.

Hvis alt går godt, vil du se en oversigt over et smil, når et ansigt er foran webkameraet.

Læs oversigten og kildekoden for.py -filen for at se matematikken om, hvordan smilregistrering fungerer fra de punkter, Dlib giver fra ansigtets vartegn.:)

Anbefalede: