Turinys:

„Face Aware“OSD nuotraukų rėmelis: 11 žingsnių (su paveikslėliais)
„Face Aware“OSD nuotraukų rėmelis: 11 žingsnių (su paveikslėliais)

Video: „Face Aware“OSD nuotraukų rėmelis: 11 žingsnių (su paveikslėliais)

Video: „Face Aware“OSD nuotraukų rėmelis: 11 žingsnių (su paveikslėliais)
Video: Understanding Obsessive Compulsive Disorder (OCD) 2024, Liepa
Anonim
„Face Aware“OSD nuotraukų rėmelis
„Face Aware“OSD nuotraukų rėmelis
„Face Aware“OSD nuotraukų rėmelis
„Face Aware“OSD nuotraukų rėmelis
„Face Aware“OSD nuotraukų rėmelis
„Face Aware“OSD nuotraukų rėmelis
„Face Aware“OSD nuotraukų rėmelis
„Face Aware“OSD nuotraukų rėmelis

Šioje instrukcijoje parodyta, kaip padaryti nuotraukų rėmelį su veidą išmanančiu ekrano ekranu (OSD).

OSD gali rodyti laiką, orus ar kitą norimą interneto informaciją.

1 žingsnis: Kodėl OSD nuotraukų rėmelis?

Kodėl OSD nuotraukų rėmelis?
Kodėl OSD nuotraukų rėmelis?
Kodėl OSD nuotraukų rėmelis?
Kodėl OSD nuotraukų rėmelis?

„Instructables“anksčiau turėjau 2 nuotraukų laikrodžių projektus:

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

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

Abu kas minutę iš interneto nuskaito nuotrauką su grožybėmis ir laiko lentelę ir pateikia LCD ekrane.

Rodyti grožį yra gerai, bet man jie visi svetimi. Kaip naudoti asmenines mėgstamas nuotraukas ir pridėti dabartinį laiką bei papildomą momentinę informaciją apie tai?

Šis projektas tiria, kaip tai padaryti.

2 žingsnis: Kodėl reikia žinoti veidą?

Kodėl reikia žinoti veidą?
Kodėl reikia žinoti veidą?
Kodėl reikia žinoti veidą?
Kodėl reikia žinoti veidą?
Kodėl reikia žinoti veidą?
Kodėl reikia žinoti veidą?
Kodėl reikia žinoti veidą?
Kodėl reikia žinoti veidą?

Pirmiausia patikrinkime, kaip prie nuotraukos pridėti momentinės informacijos OSD:

  1. Atsitiktinai pasirinkite nuotrauką iš konkretaus aplanko
  2. Atgauti laiką
  3. Gaukite greitą informaciją iš interneto
  4. pieškite laiką ir momentinę informaciją ant nuotraukos

1-3 žingsnis yra tiesiai į priekį; 4 žingsnis taip pat atrodo paprastas, tačiau nustatyti, kur piešti tekstą, nėra taip paprasta.

Jei teksto dydis per mažas, jį sunku perskaityti tinkamu atstumu; Jei teksto dydis per didelis, greičiausiai jis apima nuotraukų objektus. Ypač jei tai portretinė nuotrauka, veidams uždengtas tekstas nėra pageidaujamas.

Kadangi kiekvienos nuotraukos veidų padėtis nevienoda, norint išvengti OSD uždengtų veidų, pirmiausia reikia veido aptikimo proceso. Tada galime rasti sritį be veido tekstui nupiešti.

3 žingsnis: dviejų pakopų projektavimas

Dviejų pakopų dizainas
Dviejų pakopų dizainas

Veido aptikimo procesui reikia tam tikros apdorojimo galios, priešingai, nuotraukų rėmelis gali būti labai lengvas. Taigi aš padalinau jį į 2 pakopas:

Serveris

Veido suvokimo nuotraukų variklis yra „Node.js“programų serveris. Kiekvienos HTTP užklausos atveju:

  1. Atsitiktinai pasirinkite nuotrauką iš nuotraukų aplanko
  2. Veido atpažinimas
  3. nenustatykite veido ar mažiausiai veidų srities
  4. Tuo tarpu kiekvieną tam tikrą laikotarpį iš interneto gaukite orų ar kitos naudingos momentinės informacijos
  5. Pieškite laiką ir momentinę informaciją ant nuotraukos
  6. Pateikite nuotrauką su OSD JPEG formatu kaip HTTP atsaką

Klientas

Klientas gali būti žiniatinklio naršyklė, programėlė ar daiktų interneto įrenginys.

Pvz. „ESP32 dev boasrd“su 2–4 colių skystųjų kristalų ekranu labai tinka įdėti į darbalaukį kaip mažą nuotraukų rėmelį.

4 veiksmas: nustatykite nuotraukų serverį 1 parinktis: „Docker“vaizdas

Nuotraukų serverio sąranka 1 parinktis: „Docker“vaizdas
Nuotraukų serverio sąranka 1 parinktis: „Docker“vaizdas
Nuotraukų serverio sąranka 1 parinktis: „Docker“vaizdas
Nuotraukų serverio sąranka 1 parinktis: „Docker“vaizdas

Kad būtų patogiau, iš anksto sukūriau „Docker“vaizdą, skirtą veidui žinomoms nuotraukų OSD „Node.js“programų serveriui.

Jei dar nesate nustatę „Docker“, vadovaukitės „Docker“darbo pradžios vadovu:

www.docker.com/get-started

Tada paleiskite šią komandą: (pakeiskite/path/to/photo į savo nuotraukų kelią)

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

Išbandykite jį apsilankę https:// localhost: 8080/

Galite pastebėti, kad rodymo laikas yra ne jūsų laiko juostoje:

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

Jei gyvenate Honkonge kaip aš, galite pridėti Honkongo orų informaciją:

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

Jei norite sukurti savo OSD informaciją:

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-tietää-photo-osd/app.js: /app/app.js moononournation/face-tietää-photo-osd: 1.0. 1

Pakeiskite „update.osd“() funkciją „app.js“, kad pritaikytumėte savo OSD informaciją. Po kūrimo tiesiog pašalinkite DEBUG = Y aplinką iš komandos docker.

5 veiksmas: nustatykite nuotraukų serverį 2 parinktis: kurkite iš šaltinio

Jei esate susipažinę su „Node.js“, galite sukurti programų serverį iš šaltinio.

Gaukite šaltinį:

git klonas

Įdiekite paketus:

cd veidą išmanantis foto-osd

npm įdiegti

Sukurkite nuotraukų aplanką ir nukopijuokite savo nuotraukas į aplanką.

Paleisti programų serverį:

mazgas app.js

6 veiksmas: 1 kliento parinktis: žiniatinklio naršyklė

1 kliento parinktis: žiniatinklio naršyklė
1 kliento parinktis: žiniatinklio naršyklė

Tiesiog naršykite į https:// localhost: 8080/

Puslapis yra scenarijus automatiškai įkeliamas tinkamo puslapio dydžio vaizdas kiekvieną minutę.

P. S. Jei naršote iš kito kompiuterio, kuriame neveikia programų serveris, nepamirškite pakeisti „localhost“į programų serverio pagrindinio kompiuterio pavadinimą arba IP adresą.

7 veiksmas: 2 kliento parinktis: ESP32 + LCD

2 kliento parinktis: ESP32 + LCD
2 kliento parinktis: ESP32 + LCD
2 kliento parinktis: ESP32 + LCD
2 kliento parinktis: ESP32 + LCD
2 kliento parinktis: ESP32 + LCD
2 kliento parinktis: ESP32 + LCD
2 kliento parinktis: ESP32 + LCD
2 kliento parinktis: ESP32 + LCD

Nuotraukų rėmelio klientas gali būti toks pat paprastas kaip ESP32 dev plokštė ir LCD.

Čia yra reikalinga aparatinė įranga:

ESP32 kūrėjų lenta

Bet kuri ESP32 dev plokštė turėtų būti tinkama, šį kartą aš naudoju lentą, pavadintą MH-ET LIVE.

LCD ekranas

Bet kurį „Arduino_GFX“palaikomą skystųjų kristalų ekraną galite rasti šiuo metu palaikomame ekrane „GitHub readme“:

github.com/moononournation/Arduino_GFX

Jumper Wire

Kai kurie trumpieji laidai priklauso nuo kūrėjo plokštės ir LCD kaiščių išdėstymo. Daugeliu atvejų pakanka 6-9 jungiamųjų laidų nuo moterų iki moterų.

LCD stovas

Kai kurie palaikymai padeda LCD stovėti tiesiai, šį kartą aš naudoju kortelės laikiklio stovą.

8 žingsnis: ESP32 + LCD surinkimas

ESP32 + LCD surinkimas
ESP32 + LCD surinkimas
ESP32 + LCD surinkimas
ESP32 + LCD surinkimas
ESP32 + LCD surinkimas
ESP32 + LCD surinkimas

Pageidautina, kad ESP32 su kaiščio antgaliu viršutinėje pusėje. Jei kaiščio antraštė yra apatinėje pusėje, tiesiog uždėkite plokštę aukštyn kojom;>

Sujunkite ESP32 ir LCD su jungiamaisiais laidais, tada pritvirtinkite prie stovo.

Čia yra jungties santraukos pavyzdys:

ESP32 -> LCD

Vcc -> Vcc GND -> GND GPIO 5 -> CS GPIO 27 -> DC (jei yra) GPIO 33 -> RST GPIO 18 -> SCK GPIO 19 -> MISO (pasirenkama) GPIO 22 -> LED (jei yra) GPIO 23 -> MOSI / SDA

9 veiksmas: ESP32 + LCD programinė įranga

ESP32 + LCD programinė įranga
ESP32 + LCD programinė įranga

„Arduino IDE“

Atsisiųskite ir įdiekite „Arduino IDE“, jei dar to nepadarėte:

www.arduino.cc/en/main/software

ESP32 palaikymas

Vykdykite diegimo instrukcijas, kad pridėtumėte ESP32 palaikymą, jei to dar nepadarėte:

github.com/espressif/arduino-esp32

„Arduino_GFX“biblioteka

Atsisiųskite naujausias „Arduino_GFX“bibliotekas: (paspauskite „Klonuoti arba atsisiųsti“-> „Atsisiųsti ZIP“)

github.com/moononournation/Arduino_GFX

Importuokite bibliotekas „Arduino IDE“. („Arduino IDE“eskizo meniu -> „Įtraukti biblioteką“-> „Pridėti. ZIP biblioteką“-> pasirinkite atsisiųstą ZIP failą)

Kompiliavimas ir įkėlimas

  1. Atidarykite „Arduino IDE“
  2. Atidarykite ESP32PhotoFrame pavyzdžio kodą („Failas“-> „Pavyzdys“-> „GFX biblioteka„ Arduino “->„ WiFiPhotoFrame “)
  3. Įveskite „WiFi“AP nustatymus į SSID_NAME ir SSID_PASSWORD
  4. Pakeiskite serverio pagrindinio kompiuterio pavadinimą arba IP ir prievadą HTTP_HOST ir
  5. Paspauskite „Arduino IDE“mygtuką „Įkelti“
  6. Jei manote, kad orientacija neteisinga, pakeiskite „sukimosi“reikšmę (0-3) naujame klasės kode

10 žingsnis: mėgaukitės nuotrauka

Mėgaukitės nuotrauka!
Mėgaukitės nuotrauka!

Atėjo laikas įdėti daiktų interneto nuotraukų rėmelį į savo darbalaukį ir mėgautis!

11 žingsnis: kas toliau?

  • Pridėkite savo momentinę informaciją
  • Tiksliai sureguliuokite šaltinio nuotraukos dydį, kad veidas būtų tikslesnis
  • Automatinė užduotis įdėti naujausias nuotraukas į serverio nuotraukų aplanką
  • Padarykite daugiau nuotraukų;>

Rekomenduojamas: