תוכן עניינים:

אור סביבה אינטראקטיבי: 8 שלבים
אור סביבה אינטראקטיבי: 8 שלבים

וִידֵאוֹ: אור סביבה אינטראקטיבי: 8 שלבים

וִידֵאוֹ: אור סביבה אינטראקטיבי: 8 שלבים
וִידֵאוֹ: ככה זה כשיש לך חברה רוסיה 2024, נוֹבֶמבֶּר
Anonim
אור סביבה אינטראקטיבי
אור סביבה אינטראקטיבי
אור סביבה אינטראקטיבי
אור סביבה אינטראקטיבי
אור סביבה אינטראקטיבי
אור סביבה אינטראקטיבי

זו ההנחיה הראשונה שלי! אנא, הישא עמי בזמן שאני מתקשה לכתוב אנגלית ראויה. אתה מוזמן לתקן אותי! התחלתי את הפרויקט הזה מיד אחרי שהתחילה תחרות 'תן לזה לזהור'. הלוואי שהייתי עושה הרבה יותר וגמרתי את מה שרציתי להכין. אבל בין הלימודים לעבודה, לא נשאר לי כל כך הרבה זמן שרציתי. עם זאת, אני משאיר כאן דו ח על הניסויים שלי כהנחיה, כך שכל אחד יכול לנסות ולעשות את מה שעשיתי. הוראה זו אינה מיועדת לשמש מדריך וללמד כיצד ליצור את המתקן הזה. זה לא מדריך למתחילים בתחום האלקטרוניקה. זה יותר כמו לשתף רעיון אחד ויעד שאני רוצה להמשיך בו. אם אתה מתחיל/בור לחלוטין בתחום האלקטרוניקה ורוצה להכין דבר כזה, אני מצטער! אבל אנחנו יכולים לנסות לעזור לך תמיד. ראה את השלב האחרון. כבר ראינו פרויקטים רבים של אור הסביבה. רובם משתמשים בנורות 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!

מוּמלָץ: