תוכן עניינים:
- שלב 1: חקר הרעיון
- שלב 2: חומרה
- שלב 3: הרכבה
- שלב 4: שליטה?
- שלב 5: לעשות את זה קל
- שלב 6: ניסויים ראשונים
- שלב 7: שליטה בזמן אמת
- שלב 8: מסקנות
וִידֵאוֹ: אור סביבה אינטראקטיבי: 8 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:17
זו ההנחיה הראשונה שלי! אנא, הישא עמי בזמן שאני מתקשה לכתוב אנגלית ראויה. אתה מוזמן לתקן אותי! התחלתי את הפרויקט הזה מיד אחרי שהתחילה תחרות 'תן לזה לזהור'. הלוואי שהייתי עושה הרבה יותר וגמרתי את מה שרציתי להכין. אבל בין הלימודים לעבודה, לא נשאר לי כל כך הרבה זמן שרציתי. עם זאת, אני משאיר כאן דו ח על הניסויים שלי כהנחיה, כך שכל אחד יכול לנסות ולעשות את מה שעשיתי. הוראה זו אינה מיועדת לשמש מדריך וללמד כיצד ליצור את המתקן הזה. זה לא מדריך למתחילים בתחום האלקטרוניקה. זה יותר כמו לשתף רעיון אחד ויעד שאני רוצה להמשיך בו. אם אתה מתחיל/בור לחלוטין בתחום האלקטרוניקה ורוצה להכין דבר כזה, אני מצטער! אבל אנחנו יכולים לנסות לעזור לך תמיד. ראה את השלב האחרון. כבר ראינו פרויקטים רבים של אור הסביבה. רובם משתמשים בנורות RGB: - כדי להאיר חדר בצבע אחד, להגדיר אווירה שתתאים למצב הרוח שלך - ליצירת אפקטים של אור מצבע הטלוויזיה/צג או משמע. יש אפילו כמה ב instructables.com הקשורים: מערכות DIY אור לסביבה DIY Lighting Ambient Lighting בניית פסי תאורה צבעוניים משלך בעזרת תחרות זו כתירוץ, התחלתי פרויקט שנמצא במוחי זמן מה. תמיד רציתי לעשות משהו דומה לאורות הסביבה האלה ולמלא את הקירות בחדר שלי עם נוריות RGB. אבל, לקחת את זה צעד קדימה, מה שהופך את כל אחד ואחד לשליטה. פרויקט זה יקווה, ככל הנראה, ערכת אלקטרוניקה בעלת קוד פתוח לחובבים ולהתעסקות אלקטרונית, שתאפשר פריצה לחומרה/תוכנה ואינטגרציה חושית. להלן תצוגה מקדימה קטנה של מה שהכנתי:
שלב 1: חקר הרעיון
אני רוצה להיות מסוגל למלא את הקירות בחדר שלי עם נוריות RGB, שליטה על הצבע והבהירות של כל לד. אני הולך להשתמש במיקרו -בקר לנוחות השימוש והגמישות. למרבה הצער אני לא יכול לשלוט במאות נוריות עם מעט הסיכות הזמינות בבקרי מיקרו. זה יהיה אפילו קשה לקודד את השליטה בכל כך הרבה נוריות. אז החלטתי שאני צריך לחלק את כל הלדים למספר ברים קטנים יותר ולכל בר אני יכול להשתמש במיקרו -בקר. לאחר מכן הייתי משתמש ביכולות התקשורת של בקרי המיקרו כדי לשתף מידע ביניהם. מידע זה יכול להיות הצבע והבהירות של נוריות LED, דפוסים/רצפי צבעים ומידע חושי. עבור כל סרגל החלטתי להשתמש ב- 16 נוריות RGB. כתוצאה מכך בר לא גדול מדי או קטן מדי. בדרך זו אני משתמש במספר מקובל של משאבים עבור כל לד, ומפחית את העלויות עבור כל בר. עם זאת, 16 נוריות RGB הן 48 נוריות (3*16 = 48) לבקרת המיקרו. עם עלויות בחשבון, החלטתי להשתמש המיקרו -בקר הזול ביותר שיכולתי להשתמש בו. המשמעות היא שלמיקרו -בקר יהיו עד 20 סיכות קלט/פלט בלבד, לא מספיק ל -48 נוריות LED. אינני מעוניין להשתמש בשילוב דו -צדדי או בכונן כלשהו לפיצול זמן, מכיוון שמטרת הפרויקט היא הארת חדר. אלטרנטיבה שהייתי יכול לחשוב עליה היא שימוש במאגר משמרות כלוא כלשהו! חידוש:- יצירת אור וסביבה אינטראקטיבית- צור סרגל סטנדרטי של נוריות ניתנות לשליטה- אפשרות לחבר מספר ברים למילוי חדר- אפשר התאמה/תצורה של משתמשים ושילוב חושי.
שלב 2: חומרה
כפי שנאמר בשלב הקודם, אני רוצה להכין כמה ברים כדי להאיר חדר אחד. זה מעלה בראש את נושא העלות. אני אנסה להפוך כל בר בצורה החסכונית ביותר שיש. המיקרו -בקר בו השתמשתי היה AVR ATtiny2313. אלה די זולים והיו לי כמה שוכבים. ל- ATtiny2313 יש גם ממשק סידורי אוניברסלי אחד וממשק אחד של USART אשר יועילו היטב בשלבים הבאים. היו לי גם שלושה MCP23016 - I2C 16bit I/O מרחיב יציאות I/O שוכב, בדיוק הספירה הנכונה! השתמשתי בכל מרחיב יציאות לשליטה בצבע אחד של 16 הנורות. הנורות … למרבה הצער, היו הזולות ביותר שיכולתי למצוא. הם 48 אדומים, ירוקים וכחולים ~ 10000mcd 5mm עם זווית של 20 מעלות. זה לא אמור לעניין בינתיים, מכיוון שזהו רק אב טיפוס אחד. למרות עובדה זו, התוצאה די נחמדה! אני מפעיל את המיקרו -בקר במהירות 8 מגה -הרץ. האוטובוס I2C משועבד על 400 קילוהרץ. תדר מיתוג LED הוא כ- 400 הרץ. בדרך זו, אם אני מסוגל להניע 48 נוריות LED בלי לדחוף אותו עד לקצה הגבול, אפנה ליותר מאוחר יותר!
שלב 3: הרכבה
לאחר תכנון המעגל, בניתי אותו בכמה לוחות לחם, למטרות אב טיפוס. לאחר מספר שעות של חיתוך חוטים והרכבת המעגל, קיבלתי את התוצאה הזו: קרש לחם ענק אחד עם 48 נוריות LED וטונות של חוט!
שלב 4: שליטה?
זה החלק המאתגר ביותר של הפרויקט. רציתי להפוך אלגוריתם שליטה אחד לגנרי מספיק לטיפול בדפוסים/רצפים וגם לשלוט על הבהירות והצבע של כל נורית LED. כדי לשלוט בנורות אני צריך לשלוח ל- MCP23016 מסגרת אחת של 4 בתים (1 בתים = 8 סיביות). בית אחד עם כתובת כתב IC לצבע, 1 בת עם הפקודה "לכתוב" ו -2 בתים עם הערך של ה- 16 ביט (נוריות). ה- IC מחובר לנוריות כ"כיור ", כלומר, ערך לוגי אחד 0 בסיכה ידליק את הנורית. ועכשיו החלק המאתגר, כיצד לבצע בקרת PWM עבור 48 נוריות? בואו ללמוד PWM עבור LED אחד! PWM הסביר @ ויקיפדיה. אם אני רוצה את בהירות הנורית ב -50%, ערך ה- PWM שלי הוא 50%. המשמעות היא שהנורית, בפרק זמן אחד, צריכה להיות באותו פרק זמן כבוי. ניקח פרק זמן של שנייה אחת. PWM של 50% פירושו שבשנייה אחת זו, זמן הפעולה הוא 0.5 שניות וזמן הכיבוי הוא 0.5 שניות. PWM של 80%? 0.2 שניות הפסקה, 0.8 שניות מופעלות! קל, נכון? בעולם הדיגיטלי: עם תקופה של 10 מחזורי שעון, 50% פירושו שבמשך 5 מחזורים הנורית דולקת, ועוד 5 מחזורים הנורית כבויה. 20%? 2 מחזורים מופעלים, 8 מחזורים. 45%? ובכן, אנחנו לא באמת יכולים לקבל 45%… מכיוון שהתקופה היא במחזורים ויש לנו רק 10 מחזורים, אנחנו יכולים לחלק את ה- PWM רק בשלבים של 10%. המשמעות היא שההתפתחות של הסיכה צריכה להיות, עבור 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0; או אפילו 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; בתכנות אנו יכולים להפוך את הרצף הזה של הפעלה וכיבוי של מערך. עבור כל מחזור אנו מפיקים לפין את ערך האינדקס כפי שהמחזור הוא. האם היה לי הגיוני עד כה? אם נרצה לייצר LED0 50%, ו- LED1 20%, נוכל להוסיף את שני המערכים.: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; להנעת סיכת LED1: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; וכתוצאה מכך LED0 +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0; פלט רצף מספרים זה ב- IC expander IC, היינו מקבלים את LED0 עם בהירות של 50% ו- LED1 עם 20% !! פשוט לשני נוריות LED, נכון? עכשיו עלינו לעשות זאת עבור 16 נוריות LED, עבור כל צבע! עבור כל אחד מהמערכים, יש לנו שילוב של בהירות לכל צבע (16 נוריות LED) בכל פעם שאנו רוצים שילוב נוסף של צבעים, עלינו לשנות מערך זה.
שלב 5: לעשות את זה קל
השלב הקודם הוא יותר מדי עבודה ליצירת רצף פשוט … אז החלטתי להכין תוכנית, שבה אנו מספרים את הצבעים של כל LED בשלב אחד של הרצף ונקבל את שלושת המערכים של השלב. הכנתי את התוכנית הזו ב- LabView בגלל מגבלות זמן.
שלב 6: ניסויים ראשונים
טוען מספר שלבים במיקרו -בקר ואנו מקבלים דבר כזה: מצטער על האיכות הירודה של הסרטונים! הגדרתי את מספר השלבים המרבי של רצף ל -8, והגבלתי את ה- PWM ל -20% קפיצות. החלטה זו מבוססת על סוג השליטה בה אני משתמש וכמה EEPROM יש ל- ATtiny2313. בניסויים אלה ניסיתי לראות אילו השפעות אוכל לבצע. אני חייב לומר שאני מרוצה מהתוצאה!
שלב 7: שליטה בזמן אמת
כפי שצוין בשלבים קודמים, אני מבקש לתקשר עם כל המיקרו -בקרים השולטים על הלדים בחדרי. אז השתמשתי בממשק USART הזמין ב- ATtiny2313 וחיברתי אותו למחשב שלי. הכנתי גם תוכנה ב- LabView לשליטה בסרגל ה- LED. בתוכנית זו אני יכול להגיד למיקרו -בקר כמה זמן הרצף, הצבע של כל LED והזמן בין השלבים ברצף. בסרטון הבא אני אגיד להדגים כיצד אוכל לשנות את צבע הלדים ולהגדיר רצפים.
שלב 8: מסקנות
אני חושב שהצלחתי בגישה הראשונה הזו של הפרויקט שלי. אני מסוגל לשלוט על 16 נוריות RGB עם מעט משאבים ואילוצים. אפשר לשלוט על כל LED בנפרד, ליצור כל רצף רצוי.
עבודה עתידית:
אם אקבל משוב חיובי מאנשים, אוכל להמשיך ולפתח רעיון זה ולהכין ערכת אלקטרוניקה מלאה של DIY, עם מעגלים מודפסים והוראות הרכבה.
לגרסה הבאה שלי: -שנה את המיקרו -בקר לאחד עם ADC -שנה את MCP23016 לסוג אחר של הפעלה מקבילה -סידורית שיכולה לשקוע יותר זרם מנורות -להכין תוכנת קוד פתוח לתקשר עם המיקרו -בקר לשלוט בנוריות -לפתח את התקשורת בין מספר בקרי מיקרו.
יש לך הצעה או שאלה? או להשאיר תגובה!
פיינליסטית ב- Let It Glow!
מוּמלָץ:
אור סביבה לתכנות לתצוגה חיצונית: 4 שלבים
תאורת סביבה לתכנות לתצוגה חיצונית: פרויקט זה עוזר לך להגדיר אור סביבה עבור הצג או הטלוויזיה החיצוניים שלך מאפשר לך לשלוט על הדברים הבאים בנוחות של כל מכשיר בעל דפדפן אינטרנט ומחובר לנתב שלך. צבע LED תדירות מהבהוב נותן אפקט DJ הגדר שונה
Raspberry Pi - BH1715 חיישן אור סביבה דיגיטלי Python הדרכה: 4 שלבים
Raspberry Pi - BH1715 חיישן אור סביבה דיגיטלי Python הדרכה: ה- BH1715 הוא חיישן תאורת סביבה דיגיטלי עם ממשק אוטובוס I²C. BH1715 משמש בדרך כלל להשגת נתוני אור הסביבה להתאמת עוצמת התאורה האחורית של LCD ומקלדת למכשירים ניידים. מכשיר זה מציע רזולוציה של 16 סיביות והתאמה
Raspberry Pi - TSL45315 חיישן אור סביבה Python הדרכה: 4 שלבים
Raspberry Pi - TSL45315 חיישן אור הסביבה Python הדרכה: TSL45315 הוא חיישן תאורה סביבתית דיגיטלית. הוא מקרב את תגובת העין האנושית במגוון תנאי תאורה. למכשירים יש שלוש זמני אינטגרציה הניתנים לבחירה ומספקים פלט לוקס ישיר של 16 סיביות באמצעות ממשק אוטובוס I2C. המכשיר שותף
Arduino Nano - BH1715 חיישן אור סביבה דיגיטלי הדרכה: 4 שלבים
Arduino Nano - BH1715 מדריך חיישן אור הסביבה הדיגיטלי: BH1715 הוא חיישן תאורת סביבה דיגיטלי עם ממשק אוטובוס I²C. BH1715 משמש בדרך כלל להשגת נתוני אור הסביבה להתאמת עוצמת התאורה האחורית של LCD ומקלדת למכשירים ניידים. מכשיר זה מציע רזולוציה של 16 סיביות והתאמה
פוטון חלקיקים - BH1715 חיישן אור סביבה דיגיטלי הדרכה: 4 שלבים
פוטון חלקיקים - BH1715 מדריך חיישן אור הסביבה הדיגיטלי: BH1715 הוא חיישן אור סביבה דיגיטלי עם ממשק אוטובוס I²C. BH1715 משמש בדרך כלל להשגת נתוני אור הסביבה להתאמת עוצמת התאורה האחורית של LCD ומקלדת למכשירים ניידים. מכשיר זה מציע רזולוציה של 16 סיביות והתאמה