ዝርዝር ሁኔታ:

ቪዲዮን በ ESP32 ይጫወቱ 10 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮን በ ESP32 ይጫወቱ 10 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ቪዲዮን በ ESP32 ይጫወቱ 10 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ቪዲዮን በ ESP32 ይጫወቱ 10 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: MAC Address Explained 2024, ህዳር
Anonim
ቪዲዮን በ ESP32 ይጫወቱ
ቪዲዮን በ ESP32 ይጫወቱ

ይህ መምህራን በ ESP32 ቪዲዮ እና ድምጽ ስለማጫወት አንድ ነገር ያሳያሉ።

ደረጃ 1 የ ESP32 ባህሪዎች እና ገደቦች

ዋና መለያ ጸባያት

  • 4 SPI አውቶቡስ ፣ 2 SPI አውቶቡስ ለተጠቃሚ ቦታ ይገኛል ፣ እነሱ SPI2 እና SPI3 ወይም HSPI እና VSPI ተብለው ይጠራሉ። ሁለቱም የ SPI አውቶቡሶች ቢበዛ 80 ሜኸር ሊሠሩ ይችላሉ። በንድፈ ሀሳብ 320x240 16-ቢት የቀለም ፒክሰሎችን ወደ SPI LCD በ 60 fps መግፋት ይችላል ፣ ግን የቪዲዮውን መረጃ ለማንበብ እና ለመገልበጥ የሚያስፈልገውን ጊዜ ገና አልቆጠረም።
  • 1-ቢት / 4-ቢት ኤስዲ አውቶቡስ የ SD ካርድን በትውልድ ፕሮቶኮል ውስጥ ማገናኘት ይችላል
  • I2S ውስጣዊ DAC የድምጽ ውፅዓት
  • ከ 100 ኪባ ራም በላይ ለቪዲዮ እና ለድምጽ ቋት ይገኛል
  • JPEG ን (Motion JPEG ን ይጫወቱ) እና የ LZW የውሂብ መጭመቂያ (የእነሱን ጂአይኤፍ ይጫወቱ) በቂ የመቀየሪያ ኃይል
  • ባለሁለት-ኮር ስሪት ከ SD ካርድ የተነበበ መረጃን መከፋፈል ፣ መፍታት እና ወደ SPI LCD ወደ ትይዩ ባለ ብዙ ተግባራት መግፋት እና የመልሶ ማጫወት አፈፃፀምን ማሳደግ ይችላል።

ገደቦች

  • ባለ 16-ቢት ቀለም ለ 320x240 ድርብ ክፈፍ ቋት እንዲኖረው በቂ የውስጥ ራም አይደለም ፣ ባለብዙ ተግባር ዲዛይን ገድቧል። ከውስጣዊው ራም ቢዘገይም ከውጭ PSRAM ጋር ትንሽ ማሸነፍ ይችላል
  • mp4 ቪዲዮን ለመለየት በቂ የማቀናበር ኃይል የለም
  • ሁሉም የ ESP32 ስሪት 2 ኮር የለውም ፣ ባለብዙ ተግባር ናሙና በሁለት-ኮር ስሪት ላይ ብቻ ይጠቅማል

ማጣቀሻ:

ደረጃ 2 የቪዲዮ ቅርጸት

አርጂቢ565

ወይም 16-ቢት ቀለም ተብሎ የሚጠራው በ MCU እና በቀለም ማሳያ መካከል ባለው ግንኙነት ላይ በተለምዶ የሚውል ጥሬ የውሂብ ቅርጸት ነው። እያንዳንዱ ባለ 16-ቢት እሴት የተወከለው እያንዳንዱ የቀለም ፒክሰል ፣ የመጀመሪያው 5-ቢት ቀይ እሴት ነው ፣ 6-ቢት መከተል አረንጓዴ እሴት ከዚያም 5-ቢት ሰማያዊ እሴት ነው። ባለ 16 ቢት እሴት 65536 የቀለም ልዩነት ሊያደርግ ይችላል ስለዚህ 64 ኪ ቀለሞችንም ይጠራል። ስለዚህ 1 ደቂቃ 320x240@30 fps ቪዲዮ መጠኑ ይሆናል 16 * 320 * 240 * 30 * 60 = 2211840000 ቢት = 276480000 ባይት ወይም ከ 260 ሜባ በላይ

የታነመ ጂአይኤፍ

ይህ ከ 1990 ዎቹ ጀምሮ በድር ላይ የተለመደ የፋይል ቅርጸት ነው። ለእያንዳንዱ ማያ ገጽ እስከ 256 ቀለሞች ድረስ የቀለምን ልዩነት ይገድባል እና እንደ ቀዳሚው ክፈፍ ተመሳሳይ ቀለም ያለውን ፒክሰል አያስቀምጡ። ስለዚህ እያንዳንዱ የእነማ ክፈፍ በጣም ብዙ ዝርዝሮችን በማይቀይርበት ጊዜ የፋይሉን መጠን በእጅጉ ሊቀንስ ይችላል። የ LZW መጭመቂያ በ 1990 ዎቹ ኮምፒዩተር ብቃት ባለው ዲኮዲንግ የተነደፈ ነው ፣ ስለሆነም ESP32 እንዲሁ በእውነተኛ ጊዜ ዲኮዲንግ ለማድረግ በቂ በቂ የማቀናበር ኃይል አለው።

እንቅስቃሴ JPEG

ወይም M-JPEG / MJPEG ተብሎ የሚጠራ ውስን የማቀናበር ኃይል ላለው የቪዲዮ መቅረጫ ሃርድዌር የተለመደ የቪዲዮ መጭመቂያ ቅርጸት ነው። እሱ በእውነቱ አሁንም የጄፒጂ ክፈፎች ውህደት ነው። ከ MPEG ወይም MP4 ጋር ያነፃፅሩ ፣ እንቅስቃሴ JPEG በስሌት (ኢንፍራፍሬም) ትንበያ በስሌት የተጠናከረ ቴክኒክ አያስፈልገውም ፣ እያንዳንዱ ክፈፍ ራሱን የቻለ ነው። ስለዚህ ለማመሳጠር እና ለመለየት ትንሽ ሀብትን ይፈልጋል።

ማጣቀሻ:

am.wikipedia.org/wiki/Mochrome_a ዝርዝር

am.wikipedia.org/wiki/GIF

am.wikipedia.org/wiki/Motion_JPEG

ደረጃ 3 የኦዲዮ ቅርጸት

ፒሲኤም

ለዲጂታል ድምጽ ጥሬ ውሂብ ቅርጸት። ESP32 DAC 16-ቢት ቢት ጥልቀት ይጠቀማል ፣ ያ ማለት እያንዳንዱ 16-ቢት ውሂብ ዲጂታል ናሙና የአናሎግ ምልክትን ይወክላል ማለት ነው። አብዛኛዎቹ የቪዲዮ እና የዘፈን ድምጽ በተለምዶ የናሙና ተመን በ 44100 ሜኸዝ ይጠቀማሉ ፣ ያ ማለት ለእያንዳንዱ ሰከንድ 44100 ናሙና የአናሎግ ምልክት ነው። ስለዚህ ፣ የ 1 ደቂቃ ሞኖ ኦዲዮ ፒሲኤም ጥሬ ውሂብ መጠን ይሆናል - 16 * 44100 * 60 = 42336000 ቢት = 5292000 ባይት ወይም ከ 5 ሜባ በላይ። የስቲሪዮ ድምጽ መጠን ሁለት እጥፍ ይሆናል ፣ ማለትም ከ 10 ሜባ በላይ

MP3

MPEG Layer 3 ከ 1990 ዎቹ ጀምሮ ለዘፈን መጭመቅ በሰፊው ጥቅም ላይ የዋለ የተጨመቀ የድምፅ ቅርጸት ነው። የፋይሉን መጠን በአስረኛ ጥሬ PCM ቅርጸት ስር ሊቀንስ ይችላል

ማጣቀሻ.:

am.wikipedia.org/wiki/Pulse-code_modulatio…

am.wikipedia.org/wiki/MP3

ደረጃ 4: ልወጣ ቅርጸት

ይህ የፕሮጀክት አጠቃቀም ኤፍኤምፔግ ቪዲዮውን ወደ ESP32 ተነባቢ ቅርጸት ይለውጠዋል።

እባክዎን ኤፍኤምፔግን በይፋ ጣቢያቸው ያውርዱ እና ይጫኑት -

ወደ ፒሲኤም ኦዲዮ ይለውጡ

ffmpeg -i input.mp4 -f u16be -acodec pcm_u16le -ar 44100 -ac 1 44100_u16le.pcm

ወደ MP3 ድምጽ ይለውጡ

ffmpeg -i input.mp4 -ar 44100 -ac 1 -q: a 9 44100.mp3

ወደ RGB565 ይለውጡ

ffmpeg -i input.mp4 -vf "fps = 9, ልኬት = -1: 176: ባንዲራዎች = lanczos, ሰብል = 220: in_h: (in_w -220)/2: 0" -c: v rawvideo -pix_fmt rgb565be 220_9fps. rgb

ወደ የታነመ ጂአይኤፍ ይለውጡ

ffmpeg -i input.mp4 -vf "fps = 15, ልኬት = -1: 176: ባንዲራዎች = lanczos, ሰብል = 220: in_h: (in_w -220)/2: 0, [s0] [s1]; [s0] palettegen [p]; [s1] [p] paletteuse "-loop -1 220_15fps.gif

ወደ Motion JPEG ይለውጡ

ffmpeg -i input.mp4 -vf "fps = 30, ልኬት = -1: 176: ባንዲራዎች = lanczos, ሰብል = 220: in_h: (in_w -220)/2: 0" -q: v 9 220_30fps.mjpeg

ማስታወሻ:

ኤፍኤምፔግ የተቀየረ የእነማ ጂአይኤፍ በአንዳንድ የድር መሣሪያዎች የበለጠ ሊሻሻል ይችላል ፣ አንዱን ለማግኘት የ-g.webp" />

ደረጃ 5 የሃርድዌር ዝግጅት

የሃርድዌር ዝግጅት
የሃርድዌር ዝግጅት

ESP32 ዴቭ ቦርድ

ማንኛውም ባለሁለት-ኮር ESP32 dev ቦርድ እሺ መሆን አለበት ፣ በዚህ ጊዜ እኔ TTGO ESP32-Micro ን እጠቀማለሁ።

የቀለም ማሳያ

የአርዱዲኖ_ጂኤፍኤፍ ድጋፍ የሚስማማው ማንኛውም የቀለም ማሳያ ፣ በዚህ ጊዜ እኔ ከኤስኤዲ ካርድ ማስገቢያ ጋር ILI9225 የማቋረጥ ሰሌዳ እጠቀማለሁ።

በ Github ላይ Arduino_GFX የሚደገፍ የቀለም ማሳያ ዝርዝርን ማግኘት ይችላሉ-

github.com/moononournation/Arduino_GFX

ኤስዲ ካርድ

ማንኛውም የ SD ካርድ እሺ መሆን አለበት ፣ በዚህ ጊዜ እኔ ሳንዲስክ “መደበኛ ፍጥነት” 8 ጊባ ማይክሮ ኤስዲ ከ SD አስማሚ ጋር እጠቀማለሁ።

ኦዲዮ

የጆሮ ማዳመጫ ብቻ መጠቀም ከፈለጉ በቀላሉ የጆሮ ማዳመጫ ፒኖችን ከፒን 26 ጋር ያገናኙ እና GND ኦዲዮውን ማዳመጥ ይችላል። ወይም ድምጽ ማጉያ ጋር ለማጫወት ትንሽ ማጉያ መጠቀም ይችላሉ።

ሌሎች

አንዳንድ የዳቦ ሰሌዳዎች እና የዳቦ ሰሌዳ ሽቦዎች

ደረጃ 6: ኤስዲ በይነገጽ

ኤስዲ በይነገጽ
ኤስዲ በይነገጽ
ኤስዲ በይነገጽ
ኤስዲ በይነገጽ

ILI9225 ኤልሲዲ ማቋረጫ ቦርድ እንዲሁ የ SD crd ማስገቢያ መሰንጠቂያ ፒኖችን አካቷል። እንደ SPI አውቶቡስ ወይም 1 ቢት ኤስዲ አውቶቡስ ሆኖ ሊያገለግል ይችላል። በቀደሙት አስተማሪዎቼ ውስጥ እንደተጠቀሰው ፣ 1 ቢት ኤስዲ አውቶቢስን መጠቀም እመርጣለሁ ፣ ስለዚህ ይህ ፕሮጀክት በ 1 ቢት ኤስዲ አውቶቡስ ላይ የተመሠረተ ይሆናል።

ደረጃ 7: አንድ ላይ አስቀምጡ

አንድ ላይ አስቀምጡት
አንድ ላይ አስቀምጡት
አንድ ላይ አስቀምጡት
አንድ ላይ አስቀምጡት
አንድ ላይ አስቀምጡት
አንድ ላይ አስቀምጡት

ከላይ ያሉት ሥዕሎች በዚህ ፕሮጀክት ውስጥ የምጠቀምበትን የሙከራ መድረክ ያሳያሉ። ነጩ የዳቦ ሰሌዳ 3 ዲ ታትሟል ፣ ማውረድ እና በነገር ላይ ማተም ይችላሉ -

ትክክለኛው ግንኙነት በየትኛው ሃርድዌር በእጁ ላይ እንዳለ ይወሰናል።

የግንኙነት ማጠቃለያ እነሆ-

ESP32

Vcc -> LCD Vcc GND -> LCD GND GPIO 2 -> SD D0/MISO -> 1k resistor -> Vcc GPIO 14 -> SD CLK GPIO 15 -> SD CMD/MOSI GPIO 18 -> LCD SCK GPIO 19 -> LCD ሚሶ ጂፒዮ 22 -> ኤልሲዲ LED GPIO 23 -> LCD MOSI GPIO 27 -> LCD DC/RS GPIO 33 -> LCD RST

ማጣቀሻ:

ደረጃ 8 - ፕሮግራም

ፕሮግራም
ፕሮግራም

አርዱዲኖ አይዲኢ

እስካሁን ካላደረጉት Arduino IDE ን ያውርዱ እና ይጫኑት

www.arduino.cc/en/main/software

የ ESP32 ድጋፍ

እስካሁን ካላደረጉት የ ESP32 ድጋፍ ለማከል የመጫኛ መመሪያዎችን ይከተሉ

github.com/espressif/arduino-esp32

Arduino_GFX ቤተ -መጽሐፍት

የቅርብ ጊዜዎቹን የ Arduino_GFX ቤተ -ፍርግሞችን ያውርዱ ((«Clone or Download» -> «ዚፕ አውርድ» ን ይጫኑ)

github.com/moononournation/Arduino_GFX

በአርዱዲኖ አይዲኢ ውስጥ ቤተመፃሕፍት ያስመጡ። (አርዱዲኖ አይዲኢ “ንድፍ” ምናሌ -> “ቤተ -መጽሐፍትን ያካትቱ” -> “. ZIP ቤተ -መጽሐፍትን ያክሉ” -> የወረደውን ዚፕ ፋይል ይምረጡ)

ESP8266 ኦዲዮ

የቅርብ ጊዜውን ESP8266 ኦዲዮ ቤተ -ፍርግሞችን ያውርዱ ((“Clone or Download” -> “ዚፕ አውርድ” ን ይጫኑ)

github.com/earlephilhower/ESP8266Audio

በአርዱዲኖ አይዲኢ ውስጥ ቤተመፃሕፍት ያስመጡ። (አርዱዲኖ አይዲኢ “ንድፍ” ምናሌ -> “ቤተ -መጽሐፍትን ያካትቱ” -> “. ZIP ቤተ -መጽሐፍትን ያክሉ” -> የወረደውን ዚፕ ፋይል ይምረጡ)

RGB565_Video ናሙና ኮድ

የቅርብ ጊዜውን የ RGB565_ቪዲዮ ናሙና ኮድ ያውርዱ ((«Clone or Download» -> «ዚፕ አውርድ» ን ይጫኑ)

github.com/moononournation/RGB565_video

ኤስዲ ካርድ ውሂብ

የተለወጡ ፋይሎችን ወደ ኤስዲ ካርድ ይቅዱ እና ወደ ኤልሲዲ ካርድ ማስገቢያ ያስገቡ

ያጠናቅሩ እና ይስቀሉ

  1. SDMMC_MJPEG_video_PCM_audio_dualSPI_multitask.ino ን በአርዲኖ አይዲኢ ውስጥ ይክፈቱ
  2. ILI9225 ን የማይጠቀሙ ከሆነ የክፍል ስም ለማስተካከል አዲሱን የክፍል ኮድ (በመስመር 35 ዙሪያ) ይለውጡ
  3. የአርዱዲኖ አይዲኢ “ስቀል” ቁልፍን ይጫኑ
  4. ፕሮግራሙን መስቀል ካልቻሉ በ ESP32 GPIO 2 እና SD D0/MISO መካከል ያለውን ግንኙነት ለማለያየት ይሞክሩ
  5. ዝንባሌው ትክክል ካልሆነ ፣ በአዲሱ የክፍል ኮድ ውስጥ የ “ሽክርክር” እሴቱን (0-3) ይለውጡ
  6. ፕሮግራሙ በጥሩ ሁኔታ ከሄደ በ SDMMC_* ሌላ ናሙና ለመጀመር መሞከር ይችላሉ።
  7. የ SD ካርድ ማስገቢያ ከሌለዎት ወይም FFmpeg ካልጫኑ አሁንም SPIFFS_* ምሳሌን መሞከር ይችላሉ

ደረጃ 9: ቤንችማርክ

ቤንችማርክ
ቤንችማርክ

ለተለያዩ ቪዲዮ (220x176) እና ኦዲዮ (44100 ሜኸ) ቅርጸት የአፈጻጸም ማጠቃለያ እነሆ-

ቅርጸት ፍሬም በሰከንድ (fps)
MJPEG + PCM 30
ጂአይኤፍ + ፒሲኤም 15
RGB565 + ፒሲኤም 9
MJPEG + MP3 24

ማስታወሻ:

  • MJPEG + PCM ከፍ ወዳለ fps ሊደርስ ይችላል ፣ ግን ከ 30 fps በሚበልጥ በትንሽ ማያ ገጽ ውስጥ አላስፈላጊ ጨዋታ ነው
  • RGB565 ዲኮዲንግ ሂደትን አይጠይቅም ፣ ግን የውሂብ መጠኑ በጣም ትልቅ እና ከ SD ፣ 4-ቢት ኤስዲ አውቶቡስ እና ፈጣን የ SD ካርድ በትንሹ በመጨመር ብዙ ጊዜ ያጠፋል (የዱር ግምት ወደ 12 fps አካባቢ ሊደርስ ይችላል)
  • የ MP3 ዲኮድ ሂደት ገና አልተሻሻለም ፣ አሁን ለ MP3 ዲኮዲ እና ለቪዲዮ ማጫወት ኮር 1 ን 0 ን ለይቶ ይሰጣል

ደረጃ 10: ደስተኛ ጨዋታ

መልካም ጨዋታ!
መልካም ጨዋታ!

አሁን በእርስዎ ESP32 ቪዲዮ እና ድምጽ ማጫወት ይችላሉ ፣ ብዙ ዕድሎችን ከፍቷል!

ትንሽ የወይን ተክል ቲቪ የምሰራ ይመስለኛል…

የሚመከር: