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

אור השכמה: 7 שלבים (עם תמונות)
אור השכמה: 7 שלבים (עם תמונות)

וִידֵאוֹ: אור השכמה: 7 שלבים (עם תמונות)

וִידֵאוֹ: אור השכמה: 7 שלבים (עם תמונות)
וִידֵאוֹ: שיעור 7 מתוך 12 - כלי השפע שימוש נכון ברצון הלב, כנות המחשבה, והטמעת האמונה - פתוח לכל עם ישראל 2024, מאי
Anonim
Wakeup Light
Wakeup Light

כשאני כותב את ההוראה, זהו אמצע החורף בחצי הכדור הצפוני וזה אומר ימים קצרים ולילות ארוכים. אני רגיל לקום בשעה 06:00 ובקיץ השמש כבר תזרח. עם זאת, בחורף, זה מתבהר בשעה 09:00 אם יש לנו מזל שיש לנו יום שהוא לא מעונן (וזה… לא לעתים קרובות).

לפני זמן מה קראתי על "אור השכמה" מתוצרת פיליפס ששימש בנורווגיה כדי לדמות בוקר שטוף שמש. מעולם לא קניתי אחת, אבל המשכתי לחשוב על להכין כי כיף להכין בעצמך יותר כיף מאשר לקנות אותה.

אספקה:

מסגרת תמונה "ריבה" 50 על 40 ס"מ מאיקאה

לוח מחורר מחנות חומרי בניין

לוח פיתוח STM8S103 באמצעות Ebay או אחרים

שעון בזמן אמת DS1307 (Mouser, Farnell, Conrad, וכו ')

קריסטל שעון 32768 הרץ (Mouser, Farnell, Conrad, וכו ')

3V תא צמצם ליתיום + מחזיק צירוף תא

BUZ11 או IRLZ34N N-channel MOSFETs (3x)

BC549 (או כל טרנזיסטור NPN אחר)

כמה נורות לבנות, אדומות, כחולות, ירוקות וכו 'שתרצו

כמה נגדים וקבלים (ראה סכמטי)

Powerbrick, 12V עד 20V, 3A או יותר (למשל ספק כוח מחשב נייד ישן)

שלב 1: לעשות את זה (קצת) יותר קל לקום

מה שהופך את זה (קצת) לקל יותר
מה שהופך את זה (קצת) לקל יותר

הרעיון הוא שקשה לקום מהמיטה בבוקר כשהוא עדיין חשוך. ואם אתה גר קרוב או אפילו מעל המעגל הארקטי יהיה חשוך ארוך מאוד. במקומות כמו טרומסו בנורבגיה זה לא יקבל אור כלל כיוון ששמש שוקעת חצי נובמבר רק כדי להופיע מחדש באמצע ינואר.

אז מה שפיליפס עשתה היה לדמות את זריחת השמש.

פיליפס מגבירה לאט את בהירות המנורה, שכנראה מיוצרת בכמה נוריות אך מוסתרת מאחורי מפזר יחיד. הזמן שלהם מכיבוי עד בהירות מלאה לוקח 30 דקות.

מנורות ההשכמה של פיליפס אינן כל כך יקרות אך יש לה רק צבע אחד וזה נראה קצת קטן. אני חושב שאני יכול לעשות יותר טוב.

שלב 2: יותר צבע

יותר צבע
יותר צבע

מנורת ההשכמה שלי משתמשת בארבעה צבעים, לבן, אדום, כחול וירוק. תחילה בואו עם הנורות הלבנות, אחר כך באות אדומות, ואחרון כמה נוריות כחולות וירוקות. הרעיון שלי היה שאוכל לדמות לא רק את עליית הבהירות אלא גם את שינוי צבע אור הבוקר, על ידי להתחיל במעט לבן, להוסיף באדום קצת מאוחר יותר ולערבב בכחול וירוק בסופו של דבר. אני לא בטוח שהוא אכן מזכיר אור בוקר אמיתי, אבל אני אוהב את התצוגה הצבעונית כפי שהיא עכשיו.

שלי גם מהיר יותר מנורית ההשכמה של פיליפס, במקום 30 הדקות של אור פיליפס, שלי עובר מ -0% ל -100% בהירות תוך פחות מ -5 דקות. אז השמש שלי זורחת הרבה יותר מהר.

הערה:

זה מאוד קשה לצלם את אור ההשכמה שלי, ניסיתי עם כמה מצלמות וסמארטפונים אבל כל התמונות שעשיתי לא עושות את הצדק האמיתי.

שלב 3: עקומת Sigmoid, הבהוב ו"רזולוציה"

Curve Sigmoid, הבהוב ו
Curve Sigmoid, הבהוב ו

כמובן שרציתי להפוך את ההבהרה חלקה ככל האפשר. עיני האדם לוגריתמיות ברגישות, כלומר בחושך מוחלט הן רגישות יותר מאשר באור יום מלא. עלייה קטנה מאוד של הבהירות כשהרמות נמוכות "מרגישה" זהה לצעד גדול בהרבה כשהאור עומד על בהירות של 40%. כדי להשיג זאת השתמשתי בעקומה מיוחדת הנקראת Sigmoid (או עקומת S) עקומה זו מתחילה כעקומה מעריכית שחוזקת שוב למחצה. גיליתי שזו דרך נחמדה מאוד להגדיל (ולהקטין) את העוצמה.

תדר השעון של הבקר (והטיימרים) הוא 16 מגה -הרץ ואני משתמש ברזולוציה המרבית של TIMER2 (65536) ליצירת שלושה אותות רוחב דופק (PWM). לכן פולסים מגיעים 16000000 /65536 = 244 פעמים בשנייה. זה הרבה מעבר לגבול העיניים לראות כל מהבהב.

אז הנוריות ניזונות מאות PWM שנוצר עם 16 ביטימר זה של המיקרו -בקר STM8S103. לכל הפחות, אות PWM זה יכול להיות מופעל באורך דופק אחד ואורכי הדופק הנותרים כבוי.

אז הנורות המחוברות לאות PM זה יהיו אז ב- 1/565536 של הזמן: 0.0015%

לכל היותר הם 65536/65536 -th של הזמן: 100%.

שלב 4: אלקטרוניקה

מכשירי חשמל
מכשירי חשמל
מכשירי חשמל
מכשירי חשמל
מכשירי חשמל
מכשירי חשמל
מכשירי חשמל
מכשירי חשמל

מיקרו -בקר

המוח של אור ההשכמה הוא מיקרו -בקר STM8S103 מבית STMicroelectronics. אני אוהב להשתמש בחלקים שיש להם מספיק יכולות לעבודה. למשימה פשוטה כזו אין צורך להשתמש בבקרי מיקרו STM32 (המועדפים האחרים שלי) אך UNO Arduino לא הספיק מכיוון שרציתי שלושה אותות PWM ברזולוציית 16 סיביות ואין טיימר עם שלושה ערוצי פלט ב- UNO.

שעון בזמן אמת

הזמן נקרא משעון בזמן אמת DS1307 שעובד עם קריסטל 32768 הרץ ובעל סוללת גיבוי 3V.

הגדרת השעה, היום וזמן ההשכמה הנוכחיים מתבצעת באמצעות שני לחצנים ומוצגים בתצוגת 16 x 2 תווים LCD. כדי שהחדר שלי באמת יהיה חשוך בלילה, התאורה האחורית של צג ה- LCD מופעלת רק כאשר התאים בהירים יותר מהתאורה האחורית וכאשר אתה מגדיר את השעה, היום ושעת ההשכמה.

כּוֹחַ

החשמל מגיע מספק כוח ישן למחשב נייד, שלי מייצר 12 וולט ויכול לספק 3A. כאשר יש לך ספק כוח נוסף ייתכן שיהיה צורך להתאים את הנגדים בסדרה עם מחרוזות הלד. (ראה למטה)

נוריות

הנורות מחוברות לאספקה של 12V, שאר מוצרי האלקטרוניקה על 5V שנעשו באמצעות וסת לינארי 7805. בסכימה כתוב שאני משתמש בווסת TO220, שאין בו צורך כמיקרו -בקר, תצוגה ושעון בזמן אמת משתמשים בכמה מיליאמפרות בלבד. השעון שלי משתמש בגרסת TO92 קטנה יותר של 7805 המסוגלת לספק 150mA.

החלפת מחרוזות ה- LED מתבצעת באמצעות MOSFETs של ערוץ N. שוב, בסכימה הוא מציג מכשירים אחרים ממה שהשתמשתי בהם. במקרה היו לי שלוש MOSFET ישנות מאוד של BUZ11 במקום ה- MOSFET החדשות יותר של IRLZ34N. הם עובדים מצוין

כמובן שאתה יכול להכניס כמה נוריות ככל שאתה רוצה, כל עוד ה- MOSFET וספק הכוח יכולים להתמודד עם הזרם. בסכימה ציירתי רק מחרוזת אחת מכל צבע, במציאות ישנם כמה כל צבע במקביל למחרוזות האחרות של אותו צבע.

שלב 5: נגדים (לדורות)

נגדים (עבור האדים)
נגדים (עבור האדים)

על הנגדים במיתרים המובילים. ללדים כחולים וכחולים יש בדרך כלל מתח של 2.8V מעליהם כשהם במלוא הבהירות.

לאדומים אדומים יש רק 1.8V, לידים הירוקים שלי יש 2V מעליהם במלוא הבהירות.

דבר נוסף הוא שהבהירות המלאה שלהם אינה זהה. אז נדרש קצת ניסוי כדי להפוך אותם למאירים לא פחות (בעיניי). על ידי הפיכת הנורות לבהירות לא פחות במלוא הבהירות, הן גם יראו בהירות באותה מידה ברמות נמוכות יותר, אות רוחב הדופק תמיד מפעיל אותן במלוא הבהירות, אך בזמן ארוך וקצר יותר העיניים שלך מטפלות בממוצע.

התחל בחישוב כזה. ספק הכוח מספק (במקרה שלי) 12V.

ארבעה נוריות לבנות בסדרה צריכות 4 x 2.8V = 11.2V, זה משאיר 0.8V לנגד.

גיליתי שהם בהירים מספיק ב 30mA כך שהנגד צריך להיות:

0.8 / 0.03 = 26.6 אוהם. בתרשים אתה רואה שהכנסתי נגד 22 אוהם, מה שהופך את הנורות קצת יותר בהירות.

הנורות הכחולות היו בהירות מדי ב -30mA, אך בהשוואה ליפות עם הלדים הלבנים ב -15 mA, היו להן גם כ -2.8V מעליהן ב -15mA כך שהחישוב היה 4 x 2.8V = 11.2V שוב ומשאיר 0.8V

0.8 / 0.015 = 53.3 אוהם אז בחרתי בנגד של 47 אוהם.

הנורות האדומות שלי גם צריכות כ -15 mA כדי להיות בהירות לא פחות מהאחרות, אבל יש להן רק 1.8V עליהן באותו זרם. אז אוכל להכניס יותר לסדרות ועדיין שיהיה לי קצת "מקום" לנגד.

שישה נוריות אדומות נתנו לי 6 x 1.8 = 10.8V, אז מעל הנגד היה 12 - 10.8 = 1.2V

1.2 / 0.015 = 80 אוהם, הצלחתי להפוך אותו ל 68 אוהם. בדיוק כמו האחרים, קצת יותר בהיר.

הנורות הירוקות בהן השתמשתי בהירות כמו האחרות בסביבות 20mA. הייתי צריך רק כמה (בדיוק כמו הכחולים) ובחרתי לשים ארבעה בסדרות. ב 20mA יש להם 2, 1V מעליהם, נותן 3 x 2.1 = 8.4V

12 - 8.4 = 3.6V לנגד. ו 3.6 / 0.02 = 180 אוהם.

אם אתה בונה את מנורת ההשכמה הזו לא סביר שיש לך אותו ספק כוח, יהיה עליך להתאים את מספר הנוריות בסדרות ואת הנגדים הדרושים.

דוגמא קטנה. נניח שיש לך ספק כוח שנותן 20V. הייתי בוחר להגדיר 6 נוריות כחולות (ולבנות) בסדרה, 6 x 3V = 18V אז 2V לנגד. ונניח שאתה אוהב את הבהירות ב 40mA. הנגד צריך אז להיות 2V / 0.04 = 50 אוהם, נגד 47 אוהם יהיה בסדר.

אני ממליץ לא ללכת גבוה יותר מ 50mA עם נוריות (5 מ מ) רגילות. חלקם יכולים להתמודד יותר, אבל אני אוהב להיות בצד הבטוח.

שלב 6: תוכנה

ניתן להוריד את כל הקוד מ:

gitlab.com/WilkoL/wakeup_light_stm8s103

שמור את קוד המקור פתוח, לצד שאר ההנחיות אם ברצונך לעקוב אחר ההסבר.

Main.c

Main.c מגדיר תחילה את השעון, טיימרים וציוד היקפי אחר. רוב "מנהלי ההתקנים" שכתבתי באמצעות הספרייה הסטנדרטית מ- STMicroelectronics ואם יש לך שאלות עליהם, כתוב זאת בהערה מתחת להנחיות.

Eeprom

השארתי את קוד "טקסט לתצוגה" שהשתמשתי בו כדי להכניס טקסטים למרץ ה- STM8S103 כהערות. לא הייתי בטוח שיש לי מספיק זיכרון פלאש לכל הקוד שלי אז ניסיתי לשים כמה שאפשר ב- eeprom כדי שיהיה לי את כל הפלאש לתוכנית. בסופו של דבר זה לא היה הכרחי והעברתי את הטקסט להבהב. אבל השארתי את זה כטקסט עם הערות בקובץ main.c. זה נחמד לקבל את זה כשאני צריך לעשות משהו דומה אחר כך (בפרויקט אחר)

העיפרון עדיין בשימוש, אך רק לאחסון זמן ההשכמה.

פעם שנייה

לאחר הגדרת הציוד ההיקפי הקוד בודק אם חלפה שנייה אחת (נעשה עם טיימר).

תַפרִיט

אם זה המצב הוא בודק אם לחצו על כפתור, אם כן הוא נכנס לתפריט שבו ניתן להגדיר את השעה הנוכחית, את יום השבוע ואת זמן ההשכמה. זכור כי לוקח כ -5 דקות לעבור מהבהבה למלוא הבהירות, לכן קבע את זמן ההשכמה מעט מוקדם יותר.

זמן ההשכמה מאוחסן ב- eeprom כך שגם לאחר הפסקת חשמל הוא "יידע" מתי להעיר אותך. השעה הנוכחית נשמרת כמובן בשעון בזמן אמת.

השוואת זרם וזמן השכמה

כאשר לא נלחץ על כפתור הוא בודק את השעה הנוכחית ומשווה אותו לזמן ההשכמה ויום החול. אני לא רוצה שזה יעיר אותי בסוף השבוע:-)

לרוב אין צורך לעשות דבר ולכן הוא מגדיר את המשתנה "leds" למצב OFF אחר למצב ON. משתנה זה נבדק יחד עם האות "change_intensity", שגם הוא מגיע מטיימר ופעיל 244 פעמים בשנייה. כך שכאשר משתנה "leds" מופעל העוצמה גדלה 244 פעמים בשנייה וכשהיא כבוי היא יורדת 244 פעמים בשנייה. אך הגידול עובר בצעדים בודדים בהם הירידה היא בשלבים של 16 כלומר כאשר אור השכמה בתקווה עשה את עבודתו, הוא נכבה פי 16 מהר יותר אך עדיין חלק.

חלקות ויציאה מהזכרון

החלקות נובעת מחשבון עקומת Sigmoid. החישוב די פשוט אבל צריך לעשות אותו במשתנים של נקודה צפה (כפולות) בגלל הפונקציה exp (), עיינו בקובץ sigmoid.c.

במצב הסטנדרטי למהדר / המקשר הקוסמי אין תמיכה במשתני נקודה צפה. הפעלה קלה (ברגע שמצאת אותו) אך מגיעה עם עלייה בגודל הקוד. עליה זו הייתה גדולה מדי בכדי שהקוד יתאים לזיכרון הבזק בשילוב עם הפונקציה sprintf (). ופונקציה זו נחוצה להמרת מספרים לטקסט לתצוגה.

איטואה ()

כדי לתקן בעיה זו יצרתי את הפונקציה itoa (). זוהי פונקציה של מספר שלם לאסקי שכיחה למדי, אך אינה כלולה בספרייה הסטנדרטית של STMicroelectronics, וגם לא בספריות הקוסמיות.

שלב 7: איקאה (מה היינו עושים בלעדיהם)

איקאה (מה היינו עושים בלעדיהם)
איקאה (מה היינו עושים בלעדיהם)
איקאה (מה היינו עושים בלעדיהם)
איקאה (מה היינו עושים בלעדיהם)
איקאה (מה היינו עושים בלעדיהם)
איקאה (מה היינו עושים בלעדיהם)

התמונה ממנה נקנתה מאיקאה. זהו מסגרת ריבה בגודל 50 על 40 ס"מ. מסגרת זו די עבה וזה עושה את זה נהדר להסתרת אלקטרוניקה מאחוריה. במקום כרזה או תמונה הכנסתי פיסת לוח מחורר. אתה יכול לקנות אותו בחנות לחומרי בניין שבה היא נקראת לפעמים "קרש מיטה". יש בה חורים קטנים שהפכו אותה לאידיאלית להכנסת תאי LED. לרוע המזל החורים בלוח שלי היו קצת יותר גדולים מ -5 מ"מ ולכן נאלצתי להשתמש בדבק חם כדי "להרכיב" את הנורות.

עשיתי חור מלבני במרכז הלוח הקשיח לתצוגה בגודל 16x2 ולחצתי אותו. הלוח עם כל האלקטרוניקה תלוי על הצג הזה, הוא לא מותקן לשום דבר אחר.

הלוח הקשה המחורר היה ריסוס בצבע שחור אך מאחורי המחצלת. קדחתי שני חורים במסגרת כדי שהכפתורים יקבעו את השעה והתאריך, מכיוון שהמסגרת די עבה הייתי צריך להרחיב את החורים בחלק הפנימי של המסגרת כדי שהכפתורים יבלטו מספיק.

מוּמלָץ: