- Nødvendige materialer:
- 3D-utskrift av de nødvendige delene (valgfritt):
- Skjematisk og maskinvare:
- Sette opp Android-applikasjonen din:
- Programmering av Arduino:
- Jobber:
Har du noen gang ønsket å bygge en Face Tracking Robotic Arm eller Robot ved å bare bruke Arduino og ikke noen annen programmering som OpenCV, visuelle grunnleggende C # etc? Les så videre, i dette prosjektet skal vi implementere ansiktsgjenkjenning ved å blande i kraften til Arduino og Android. I dette prosjektet vil mobilkameraet bevege seg sammen med ansiktet ditt ved hjelp av servoer. Fordelen med å bruke Android-mobiltelefonen her er at du ikke trenger å investere i en kameramodul, og hele bildedeteksjonsarbeidet kan gjøres i selve telefonen, du trenger ikke at Arduino er koblet til datamaskinen din for at dette skal fungere. Her har vi brukt Bluetooth-modul med Arduino for å kommunisere med Mobile trådløst.
Android-applikasjonen som ble brukt i dette prosjektet ble opprettet ved hjelp av Processing Android, du kan enten installere applikasjonen direkte ved å laste ned APK-filen (les videre for lenke) eller sette på programmeringshetten og lage din egen mer tiltalende Android-applikasjon ved hjelp av prosesseringskoden gitt videre i veiledningen. Lær mer om behandling ved å sjekke våre tidligere behandlingsprosjekter.
På slutten av denne opplæringen vil du ha en Mini Tilt og Span Robotic Arm som kan spore ansiktet ditt og bevege seg sammen med det. Du kan bruke dette (med videreutvikling) til å ta opp vlogvideoene dine, eller til og med ta en selfie med bakkameraet på mobiltelefonen, siden den plasserer ansiktet ditt nøyaktig midt på mobilskjermen. Så!! Høres interessant ut? Sjekk demonstrasjonsvideoen på slutten av denne opplæringen for å se at den fungerer. La oss se hvordan vi kan bygge en…
Jeg har prøvd mitt beste for å få dette prosjektet til å fungere så enkelt som mulig. Alle med minimum kunnskap om maskinvare eller koding kan bruke disse retningslinjene for å få dette prosjektet til å fungere på kort tid. Men når du har klart det, foreslår jeg at du kommer bak kodene, slik at du virkelig kan vite hva som får denne tingen til å fungere og hvordan.
Nødvendige materialer:
- Arduino Nano
- Servomotor SG90 - 2Nr
- Android-telefon med anstendig kamera
- HC-05 / HC-06 Bluetooth-modul
- Datamaskin for programmering
- 3D-skriver (valgfritt)
- 9V batteri
3D-utskrift av de nødvendige delene (valgfritt):
For å panorere og vippe mobiltelefonen vår trenger vi noen mekaniske strukturer som en mobilholder og noen få servofester. Du kan bruke papp til å lage en, siden jeg har en 3D-skriver, bestemte jeg meg for å 3D-skrive ut disse delene.
3D-utskrift er et fantastisk verktøy som kan bidra mye når man bygger prototypeprosjekter eller eksperimenterer med nye mekaniske design. Hvis du ennå ikke har oppdaget fordelene med en 3D-skriver eller hvordan den fungerer, kan du lese Nybegynnerguiden til 3D-utskrift.
Hvis du eier eller har tilgang til en 3D-skriver, kan du bruke STL-filene som kan lastes ned herfra for direkte utskrift og montering. Imidlertid kan få deler som mobiltelefonholderen trenge noen endringer basert på telefonens dimensjoner. Jeg har designet den til MOTO G-mobiltelefonen min. Jeg har brukt en veldig grunnleggende skriver av meg for å skrive ut alle delene. Skriveren er FABX v1 fra 3ding, som har en overkommelig pris med et utskriftsvolum på 10 kubikk cm. Den billige prisen kommer med en kompromiss med lav utskriftsoppløsning og ingen SD-kort eller funksjon for gjenopptak av utskrift. Jeg bruker programvare som heter Cura for å skrive ut STL-filene. Innstillingene jeg brukte for å skrive ut materialene er gitt nedenfor. Du kan bruke det samme eller endre dem basert på skriveren.
Når du har skrevet ut alt nødvendig materiale, kan du sikre dem på plass ved å bruke skruer og litt varmt lim. Når monteringen er fullført, skal den se ut slik nedenfor.
Skjematisk og maskinvare:
Kretsløpet for dette ansiktssporing på smarttelefonprosjektet er vist på bildet nedenfor:
Kretsen består av to servomotorer, hvorav den ene brukes til å bevege mobiltelefonen mot venstre / høyre og den andre til å vippe mobiltelefonen opp / ned. Retningen servoen må bevege seg på vil bli instruert av Arduino Nano som i seg selv får informasjon fra Bluetooth (HC-05) -modulen. Hele kretsen drives av et 9V batteri.
Denne kretsen kan enkelt kobles til brødbrettet ditt, eller du kan også lodde disse på et lite Perf-kort som jeg har gjort her.
Sette opp Android-applikasjonen din:
Som jeg sa tidligere, er denne Android-applikasjonen den viktigste hjernen som jobber bak dette prosjektet. Denne android applikasjonen ble utviklet ved hjelp av Processing Android. Du kan installere dette programmet direkte på mobiltelefonen din og starte det ved å følge trinnene nedenfor.
- Last ned APK-filen herfra.
- Slå på kretsen vist ovenfor.
- I telefoninnstillingene dine søker du etter Bluetooth-modul med navnet “HC-05”
- Hvis du har kalt det noe annet enn “HC-05”, bytt det tilbake til HC-05 siden bare da vil applikasjonen fungere.
- Par med Bluetooth-modulen din med passordet “1234” eller “0000”.
- Nå, start applikasjonen i stående modus. Du bør se kameraskjermen og også "Connected to: HC-05" på toppen av skjermen.
- Prøv å flytte kameraet over et ansikt, og en grønn rute skal vises på toppen av det, og dets posisjon vil også vises øverst til venstre på skjermen som vist nedenfor.
Du kan ta dette Arduino Face Tracking Project til neste nivå ved å bringe inn mange fremskritt som du ikke trenger å kode din egen Android-applikasjon for. Å lage en Android-applikasjon kan høres vanskelig ut, men stol på meg ved hjelp av Processing, du kan lære det på kort tid. Den komplette behandlingskoden som brukes til å bygge denne applikasjonen, kan lastes ned her. Du står fritt til å gjøre fremskritt med din egen kreativitet. Sjekk prosjektene nedenfor for å lære mer om behandling:
- Virtual Reality ved hjelp av Arduino og Processing
- Ping Pong-spill med Arduino
- Smarttelefonkontrollert FM-radio ved bruk av prosessering.
- Arduino Radar System ved hjelp av prosessering og ultralydssensor
Programmering av Arduino:
Android-applikasjonen vil oppdage ansiktet og dets posisjon på skjermen; den bestemmer deretter hvilken retning den skal bevege seg basert på ansiktsposisjonen slik at ansiktet kommer til midten av skjermen. Denne retningen sendes deretter til Arduino via Bluetooth-modul.
Arduino-programmet for dette prosjektet er ganske enkelt, vi må bare kontrollere retningen til de to servomotorene basert på verdiene mottatt fra Bluetooth-modulen. Den komplette koden finner du på slutten av denne opplæringen, jeg har også forklart noen viktige linjer nedenfor.
Under kodelinjen etableres en seriell forbindelse med pinner D12 som RX og D11 som TX. Derfor må pinnen D12 være koblet til TX på BT-modulen og pinnen D11 til RX på BT-modulen.
SoftwareSerial cam_BT (12, 11); // RX, TX
Så har vi initialisert Bluetooth-modulen med en baudrate på 9600. Sørg for at modulen også fungerer på samme baudrate. Ellers endre det deretter.
cam_BT.begin (9600); // start Bluetooth-kommunikasjonen ved 9600 baudrate cam_BT.println ("Klar til å ta kommandoer");
Under linjen leser det som kommer inn via Bluetooth-modulen. Dataene lagres også i variabelen “BluetoothData”.
if (cam_BT.available ()) // Les hva som kommer inn via Bluetooth {BluetoothData = cam_BT.read (); Serial.print ("Inngående fra BT:"); Serial.println (BluetoothData); }
Basert på dataene mottatt fra Bluetooth styres motorretningen. For å vri en motor til venstre reduseres motoren med verdien 2 fra forrige posisjon. Du kan øke denne verdien 2 til 4 eller 6 hvis du trenger at armen skal bevege seg raskere. Men det kan skape noen rykker som gjør kameraet ustabilt.
hvis (BluetoothData == 49) // Sving til venstre {pos1 + = 2; servo1.write (pos1);} if (BluetoothData == 50) // Sving til høyre {pos1- = 2; servo1.write (pos1);} if (BluetoothData == 51) // Skru opp {pos2- = 2; servo2.write (pos2);} if (BluetoothData == 52) // Skru ned {pos2 + = 2; servo2.write (pos2);}
Jobber:
Når vi er klare med maskinvaren, koden og Android-applikasjonen, er det tid for litt handling. Bare slå på Arduino og åpne Android-applikasjonen. Applikasjonen kobles automatisk til HC-05 Bluetooth-modulen (må ha navnet HC-05) og venter på at et ansikt skal oppdages. Bare plasser telefonen i mobilholderen og sett deg foran den. Du bør legge merke til at servomotorene beveger telefonen slik at ansiktet ditt blir plassert midt på skjermen. Beveg deg nå innenfor kameraets rekkevidde, og mobiltelefonen din vil følge bevegelsene dine. Du kan også prøve det ved å plassere og flytte et hvilket som helst bilde.
Fullstendig bearbeiding av prosjektet er vist i videoen nedenfor. Du kan bygge mye