Satura rādītājs:

Sejas apzinātais OSD foto rāmis: 11 soļi (ar attēliem)
Sejas apzinātais OSD foto rāmis: 11 soļi (ar attēliem)

Video: Sejas apzinātais OSD foto rāmis: 11 soļi (ar attēliem)

Video: Sejas apzinātais OSD foto rāmis: 11 soļi (ar attēliem)
Video: 983.Елена. Победа ТВОРЦОВ! ЖИВОРОДЯЩИЙ ДУХ vs духа антимира. 2024, Novembris
Anonim
Seju apzinošs OSD foto rāmis
Seju apzinošs OSD foto rāmis
Seju apzinošs OSD foto rāmis
Seju apzinošs OSD foto rāmis
Seju apzinošs OSD foto rāmis
Seju apzinošs OSD foto rāmis
Seju apzinošs OSD foto rāmis
Seju apzinošs OSD foto rāmis

Šajā pamācībā ir parādīts, kā izveidot foto rāmi ar seju uztverošu ekrāna displeju (OSD).

OSD var parādīt laiku, laika apstākļus vai citu vajadzīgo interneta informāciju.

1. solis: Kāpēc OSD foto rāmis?

Kāpēc OSD foto rāmis?
Kāpēc OSD foto rāmis?
Kāpēc OSD foto rāmis?
Kāpēc OSD foto rāmis?

Man ir 2 foto pulksteņu projekti vietnē Instructables:

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

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

Abi ik pēc minūtēm no interneta izgūst fotoattēlu ar skaistulēm un laika grafiku un parāda to LCD.

Skaistumu demonstrēšana ir laba, bet man viņi visi ir sveši. Kā būtu izmantot personīgos iecienītākos fotoattēlus un pievienot tiem pašreizējo laiku un papildu tūlītēju informāciju?

Šis projekts pēta, kā to izdarīt.

2. solis: Kāpēc sejas apzināties?

Kāpēc sejas apzināšanās?
Kāpēc sejas apzināšanās?
Kāpēc sejas apzināšanās?
Kāpēc sejas apzināšanās?
Kāpēc sejas apzināšanās?
Kāpēc sejas apzināšanās?
Kāpēc sejas apzināšanās?
Kāpēc sejas apzināšanās?

Vispirms pārbaudīsim, kā fotoattēlam pievienot tūlītējas informācijas OSD:

  1. Nejauši atlasiet fotoattēlu no konkrētas mapes
  2. Atgūt laiku
  3. Iegūstiet tūlītēju informāciju no interneta
  4. uzzīmējiet fotoattēlā laiku un tūlītēju informāciju

1.-3. solis ir taisni uz priekšu; Arī 4. solis izskatās vienkāršs, taču noteikt, kur uzzīmēt tekstu, nav tik vienkārši.

Ja teksta izmērs ir pārāk mazs, to ir grūti nolasīt saprātīgā attālumā; Ja teksta izmērs ir pārāk liels, tas, visticamāk, aptver fotoattēla objektus. Īpaši, ja tas ir portreta fotoattēls, teksts, kas aptver sejas, nav vēlams.

Tā kā seju stāvoklis katrā fotoattēlā nav vienāds, lai izvairītos no OSD pārklātajām sejām, vispirms ir nepieciešams sejas noteikšanas process. Tad mēs varam atrast laukumu bez sejas, lai uzzīmētu tekstu.

3. solis: divu līmeņu projektēšana

Divu līmeņu dizains
Divu līmeņu dizains

Sejas noteikšanas process prasa zināmu apstrādes jaudu, turpretī foto rāmim var būt ļoti mazs svars. Tāpēc es to sadalīju divos līmeņos:

Serveris

Sejas apzinātais foto dzinējs ir Node.js lietotņu serveris. Katram HTTP pieprasījumam tas:

  1. Nejauši izvēlieties fotoattēlu no fotoattēlu mapes
  2. Sejas noteikšana
  3. nenosaka sejas vai vismazāko seju zonu
  4. Tajā pašā laikā ik pēc noteikta perioda izgūstiet laika ziņas vai citu noderīgu tūlītēju informāciju no interneta
  5. Uzzīmējiet fotoattēlā laiku un tūlītēju informāciju
  6. Atgrieziet fotoattēlu ar OSD JPEG formātā kā HTTP atbildi

Klients

Klients var būt tīmekļa pārlūks, sīklietotne vai IoT ierīce.

Piem. ESP32 dev boasrd ar 2-4 collu LCD ir ļoti piemērots ievietošanai uz darbvirsmas kā niecīgs foto rāmis.

4. darbība. Foto servera iestatīšana 1. iespēja: Docker Image

Foto servera iestatīšana 1. iespēja: Docker Image
Foto servera iestatīšana 1. iespēja: Docker Image
Foto servera iestatīšana 1. iespēja: Docker Image
Foto servera iestatīšana 1. iespēja: Docker Image

Ērtības labad esmu iepriekš izveidojis Docker attēlu seju zinošam fotoattēlam OSD Node.js lietotņu serverim.

Ja vēl neesat iestatījis Docker, lūdzu, izpildiet Docker darba sākšanas rokasgrāmatu:

www.docker.com/get-started

Pēc tam izpildiet šādu komandu: (nomainiet/path/to/photo uz savu fotoattēlu ceļu)

docker run -p 8080: 8080 -v/path/to/photo:/app/photo moononournation/sejas apzinās-foto-osd: 1.0.1

Pārbaudiet to, pārlūkojot vietni https:// localhost: 8080/

Iespējams, parādīšanas laiks neatbilst jūsu laika joslai:

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

Ja jūs dzīvojat Honkongā tāpat kā es, varat pievienot Honkongas laika apstākļu informāciju:

docker run -p 8080: 8080 -e TZ = Asia/Hong_Kong -e OSD = HK_Weather -v/path/to/photo:/app/photo moononournation/sejas apzinās -foto -osd: 1.0.1

Ja vēlaties izveidot savu OSD informāciju:

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/ceļš/uz/foto:/lietotne/foto -v ~/git/sejas apzinās-foto-osd/app.js: /app/app.js mēnessurnācija/seju apzinās-foto-osd: 1.0. 1

Modificējiet funkciju update_osd () programmā app.js, lai pielāgotu savu OSD informāciju. Pēc izstrādes vienkārši noņemiet DEBUG = Y vidi no docker komandas.

5. darbība: iestatiet fotoattēlu serveri 2. iespēja: veidojiet no avota

Ja esat iepazinies ar Node.js, varat izveidot lietotņu serveri no avota.

Iegūstiet avotu:

git klons

Instalējiet paketes:

cd sejas apzinās foto-osd

npm instalēt

Izveidojiet fotoattēlu mapi un kopējiet savus fotoattēlus mapē.

Palaidiet lietotņu serveri:

mezgls app.js

6. darbība. Klienta 1. iespēja: tīmekļa pārlūkprogramma

Klienta 1. iespēja: tīmekļa pārlūkprogramma
Klienta 1. iespēja: tīmekļa pārlūkprogramma

Vienkārši pārlūkojiet vietni https:// localhost: 8080/

Lapai ir skripts, un tā katru minūti automātiski ielādē atbilstoša izmēra attēlu.

P. S. Ja pārlūkojat no citas iekārtas, kurā nedarbojas lietotņu serveris, atcerieties, ka jāmaina localhost uz lietotņu servera resursdatora nosaukumu vai IP adresi.

7. darbība. Klienta 2. iespēja: ESP32 + LCD

2. klienta iespēja: ESP32 + LCD
2. klienta iespēja: ESP32 + LCD
2. klienta iespēja: ESP32 + LCD
2. klienta iespēja: ESP32 + LCD
2. klienta iespēja: ESP32 + LCD
2. klienta iespēja: ESP32 + LCD
2. klienta iespēja: ESP32 + LCD
2. klienta iespēja: ESP32 + LCD

Foto rāmja klients var būt tikpat vienkāršs kā ESP32 izstrādātāju dēlis un LCD.

Šeit ir nepieciešama aparatūra:

ESP32 izstrādātāju padome

Jebkurai ESP32 dev padomei vajadzētu būt kārtībā, šoreiz es izmantoju dēli ar nosaukumu MH-ET LIVE.

LCD displejs

Jebkurš Arduino_GFX atbalstīts LCD, jūs varat atrast pašlaik atbalstīto displeju GitHub lasījumā:

github.com/moononournation/Arduino_GFX

Jumper Wire

Daži džemperu vadi ir atkarīgi no izstrādātāja plates un LCD tapu izkārtojuma. Vairumā gadījumu pietiek ar 6–9 džemperu vadiem no sievietēm līdz sievietēm.

LCD statīvs

Daži atbalsti palīdz LCD stāvēt taisni, šoreiz es izmantoju karšu turētāja statīvu.

8. solis: ESP32 + LCD montāža

ESP32 + LCD montāža
ESP32 + LCD montāža
ESP32 + LCD montāža
ESP32 + LCD montāža
ESP32 + LCD montāža
ESP32 + LCD montāža

Priekšroka tiek dota ESP32 ar tapas galviņu augšējā pusē. Ja tapas galviņa atrodas apakšējā pusē, vienkārši ielieciet dēli otrādi;>

Savienojiet ESP32 un LCD ar džemperu vadiem, pēc tam piestipriniet pie statīva.

Šeit ir savienojuma kopsavilkuma paraugs:

ESP32 -> LCD

Vcc -> Vcc GND -> GND GPIO 5 -> CS GPIO 27 -> DC (ja pieejams) GPIO 33 -> RST GPIO 18 -> SCK GPIO 19 -> MISO (pēc izvēles) GPIO 22 -> LED (ja pieejams) GPIO 23 -> MOSI / SDA

9. darbība: ESP32 + LCD programmatūra

ESP32 + LCD programmatūra
ESP32 + LCD programmatūra

Arduino IDE

Lejupielādējiet un instalējiet Arduino IDE, ja vēl neesat to izdarījis:

www.arduino.cc/en/main/software

ESP32 atbalsts

Izpildiet instalēšanas instrukcijas, lai pievienotu ESP32 atbalstu, ja vēl neesat to izdarījis:

github.com/espressif/arduino-esp32

Arduino_GFX bibliotēka

Lejupielādējiet jaunākās Arduino_GFX bibliotēkas: (nospiediet "Klonēt vai lejupielādēt" -> "Lejupielādēt ZIP")

github.com/moononournation/Arduino_GFX

Importējiet bibliotēkas Arduino IDE. (Izvēlne Arduino IDE "Skice" -> "Iekļaut bibliotēku" -> "Pievienot. ZIP bibliotēku" -> atlasiet lejupielādēto ZIP failu)

Apkopot un augšupielādēt

  1. Atveriet Arduino IDE
  2. Atveriet ESP32PhotoFrame parauga kodu ("Fails" -> "Piemērs" -> "GFX bibliotēka Arduino" -> "WiFiPhotoFrame")
  3. Aizpildiet savus WiFi AP iestatījumus, norādot SSID_NAME un SSID_PASSWORD
  4. Nomainiet servera resursdatora nosaukumu vai IP un portu HTTP_HOST un
  5. Nospiediet pogu Arduino IDE "Augšupielādēt"
  6. Ja jums šķiet, ka orientācija nav pareiza, nomainiet "rotācijas" vērtību (0-3) jaunā klases kodā

10. solis: izbaudiet fotoattēlu

Izbaudiet fotoattēlu!
Izbaudiet fotoattēlu!

Ir pienācis laiks ievietot IoT foto rāmi uz darbvirsmas un baudīt!

11. solis: kas tālāk?

  • Pievienojiet savu tūlītējo informāciju
  • Precīzi noregulējiet avota fotoattēla izmēru, lai iegūtu labāku sejas noteikšanas precizitāti
  • Automātisks uzdevums ievietot jaunākos fotoattēlus servera fotoattēlu mapē
  • Uzņemiet vairāk fotoattēlu;>

Ieteicams: