- Nødvendige materialer:
- 3D-udskrivning af de krævede dele (valgfri):
- Skematisk og hardware:
- Opsætning af din Android-applikation:
- Programmering af din Arduino:
- Arbejder:
Har du nogensinde ønsket at opbygge en Face Tracking Robotic Arm eller Robot ved blot at bruge Arduino og ikke nogen anden programmering som OpenCV, visual basics C # etc? Så læs videre, i dette projekt vil vi implementere ansigtsgenkendelse ved at blande i kraften fra Arduino og Android. I dette projekt bevæger mobilkameraet sig sammen med dit ansigt ved hjælp af servoer. Fordelen ved at bruge Android-mobiltelefonen her er, at du ikke behøver at investere i et kameramodul, og hele billeddetekteringsarbejdet kan udføres i selve telefonen, du behøver ikke din Arduino tilsluttet din computer for at dette skal fungere. Her har vi brugt Bluetooth-modul med Arduino til at kommunikere med Mobile trådløst.
Android-applikationen, der blev brugt i dette projekt, blev oprettet ved hjælp af Processing Android, du kan enten installere applikationen direkte ved at downloade APK-filen (læs videre for link) eller sæt din programmeringshætte på og lav din egen mere tiltalende Android-applikation ved hjælp af den angivne behandlingskode yderligere i vejledningen. Lær mere om behandling ved at tjekke vores tidligere behandlingsprojekter.
Ved afslutningen af denne vejledning har du en Mini Tilt and Span Robotic Arm, der kan spore dit ansigt og bevæge sig sammen med det. Du kan bruge dette (med yderligere fremskridt) til at optage dine vlog-videoer eller endda tage en selfie med det bageste kamera på din mobiltelefon, da det placerer dit ansigt nøjagtigt i midten af din mobilskærm. Så!! Lyder interessant? Tjek demovideoen i slutningen af denne vejledning for at se den fungere. Lad os se, hvordan vi kan bygge en…
Jeg har forsøgt mit bedste for at få dette projekt til at fungere så simpelt som muligt, enhver med minimal viden om hardware eller kodning kan bruge disse retningslinjer til at få dette projekt til at fungere på ingen tid. Men når du først klarer det, foreslår jeg dig at komme bag koderne, så du virkelig kan vide, hvad der får denne ting til at fungere, og hvordan.
Nødvendige materialer:
- Arduino Nano
- Servomotor SG90 - 2Nr
- Android-telefon med anstændigt kamera
- HC-05 / HC-06 Bluetooth-modul
- Computer til programmering
- 3D-printer (valgfri)
- 9V batteri
3D-udskrivning af de krævede dele (valgfri):
For at panorere og vippe vores mobiltelefon har vi brug for nogle mekaniske strukturer som en mobilholder og et par servobeslag. Du kan bruge en pap til at fremstille en, da jeg har en 3D-printer, besluttede jeg at 3D udskrive disse dele.
3D-udskrivning er et fantastisk værktøj, der kan bidrage meget, når man bygger prototype-projekter eller eksperimenterer med nye mekaniske designs. Hvis du endnu ikke har opdaget fordelene ved en 3D-printer, eller hvordan den fungerer, kan du læse Begyndervejledningen til 3D-udskrivning.
Hvis du ejer eller har adgang til en 3D-printer, kan du bruge STL-filerne, som kan downloades herfra til direkte udskrivning og samling. Dog er det kun få dele som mobiltelefonholderen, der muligvis har brug for nogle ændringer baseret på dimensionerne på din telefon. Jeg har designet det til min MOTO G-mobiltelefon. Jeg har brugt en meget grundlæggende printer til at udskrive alle delene. Printeren er FABX v1 fra 3ding, som har en overkommelig pris med et udskriftsvolumen på 10 kubik cm. Den billige pris kommer med en afvejning med lav udskriftsopløsning og ingen SD-kort eller genoptagelsesfunktion. Jeg bruger softwaren Cura til at udskrive STL-filerne. De indstillinger, som jeg brugte til at udskrive materialerne, er angivet nedenfor, du kan bruge det samme eller ændre dem baseret på din printer.
Når du har udskrevet alle de krævede materialer, kan du sikre dem på plads ved hjælp af skruer og noget varmt lim. Når din samling er afsluttet, skal den se sådan ud nedenfor.
Skematisk og hardware:
Kredsløbet til dette Face Tracking på Smart Phone- projektet vises på billedet nedenfor:
Kredsløbet består af to servomotorer, hvoraf den ene bruges til at flytte mobiltelefonen til venstre / højre, og den anden bruges til at vippe mobiltelefonen op / ned. Retningen, i hvilken servoen skal bevæge sig, vil blive instrueret af Arduino Nano, som selv får information fra Bluetooth-modulet (HC-05). Hele kredsløbet er drevet af et 9V batteri.
Dette kredsløb kan nemt tilsluttes på dit brødbræt, eller du kan også lodde disse på et lille Perf-kort som jeg har gjort her.
Opsætning af din Android-applikation:
Som jeg sagde tidligere, er den vigtigste hjerne, der arbejder bag dette projekt, denne Android-applikation. Denne Android-applikation blev udviklet ved hjælp af Processing Android. Du kan installere denne applikation direkte på din mobiltelefon og starte den ved at følge nedenstående trin.
- Download APK-filen herfra.
- Tænd for kredsløbet vist ovenfor.
- I dine telefonindstillinger skal du søge efter Bluetooth-modul med navnet “HC-05”
- Hvis du har navngivet det noget andet end “HC-05”, skal du ændre det tilbage til HC-05, da først da fungerer applikationen.
- Par med dit Bluetooth-modul med adgangskoden “1234” eller “0000”.
- Start nu applikationen i stående tilstand. Du skal se din kameraskærm og også "Forbundet til: HC-05" øverst på skærmen.
- Prøv at flytte dit kamera over et ansigt, og en grøn boks skal vises oven på det, og dets position vises også i øverste venstre hjørne af din skærm som vist nedenfor.
Du kan tage dette Arduino Face Tracking-projekt til næste niveau ved at bringe mange fremskridt, som du ikke behøver at kode din egen Android-applikation til. Oprettelse af en Android-applikation lyder måske svært, men stol på mig ved hjælp af Processing, du kan lære det på ingen tid. Den komplette behandlingskode, der bruges til at opbygge denne applikation, kan downloades her. Du er fri til at gøre fremskridt med din egen kreativitet. Tjek nedenstående projekter for at lære mere om behandling:
- Virtual Reality ved hjælp af Arduino og Processing
- Ping Pong-spil ved hjælp af Arduino
- Smart telefonstyret FM-radio ved hjælp af behandling.
- Arduino Radar System ved hjælp af Processing og Ultralydssensor
Programmering af din Arduino:
Android-applikationen registrerer ansigtet og dets position på skærmen; det vil derefter beslutte, hvilken retning det skal bevæge sig ud fra ansigtets position, så ansigtet kommer til midten af skærmen. Denne retning sendes derefter til Arduino via Bluetooth-modul.
Arduino-programmet til dette projekt er ret simpelt, vi skal bare styre retningen af de to servomotorer baseret på de værdier, der modtages fra Bluetooth-modulet. Den komplette kode kan findes i slutningen af denne tutorial, jeg har også forklaret nogle få vigtige linjer nedenfor.
Under kodelinjen oprettes en seriel forbindelse med ben D12 som RX og D11 som TX. Derfor skal stiften D12 forbindes til TX på BT-modulet og stiften D11 til RX på BT-modulet.
SoftwareSerial cam_BT (12, 11); // RX, TX
Derefter har vi initialiseret Bluetooth-modulet med en baudhastighed på 9600. Sørg for, at dit modul også fungerer på den samme baudhastighed. Ellers ændre det i overensstemmelse hermed.
cam_BT.begin (9600); // start Bluetooth-kommunikationen ved 9600 baudrate cam_BT.println ("Klar til at tage kommandoer");
Nedenfor læses det, der kommer ind gennem Bluetooth-modulet. Dataene gemmes også i variablen “BluetoothData”.
hvis (cam_BT.available ()) // Læs hvad der kommer ind via Bluetooth {BluetoothData = cam_BT.read (); Serial.print ("Indgående fra BT:"); Serial.println (BluetoothData); }
Baseret på data modtaget fra Bluetooth styres motorens retning. For at dreje en motor til venstre mindskes motoren med en værdi på 2 fra sin tidligere position. Du kan øge denne værdi 2 til 4 eller 6, hvis du har brug for armen til at bevæge sig hurtigere. Men det kan skabe nogle ryk, der gør kameraet ustabilt.
hvis (BluetoothData == 49) // Drej til venstre {pos1 + = 2; servo1.write (pos1);} if (BluetoothData == 50) // Drej til højre {pos1- = 2; servo1.write (pos1);} hvis (BluetoothData == 51) // Drej op {pos2- = 2; servo2.write (pos2);} hvis (BluetoothData == 52) // Drej ned {pos2 + = 2; servo2.write (pos2);}
Arbejder:
Når vi er klar med vores hardware, kode og Android-applikation, er det tid til nogle handlinger. Du skal blot tænde din Arduino og åbne Android-applikationen. Applikationen opretter automatisk forbindelse til HC-05 Bluetooth-modulet (skal have navnet HC-05) og venter på, at et ansigt registreres. Du skal blot placere telefonen i vores mobile holder og sidde foran den. Du skal bemærke, at dine servomotorer bevæger din telefon, så dit ansigt placeres i midten af skærmen. Flyt dig nu inden for kameraets rækkevidde, og din mobiltelefon følger dine bevægelser. Du kan også prøve det ved at placere og flytte et hvilket som helst billede.
Den komplette bearbejdning af projektet vises i videoen nedenfor. Du kan bygge meget