![1 מטר POV עם IOT מופעל: 3 שלבים (עם תמונות) 1 מטר POV עם IOT מופעל: 3 שלבים (עם תמונות)](https://i.howwhatproduce.com/images/003/image-8114-20-j.webp)
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-23 14:46
![](https://i.ytimg.com/vi/6-jP3G-PSas/hqdefault.jpg)
![Image Image](https://i.howwhatproduce.com/images/003/image-8114-23-j.webp)
![1 מטר POV עם IOT מופעל 1 מטר POV עם IOT מופעל](https://i.howwhatproduce.com/images/003/image-8114-24-j.webp)
![1 מטר POV עם IOT מופעל 1 מטר POV עם IOT מופעל](https://i.howwhatproduce.com/images/003/image-8114-25-j.webp)
![1 מטר POV עם IOT מופעל 1 מטר POV עם IOT מופעל](https://i.howwhatproduce.com/images/003/image-8114-26-j.webp)
לפני תחילת ההסבר על הפרויקט הזה אני רוצה להתנצל על תמונה ווידאו באיכות נמוכה, אבל האמת שזה ממש קשה לצלם תמונה חדה וברורה מהפעלת POV עם מצלמה רגילה כמו המצלמה הניידת שלי. היא זקוקה לעדשה אופטית דיאפרגמה מהירה מאוד כדי ללכוד תנועה אמיתית, אבל אני אעלה את הסרטון הטוב יותר כשאני סוף סוף אוכל לקנות את מצלמת CANON שלי
מהו ה- POV
POV מייצגים את Persistence Of Vision Globe הקשור לתופעה של ראייה אנושית. גירוי קל מתמשך כתוצאה מאוחרת על הרשתית במשך כ -1/10 שנייה. כאשר גירויי האור מתרצפים ברצף מהיר, הם מתמזגים לתמונה אחת רציפה. למעשה זה הבסיס למכשירי קולנוע וטלוויזיה,. POV יוצר אשליה כזו (שולל אותנו) ויוצר את התמונה על ידי סיבוב מערך נורות הלד סביב נקודה או ציר בודד
מהו חדשנות פרויקטים
כמובן ש- POV אינו רעיון חדש והרבה פרויקטים קיימים כבר במדריכים או באתרים אחרים, אולם הפרויקטים האלה משתמשים בעיקר במקדש סטטי או בתמונה סטטית שנקראת בעיקר מזיכרון MCU או מכרטיס SD, אך בפרויקט זה אנו משתמשים בפריסת תכונות יפות. של שבב מופעל IOT כמו ESP8266 בעניין זה.
עם תכונות IOT אלה אנו
- יכול בקלות להעלות תמונות חדשות לזיכרון באופן אלחוטי
- צור את התרחיש הרצוי של הצגת תמונות עם כל רצף או כל משך זמן
- אין צורך לתכנת מחדש את השבב או לנתק את כרטיס הזיכרון ולחבר אותו מחדש לאנימציה חדשה
- מארח אתרים ידידותי למשתמש IOT מקל על כל אחד לאסוף POV עם נייד או טאבלט אפילו מרחוק
- יישום חומרה בעלות נמוכה מאוד עם קיבולת של יותר מ -30 תמונות שונות
כיצד פועל POV
תצוגות POV, מערך לינארי (חד ממדי) של נורות LED מסתובב סביב נקודה אחת, כמו גלגל אופניים. על ידי מדידת קצב הסיבוב שלהם ושליטה על ההבזקים שלהם בדיוק של אלפיות השנייה, אנו יכולים ליצור אשליה של תמונה דו-ממדית דו-ממדית שנשארת באוויר. הבה נבחן את המסגרת היחידה של כל אפקט (תמונה, טקסט, …), כל מסגרת מורכבת מפיקסלים רבים ומכאן שורות רבות במישור או באזור כדורית, POV מציג תמונה זו עם שורה אחת של תמונה אשר משתנה המיקום יחד עם סיבובו למילוי התמונה הזו, כך שהבעיה היא כיצד לשלוט במדויק על צבע פיקסל LED בצורה של זמן ומרחב, כך שהיא יכולה ליצור תמונה שלמה. POV מסווגים בסיס על ציר הסיבוב, סוג האפקט שניתן להציג וכמה צבע יכול ליצור.
על ידי ציר סיבוב שונה, יכול לייצר תצוגת POV מישורית, גלילית וכדורית
בפרויקטים רבים של POV משתמשים בפיקסלים חכמים LED פשוטים או במהירות גבוהה כמו פיקסלים חכמים במהירות גבוהה כמו WS2812 או APA104 ובפרויקט זה אנו משתמשים ברענון שבבי LED המהיר APA102 עם קצב רענון של כמעט 16 מגה-הרץ. לשבב LED זה יש 2 קווי שליטה (קרקע, נתונים, שעון, +5 וולט)
שלב 1: כיצד לבנות POV
![כיצד לבנות POV כיצד לבנות POV](https://i.howwhatproduce.com/images/003/image-8114-27-j.webp)
![כיצד לבנות POV כיצד לבנות POV](https://i.howwhatproduce.com/images/003/image-8114-28-j.webp)
![כיצד לבנות POV כיצד לבנות POV](https://i.howwhatproduce.com/images/003/image-8114-29-j.webp)
בהתחלה אני צריך את המבנה כדי להתקין רכזת POV, מה שהופך את מבנה המתכת או הלא מתכתי תלוי במה שיש לך בידיים. אתה יכול להכין אותו עם כל חומר זמין כדי להתקין אותו על קיר או להוסיף רגליים לייצור מעמד. החבר שלי עושה את החצובה הפשוטה ומרכיב את מנגנון חגורת התזמון כדי להפחית את סל"ד המנוע DC בסביבות 500. מתמטיקה קטנה. לקבלת תמונה ברורה וקוהרנטית, אנו זקוקים לריענון מסגרות בסביבות 20 fps, זה אומר שיהיה לנו תמונה ברורה שאנחנו צריכים להציג אותה שוב ושוב כ -20 פעמים בשנייה, מכיוון שה POV שלי מורכב מרצועת LED אלכסונית אחת, ומכאן שכל מסגרת הושלמה בחצי או בסיבוב, במילה אחרת אנו צריכים את סל"ד הרכז האידיאלי בסביבות 600 ועם סל"ד זה כל מהפכה ארכה כ -100 אלפיות השנייה. המשוואה הבאה מדגימה כי מושג RPM = (fps/Nb)*60 אשר Nb שווה למספר הענף, ובמקרה זה יש לנו RPM = (20/2)*60 = 600 POV שלי מסתובב סביב 430 סל"ד ולכן ה- fps שלי הוא סביב 15 fsp וזה די טוב בנושא הזה. בניית החלק המכני
בשלב הבא השתמשתי בחתיכת גליל PVC טחון כדי להחזיק את מוט ה- LED. כדי לחבר את הרכזת עם פיר גלגלת, בורג אחד M10 הוברק בחלק האחורי של החלק PCV שני טבעת נחושת המותקנת על גלגלת ההילוכים לשידור 5 וולט DC ללוח ורצועת LED, ואז לפי התמונות הבאות, חלק זה מותקן על הגלגלת הפשוטה מערכת העברת זמן המחוברת למנוע 12V DC לכל חלק יש ספק כוח משלו ומוקף בקופסה לבנה המחוברת לרגליים
שלב 2: יישום תוכנה חלק 1
![יישום תוכנה חלק 1 יישום תוכנה חלק 1](https://i.howwhatproduce.com/images/003/image-8114-30-j.webp)
על מנת להדגים את התמונה הנתונה ברצועת LED, יש לפקסס כל תמונה ולאחר מכן להעלות לזיכרון MCU ולאחר מכן להאכיל אותה לרצועת LED שורה אחר שורה, לשם כך עשיתי לתוכנה לשתי פלטפורמות שונות, אחת מבוססת על עיבוד זמן ריצה של java ואחרים ב- C ++ לתוכנית MCP עיבוד פיקסלים בתוכנית זו כתבה בעיבוד IDE והיא פשוט פותחת קובץ תמונה ואז מסובבת אותו בשלבים לחילוץ שורות תמונה מפוקסלות. אני בוחר 200 קו להצגת תמונה כלשהי, כך שאני מסובב את התמונה סמוך (360 /200=1.8 תואר) 200 פעמים לחלץ 200 קו. מכיוון שרצועת ה- LED שלי מורכבת מ- 144 LED עם שבב APA102 מוטבע ולכן לתמונה שלמה יש 200*144 = 28800 פיקסלים. מכיוון שכל צבע בתצוגת שבב APA102 עם 4 בתים (W, RGB) מכאן שכל גודל תמונה הוא בדיוק 200*144*4 = 115200 או 112.5KB בעקבות קוד העיבוד מדגים את רצף פיקסליזציית התמונה, והתוצאה תהיה קובץ סיומת סל שיכול להעלות לזיכרון MCU
PImage img, black_b, image_load; פלט PrintWriter; 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 ();} רקע (black_b); pushMatrix (); imageMode (CENTER); תרגם (SQL/2, SQL/2); לסובב (רדיאנים (l*360/line_num)); תמונה (img, 0, 0); popMatrix (); pushMatrix (); עבור (int i = 0; i <144; i ++) {color c = get (int (i*led_t+led_t/2), int (SQL/2)); output.print ((char) אדום (c)+""+(char) ירוק (c)+""+(char) כחול (c)); // print ((char) אדום (c)+""+(char) ירוק (c)+""+(char) כחול (c)+";"); מילוי (ג); rect (i*led_t, (SQL/2)-(led_t/2), led_t, led_t); } // println (); popMatrix (); // עיכוב (500); l ++; }
void keyPressed ()
{output.flush (); // כותב את הנתונים הנותרים לקובץ output.close (); // מסיים את יציאת הקובץ (); // מפסיק את התוכנית}
תמונה חללה נבחרה (קובץ f)
{if (f == null) {println ("החלון נסגר או שהמשתמש ביטל ביטול."); יציאה (); } אחר {if (f.exists ()) img = loadImage (f.getAbsolutePath ()); מחרוזת s = f.getAbsolutePath (); מחרוזת list = פיצול (ים, '\'); 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.height; SQL = מקסימום (w, h); גודל (SQL, SQL); led_t = SQL/144.0; println ("h ="+h+"w ="+w+"max ="+SQL+"size led ="+led_t); }} void mousePressed () {לולאה ();}
בטל נתונים שלי ()
{בייט 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 ("numbers.dat", b); } void wait () {while (img == null) {delay (200); } לולאה (); }
שלב 3: יישום תוכנה חלק 2
![](https://i.ytimg.com/vi/6-jP3G-PSas/hqdefault.jpg)
![Image Image](https://i.howwhatproduce.com/images/003/image-8114-33-j.webp)
![יישום תוכנה חלק 2 יישום תוכנה חלק 2](https://i.howwhatproduce.com/images/003/image-8114-34-j.webp)
![יישום תוכנה חלק 2 יישום תוכנה חלק 2](https://i.howwhatproduce.com/images/003/image-8114-35-j.webp)
תוכנית תצוגה של MCU
שבב ESP8266 בעל ביצועים גבוהים נבחר משתי סיבות, ראשית הוא פיתח היטב כלי SDK פתוחים כדי לנצל את תכונות ה- WiFi לצידו הזיכרון לאירוח שרת אינטרנט למשתמש. עם יכולות אלה, שרת אינטרנט ידידותי למשתמש המיועד להעלות את התמונה המפוקסלת לזיכרון MCU וליצור תרחיש הגדרת משתמש להצגה. עם 4 Mb סדרות ESP-12E נוכל להשתמש ב- 1 Mb לתוכנית וב -3 Mb לתמונות אשר בגודל 112.5KB לתמונה מפוקסלת נוכל להעלות בערך 25 תמונות ב- MCU ויכולים לבצע כל רצף או כל תקופת תצוגה של תמונה שהועלתה בה אני משתמש יישום בסיס קוד Arduino ליצירת שרת האינטרנט. לקוד יש שלוש פונקציות עיקריות בלולאה שלו בהתאם להלן
לולאת void () {if (! SHOW &&! TEST) server.handleClient (); if (SHOW) {if ((millis ()- OpenlastTime)> DURATION [image_index]*1000) {if (image_index> = IMAGE_NUM) image_index = 0; _memory_pointer = start_address_of_imagefile [image_index]; Serial.printf ("מספר קובץ = שם%u: כתובת%s: משך%u:%u / n", image_index, IMAGES [image_index].c_str (), start_address_of_imagefile [image_index], DURATION [image_index]); Current_imageLine = 0; image_index ++; OpenlastTime = millis (); } if ((micros ()-lastLineShow)> lineInterval) {lastLineShow = micros (); ESP.flashRead (_memory_pointer, (uint32_t *) leds, NUM_LEDS *3); FastLED.show (); _memory_pointer+= (NUM_LEDS*3); Current_imageLine ++; עיכוב (LineIntervalDelay); } אם (Current_imageLine> = IMAGES_LINES) {Current_imageLine = 0; _memory_pointer = start_address_of_imagefile [image_index-1]; }} אופטימיסטי_מסגרת (1000); }
מטפל שרתים server.handleClient (); אחראי לעבד כל בקשת לקוח ב- webhost, אתר זה עשוי להיות עיצוב שרירותי להעלאת נתונים, שינוי הגדרת ההצגה של כל דוח מדינה. מארח האתרים שלי מורכב משלוש כרטיסיות כתמונות הבאות בכרטיסייה הראשונה שנוכל לבדוק את התרחיש הנוכחי של ההצגה עם רצף ומשך לכל תמונה, גם מידע על רשת כמו גם עלות POV המוצגת
בכרטיסיית תמונת העלאה נוכל להעלות תמונה מפוקסלת לזיכרון MCU או למחוק תמונה ספציפית
בכרטיסיה רשת נוכל לשנות את הגדרת הרשת כגון מצב wifi, IP סטטי, שם רשת וכרטיס,..
מטען מעלה תמונה
בקשת לקוח שרת פונקציה זו של Ajax להעלות תמונה מפוקסלת לזיכרון MCU, ולאחר מכן לכתוב את הקובץ בזיכרון בפורמט גלם כך שקריאת הקובץ תהיה מהירה ככל האפשר. אחסון מיקום התחלה וסיום של זיכרון בטבלה להצגה ברצועת LED
פונקציית תצוגה
השתמשתי ב- lib של FastLED כדי להציג פיקסל ברצועת LED, ספרייה זו היא אחת המוצלחות והמצויחות ביותר להצגת LED בפלטפורמת AVR ו- ESP. זה רק צריך לשלוח את הפונקציה FastLED, המיקום של פיקסל LED המאוחסן. אנו קוראים פיקסלים שורה אחר שורה מהזיכרון ומראים אותו ברצועת LED ומחכים לדגל סיבוב חדש שיתגשם. חזרנו על רצף זה עד שנקראו 200 שורות מכל תמונה
כל הקוד הממוקם במאגר git שלי כאן
להלן סרטון ה- POV בפעולה אשר מוקלט במצלמה ניידת וכפי שהסברתי, איכות הווידאו אינה טובה בשל מהירות דיאפרגמה איטית של מצלמה לא מקצועית
מוּמלָץ:
מטר ARDUINO PH: 6 שלבים (עם תמונות)
![מטר ARDUINO PH: 6 שלבים (עם תמונות) מטר ARDUINO PH: 6 שלבים (עם תמונות)](https://i.howwhatproduce.com/images/005/image-13706-j.webp)
ARDUINO PH METER: בפרויקט זה נכין מד pH על שולחן העבודה באמצעות מעגל ה- pH האנלוגי וכוח הכבידה של Atlas Scientific ו- Arduino Uno. הקריאות יוצגו על גבי תצוגת קריסטל נוזלי (LCD). הערה:- מד זה פותח במערכת Windows
"גאדג'ט אזעקה" למרחק של מטר אחד מנגיף הקורונה 19 מטר: 7 שלבים
!["גאדג'ט אזעקה" למרחק של מטר אחד מנגיף הקורונה 19 מטר: 7 שלבים "גאדג'ט אזעקה" למרחק של מטר אחד מנגיף הקורונה 19 מטר: 7 שלבים](https://i.howwhatproduce.com/images/007/image-19453-j.webp)
"קורונה Covid-19" 1 מד תתקרב גאדג'ט מעורר: بسم الله الرحمن الرحيم מאמר זה הפגנה של השימוש בחיישן חיישן מרחק אולטרא סאונד HC-SR04.The יהיה לשמש כמכשיר מדידה לבניית " 1 Meter גאדג'ט אזעקה שמור משם " לצורכי ריחוק. החזייה
HX1 -DM - מכונת התופים DIY מופעל Arduino DUE מופעל DIY (עשוי עם מכונה מתה MK2): 4 שלבים
![HX1 -DM - מכונת התופים DIY מופעל Arduino DUE מופעל DIY (עשוי עם מכונה מתה MK2): 4 שלבים HX1 -DM - מכונת התופים DIY מופעל Arduino DUE מופעל DIY (עשוי עם מכונה מתה MK2): 4 שלבים](https://i.howwhatproduce.com/images/001/image-1381-157-j.webp)
HX1 -DM - מכונת התופים DIY המופעלת על ידי Arduino DUE מופעל (עשוי עם מכונה מתה MK2): המפרט. בקר / מכונת תופים היברידית מידי: Arduino DUE מופעל! 16 רפידות חישה מהירות עם זמן אחסון נמוך מאוד 1 &ms; ידיות 8 ידיות שניתן להקצות לכל פקודה Midi #CC 16ch sequencer מובנה (אין צורך במחשב !!) MIDI in/out/thru functio
תותח פנאומטי אוטומטי. מופעל Arduino מופעל: 13 שלבים
![תותח פנאומטי אוטומטי. מופעל Arduino מופעל: 13 שלבים תותח פנאומטי אוטומטי. מופעל Arduino מופעל: 13 שלבים](https://i.howwhatproduce.com/images/004/image-9844-j.webp)
תותח פנאומטי אוטומטי. נייד ו Arduino מופעל: היי לכולם! זו ההנחיה להרכיב תותח פנאומטי נייד. הרעיון היה ליצור תותח שיכול לירות דברים שונים. הצבתי כמה מטרות עיקריות. אז מה התותח שלי צריך להיות: אוטומטי. כדי לא לדחוס אוויר באופן ידני עם
מטר CUBIC Arduino: 3 שלבים (עם תמונות)
![מטר CUBIC Arduino: 3 שלבים (עם תמונות) מטר CUBIC Arduino: 3 שלבים (עם תמונות)](https://i.howwhatproduce.com/images/004/image-11167-2-j.webp)
Arduino CUBIC METER: הפרויקט שהועלה תוכנן ותוכנת על ידי רודריגו מג'יאס (סנטיאגו-צ'ילה). המוצר מורכב ממדידה ממרחק ליניארי פשוט, מטרים רבועים ועד מטרים מעוקבים. מכיוון שאנו משתמשים בחיישני אולטרסאונד HC-SR04, המרחקים אינם אמורים