- Materials necessaris:
- Impressió 3D de les peces necessàries (opcional):
- Esquema i maquinari:
- Configuració de l'aplicació Android:
- Programació del vostre Arduino:
- Treball:
Alguna vegada heu volgut construir un braç o un robot robotitzador de seguiment de rostres simplement utilitzant Arduino i no cap altra programació com OpenCV, conceptes bàsics visuals C #, etc.? A continuació, seguiu llegint, en aquest projecte implementarem la detecció de cares combinant la potència d’Arduino i Android. En aquest projecte, la càmera mòbil es mourà junt amb la cara amb l'ajut de servos. L’avantatge d’utilitzar el telèfon mòbil Android aquí és que no cal invertir en un mòdul de càmera i que tota la feina de detecció d’imatges es pot fer al mateix telèfon, no necessita que l’Arduino estigui connectat a l’ordinador perquè això funcioni. Aquí hem utilitzat el mòdul Bluetooth amb Arduino per comunicar-nos amb el mòbil sense fils.
L’aplicació d’Android que s’utilitza en aquest projecte es va crear mitjançant Processing Android; podeu instal·lar directament l’aplicació descarregant el fitxer APK (llegiu més enllà per veure l’enllaç) o bé posar-vos el límit de programació i crear la vostra pròpia aplicació Android més atractiva mitjançant el codi de processament més endavant al tutorial. Per obtenir més informació sobre el processament, consulteu els nostres projectes de processament anteriors.
Al final d’aquest tutorial, disposareu d’un braç robòtic Mini Tilt i Span que us permetrà rastrejar la vostra cara i moure’s amb ella. Podeu utilitzar-ho (amb més avanços) per gravar els vostres vídeos vlog o fins i tot fer-vos una selfie amb la càmera posterior del telèfon mòbil, ja que col·loca la cara exactament al centre de la pantalla del mòbil. Tan!! Sona interessant? Consulteu el vídeo de demostració al final d’aquest tutorial per veure com funciona. A veure com en podem construir un…
He intentat fer tot el possible perquè aquest projecte funcioni el més senzill possible, tothom que tingui coneixements mínims sobre maquinari o codificació pot utilitzar aquestes directrius perquè aquest projecte funcioni en un tres i no res. Tanmateix, un cop ho feu, us suggereixo que estigueu darrere dels codis perquè pugueu saber realment què fa funcionar aquesta cosa i com.
![]()
Materials necessaris:
- Arduino Nano
- Servomotor SG90 - 2Nos
- Telèfon Android amb càmera decent
- Mòdul Bluetooth HC-05 / HC-06
- Ordinador per a la programació
- Impressora 3D (opcional)
- Bateria de 9V
Impressió 3D de les peces necessàries (opcional):
Per poder inclinar i inclinar el nostre telèfon mòbil, necessitem algunes estructures mecàniques, com ara un suport mòbil i uns quants servomotors. Podeu fer-ne una de cartró, ja que tinc una impressora 3D, vaig decidir imprimir aquestes parts en 3D.
La impressió 3D és una eina sorprenent que pot contribuir molt a l’hora de construir prototips o experimentar amb nous dissenys mecànics. Si encara no heu descobert els avantatges d’una impressora 3D o el seu funcionament, podeu llegir la Guia per a principiants d’impressió 3D.
Si teniu o teniu accés a una impressora 3D, podeu utilitzar els fitxers STL que es poden descarregar des d’aquí per imprimir-los i muntar-los directament. Tanmateix, poques parts, com ara el suport del telèfon mòbil, poden necessitar algunes modificacions en funció de les dimensions del telèfon. L'he dissenyat per al meu telèfon mòbil MOTO G. He utilitzat una impressora molt bàsica per imprimir totes les peces. La impressora és FABX v1 de 3ding, que té un preu assequible amb un volum d’impressió de 10 cm cúbics. El preu barat inclou un compromís amb una resolució d’impressió baixa i sense funció de recuperació d’impressió o targeta SD. Estic fent servir un programari anomenat Cura per imprimir els fitxers STL. A continuació es mostren els paràmetres que he utilitzat per imprimir els materials. Podeu utilitzar-los o canviar-los segons la impressora.
![]()
Un cop imprimiu tots els materials necessaris, podeu assegurar-los en la posició mitjançant cargols i una mica de cola calenta. Un cop hagueu acabat el muntatge, hauria de tenir un aspecte similar a continuació.
![]()
![]()
![]()
![]()
Esquema i maquinari:
El circuit d’aquest projecte de seguiment facial al telèfon intel·ligent es mostra a la imatge següent:
![]()
El circuit consta de dos servomotors, dels quals un s'utilitza per moure el telèfon mòbil a l'esquerra / dreta i l'altre s'utilitza per inclinar el telèfon mòbil cap amunt / cap avall. La direcció en què s’ha de moure el servo serà indicada per l’Arduino Nano, que obté informació del mòdul Bluetooth (HC-05). Tot el circuit funciona amb una bateria de 9V.
Aquest circuit es pot connectar fàcilment a la vostra taula de treball o també podeu soldar-los en una petita placa Perf com he fet aquí.
Configuració de l'aplicació Android:
Com, he dit anteriorment, el principal cervell que treballa darrere d’aquest projecte és aquesta aplicació per a Android. Aquesta aplicació per a Android es va desenvolupar amb Processing Android. Podeu instal·lar directament aquesta aplicació al telèfon mòbil i iniciar-la seguint els passos següents.
- Baixeu-vos el fitxer APK des d’aquí.
- Enceneu el circuit que es mostra més amunt.
- A la configuració del telèfon, cerqueu el mòdul Bluetooth anomenat "HC-05"
- Si l'heu anomenat una altra cosa que no sigui "HC-05", canvieu-lo de nou a HC-05, ja que només llavors l'aplicació funcionarà.
- Vinculeu el mòdul Bluetooth amb la contrasenya “1234” o “0000”.
- Ara, inicieu l'aplicació en mode vertical. Hauríeu de veure la pantalla de la càmera i també "Connectat a: HC-05" a la part superior de la pantalla.
- Proveu de moure la càmera per sobre una cara i apareixerà un quadre verd a sobre i la seva posició també es mostrarà a l'extrem superior esquerre de la pantalla, tal com es mostra a continuació.
![]()
Podeu portar aquest Projecte de seguiment facial Arduino al següent nivell aportant molts avanços per als quals no necessitareu codificar la vostra pròpia aplicació per a Android. La creació d’una aplicació d’Android pot semblar difícil, però confieu en mi amb l’ajut de Processament, podreu aprendre-la en poc temps. El codi de processament complet que s’utilitza per crear aquesta aplicació es pot descarregar aquí. Ets lliure d’avançar amb la teva pròpia creativitat. Consulteu els projectes següents per obtenir més informació sobre el processament:
- Realitat virtual mitjançant Arduino i Processing
- Joc de Ping Pong amb Arduino
- Ràdio FM controlada per telèfon intel·ligent mitjançant el processament.
- Sistema de radar Arduino amb processador i sensor ultrasònic
Programació del vostre Arduino:
L’aplicació Android detectarà la cara i la seva posició a la pantalla; llavors decidirà quina direcció s'ha de moure en funció de la posició de la cara perquè la cara arribi al centre de la pantalla. Aquesta direcció s’envia a l’Arduino mitjançant el mòdul Bluetooth.
El programa Arduino per a aquest projecte és bastant senzill, només hem de controlar la direcció dels dos servomotors en funció dels valors rebuts del mòdul Bluetooth. El codi complet es pot trobar al final d’aquest tutorial, també he explicat algunes línies importants a continuació.
A sota de la línia de codi s'estableix una connexió sèrie amb els pins D12 com a RX i D11 com a TX. Per tant, el pin D12 ha d’estar connectat al TX del mòdul BT i el pin D11 al RX del mòdul BT.
SoftwareSerial cam_BT (12, 11); // RX, TX
A continuació, hem inicialitzat el mòdul Bluetooth a una velocitat de transmissió de 9600. Assegureu-vos que el mòdul també funcioni amb la mateixa velocitat de transmissió. Si no, canvieu-lo en conseqüència.
cam_BT.begin (9600); // Inicieu la comunicació Bluetooth a 9600 baudrate cam_BT.println ("Llest per prendre ordres");
A sota de la línia es mostra el que entra pel mòdul Bluetooth. També les dades es guarden a la variable “BluetoothData”.
if (cam_BT.available ()) // Llegiu el que ve per Bluetooth {BluetoothData = cam_BT.read (); Serial.print ("Entrant de BT:"); Serial.println (BluetoothData); }
Basant-se en les dades rebudes del Bluetooth, es controla la direcció dels motors. Per girar un motor a l'esquerra, el motor disminueix en un valor de 2 respecte a la seva posició anterior. Podeu augmentar aquest valor de 2 a 4 o 6 si necessiteu que el braç es mogui més ràpidament. Tanmateix, es poden crear algunes sacsejades que fan la càmera inestable.
if (BluetoothData == 49) // Gireu a l'esquerra {pos1 + = 2; servo1.write (pos1);} if (BluetoothData == 50) // Gireu a la dreta {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);}
Treball:
Un cop estiguem preparats amb el maquinari, el codi i l'aplicació per a Android, és hora de fer algunes accions. Simplement engegueu el vostre Arduino i obriu l'aplicació per a Android. L’aplicació es connectarà automàticament al mòdul Bluetooth HC-05 (s’ha d’anomenar HC-05) i esperarà que es detecti una cara. Simplement col·loqueu el telèfon al suport del mòbil i seieu al davant. Heu de notar que els servomotors mouen el telèfon de manera que la vostra cara es col·loqui al centre de la pantalla. Ara, moveu-vos dins de l'abast de la càmera i el vostre telèfon mòbil us seguirà els moviments. També podeu provar-lo col·locant i movent qualsevol imatge.
![]()
El funcionament complet del projecte es mostra al vídeo següent. Es pot construir molt
