Turinys:
- 1 žingsnis: Kodėl OSD nuotraukų rėmelis?
- 2 žingsnis: Kodėl reikia žinoti veidą?
- 3 žingsnis: dviejų pakopų projektavimas
- 4 veiksmas: nustatykite nuotraukų serverį 1 parinktis: „Docker“vaizdas
- 5 veiksmas: nustatykite nuotraukų serverį 2 parinktis: kurkite iš šaltinio
- 6 veiksmas: 1 kliento parinktis: žiniatinklio naršyklė
- 7 veiksmas: 2 kliento parinktis: ESP32 + LCD
- 8 žingsnis: ESP32 + LCD surinkimas
- 9 veiksmas: ESP32 + LCD programinė įranga
- 10 žingsnis: mėgaukitės nuotrauka
- 11 žingsnis: kas toliau?
Video: „Face Aware“OSD nuotraukų rėmelis: 11 žingsnių (su paveikslėliais)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Š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?
„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ą?
Pirmiausia patikrinkime, kaip prie nuotraukos pridėti momentinės informacijos OSD:
- Atsitiktinai pasirinkite nuotrauką iš konkretaus aplanko
- Atgauti laiką
- Gaukite greitą informaciją iš interneto
- 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
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:
- Atsitiktinai pasirinkite nuotrauką iš nuotraukų aplanko
- Veido atpažinimas
- nenustatykite veido ar mažiausiai veidų srities
- Tuo tarpu kiekvieną tam tikrą laikotarpį iš interneto gaukite orų ar kitos naudingos momentinės informacijos
- Pieškite laiką ir momentinę informaciją ant nuotraukos
- 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
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ė
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
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
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
„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
- Atidarykite „Arduino IDE“
- Atidarykite ESP32PhotoFrame pavyzdžio kodą („Failas“-> „Pavyzdys“-> „GFX biblioteka„ Arduino “->„ WiFiPhotoFrame “)
- Įveskite „WiFi“AP nustatymus į SSID_NAME ir SSID_PASSWORD
- Pakeiskite serverio pagrindinio kompiuterio pavadinimą arba IP ir prievadą HTTP_HOST ir
- Paspauskite „Arduino IDE“mygtuką „Įkelti“
- Jei manote, kad orientacija neteisinga, pakeiskite „sukimosi“reikšmę (0-3) naujame klasės kode
10 žingsnis: 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:
„Raspberry Pi“nuotraukų rėmelis per mažiau nei 20 minučių: 10 žingsnių (su nuotraukomis)
„Raspberry Pi“nuotraukų rėmelis per mažiau nei 20 minučių: Taip, tai dar vienas skaitmeninis nuotraukų rėmelis! Bet palaukite, jis yra aptakesnis ir tikriausiai greičiausiai surenkamas ir pradedamas bėgti
YADPF (DET kitas skaitmeninis nuotraukų rėmelis): 7 žingsniai (su paveikslėliais)
YADPF (DET Kitas skaitmeninis paveikslų rėmas): Žinau, kad tai nėra naujiena, žinau, mačiau kai kuriuos iš šių projektų čia, bet visada norėjau sukurti savo skaitmeninį paveikslų rėmelį. Visi paveikslų rėmeliai, kuriuos mačiau, yra gražūs, bet aš ieškojau kažko kito, ieškau tikrai gražaus
Skaitmeninis nuotraukų rėmelis Nr. Dos!: 4 žingsniai (su paveikslėliais)
Skaitmeninis paveikslų rėmas Numero Dos !: Tai yra antrasis mano sukurtas skaitmeninis paveikslų rėmelis (žr. „Cheap 'n Easy Digital Picture Frame“). Aš tai padariau kaip vestuvių dovaną labai geram savo draugui, ir manau, kad tai pasirodė labai gerai. Suteikiama skaitmeninių paveikslų rėmelių kaina
LED „Popsicle Stick“nuotraukų rėmelis: 9 žingsniai (su paveikslėliais)
„LED Popsicle Stick“paveikslų rėmas: Pastaruoju metu mano projektai buvo kaltinami kaip dalis hipsterio meno ir amatų judėjimo. Ar norite meno ir amatų? Tada jūs gausite meną ir amatus! Čia yra mano LED patobulintas „Popsicle Stick“nuotraukų rėmelis. Kaip tik laiku
Skaitmeninis nuotraukų rėmelis: 9 žingsniai (su paveikslėliais)
Skaitmeninis paveikslų rėmas: pridėjus prie jau apyvartoje esančių milijonų, čia yra skaitmeninis paveikslų rėmas, kurį sukūriau už maždaug 100 USD .. taip, jis yra brangus už tokį, koks yra, bet, mano manymu, šaltumo koeficientas yra didelis. , negali būti daug geriau nei tai