Cuprins:

Rama foto OSD Face Aware: 11 pași (cu imagini)
Rama foto OSD Face Aware: 11 pași (cu imagini)

Video: Rama foto OSD Face Aware: 11 pași (cu imagini)

Video: Rama foto OSD Face Aware: 11 pași (cu imagini)
Video: Innistrad Crimson Vow: TOATE cărțile negre din Magic The Gathering Edition 2024, Noiembrie
Anonim
Rama foto OSD Face Aware
Rama foto OSD Face Aware
Rama foto OSD Face Aware
Rama foto OSD Face Aware
Rama foto OSD Face Aware
Rama foto OSD Face Aware
Rama foto OSD Face Aware
Rama foto OSD Face Aware

Acest Instructables arată cum să creați o ramă foto cu afișare pe ecran (OSD).

OSD poate afișa ora, vremea sau alte informații pe internet pe care le doriți.

Pasul 1: De ce rama foto OSD?

De ce rama foto OSD?
De ce rama foto OSD?
De ce rama foto OSD?
De ce rama foto OSD?

Am 2 proiecte de ceasuri foto la Instructables înainte:

www.instructables.com/id/ESP32-Photo-Clock…

www.instructables.com/id/Arduino-BiJin-ToK…

Ambele recuperează o fotografie cu frumuseți și o placă de timp de pe Internet la fiecare minut și se afișează pe ecranul LCD.

Afișarea frumuseților este bună, dar toate sunt străine pentru mine. Ce zici de folosirea fotografiilor personale favorite și de a adăuga ora curentă și alte informații instantanee pe ea?

Acest proiect explorează cum să-l realizăm.

Pasul 2: De ce Face Aware?

De ce Face Aware?
De ce Face Aware?
De ce Face Aware?
De ce Face Aware?
De ce Face Aware?
De ce Face Aware?
De ce Face Aware?
De ce Face Aware?

Să verificăm cum să adăugăm mai întâi informații OSD instantanee la o fotografie:

  1. Selectați aleatoriu o fotografie dintr-un anumit folder
  2. Recuperați timpul
  3. Preluați informații instantanee de pe Internet
  4. desenați timp și informații instantanee pe fotografie

Pasul 1-3 este direct înainte; Pasul 4 arată, de asemenea, simplu, dar stabiliți unde să desenați textul nu este atât de ușor.

Dacă dimensiunea textului este prea mică, este greu de citit la o distanță rezonabilă; Dacă dimensiunea textului este prea mare, cel mai probabil acoperă obiectele foto. Mai ales dacă este fotografie portret, textul acoperit pe fețe nu este preferat.

Deoarece poziția fețelor pentru fiecare fotografie nu este aceeași, pentru a evita fețele acoperite de OSD, trebuie mai întâi un proces de detectare a feței. Apoi putem găsi o zonă fără față pentru a desena textul.

Pasul 3: Proiectare pe 2 niveluri

Proiectare pe 2 niveluri
Proiectare pe 2 niveluri

Procesul de detectare a feței necesită o anumită putere de procesare, în schimb, rama foto poate fi foarte ușoară. Așa că am împărțit-o în două niveluri:

Server

Motorul de fotografiere conștient de față este un server de aplicații Node.js. Pentru fiecare solicitare HTTP, va:

  1. Selectați în mod aleatoriu o fotografie din folderul foto
  2. Detectare facială
  3. nu determinați fața sau zona cea mai mică a fețelor
  4. În același timp, recuperați vremea sau alte informații utile instantanee de pe Internet la fiecare anumită perioadă
  5. Desenați timp și informații instantanee pe fotografie
  6. Întoarceți fotografia cu OSD în format JPEG ca răspuns

Client

Clientul poate fi un browser web, un applet sau un dispozitiv IoT.

De exemplu. un ESP ESP devas cu un ecran LCD de 2-4 inci este foarte potrivit pentru a fi plasat pe desktop ca o mică ramă foto.

Pasul 4: Configurare Photo Server Opțiunea 1: Imagine Docker

Configurați opțiunea 1 a serverului foto: imagine Docker
Configurați opțiunea 1 a serverului foto: imagine Docker
Configurați opțiunea 1 a serverului foto: imagine Docker
Configurați opțiunea 1 a serverului foto: imagine Docker

Pentru comoditate, am preconstruit o imagine Docker pentru serverul de aplicații OSD Node.js foto sensibil la față.

În cazul în care nu ați configurat încă Docker, vă rugăm să urmați ghidul Docker Start Start:

www.docker.com/get-started

Apoi executați următoarea comandă: (înlocuiți / cale / către / fotografie pe propria cale foto)

docker run -p 8080: 8080 -v / path / to / photo: / app / photo moononournation / face-aware-photo-osd: 1.0.1

Testați-l navigați la https:// localhost: 8080 /

Este posibil să constatați că ora de afișare nu se află în fusul dvs. orar:

docker run -p 8080: 8080 -e TZ = Asia / Hong_Kong -v / path / to / photo: / app / photo moononournation / face-aware-photo-osd: 1.0.1

Dacă locuiți în Hong Kong ca mine, puteți adăuga informații meteo din Hong Kong:

docker run -p 8080: 8080 -e TZ = Asia / Hong_Kong -e OSD = HK_Weather -v / path / to / photo: / app / photo moononournation / face-aware-photo-osd: 1.0.1

Dacă doriți să vă dezvoltați propriile informații OSD:

mkdir -p ~ / git

cd ~ / git git clone https://github.com/moononournation/face-aware-photo-osd.git docker run -it -p 8080: 8080 -e TZ = Asia / Hong_Kong -e OSD = HK_Weather -e DEBUG = Y -v / path / to / photo: / app / photo -v ~ / git / face-aware-photo-osd / app.js: /app/app.js moononournation / face-aware-photo-osd: 1.0. 1

Modificați funcția update_osd () în app.js pentru a vă personaliza propriile informații OSD. După dezvoltare, pur și simplu eliminați mediul DEBUG = Y din comanda docker.

Pasul 5: Configurare Photo Server Opțiunea 2: Construiți din sursă

Dacă sunteți familiarizat cu Node.js, puteți construi serverul de aplicații din sursă.

Obțineți sursa:

git clone

Instalați pachete:

cd face-aware-photo-osd

instalare npm

Creați un dosar foto și copiați propriile fotografii în dosar.

Rulați serverul de aplicații:

nod app.js

Pasul 6: Opțiunea 1 a clientului: browser web

Opțiunea 1 a clientului: browser web
Opțiunea 1 a clientului: browser web

Pur și simplu navigați la https:// localhost: 8080 /

Pagina este încărcată automat cu scripturi o imagine potrivită la dimensiunea paginii în fiecare minut.

P. S. Dacă navigați de pe o altă mașină care nu rulează serverul de aplicații, nu uitați să schimbați localhost pe numele de gazdă al serverului de aplicații sau adresa IP.

Pasul 7: Opțiunea 2 a clientului: ESP32 + LCD

Opțiunea 2 pentru client: ESP32 + LCD
Opțiunea 2 pentru client: ESP32 + LCD
Opțiunea 2 pentru client: ESP32 + LCD
Opțiunea 2 pentru client: ESP32 + LCD
Opțiunea 2 pentru client: ESP32 + LCD
Opțiunea 2 pentru client: ESP32 + LCD
Opțiunea 2 pentru client: ESP32 + LCD
Opțiunea 2 pentru client: ESP32 + LCD

Un client cu rama foto poate fi la fel de simplu ca o placă de dezvoltare ESP32 și un LCD.

Iată hardware-ul necesar:

ESP32 Dev Board

Orice bord ESP32 dev ar trebui să fie ok, de data aceasta folosesc o placă numită MH-ET LIVE.

Ecran LCD

Orice ecran LCD acceptat de Arduino_GFX, este posibil să găsiți afișaj acceptat în prezent la GitHub readme:

github.com/moononournation/Arduino_GFX

Jumper Wire

Unele fire Jumper, depind de aspectul plăcii de dezvoltare și a pinilor LCD. În majoritatea cazurilor, sunt suficiente 6-9 fire jumper de la femeie la femeie.

Stand LCD

Unele asistențe ajută LCD-ul să stea drept, de data aceasta folosesc un suport pentru card.

Pasul 8: ansamblul LCD ESP32 +

ESP32 + Ansamblu LCD
ESP32 + Ansamblu LCD
ESP32 + Ansamblu LCD
ESP32 + Ansamblu LCD
ESP32 + Ansamblu LCD
ESP32 + Ansamblu LCD

Este preferat ESP32 cu antet pin în partea superioară. Dacă antetul pinului din partea inferioară, pur și simplu puneți placa cu capul în jos;>

Conectați ESP32 și LCD cu fire jumper, apoi montați-le pe suport.

Iată exemplul de rezumat al conexiunii:

ESP32 -> LCD

Vcc -> Vcc GND -> GND GPIO 5 -> CS GPIO 27 -> DC (dacă este disponibil) GPIO 33 -> RST GPIO 18 -> SCK GPIO 19 -> MISO (opțional) GPIO 22 -> LED (dacă este disponibil) GPIO 23 -> MOSI / SDA

Pasul 9: software ESP32 + LCD

Software ESP32 + LCD
Software ESP32 + LCD

IDE Arduino

Descărcați și instalați Arduino IDE dacă încă nu faceți acest lucru:

www.arduino.cc/en/main/software

Suport ESP32

Urmați instrucțiunile de instalare pentru a adăuga asistență ESP32 dacă nu o faceți încă:

github.com/espressif/arduino-esp32

Biblioteca Arduino_GFX

Descărcați cele mai recente biblioteci Arduino_GFX: (apăsați „Clonați sau descărcați” -> „Descărcați ZIP”)

github.com/moononournation/Arduino_GFX

Importați biblioteci în Arduino IDE. (Arduino IDE "Sketch" Menu -> "Include Library" -> "Add. ZIP Library" -> selectați fișierul ZIP descărcat)

Compilați și încărcați

  1. Deschideți Arduino IDE
  2. Deschideți codul eșantion ESP32PhotoFrame ("Fișier" -> "Exemplu" -> "Biblioteca GFX pentru Arduino" -> "WiFiPhotoFrame")
  3. Completați setările AP WiFi în SSID_NAME și SSID_PASSWORD
  4. Înlocuiți numele gazdei serverului sau adresa IP și portul în HTTP_HOST și
  5. Apăsați butonul „Încărcare” Arduino IDE
  6. Dacă orientarea nu este corectă, modificați valoarea „rotației” (0-3) în noul cod de clasă

Pasul 10: Bucurați-vă de fotografie

Bucurați-vă de fotografie!
Bucurați-vă de fotografie!

Este timpul să puneți rama foto IoT pe desktop și să vă bucurați!

Pasul 11: Ce urmează?

  • Adăugați propriile informații instantanee
  • Reglați fin dimensiunea sursei fotografiei pentru o precizie mai bună de detectare a feței
  • Sarcină automată pentru a pune cele mai recente fotografii în folderul foto al serverului
  • Faceți mai multe fotografii;>

Recomandat: