- Materiale necesare:
- Imprimarea 3D a pieselor necesare (opțional):
- Schematică și hardware:
- Configurarea aplicației Android:
- Programarea Arduino:
- Lucru:
Ați dorit vreodată să construiți un braț robotizat de urmărire a feței sau un robot prin simpla utilizare a Arduino și nu orice altă programare precum OpenCV, elemente de bază vizuale C # etc? Apoi citiți în continuare, în acest proiect vom implementa detectarea feței prin amestecarea puterii Arduino și Android. În acest proiect, camera mobilă se va deplasa împreună cu fața dvs. cu ajutorul servomotoarelor. Avantajul utilizării telefonului mobil Android aici este că nu trebuie să investiți pe un modul de cameră și toată munca de detectare a imaginii poate fi făcută chiar în telefon, nu aveți nevoie de dispozitivul Arduino conectat la computer pentru ca acest lucru să funcționeze. Aici am folosit modulul Bluetooth cu Arduino pentru a comunica fără fir cu dispozitivul mobil.
Aplicația Android utilizată în acest proiect a fost creată folosind Procesarea Android, puteți instala direct aplicația descărcând fișierul APK (citiți mai departe pentru link) sau puneți capacul de programare și creați propria aplicație Android mai atrăgătoare folosind codul de procesare dat mai departe în Tutorial. Aflați mai multe despre procesare verificând proiectele noastre anterioare de procesare.
Până la sfârșitul acestui tutorial veți avea un braț robot Mini Tilt și Span care vă poate urmări fața și se poate deplasa împreună cu acesta. Puteți utiliza acest lucru (cu progrese suplimentare) pentru a vă înregistra videoclipurile vlog sau chiar să faceți un selfie cu camera din spate a telefonului mobil, deoarece vă poziționează fața exact în centrul ecranului mobilului. Asa de!! Sună interesant? Verificați Demo Video la sfârșitul acestui tutorial pentru a vedea cum funcționează. Să vedem cum putem construi unul…
Am încercat din răsputeri să fac acest proiect să funcționeze cât mai simplu posibil, oricine are cunoștințe minime în materie de hardware sau codificare poate folosi aceste linii directoare pentru ca acest proiect să funcționeze în cel mai scurt timp. Cu toate acestea, odată ce ați reușit, vă sugerez să vă întoarceți în spatele codurilor, astfel încât să puteți ști cu adevărat ce face acest lucru să funcționeze și cum.
Materiale necesare:
- Arduino Nano
- Servomotor SG90 - 2Nos
- Telefon Android cu cameră decentă
- Modul Bluetooth HC-05 / HC-06
- Calculator pentru programare
- Imprimantă 3D (opțional)
- Baterie de 9V
Imprimarea 3D a pieselor necesare (opțional):
Pentru a ne deplasa și înclina telefonul mobil, avem nevoie de niște structuri mecanice, cum ar fi un suport mobil și câteva servocarte. Puteți utiliza un carton pentru a face unul, deoarece am o imprimantă 3D, am decis să imprim 3D aceste părți.
Imprimarea 3D este un instrument uimitor care poate contribui mult atunci când construiți proiecte prototip sau experimentați cu noi modele mecanice. Dacă nu ați descoperit încă beneficiile unei imprimante 3D sau cum funcționează, puteți citi Ghidul pentru începători pentru imprimarea 3D.
Dacă dețineți sau aveți acces la o imprimantă 3D, puteți utiliza fișierele STL care pot fi descărcate de aici pentru a le imprima și asambla direct. Cu toate acestea, puține piese, cum ar fi suportul telefonului mobil, ar putea avea nevoie de modificări în funcție de dimensiunile telefonului dvs. L-am proiectat pentru telefonul meu mobil MOTO G. Am folosit o imprimantă de bază a mea pentru a imprima toate piesele. Imprimanta este FABX v1 de la 3ding, care vine la un preț accesibil, cu un volum de imprimare de 10 cm cubi. Prețul ieftin vine cu un compromis cu rezoluție mică de imprimare și fără card SD sau funcție de reluare a tipăririi. Folosesc software-ul numit Cura pentru a imprima fișierele STL. Setările pe care le-am folosit pentru a imprima materialele sunt prezentate mai jos, le puteți utiliza la fel sau le puteți modifica pe baza imprimantei.
Odată ce tipăriți toate materialele necesare, le puteți fixa în poziție folosind șuruburi și un adeziv fierbinte. După finalizarea asamblării, ar trebui să arate cam așa mai jos.
Schematică și hardware:
Circuitul pentru acest proiect de urmărire a feței pe telefonul inteligent este prezentat în imaginea de mai jos:
Circuitul este alcătuit din două motoare servo, dintre care unul este utilizat pentru a deplasa telefonul mobil la stânga / dreapta, iar celălalt este utilizat pentru a înclina telefonul mobil în sus / în jos. Direcția în care servo trebuie să se miște va fi instruită de Arduino Nano, care însuși primește informații de la modulul Bluetooth (HC-05). Întregul circuit este alimentat de o baterie de 9V.
Acest circuit poate fi conectat cu ușurință pe panoul dvs. sau le puteți lipi și pe o placă mică Perf, așa cum am făcut aici.
Configurarea aplicației Android:
Așa cum am spus mai devreme, principalul creier care lucrează în spatele acestui proiect este această aplicație Android. Această aplicație Android a fost dezvoltată folosind Processing Android. Puteți instala direct această aplicație pe telefonul dvs. mobil și o puteți lansa urmând pașii de mai jos.
- Descărcați fișierul APK de aici.
- Porniți circuitul prezentat mai sus.
- În setările telefonului căutați modulul Bluetooth numit „HC-05”
- Dacă l-ați numit altceva în afară de „HC-05”, schimbați-l înapoi la HC-05, deoarece numai atunci aplicația va funcționa.
- Asociați-vă cu modulul Bluetooth cu parola „1234” sau „0000”.
- Acum, lansați aplicația în modul portret. Ar trebui să vedeți ecranul camerei și, de asemenea, „Conectat la: HC-05” în partea de sus a ecranului.
- Încercați să vă deplasați camera peste o față și o casetă verde ar trebui să apară deasupra acesteia, iar poziția acesteia va fi afișată și în colțul din stânga sus al ecranului, așa cum se arată mai jos.
Puteți duce acest proiect de urmărire a feței Arduino la nivelul următor, aducând multe progrese pentru care nu va trebui să codificați propria aplicație Android. Crearea unei aplicații Android poate părea dificilă, dar credeți-mă cu ajutorul procesării, o puteți învăța în cel mai scurt timp. Codul complet de procesare care este utilizat pentru a construi această aplicație poate fi descărcat de aici. Ești liber să faci orice avans cu propria ta creativitate. Verificați proiectele de mai jos pentru a afla mai multe despre procesare:
- Realitate virtuală folosind Arduino și Procesare
- Joc de Ping Pong folosind Arduino
- Radio FM controlat prin telefon inteligent folosind Procesare.
- Sistem de radar Arduino folosind procesare și senzor cu ultrasunete
Programarea Arduino:
Aplicația Android va detecta fața și poziția sa pe ecran; apoi va decide ce direcție ar trebui să se deplaseze în funcție de poziția feței, astfel încât fața să ajungă în centrul ecranului. Această direcție este apoi trimisă către Arduino prin modulul Bluetooth.
Programul Arduino pentru acest proiect este destul de simplu, trebuie doar să controlăm direcția celor două servomotoare pe baza valorilor primite de la modulul Bluetooth. Codul complet poate fi găsit la sfârșitul acestui tutorial, am explicat, de asemenea, câteva linii importante de mai jos.
Mai jos, linia de cod stabilește o conexiune serială cu pinii D12 ca RX și D11 ca TX. Prin urmare, pinul D12 trebuie să fie conectat la TX-ul modulului BT și pinul D11 la RX-ul modulului BT.
SoftwareSerial cam_BT (12, 11); // RX, TX
Apoi, am inițializat modulul Bluetooth la o rată de transmisie de 9600. Asigurați-vă că modulul funcționează și pe aceeași rată de transmisie. Altfel schimbați-l în consecință.
cam_BT.begin (9600); // porniți comunicația Bluetooth la 9600 baudrate cam_BT.println („Comenzi gata de preluat”);
Linia de mai jos citește ce vine prin modulul Bluetooth. De asemenea, datele sunt salvate în variabila „BluetoothData”.
if (cam_BT.available ()) // Citiți ce vine prin Bluetooth {BluetoothData = cam_BT.read (); Serial.print ("Primire de la BT:"); Serial.println (BluetoothData); }
Pe baza datelor primite de la Bluetooth, direcția motoarelor este controlată. Pentru a roti un motor la stânga, motorul scade cu o valoare de 2 față de poziția sa anterioară. Puteți crește această valoare cu 2 la 4 sau 6 dacă aveți nevoie de braț pentru a vă deplasa mai repede. Dar s-ar putea să creeze niște sacadări care să facă camera instabilă.
if (BluetoothData == 49) // Virați la stânga {pos1 + = 2; servo1.write (pos1);} if (BluetoothData == 50) // Virați la dreapta {pos1- = 2; servo1.write (pos1);} if (BluetoothData == 51) // Turn Up {pos2- = 2; servo2.write (pos2);} if (BluetoothData == 52) // Turn Down {pos2 + = 2; servo2.write (pos2);}
Lucru:
Odată ce suntem gata cu hardware-ul, codul și aplicația pentru Android, este timpul să acționăm. Pur și simplu alimentați Arduino și deschideți aplicația Android. Aplicația se va conecta automat la modulul Bluetooth HC-05 (trebuie să fie denumit HC-05) și va aștepta detectarea unei fețe. Pur și simplu așezați telefonul în suportul nostru pentru mobil și stați în fața acestuia. Ar trebui să observați servomotorele care vă mișcă telefonul, astfel încât fața dvs. să fie așezată în centrul ecranului. Acum deplasați-vă în raza de acțiune a camerei și telefonul dvs. mobil vă va urmări mișcările. Puteți încerca, de asemenea, plasând și mutând orice imagine.
Lucrarea completă a proiectului este prezentată în videoclipul de mai jos. Poți construi multe