ዝርዝር ሁኔታ:

IOT ከነቃ 1 ሜትር POV: 3 ደረጃዎች (ከስዕሎች ጋር)
IOT ከነቃ 1 ሜትር POV: 3 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: IOT ከነቃ 1 ሜትር POV: 3 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: IOT ከነቃ 1 ሜትር POV: 3 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: Sydney, Australia Walking Tour - 4K60fps with Captions - Prowalk Tours 2024, ህዳር
Anonim
Image
Image
IOT ከነቃ 1 ሜትር POV
IOT ከነቃ 1 ሜትር POV
IOT ከነቃ 1 ሜትር POV
IOT ከነቃ 1 ሜትር POV
IOT ከነቃ 1 ሜትር POV
IOT ከነቃ 1 ሜትር POV

ስለዚህ ፕሮጀክት ማብራሪያ ከመጀመሬ በፊት ዝቅተኛ ጥራት ላለው ምስል እና ቪዲዮ ይቅርታ መጠየቅ እፈልጋለሁ ፣ ግን በእውነቱ እንደ ተንቀሳቃሽ ካሜራዬ በመደበኛ ካሜራ POV ን ከመሮጥ ስለታም እና ግልፅ ምስል መውሰድ በጣም ከባድ ነው። እውነተኛ እንቅስቃሴን ለመያዝ በጣም ፈጣን የዲያፍራም ዕይታ ሌንስ ይፈልጋል ፣ ግን በመጨረሻ የካኖን ካሜራዬን መግዛት ስችል የተሻለውን ቪዲዮ እሰቅላለሁ

POV ምንድን ነው

POV ከሰው እይታ እይታ ጋር የተዛመደ የርዕዮ ግሎብ (Persistence of Vision Globe) ነው። የብርሃን ማነቃቂያ በሰከንድ 1/10 ገደማ በሬቲና ላይ እንደ ተፅእኖ ሆኖ ይቆያል። የብርሃን ማነቃቂያዎች በፍጥነት በተከታታይ ሲደረደሩ ወደ አንድ ቀጣይ ምስል ይዋሃዳሉ። በእውነቱ እሱ ለፊልም እና ለቴሌቪዥን መሣሪያዎች መሠረት ነው ፣. POV እንዲህ ዓይነቱን ቅ makeት (እኛን ያታልለናል) እና በአንድ ነጥብ ወይም ዘንግ ዙሪያ የ LED መብራቶችን ድርድር በማዞር ምስሉን ይፍጠሩ

የፕሮጀክት ፈጠራ ምንድነው

ከመስመር ውጭ POV አዲስ ሀሳብ አይደለም እና ብዙ ፕሮጄክቶች በመምህራን ወይም በሌሎች ጣቢያዎች ውስጥ አሉ ፣ ሆኖም ግን እነዚህ ፕሮጀክቶች በአብዛኛው ከ MCU ማህደረ ትውስታ ወይም ኤስዲ ካርድ የሚነበቡትን ቅድመ -የማይንቀሳቀስ ቤተመቅደስ ወይም ምስል ይጠቀማሉ ፣ ግን በዚህ ፕሮጀክት ውስጥ ቆንጆ ባህሪያትን እናሰማራለን የ IOT የነቃ ቺፕ እንደ ESP8266 በዚህ ጉዳይ ላይ።

በዚህ የ IOT ባህሪዎች እኛ

  1. በገመድ አልባ አዲስ ምስሎችን በቀላሉ ወደ ማህደረ ትውስታ መስቀል ይችላል
  2. በማንኛውም ቅደም ተከተል ወይም በማንኛውም ቆይታ የምስል ማሳያ ተፈላጊውን ሁኔታ ይፍጠሩ
  3. ቺፕውን እንደገና ማረም ወይም የማህደረ ትውስታ ካርዱን መንቀል እና ለአዲሱ አኒሜሽን እንደገና መሰካት አያስፈልግም
  4. ለተጠቃሚ ምቹ IOT webhost እያንዳንዱ ሰው በሞባይል ወይም በጡባዊ ተኮ እንኳ POV ን ማቀናበር ቀላል ያደርገዋል
  5. ከ 30 በላይ የተለያዩ ምስሎች አቅም ያለው በጣም ዝቅተኛ የሃርድዌር ትግበራ

POV እንዴት እንደሚሰራ

የ POV ማሳያዎች ፣ የመስመር (1-ልኬት) የ LED መብራቶች ድርድር እንደ ብስክሌት መንኮራኩር በአንድ ነጥብ ዙሪያ ይሽከረከራል። የማሽከርከር ፍጥነታቸውን በመለካት እና ብልጭታዎቻቸውን በሚሊሰከንዶች ትክክለኛነት በመቆጣጠር ፣ በቀጭን አየር ውስጥ የሚንፀባረቀውን የ 2 ወይም 3-ልኬት ምስል ቅusionት መፍጠር እንችላለን። የማንኛውንም ውጤት (ምስል ፣ ጽሑፍ ፣…) አንድ ነጠላ ፍሬም እንመልከት ፣ እያንዳንዱ ክፈፍ ብዙ ፒክሴሎችን ያቀፈ ነው ፣ ስለሆነም በአውሮፕላን ወይም በሉል አካባቢ ውስጥ ብዙ መስመሮች ፣ POV ይህንን ምናባዊ ምስል በአንድ መስመር ያሳያል ፣ ይህም ለመሙላት ከመዞሩ ጋር ተለውጧል። ያ ምስል ፣ ስለሆነም ችግሩ የ LED ፒክሰል ቀለምን በጊዜ እና በቦታ በትክክል እንዴት እንደሚቆጣጠር ነው ስለዚህ ምስሉን ሙሉ በሙሉ መፍጠር ይችላል POV በመዞሪያ ዘንግ ላይ ተመስርተዋል ፣ የውጤቱ ዓይነት ሊታይ ይችላል እና ምን ያህል ቀለም ሊፈጥር ይችላል።

በተለያዩ የማሽከርከር ዘንግ ፣ ዕቅድ ፣ ሲሊንደራዊ እና ሉላዊ የ POV ማሳያ ማምረት ይችላል

ብዙ የፒ.ኦ.ቪ ፕሮጀክት እንደ ነጠላ WS2812 ወይም APA104 ያሉ ቀላል ነጠላ-ቀለም ኤልኢዲ ወይም ከፍተኛ ፍጥነት ስማርት ፒክሰሎችን ይጠቀማሉ እና በዚህ ፕሮጀክት ውስጥ 16 ሜኸዝ የማደሻ ፍጥነትን በተመለከተ ፈጣን የ LED ቺፕ ማደሻ APA102 ን እንጠቀማለን። ይህ የ LED ቺፕ ለመቆጣጠር 2 መስመር አለው (መሬት ፣ መረጃ ፣ ሰዓት ፣ +5 ቪ)

ደረጃ 1 POV ን እንዴት እንደሚገነቡ

POV እንዴት እንደሚገነቡ
POV እንዴት እንደሚገነቡ
POV እንዴት እንደሚገነቡ
POV እንዴት እንደሚገነቡ
POV እንዴት እንደሚገነቡ
POV እንዴት እንደሚገነቡ

መጀመሪያ የ POV ማእከሉን ለመሰካት መዋቅሩ ያስፈልገኛል ፣ ብረቱን ወይም የብረት አሠራሩን ማድረግ በእጅዎ ባለው ላይ የሚመረኮዝ ነው። ግድግዳ ላይ ለመጫን ወይም ቆሞ ለመሥራት እግሮችን በማከል በማንኛውም የሚገኝ ቁሳቁስ ሊያደርጉት ይችላሉ። ጓደኛዬ ቀላሉን ትሪፕዶድ ያደርግና የዲሲ ሞተር RPM ን በ 500 አካባቢ ለመቀነስ የጊዜ ቀበቶ ዘዴን ይጫናል። አነስተኛ ሂሳብ ግልፅ እና ወጥነት ያለው ምስል እንዲኖር ፣ በ 20 fps አካባቢ የክፈፍ ማደስ እንፈልጋለን ፣ ይህ ማለት ግልጽ ምስል እንዲኖረን ደጋግመን ወደ 20 ገደማ ማሳየት አለብን ማለት ነው። ጊዜዎች በሰከንድ ፣ የእኔ POV 1 ዲያግናል LED ስትሪፕን ያካተተ በመሆኑ እያንዳንዱ ክፈፍ በግማሽ ወይም በማሽከርከር ተጠናቅቋል ፣ በሌላ ቃል ውስጥ Ideal hub RPM በ 600 አካባቢ ያስፈልገናል እናም በዚህ አርፒኤም እያንዳንዱ አብዮት ወደ 100 ሚሴ ወሰደ። የሚከተለው ቀመር ያንን ፅንሰ -ሀሳብ RPM = (fps/Nb)*60 የትኛው Nb ከቅርንጫፍ ቁጥር ጋር እኩል ነው ፣ እና በዚህ ሁኔታ እኛ አርኤምኤም = (20/2)*60 = 600my POV በ 430 ራፒኤም ዙሪያ ይሽከረከራሉ ስለዚህ fps 15 fsp ዙሪያ ነው በዚህ ጉዳይ ላይ ጥሩ ጥሩ ነው። የሜካኒካዊ ክፍሉን መገንባት

በሚቀጥለው ደረጃ የ LED አሞሌውን ለመያዝ የፒ.ቪ.ዲ. ሲሊንደር ቁራጭ ተጠቀምኩ። ማእከሉን ከ pulley ዘንግ ጋር ለማገናኘት አንድ የ M10 መቀርቀሪያ ከፒ.ቪ.ቪ ክፍል ሁለት የ Cupper ቀለበት በ 5 ቮልት ዲሲ ወደ ቦርዱ እና ወደ ኤልዲዲ ለማስተላለፍ በ pulley ዘንግ ላይ ተጭኗል ፣ ከዚያ በሚከተሉት ስዕሎች መሠረት ይህ ክፍል በቀላል መወጣጫ ላይ ተጭኗል። ከ 12 ቮ ዲሲ ሞተር ጋር የተገናኘ የጊዜ ማስተላለፊያ ስርዓት እያንዳንዱ ክፍል የራሱ የኃይል አቅርቦት አለው እና ከእግሮች ጋር ተያይዞ በነጭ ሳጥን ውስጥ ተዘግቷል

ደረጃ 2 የሶፍትዌር ትግበራ ክፍል 1

የሶፍትዌር ትግበራ ክፍል 1
የሶፍትዌር ትግበራ ክፍል 1

በ LED ስትሪፕ ውስጥ የተሰጠውን ምስል ለማሳየት እያንዳንዱ ምስል በፒክሴል ተይዞ ከዚያ ወደ MCU ማህደረ ትውስታ ተሰቅሎ ከዚያ ለኤሌክትሪክ መስመር መስመር በመስመር መመገብ አለበት ፣ ለሶፍትዌር ያደረግሁትን ለማድረግ ለሁለት የተለያዩ የመሣሪያ ስርዓቶች ፣ አንዱ በጃቫ የአሂድ ሂደት ሂደት ላይ የተመሠረተ ነው። እና ሌላ በ C ++ ውስጥ ለ MCUProsessing pixelized ፕሮግራም ይህ ፕሮግራም በሂደት አይዲኢ ውስጥ የፃፈ እና በቀላሉ የምስል ፋይልን ይከፍታል ፣ ከዚያ የምስል ፒክሴል መስመሮችን ለማውጣት በደረጃዎች ያሽከርክሩታል። /200=1.8 ዲግሪ) 200 መስመር ለማውጣት 200 ጊዜ። የእኔ LED ስትሪፕ 144 LED ን በተከተተ APA102 ቺፕ ያካተተ እንደመሆኑ አንድ ሙሉ ምስል 200*144 = 28800 ፒክሰል አለው። በ APA102 ቺፕ ውስጥ ያለው እያንዳንዱ ቀለም በ 4 ባይት (ወ ፣ አርጂቢ) በመሆኑ እያንዳንዱ የምስል መጠን በትክክል 200*144*4 = 115200 ወይም 112.5 ኪባ የሚከተለው የሂደቱን ኮድ የምስል ፒክሴላይዜሽን ቅደም ተከተል ያሳያል ፣ ውጤቱም ሊሆን የሚችል የቢን ቅጥያ ፋይል ይሆናል። ወደ MCU ማህደረ ትውስታ ይስቀሉ

PImage img ፣ black_b ፣ image_load ፤ የህትመት ደብተር ውፅዓት ፤ int SQL; ተንሳፋፊ led_t; ባይት pov_data; int line_num = 200; ሕብረቁምፊ _OUTPUT = "";

ባዶ ቅንብሮች ()

{selectInput («ምስል ምረጥ» ፣ «imageChosen») ፤ noLoop (); ጠብቅ(); }

ባዶነት ማዋቀር ()

{output = createWriter (_OUTPUT); black_b = createImage (SQL ፣ SQL ፣ RGB) ፤ black_b.loadPixels (); ለ (int i = 0; i = line_num) {noLoop (); output.flush (); output.close ();} background (black_b); pushMatrix (); ImageMode (ማዕከል); መተርጎም (SQL/2 ፣ SQL/2); ማሽከርከር (ራዲያን (l*360/line_num)); ምስል (img ፣ 0 ፣ 0); ፖፕ ማትሪክስ (); pushMatrix (); ለ (int i = 0; i <144; i ++) {color c = get (int (i*led_t+led_t/2) ፣ int (SQL/2)); output.print ((ቻር) ቀይ (ሐ)+""+(ቻር) አረንጓዴ (ሐ)+""+(ቻር) ሰማያዊ (ሐ)); // ማተም ((ቻር) ቀይ (ሐ)+""+(ቻር) አረንጓዴ (ሐ)+""+(ቻር) ሰማያዊ (ሐ)+";"); መሙላት (ሐ); ቀጥተኛ (i*led_t ፣ (SQL/2)-(led_t/2) ፣ led_t ፣ led_t); } // println (); ፖፕ ማትሪክስ (); // መዘግየት (500); l ++; }

ባዶ ባዶ ተጭኗል ()

{output.flush (); // ቀሪውን ውሂብ ወደ ፋይል output.close ይጽፋል (); // የፋይሉን መውጫ () ያጠናቅቃል ፤ // ፕሮግራሙን ያቆማል}

ባዶ ምስል የተመረጠ (ፋይል ረ)

{if (f == null) {println («መስኮቱ ተዘግቷል ወይም ተጠቃሚው ሰርዝ» የሚል ከሆነ) ፤ መውጫ () ፤ } ሌላ {ከሆነ (f.exists ()) img = loadImage (f.getAbsolutePath ()); ሕብረቁምፊ s = f.getAbsolutePath (); ሕብረቁምፊ ዝርዝር = ተከፋፍሏል (ዎች ፣ '\'); int n = list.length; ሕብረቁምፊ fle = ተከፋፈለ (ዝርዝር [n-1] ፣ '.')); println ("ክፍት ፋይል:"+fle [0]); _OUTPUT = fle [0]+". Bin"; // img = loadImage ("test.jpg"); int w = img.width; int h = img.ightight; SQL = ከፍተኛ (ወ ፣ ሸ); መጠን (SQL ፣ SQL); led_t = SQL/144.0; println ("h ="+h+"w ="+w+"max ="+SQL+"መጠን led ="+led_t); } ባዶ ባዶ መዳፊት () {loop ();}

ባዶ mydata ()

{byte b = loadBytes ("something.dat"); // እያንዳንዱን እሴት ከ 0 እስከ 255 ለ (int i = 0; i <b.length; i ++) {// እያንዳንዱ አሥረኛ ቁጥር ((i % 10) == 0) println () ከሆነ አዲስ መስመር ይጀምሩ; // ባይት ከ -128 እስከ 127 ነው ፣ ይህ ወደ 0 ወደ 255 int a = b & 0xff; ማተም (a + ""); } println (); // በመጨረሻው saveBytes ላይ ባዶ መስመር ያትሙ (“ቁጥሮች። ቀን” ፣ ለ) ፤ } ባዶነት መጠበቅ () {ሳለ (img == null) {መዘግየት (200) ፤ } loop (); }

ደረጃ 3 የሶፍትዌር ትግበራ ክፍል 2

Image
Image
የሶፍትዌር ትግበራ ክፍል 2
የሶፍትዌር ትግበራ ክፍል 2
የሶፍትዌር ትግበራ ክፍል 2
የሶፍትዌር ትግበራ ክፍል 2

የ MCU ማሳያ ፕሮግራም

ከፍተኛ አፈፃፀም ESP8266 ቺፕ በሁለት ምክንያቶች ተመርጧል ፣ በመጀመሪያ የድር አገልጋይን ለማስተናገድ የ WiFi ባህሪያትን ለመጠቀም የ SDK መሳሪያዎችን በጥሩ ሁኔታ ያዳብራል። በዚህ ችሎታዎች ፣ ለተጠቃሚ ምቹ ድር-አገልጋይ ፒክሴል የተደረገውን ምስል ወደ MCU ማህደረ ትውስታ ለመስቀል እና ለተጠቃሚ ለማሳየት ትዕይንት ሁኔታን ይፈጥራል። በ 4 ሜባ ESP-12E ተከታታይ 1 ሜባ ለፕሮግራም እና 3 ሜባ ለፒክሴል ምስል 112.5 ኪባ መጠን ላላቸው ምስሎች እኛ በ MCU ላይ የተሰቀለውን በግምት 25 ምስል ልናደርግ እና የምጠቀምበትን ለተሰቀለው ምስል ማንኛውንም ቅደም ተከተል ወይም ማንኛውንም የማሳያ ጊዜ ልናደርግ እንችላለን። የድር አገልጋዩን ለመሥራት የአሩዲኖ ኮድ መሠረት ትግበራ። በሚከተለው መሠረት ኮዱ በሉፕው ውስጥ ሶስት ዋና ተግባራት አሉት

ባዶነት loop () {ከሆነ (! SHOW &&! TEST) server.handleClient (); ከሆነ (SHOW) {ከሆነ ((ሚሊስ ()- OpenlastTime)> DURATION [image_index]*1000) {ከሆነ (image_index> = IMAGE_NUM) image_index = 0; _ memory_pointer = start_address_of_imagefile [image_index]; Serial.printf ("የፋይል ቁጥር =%u ስም%s አድራሻ%u ቆይታ%%\ n" ፣ image_index ፣ IMAGES [image_index].c_str () ፣ start_address_of_imagefile [image_index] ፣ DURATION [image_index]) ፤ Current_imageLine = 0; image_index ++; OpenlastTime = ሚሊስ (); } ከሆነ ((ማይክሮስ ()-lastLineShow)> lineInterval) {lastLineShow = micros (); ESP.flashRead (_ የማስታወስ_አዋቂ ፣ (uint32_t *) leds ፣ NUM_LEDS *3); FastLED.show (); _ memory_pointer+= (NUM_LEDS*3); የወቅቱ_ምስልላይን ++; መዘግየት (LineIntervalDelay); } ከሆነ (Current_imageLine> = IMAGES_LINES) {Current_imageLine = 0; _ memory_pointer = start_address_of_imagefile [image_index-1]; }} ብሩህ -ተስፋ (1000); }

የአገልጋይ ተቆጣጣሪ አገልጋዩን.handleClient (); በድር ደንበኛ ላይ ማንኛውንም የደንበኛ ጥያቄ ለማስኬድ ኃላፊነት ያለው ፣ ይህ ድር ጣቢያ ማንኛውንም የመንግሥት ሪፖርት ማሳያ ቅንብሮችን ውሂብ ለመስቀል የዘፈቀደ ንድፍ ሊሆን ይችላል። በመጀመሪያው ትር ውስጥ ምስሎችን እንደሚከተሉ የእኔ የድር መንፈስ ሶስት ትርን ያጠቃልላል እኛ ለእያንዳንዱ ማሳያ በቅደም ተከተል እና ቆይታ ፣ እንዲሁም የአውታረ መረብ መረጃን እንዲሁም የሚታየውን POV rpm / የአሁኑን የትዕይንት ሁኔታ ማየት እንችላለን።

በሰቀላ ምስል ትር ውስጥ ፒክሴል የተደረገ ምስል ወደ MCU ማህደረ ትውስታ መስቀል ወይም የተወሰነ ምስል መሰረዝ እንችላለን

በአውታረ መረብ ትር ውስጥ እንደ wifi ሁነታ ፣ የማይንቀሳቀስ አይፒ ፣ የአውታረ መረብ ስም እና ማለፊያ ፣ የአውታረ መረብ ቅንብሮችን መለወጥ እንችላለን።

ምስል ወደላይ ጫ load

ይህ የአገልጋይ ደንበኛ ጥያቄ በአክስክስ የፒክሴል ምስል ወደ MCU ማህደረ ትውስታ እንዲሰቅል ፣ ከዚያም ፋይሉን በተቻለ ፍጥነት ለማንበብ በጥሬ ቅርጸት በማስታወሻ ውስጥ ይፃፉ። በ LED ስትሪፕ ውስጥ ለማሳየት በጠረጴዛው ውስጥ የማስታወሻ መጀመሪያ እና ማብቂያ ቦታ መደብር

የማሳያ ተግባር

በ ‹LED strip› ውስጥ ፒክሴልን ለማሳየት FastLED lib ን እጠቀም ነበር ፣ ይህ ቤተ -መጽሐፍት በ AVR እና በ ESP መድረክ ላይ ለኤልኢዲ ትዕይንት በጣም የተሳካ እና በደንብ የተገነባ ነው። እሱ የተከማቸ የ LED ፒክሴል ቦታ የሆነውን FastLED ተግባር መላክ ብቻ ነው። ከመስመር ላይ ፒክሰሎችን ከመስመር ላይ እናነባለን እና በ LED ስትሪፕ ውስጥ እናሳየዋለን እና አዲስ የማዞሪያ ባንዲራ እውን እስኪሆን እንጠብቃለን። የእያንዳንዱ ምስል 200 መስመሮች እስኪነበብ ድረስ ይህንን ቅደም ተከተል ደገምነው

በእኔ git ማከማቻ ውስጥ እዚህ ያለው አጠቃላይ ኮድ

የሚከተለው የ POV ቪዲዮ በሞባይል ካሜራ የተቀረፀ ሲሆን እኔ እንደገለጽኩት የባለሙያ ካሜራ በዝቅተኛ ድያፍራም ፍጥነት ምክንያት የቪዲዮው ጥራት ጥሩ አይደለም

የሚመከር: