- Material som krävs:
- 3D-utskrift av nödvändiga delar (valfritt):
- Schematisk och hårdvara:
- Ställa in din Android-applikation:
- Programmering av din Arduino:
- Arbetssätt:
Har du någonsin velat bygga en Face Tracking Robotic Arm eller Robot genom att helt enkelt använda Arduino och inte någon annan programmering som OpenCV, visuella grunder C # etc? Läs sedan vidare, i det här projektet ska vi implementera ansiktsdetektering genom att blanda i kraften från Arduino och Android. I det här projektet rör sig mobilkameran med ditt ansikte med hjälp av servor. Fördelen med att använda Android-mobiltelefonen här är att du inte behöver investera i en kameramodul och hela bilddetekteringsarbetet kan göras i själva telefonen, du behöver inte din Arduino ansluten till din dator för att detta ska fungera. Här har vi använt Bluetooth-modul med Arduino för att kommunicera trådlöst med Mobile.
Android-applikationen som användes i detta projekt skapades med Processing Android, du kan antingen installera applikationen direkt genom att ladda ner APK-filen (läs vidare för länk) eller sätt på ditt programmeringslock och göra din egen mer tilltalande Android-applikation med den angivna bearbetningskoden vidare i handledningen. Läs mer om bearbetning genom att kontrollera våra tidigare bearbetningsprojekt.
I slutet av denna handledning kommer du att ha en Mini Tilt och Span Robotic Arm som kan spåra ditt ansikte och gå vidare med det. Du kan använda detta (med ytterligare framsteg) för att spela in dina vloggvideor eller till och med ta en selfie med den bakre kameran på din mobiltelefon eftersom den placerar ditt ansikte exakt i mitten av din mobilskärm. Så!! Låter intressant? Kolla demonstrationsvideon i slutet av denna handledning för att se den fungera. Låt oss se hur vi kan bygga en…
Jag har försökt mitt bästa för att få det här projektet att fungera så enkelt som möjligt. Alla med minimalkunskap om hårdvara eller kodning kan använda dessa riktlinjer för att få detta projekt att fungera på nolltid. Men när du väl är klar föreslår jag att du kommer bakom koderna så att du verkligen kan veta vad som får den här saken att fungera och hur.
Material som krävs:
- Arduino Nano
- Servomotor SG90 - 2Nr
- Android-telefon med anständig kamera
- HC-05 / HC-06 Bluetooth-modul
- Dator för programmering
- 3D-skrivare (tillval)
- 9V batteri
3D-utskrift av nödvändiga delar (valfritt):
För att panorera och luta vår mobiltelefon behöver vi några mekaniska strukturer som en mobilhållare och några servofästen. Du kan använda en kartong för att göra en, eftersom jag har en 3D-skrivare bestämde jag mig för att 3D-skriva ut dessa delar.
3D-utskrift är ett fantastiskt verktyg som kan bidra mycket när man bygger prototypprojekt eller experimenterar med nya mekaniska mönster. Om du ännu inte har upptäckt fördelarna med en 3D-skrivare eller hur den fungerar kan du läsa Nybörjarguiden för 3D-utskrift.
Om du äger eller har tillgång till en 3D-skrivare kan du använda STL-filerna som kan hämtas härifrån för att direkt skriva ut och montera dem. Men få delar som mobiltelefonhållaren kan behöva ändras baserat på telefonens mått. Jag har designat den för min MOTO G-mobiltelefon. Jag har använt en mycket grundläggande skrivare av mig för att skriva ut alla delar. Skrivaren är FABX v1 från 3ding som har ett överkomligt pris med en utskriftsvolym på 10 kubik cm. Det billiga priset kommer med en avvägning med låg utskriftsupplösning och inget SD-kort eller återupptagningsfunktion. Jag använder programvara som heter Cura för att skriva ut STL-filerna. Inställningarna som jag använde för att skriva ut materialet ges nedan. Du kan använda samma eller ändra dem baserat på din skrivare.
När du har skrivit ut alla nödvändiga material kan du säkra dem på plats med hjälp av skruvar och lite hett lim. När monteringen är klar bör det se ut så här nedan.
Schematisk och hårdvara:
Kretsen för detta ansiktsspårning på smarttelefonprojektet visas i bilden nedan:
Kretsen består av två servomotorer, varav den ena används för att flytta mobiltelefonen åt vänster / höger och den andra för att luta mobiltelefonen upp / ner. Riktningen i vilken servon måste röra sig kommer att instrueras av Arduino Nano som i sig själv får information från Bluetooth (HC-05) -modulen. Hela kretsen drivs av ett 9V batteri.
Denna krets kan enkelt anslutas till din brödbräda eller så kan du också lödda dessa på ett litet Perf-kort som jag har gjort här.
Ställa in din Android-applikation:
Som jag sa tidigare är den här Android-applikationen den viktigaste hjärnan som arbetar bakom detta projekt. Denna Android-applikation utvecklades med Processing Android. Du kan installera applikationen direkt på din mobiltelefon och starta den genom att följa stegen nedan.
- Ladda ner APK-filen härifrån.
- Slå på kretsen som visas ovan.
- I dina telefoninställningar söker du efter Bluetooth-modul med namnet “HC-05”
- Om du har namngett det något annat än “HC-05” byter du tillbaka det till HC-05 eftersom först då kommer applikationen att fungera.
- Para ihop med din Bluetooth-modul med lösenordet “1234” eller “0000”.
- Starta nu applikationen i stående läge. Du bör se kameraskärmen och även "Ansluten till: HC-05" högst upp på skärmen.
- Försök att flytta kameran över ett ansikte och en grön ruta ska visas ovanpå den och dess position visas också i det övre vänstra hörnet på skärmen som visas nedan.
Du kan ta detta Arduino Face Tracking Project till nästa nivå genom att ta med många framsteg som du inte behöver koda din egen Android-applikation för. Att skapa en Android-applikation kan låta svårt men lita på mig med hjälp av Processing så kan du lära dig det på nolltid. Den fullständiga bearbetningskoden som används för att bygga denna applikation kan laddas ner här. Du är fri att göra några framsteg med din egen kreativitet. Kolla nedan projekt för att lära dig mer om bearbetning:
- Virtual Reality med Arduino och Processing
- Ping Pong Game med Arduino
- Smart telefonstyrd FM-radio med bearbetning.
- Arduino Radar System med Processing and Ultrasonic Sensor
Programmering av din Arduino:
Android-applikationen kommer att upptäcka ansiktet och dess position på skärmen; den bestämmer sedan vilken riktning den ska röra sig baserat på ansiktspositionen så att ansiktet kommer till mitten av skärmen. Denna riktning skickas sedan till Arduino via Bluetooth-modul.
Arduino-programmet för detta projekt är ganska enkelt, vi måste bara styra riktningen på de två servomotorerna baserat på värdena som tas emot från Bluetooth-modulen. Den fullständiga koden finns i slutet av denna handledning, jag har också förklarat några viktiga rader nedan.
Nedanför kodraden upprättas en seriell anslutning med stift D12 som RX och D11 som TX. Därför måste stiftet D12 vara anslutet till BT-modulens TX och stiftet D11 till BT-modulens RX.
SoftwareSerial cam_BT (12, 11); // RX, TX
Sedan har vi initierat Bluetooth-modulen med en baudhastighet på 9600. Se till att din modul också fungerar på samma baudhastighet. Annars ändra det därefter.
cam_BT.begin (9600); // starta Bluetooth-kommunikationen vid 9600 baudrate cam_BT.println ("Ready to take commands");
Nedre raden läser vad som kommer in via Bluetooth-modulen. Uppgifterna sparas också i variabeln "BluetoothData".
if (cam_BT.available ()) // Läs vad som kommer in via Bluetooth {BluetoothData = cam_BT.read (); Serial.print ("Inkommande från BT:"); Serial.println (BluetoothData); }
Baserat på data som mottagits från Bluetooth styrs motorns riktning. För att vrida en motor åt vänster minskar motorn med värdet 2 från sin tidigare position. Du kan öka detta värde 2 till 4 eller 6 om du behöver armen för att röra sig snabbare. Men det kan skapa några ryck som gör kameran instabil.
if (BluetoothData == 49) // Sväng vänster {pos1 + = 2; servo1.write (pos1);} if (BluetoothData == 50) // Sväng höger {pos1- = 2; servo1.write (pos1);} if (BluetoothData == 51) // Vänd upp {pos2- = 2; servo2.write (pos2);} if (BluetoothData == 52) // Vänd ner {pos2 + = 2; servo2.write (pos2);}
Arbetssätt:
När vi är redo med vår hårdvara, kod och Android-applikation är det dags för lite åtgärd. Helt enkelt driva din Arduino och öppna Android-applikationen. Applikationen kommer automatiskt att ansluta till Bluetooth-modulen HC-05 (måste ha namnet HC-05) och väntar på att ett ansikte ska upptäckas. Placera bara telefonen i vår mobilhållare och sitta framför den. Du bör märka att dina servomotorer flyttar telefonen så att ditt ansikte kommer att placeras i mitten av skärmen. Rör dig nu inom kamerans räckvidd och din mobiltelefon följer dina rörelser. Du kan också prova det genom att placera och flytta valfri bild.
Hela arbetet med projektet visas i videon nedan. Du kan bygga mycket