- Potrebni materijali:
- 3D ispis potrebnih dijelova (izborno):
- Shema i hardver:
- Postavljanje Android aplikacije:
- Programiranje vašeg Arduina:
- Radno:
Jeste li ikad poželjeli izraditi robotsku ruku ili robota za praćenje lica jednostavnim korištenjem Arduina, a ne bilo kojeg drugog programa poput OpenCV-a, vizualnih osnova C # itd.? Zatim pročitajte dalje, u ovom ćemo projektu implementirati otkrivanje lica spajanjem snage Arduina i Androida. U ovom će se projektu mobilna kamera pomicati zajedno s vašim licem uz pomoć servo upravljača. Prednost korištenja Android mobilnog telefona ovdje je u tome što ne trebate ulagati u modul kamere, a cijeli posao otkrivanja slika može se obaviti na samom telefonu, ne treba vam Arduino povezan s računalom da bi to moglo funkcionirati. Ovdje smo koristili Bluetooth modul s Arduinom za bežičnu komunikaciju s Mobileom.
Android aplikacija korištena u ovom projektu stvorena je pomoću Obrada Androida, možete je izravno instalirati preuzimanjem datoteke APK (za daljnju vezu pročitajte dalje) ili staviti svoju programsku kapu i napraviti svoju privlačniju Android aplikaciju pomoću datog koda za obradu dalje u Vodiču. Saznajte više o obradi provjerom naših prethodnih projekata obrade.
Na kraju ovog vodiča imat ćete Mini Tilt and Span Robotic Arm koji može pratiti vaše lice i kretati se zajedno s njim. To možete koristiti (s daljnjim napretkom) za snimanje vlog videozapisa ili čak snimanje selfieja sa stražnjom kamerom mobitela jer vaše lice postavlja točno u središte zaslona mobitela. Tako!! Zvuči zanimljivo? Provjerite Demo video na kraju ovog vodiča kako biste provjerili radi li. Pogledajmo kako ga možemo napraviti…
Trudio sam se kako bih učinio ovaj projekt što jednostavnijim, svatko tko ima minimalno znanje o hardveru ili kodiranju može upotrijebiti ove smjernice kako bi ovaj projekt u kratkom roku uspio. Međutim, nakon što to napravite, predlažem vam da zaostanete za kodovima kako biste zaista mogli znati zbog čega ova stvar funkcionira i kako.
![]()
Potrebni materijali:
- Arduino Nano
- Servo motor SG90 - 2Br
- Android telefon s pristojnom kamerom
- Bluetooth modul HC-05 / HC-06
- Računalo za programiranje
- 3D pisač (nije obavezno)
- 9V baterija
3D ispis potrebnih dijelova (izborno):
Da bismo pomicali i naginjali mobitel, potrebne su nam neke mehaničke strukture poput držača za mobitel i nekoliko servo nosača. Za izradu možete koristiti karton, budući da imam 3D printer, odlučio sam 3D dijelove ispisati.
3D ispis je nevjerojatan alat koji može puno doprinijeti prilikom izrade prototipskih projekata ili eksperimentiranja s novim mehaničkim dizajnom. Ako još niste otkrili prednosti 3D printera ili kako on funkcionira, možete pročitati Vodič za početnike za 3D ispis.
Ako ste vlasnik ili imate pristup 3D printeru, tada možete koristiti STL datoteke koje možete preuzeti ovdje kako biste ih izravno ispisali i sastavili. Međutim, nekoliko dijelova poput držača za mobilni telefon možda će trebati neke preinake na temelju dimenzija vašeg telefona. Dizajnirao sam ga za svoj MOTO G mobitel. Za ispis svih dijelova koristio sam vrlo osnovni printer. Pisač je FABX v1 tvrtke 3ding koji dolazi po pristupačnoj cijeni s obujmom ispisa od 10 kubičnih cm. Povoljna cijena dolazi uz kompromis s niskom razlučivošću ispisa i bez SD kartice ili funkcije nastavka ispisa. Za ispis STL datoteka koristim softver nazvan Cura. Postavke koje sam koristio za ispis materijala dane su u nastavku. Možete ih koristiti iste ili ih promijeniti na temelju vašeg pisača.
![]()
Nakon što isprintate sve potrebne materijale, možete ih učvrstiti na mjestu pomoću vijaka i vrućeg ljepila. Nakon završetka montaže to bi trebalo izgledati otprilike ovako u nastavku.
![]()
![]()
![]()
![]()
Shema i hardver:
Krug za ovaj projekt praćenja lica na pametnom telefonu prikazan je na donjoj slici:
![]()
Krug se sastoji od dva servo motora, od kojih se jedan koristi za pomicanje mobitela ulijevo / udesno, a drugi za naginjanje mobitela gore / dolje. Smjer u kojem se servo mora kretati bit će upućen od strane Arduino Nano-a koji sam dobiva informacije s Bluetooth (HC-05) modula. Čitav krug napaja 9V baterija.
Ovaj se krug može lako povezati na vašu ploču za kruh ili ih možete lemiti na malu Perf ploču kao što sam to učinio ovdje.
Postavljanje Android aplikacije:
Kao što sam već rekao, glavni mozak koji radi iza ovog projekta je ova Android aplikacija. Ova android aplikacija razvijena je pomoću Androida za obradu. Ovu aplikaciju možete izravno instalirati na svoj mobilni telefon i pokrenuti je slijedeći korake u nastavku.
- Preuzmite APK datoteku odavde.
- Uključite krug prikazan gore.
- U postavkama telefona potražite Bluetooth modul pod nazivom „HC-05“
- Ako ste ga imenovali drugačije nego "HC-05", vratite ga na HC-05 jer će samo tada aplikacija raditi.
- Uparite svoj Bluetooth modul s lozinkom "1234" ili "0000".
- Sada pokrenite aplikaciju u portretnom načinu. Trebali biste vidjeti zaslon svoje kamere, a na vrhu zaslona i “Connected to: HC-05”.
- Pokušajte premjestiti kameru preko lica, a na njoj bi se trebao pojaviti zeleni okvir, a njegov će se položaj također prikazivati u gornjem lijevom kutu zaslona, kao što je prikazano u nastavku.
![]()
Ovaj Arduino Face Tracking Project možete podići na sljedeću razinu unoseći mnoštvo unapređenja za koja nećete morati kodirati vlastiti Android program. Stvaranje Android aplikacije možda zvuči teško, ali vjerujte mi uz pomoć Obrade koju možete naučiti u kratkom vremenu. Kompletni kod za obradu koji se koristi za izradu ove aplikacije možete preuzeti ovdje. Slobodni ste napredovati vlastitom kreativnošću. U nastavku pogledajte projekte kako biste saznali više o obradi:
- Virtualna stvarnost pomoću Arduina i obrade
- Ping Pong igra koristeći Arduino
- FM radio kontroliran pametnim telefonom pomoću obrade.
- Arduino radarski sustav koji koristi procesor i ultrazvučni senzor
Programiranje vašeg Arduina:
Android aplikacija će otkriti lice i njegov položaj na zaslonu; tada će odlučiti u kojem se smjeru kreće na temelju položaja lica tako da lice dođe u središte zaslona. Taj se smjer zatim šalje Arduinu putem Bluetooth modula.
Program Arduino za ovaj projekt prilično je jednostavan, samo moramo kontrolirati smjer rada dva servo motora na temelju vrijednosti primljenih od Bluetooth modula. Kompletan kod može se naći na kraju ovog vodiča, Također sam objasnila nekoliko važnih redaka ispod.
Ispod retka koda uspostavlja serijsku vezu s pinovima D12 kao RX i D11 kao TX. Stoga pin D12 mora biti spojen na TX BT modula, a pin D11 na RX BT modula.
SoftwareSerial cam_BT (12, 11); // RX, TX
Tada smo inicijalizirali Bluetooth modul brzinom prijenosa od 9600. Obavezno radite i da modul radi na istoj brzini prijenosa. Inače ga promijenite u skladu s tim.
cam_BT.begin (9600); // započnite Bluetooth komunikaciju na 9600 baudrate cam_BT.println ("Spremni za primanje naredbi");
Ispod retka stoji što dolazi putem Bluetooth modula. Također se podaci spremaju u varijablu "BluetoothData".
if (cam_BT.available ()) // Pročitajte što dolazi putem Bluetootha {BluetoothData = cam_BT.read (); Serial.print ("Incoming from BT:"); Serial.println (BluetoothData); }
Na temelju podataka primljenih s Bluetootha kontrolira se smjer motora. Za okretanje motora ulijevo motor se smanjuje za vrijednost 2 od njegovog prethodnog položaja. Ovu vrijednost možete povećati 2 do 4 ili 6 ako vam je potrebna ruka da se brže pomiče. Ali, to bi moglo stvoriti trzaje zbog kojih bi fotoaparat bio nestabilan.
if (BluetoothData == 49) // Skrenite ulijevo {pos1 + = 2; servo1.write (pos1);} if (BluetoothData == 50) // Skrenite udesno {pos1- = 2; servo1.write (pos1);} if (BluetoothData == 51) // Pojačaj {pos2- = 2; servo2.write (pos2);} if (BluetoothData == 52) // Odbij {pos2 + = 2; servo2.write (pos2);}
Radno:
Kad smo spremni s našim hardverom, kodom i aplikacijom Android, vrijeme je za neke akcije. Jednostavno napajajte svoj Arduino i otvorite android aplikaciju. Aplikacija će se automatski povezati s HC-05 (mora se zvati HC-05) Bluetooth modulom i pričekat će otkrivanje lica. Jednostavno stavite telefon u držač za mobitel i sjednite ispred njega. Trebali biste primijetiti kako vaši servo motori pomiču telefon tako da vam se lice postavi u središte zaslona. Sada se krećite unutar dometa kamere i vaš će mobitel pratiti vaša kretanja. Možete ga isprobati i postavljanjem i pomicanjem bilo koje slike.
![]()
Kompletni rad projekta prikazan je u video ispod. Možete puno graditi
