Innehållsförteckning:
- Steg 1: Materialen
- Steg 2: Installera och konfigurera OpenCV och C ++
- Steg 3: Konfigurera Arduino
- Steg 4: C ++ - koden
- Steg 5: Arduino -koden
- Steg 6: 3D -utskrift och förfina utskriften
- Steg 7: Bygga lådan
- Steg 8: Avsluta
- Steg 9: Starta programmet
Video: Begging Robot With Facial Tracking and Controll av Xbox Controller - Arduino: 9 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Vi ska göra en tiggerobot. Denna robot kommer att försöka irritera eller få uppmärksamhet hos förbipasserande. Det kommer att upptäcka deras ansikten och försöka skjuta lasrar på dem. Om du ger roboten ett mynt så sjunger han en sång och dansar. Roboten kommer att behöva en arduino, en live feed av en kamera och en dator för att köra openCV på. Roboten kommer också att kunna styras av en xBox -kontroller om den är ansluten till datorn.
Steg 1: Materialen
Hårdvara elektronisk
- Arduino NANO eller UNO
- USB 2.0 -kamera
- Bygelkablar (hane och hona)
- 2 x Servo - Generisk (submikrostorlek)
- 2 x LED - RGB -KATOD 5 mm
- 2 x 5mW lasrar
- 1 x röd LED 5 mm
- 1 x brödbräda
- 4 x 220Ω motstånd
- 1 x 1KΩ motstånd
- 1 x protoboard
- 1 x Ekolodsgivare 4 stift
- Xbox -kontroller
Hårdvara analog
- Trälåda (15 x 15 x 7 cm)
- Lim
- Eltejp
programvara
- Arduino IDE
- Visual studio 2017
- 3Ds Max (eller annan mjukvara för 3D -delning)
- Förforma 2.14.0 eller senare
- OpenCV 3.4.0 eller senare
Verktyg
- Lödutrustning
- Såg och borra
- Avbitartång
Steg 2: Installera och konfigurera OpenCV och C ++
Steg 2.1: Skaffa programvaran
Visual studio 2017: Ladda ner Visual studio Comunity 2017openCV 3.4.0 Vinnpaket: Gå till den officiella nedladdningssidan
Steg 2.2: Installera OpenCV2.2.1: Extrahera zipfilen till din Windows (: C) enhet.2.2.2: Gå till dina avancerade systeminställningar. Detta finns i din win10 -sökfunktion 2.2.3: Vi måste ställa in nya miljövariabler. Leta reda på "Path" -miljön och tryck på edit.2.2.4: Nu måste vi lägga till platsen för "bin map" till en ny variabel i Path enviromental. Om du installerade openCV på din C -enhet kan sökvägen se ut så här: C: / opencv / build / x64 / vc14 / bin Klistra in sökvägen och tryck på "OK" på alla fönster som du kan ha öppnat under processen.
Steg 2.3: Konfigurera Visual Studio C ++ 2.3.1: Skapa ett nytt visuellt C ++ - projekt. Gör det till ett tomt win32-konsolapplikationsprojekt. 2.3.2: På fliken källfiler, högerklicka och lägg till en ny C ++- fil (.cpp) och ge den namnet "main.cpp". 2.3.3: Högerklicka på projektet- namn i lösningsutforskaren och välj Egenskaper 2.3.4: Vi måste lägga till ytterligare Inkludera kataloger. Detta kan hittas under fliken C/C ++ i allmänhet. Kopiera följande sökväg: C: / opencv / build / include och klistra in det bakom "AID" och klicka på Apply.2.3.5: I samma fönster måste vi välj fliken "Linker". i allmänhet måste vi göra en annan ytterligare Libary kataloger. Klistra in följande sökväg bakom "AID" C: / opencv / build / x64 / vc14 / lib och tryck på Apply igen 2.3.6: Under samma Linker -flik väljer du fliken "Input". Och tryck på "Ytterligare beroenden> redigera" och klistra in följande fil opencv_world320d.lib och xinput.lib (för kontrollenheten) och tryck på Apply igen. Stäng fönstret. Nu är din C ++ - fil redo att arbeta med.
Steg 3: Konfigurera Arduino
Möt servos: Servon kan rotera ~ 160 ° De måste ha mellan 4, 8 och 6, 0 Volt för att fungera normalt. Servon har 3 stift: jord, 4, 8 - 6, 0 volt stift och en data stift. För vårt projekt kommer vi att ställa in datastiften för servona på DigitalPin 9 och 10.
Möte med RGB -lysdioderna: RGB -lysdioderna har 4 stift. Röd, grön, blå och marknål. För att spara lite utrymme på arduino kan vi ansluta de 2 RGB -lysdioderna tillsammans. Så vi kommer bara att använda 3 stift. Vi kan ansluta och lödda RGB -lysdioderna på ett protoboard som i bilden. Röd stift => DigitalPin 3 (PWM) Grön stift => DigitalPin 4Blå stift => DigitalPin 7
Möt Piezo -summern: Vår lilla robot kommer att göra lite ljud. För att göra detta måste vi ge honom en röst! Vi kan välja att göra honom riktigt högljudd. Eller så kan vi sätta ett 220Ω motstånd före piezo -summern för att göra honom lite mindre motbjudande. Vi lämnar Piezo -summern på panelen. Så inget behov av lödning. Vi ansluter datapinnen (+) till DigitalPin 2 och jordstiftet till jord på brödbrädet.
Möt sonaren: För att hindra roboten från att försöka sikta mot en person som är 10 meter bort. Vi kan ge roboten ett avstånd från var den kan rikta sig mot människor. Vi gör detta med en ekolodssensor. VCC => 5 voltTrig => DigitalPin 6Echo => DigitalPin 5GND => jord
Möt myntdetektorn: Vi ska göra en myntdetektor. Myntdetektorn fungerar genom att detektera om kretsen är stängd eller trasig. Det kommer nästan att fungera som en switch. Men vi måste vara försiktiga. Om vi gör detta fel kommer det att kosta oss en arduino. Först: Anslut AnalogPin A0 till en 5 volt kabel. Men se till att sätta ett 1KΩ motstånd mellan det. Andra: Anslut en kabel till jord. Vi kan omedelbart löda trådarna och motståndet till samma protoboard som RGB -lysdioderna. Om vi nu vidrör de två trådarna högre kommer arduino att upptäcka en sluten krets. Det betyder att det finns ett mynt! Att möta undergångens lasrar. Roboten behöver sina vapen för att skjuta! För att spara lite plats lödde jag ihop de två lasrarna. De passar perfekt in i kamerans ram. Anslut dem till DigitalPin 11 och till marken. Släck den lilla killen!
Valfri gimmick. Vi kan sätta en röd lysdiod under myntplatsen. Detta kommer att bli en rolig liten gimmick för när det är mörkt. Anslut en kabel till DigitalPin 8 och sätt ett 220Ω motstånd mellan lysdioden och ledningen för att förhindra att den blåser upp. Anslut lysdiodens korta stift till jord.
Steg 4: C ++ - koden
Steg 4.1: Konfigurera main.cpp -koden 4.1.1: Ladda ner "main.cpp" och kopiera koden till din egen main.cpp.4.1.2: På rad 14 ändrar du "com" till den com som arduino använder. "\. / COM (ändra detta)" 4.1.3: På rad 21 och 22 ställ in rätt sökväg till filerna "haarcascade_frontalface_alt.xml" och "haarcascade_eye_tree_eyeglasses.xml" Om openCV är installerat på C -enheten, dessa filer kan hittas här: "C: / opencv / build / etc / haarcascades \" Behåll de dubbla snedstreck eller lägg till en där det bara finns en.
Steg 4.2: Lägg till tserial.h och Tserial.cpp Dessa 2 filer tar hand om kommunikationen mellan arduino och PC.4.2.1: Ladda ner tserial.h och Tserial.cpp.4.2.2: Placera dessa 2 filer i projektet katalog. I Solution explorer högerklickar du på projektet och väljer lägg till> befintligt objekt. I popup -fönstret väljer du de två filerna som ska läggas till.
Steg 4.2: Lägg till CXBOXController.h och CXBOXController.h Dessa filer kommer att ta på controllerns del av projektet 4.2.1: I Solution explorer högerklickar du på projektet och väljer lägg till> befintligt objekt. I popup -fönstret väljer du de två filerna som ska läggas till. C ++ - filerna konfigureras.
Steg 5: Arduino -koden
Steg 5.1: NewPing -bibliotek 5.1.1: Ladda ner ArduinoCode.ino och öppna det i arduino IDE.5.1.2: Gå till "Sketch> Include libary> Manage libaries".5.1.3: Sök i filterrutan till "NewPing" och installera detta bibliotek.
Steg 5.2: Pitches -bibliotek 5.2.1: Ladda ner pitches.txt och kopiera innehållet i pitches.txt.5.2.2: I Arduino IDE trycker du på CTRL+Shift+N för att öppna en ny flik 5.2.3: Klistra in koden från pitches.txt in på den nya fliken och spara den som "pitches.h". Arduino -koden har konfigurerats
Steg 6: 3D -utskrift och förfina utskriften
Steg 6.1: Skriv ut 3D -filen Öppna printfile.form och kontrollera om allt är ok. Om allt verkar ok, skicka utskriftsjobbet till skrivaren. Om något verkar eller om du vill ändra modell. Jag har inkluderat 3Ds Max -filer och OBJ -filer som du kan redigera.
Steg 6.2: Förfina modellen 6.2.1: När utskriften är klar, blötlägg de två modellerna i cirka 70% alkohol för att ta bort eventuellt tryck.6.2.2: Efter utskrift lägg modellen i solen i några timmar för att låta UV-ljuset härda modellen. Eller så kan du använda en UV-lampa för att härda modellen. Detta måste göras eftersom modellen blir klibbig.
6.2.3: Ta bort stödramen. Detta kan göras med en trådskärare. Eller något annat verktyg som kan skära plast 6.2.4: Vissa delar av 3D -utskriften kan fortfarande vara mjuka. Även om modellen har varit i mycket UV-ljus. De delar som kan vara mjuka är de delar som var nära stödramarna. Lägg modellen i mer sol av UV-ljus för att härda ut.6.2.5: Med en "dremel" kan du slipa bort alla små stötar som ramverket gör. Du kan försöka montera servon i ramen. Om de inte passar kan du använda Dremel för att slipa bort material. få det att passa.
Steg 7: Bygga lådan
Steg 7.1: Göra hål Jag har inkluderat en ritning av lådan i fråga. Planen är inte uppskalad, men alla storlekar är korrekta 7.1.1: Börja med att markera alla hål på rätt platser.7.1.2: Borra alla hål. De större hålen kan göras upp till storlek med en Dremel. 7.1.3: De fyrkantiga hålen kan också borras. Men för att göra dem fyrkantiga kan du passa Dremel med en liten fil och fila ut skarpa hörn 7.1.4: Försök att passa alla komponenter. om de passar är du redo att gå! 7.1.5: Se upp för träspån. Använd sandpapper för att bli av med dem.
Steg 7.2: Måla7.2.1: Börja med att slipa locket. Vi behöver färgen att klibba. 7.2.2: Ta en trasa och lägg lite terpentin på den för att rengöra lådan. 7.2.3: Nu kan du spruta måla lådan vilken färg du vill.
Steg 8: Avsluta
Nu måste vi sätta allt på plats och låta det göra sitt. Steg 8.1: Myntdetektorn 8.1.1: Limma ner några metallstöd för myntdetektorn.8.1.2: Löd varje tråd från kontakten till en stag.8.1.3: Testa anslutningen med ett mynt. Om det inte finns någon sluten krets, löd kablarna mer till kanten Steg 8.2: Protoboardet och RGB -lysdioderna 8.1: Placera protoboardet i det övre högra hörnet och tejpa fast det! 8.2.2: Anslut RGB -lysdioderna med trådarna 8.2.3: Anslut alla trådar från protoboardet till arduino. Step 8.3: Ekolodsensorn8.3.1: Placera sensorn i hålen vi gjorde för den. 8.3.28.3.2: Skär några han- och hontrådar på mitten och löd ihop hon- och hantrådarna för att skapa en enda kabel som vi kan använda för att ansluta sensorn till arduino.8.3.3: Anslut sensorn till arduino
Steg 8.4: Lasrar och kamera8.4.1: Limma den lilla ramen på kameran. Se till att den är upprätt.8.4.2: Lägg lasrarna i ramen också. Limma fast dem så att fienden inte stjäl dem!
Steg 8.5: Servon och 3D -utskrift 8.5.1: Limma servon i lockets hål 8.5.2: Ladda upp arduino -filen till arduino (detta gör att servon står i rätt läge) 8.5.3: Med servon följde en liten rund platå. Placera detta på servon i locket.8.5.4: Lägg det stora 3D -trycket på servon och platån och skruva ihop dem tätt med en skruv. 8.5.5: Placera det andra servot på det lilla 3D -utskriften och limma ihop dem. 8.5.6: Sätt kameran på plats så är allt klart!
Steg 9: Starta programmet
För att starta roboten öppnar du filen C ++ i Visual studio. Se till att du är i "felsökningsläge" Ladda upp arduino -filen till arduino. När det har laddats upp tryck på play i visual studio. Och roboten kommer att skjuta och samla alla mynt i världen !!!
Rekommenderad:
MVRK: s Mandalorian Tracking Fob: 8 steg (med bilder)
MVRK: s Mandalorian Tracking Fob: Det är den 4 maj, annars känd som Star Wars Day, en högtid som ligger oss varmt om hjärtat. I år bestämde vi oss för att fira det lite annorlunda än tidigare år. Med ett erfarenhetsmässigt teknik- och makerprojekt tog vi ett komplext tillvägagångssätt och vände
Raspberry Pi - Autonom Mars Rover med OpenCV Object Tracking: 7 steg (med bilder)
Raspberry Pi - Autonom Mars Rover med OpenCV Object Tracking: Drivs av en Raspberry Pi 3, Open CV -objektigenkänning, ultraljudssensorer och växlade DC -motorer. Denna rover kan spåra alla föremål den är utbildad för och röra sig på vilken terräng som helst
MOTORISERAD KAMERA SLIDER MED TRACKING SYSTEM (3D -tryckt): 7 steg (med bilder)
MOTORISERAD KAMERA -SLIDER Med TRACKING SYSTEM (3D Printed): I grund och botten kommer denna robot att flytta en kamera/smartphone på en skena och "spåra" ett objekt. Målobjektets plats är redan känd av roboten. Matematiken bakom detta spårningssystem är ganska enkel. Vi har skapat en simulering av spårningsprocessen
DIY Xbox One Controller uppladdningsbart batteripaket (projekt pågår): 3 steg (med bilder)
DIY Xbox One Controller uppladdningsbart batteripaket (projekt pågår): Innan vi dyker in i detaljerna skulle jag vilja ta upp titeln. Detta projekt pågår på grund av några fynd efter att ha testat den första designen. Med detta sagt håller jag på att göra om styrelsen för att klara några ändringar som jag kommer att gå över. Jag täckte e
Quadcopter With Nodemcu and Blynk (Without Flight Controller): 5 Steg (med bilder)
Quadcopter With Nodemcu and Blynk (Without Flight Controller): Hej killar.! Sökandet efter att göra drönare utan flygkontroll slutar här. Jag höll på att göra drönare för mitt projekt som innebär överlevnad. Jag surfar på nätet över natten för att få det att fungera utan flygkontrollant och det var väldigt missnöjt