Innehållsförteckning:

Begging Robot With Facial Tracking and Controll av Xbox Controller - Arduino: 9 steg (med bilder)
Begging Robot With Facial Tracking and Controll av Xbox Controller - Arduino: 9 steg (med bilder)

Video: Begging Robot With Facial Tracking and Controll av Xbox Controller - Arduino: 9 steg (med bilder)

Video: Begging Robot With Facial Tracking and Controll av Xbox Controller - Arduino: 9 steg (med bilder)
Video: Amazing arduino project 2024, November
Anonim
Image
Image
Installera och konfigurera OpenCV och C ++
Installera och konfigurera OpenCV och C ++

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 ++

Installera och konfigurera OpenCV och C ++
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

Konfigurera Arduino
Konfigurera Arduino
Konfigurera Arduino
Konfigurera Arduino
Konfigurera Arduino
Konfigurera Arduino
Konfigurera Arduino
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

3D -utskrift och förfina utskriften
3D -utskrift och förfina utskriften
3D -utskrift och förfina utskriften
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

Att bygga lådan
Att bygga lådan
Att bygga lådan
Att 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

Avslutar
Avslutar
Avslutar
Avslutar
Avslutar
Avslutar

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: