Inhoudsopgave:

Snoepgooiende robot met Arduino, gerecyclede onderdelen en Dlib. - Ajarnpa
Snoepgooiende robot met Arduino, gerecyclede onderdelen en Dlib. - Ajarnpa

Video: Snoepgooiende robot met Arduino, gerecyclede onderdelen en Dlib. - Ajarnpa

Video: Snoepgooiende robot met Arduino, gerecyclede onderdelen en Dlib. - Ajarnpa
Video: Голубая стрела (1958) фильм 2024, November
Anonim
Snoepgooiende robot met Arduino, gerecyclede onderdelen en Dlib
Snoepgooiende robot met Arduino, gerecyclede onderdelen en Dlib

Met een paar gerecyclede onderdelen, een Arduino + motorschild en Dlib-computersoftware kun je een werkende gezichtsdetecterende snoepwerper maken.

Materialen:

  • Houten frame
  • Laptop/computer (liefst een krachtiger dan een Raspberry Pi!).
  • Arduino (bij voorkeur Uno, of een die op je motorschild past.)
  • Arduino-motorschild (ik gebruikte het oude Adafruit-schild, zoals hier nog steeds wordt verkocht)
  • Elke standaard webcam
  • Kleine wasmachine

Gerecycleerde onderdelen:

  • Behuizing (oude metalen doos werkt goed.)
  • Stappenmotor, gelijkstroommotor van gedemonteerde oude printer.
  • Oude printervoeding
  • Snoepdispenser (Grote yoghurtcontainer).

De ingewanden van het eindproduct zullen er ongeveer uitzien als bijgevoegd overzicht.

Waarschuwing

Zorg ervoor dat u de stroom naar de Arduino/motorconfiguratie loskoppelt voordat u bedrading/herbedrading aanbrengt. Zorg ervoor dat u de stroom in de juiste polariteit aansluit!

Dit is een project op gemiddeld niveau met Arduino en software die je op je computer moet installeren of compileren. De instructies kunnen variëren en zijn getest op Ubuntu.

Mogelijk moet u de Arduino-code aanpassen aan het motorschild dat u gebruikt, als u het oude Adafruit-motorschild niet gebruikt.

Stap 1: Boor, sluit en monteer de motor

Boor, sluit en monteer motor
Boor, sluit en monteer motor
Boor, sluit en monteer motor
Boor, sluit en monteer motor

Boor gaten in de behuizing, bevestig de stappenmotor zodat de webcam aan de bovenkant kan bewegen en de dispenser aan de onderkant kan draaien.

Stappenmotoren kunnen in kleine stappen bewegen (4 draden), in tegenstelling tot DC-motoren (2 draden) die achteruit/vooruit lopen, niet in stappen.

De DC-motor heeft 2 draden (loopt in beide richtingen), de optionele stappenmotor heeft 4 in twee spoelen (test met een multimeter weerstandsmeter om te zien waar de spoelen zijn bedraad, zoals hier beschreven.)

Als je het oude Adafruit-schild gebruikt zoals in mijn voorbeeld, moet je de DC-snoepspinnermotor aansluiten op motor #3 en de stappenmotor op de eerste twee motoren (#1, #2) zoals beschreven in hun documentatie.

Eenmaal aangesloten, sluit u de motoren aan op een Arduino Motor Shield die op een Arduino is aangesloten. Voor de beste resultaten wordt aanbevolen om een tweede voeding naar de motoren te hebben, die u kunt aansluiten op de DC-uitgang op een muurwrat van $ 2 uit een tweedehandswinkel.

Stap 2: De container bevestigen

De container bevestigen
De container bevestigen
De container bevestigen
De container bevestigen
De container bevestigen
De container bevestigen
De container bevestigen
De container bevestigen

Meet het midden van een yoghurtcontainer of een andere grote plastic container af en boor een gat dat net groter is dan het uiteinde van de motor.

Bevestig de container aan de doos met behulp van een kleine ring - Krazy-lijm deze op de bodem van de container en op de spindel van de elektromotor.

Laat de lijm een dag of twee drogen om volledig uit te harden - u kunt een klein afstandsstuk tussen de doos en de draaiende container plaatsen om ervoor te zorgen dat deze niet scheef gaat zitten.

Stap 3: Maak een klein gaatje voor Candy Thrower

Maak een klein gaatje voor Candy Thrower
Maak een klein gaatje voor Candy Thrower

Zodra de spinner goed is bevestigd, gebruikt u het uiteinde van een scherp mes om een klein gaatje te schetsen waar snoep uit het uiteinde kan worden gegooid - dit moet net boven de bodem zijn, waar de lip is.

(Voor de beste resultaten kunnen ongeveer 30 snoepjes op het dekseluiteinde van de dispenser worden geplaatst, wat de onderkant zal zijn.)

Blijf voorzichtig schetsen met een scherp mes totdat het eruit springt, laat een klein gaatje achter (je kunt het gat later uitbreiden als dat nodig is).

Stap 4: Arduino-installatie

Als u de Arduino-software nog niet hebt geïnstalleerd, haalt u deze op van

www.arduino.cc/en/Main/Software

Elke recente versie zou moeten werken.

Test de DC/stappenmotor met de voorbeelden in de voorbeeldcode van uw Arduino Shield.

Als je dit schild gebruikt (nog steeds verkrijgbaar bij sommige wederverkopers), kun je mijn code rechtstreeks gebruiken:

github.com/programmin1/HowToTrainYourRobot…

Als je eenmaal hebt getest en snoep kunt uitgeven door "d" in te voeren in het Arduino-seriële venster, is het tijd om dit te verbinden met de herkenner van Dlib.

Stap 5: Dlib-configuratie

Dlib (https://dlib.net/) biedt een open-source, gebruiksvriendelijke bibliotheek voor beeldherkenning. Installeer de Python Dlib-module met behulp van:

sudo pip install Dlib

- of -

sudo easy_install Dlib

Wacht tot Dlib is geïnstalleerd en gecompileerd. (Je hebt een computer nodig met bij voorkeur een paar gigs RAM, anders moet je lang wachten en de swap-ruimte uitbreiden). De code gebruikt ook OpenCV voor de webcammodule, dus voer uit:

sudo apt-get install python-opencv

Installatiestappen kunnen variëren als u MacOS of andere besturingssystemen gebruikt.

Pak nu de gezichtsherkenningsoriëntatiepuntengegevens van

dlib.net/files/shape_predictor_68_face_land…

Pak het uit (met Archiefbeheer / 7zip) en plaats het in HOME/Downloads/shape_predictor_68_face_landmarks.dat

Stap 6: Gezichtsherkenning verbinden met uw robot

Gezichtsherkenning verbinden met uw robot
Gezichtsherkenning verbinden met uw robot

Sluit de Arduino-controlerende USB aan op de computer en controleer of het bestand "/dev/ttyACM0" bestaat (dit is het apparaat waarnaar de seriële opdrachten moeten worden verzonden). Als het niet werkt en een andere gelijknamige map die verschijnt in /dev wanneer je het aansluit, vervang dan /dev/ttyACM0 in het faceDetectThreadCorrelationCV2FaceSmile.py bestand in de repo.

Sluit de webcam aan (als er geen ingebouwde webcam is op de computer die u gebruikt) en voer dat.py-bestand uit in de opdrachtregel of met de opdracht Uitvoeren/F5 in de teksteditor van Geany. Als u een tweede/externe webcam op een laptop wilt gebruiken, kunt u "VideoCapture(0)" wijzigen in "VideoCapture(1)" om een tweede webcam te gebruiken, die u op de stappenmotor bovenop de robotbox kunt plaatsen.

Als alles goed gaat zie je een omtrek van een glimlach als er een gezicht voor de webcam staat.

Lees het overzicht en de broncode van het.py-bestand om de wiskunde te zien van hoe lachdetectie werkt op basis van de punten die Dlib geeft op basis van de gezichtsherkenningsfunctionaliteit.:)

Aanbevolen: