جدول المحتويات:

ضوء الاستيقاظ: 7 خطوات (بالصور)
ضوء الاستيقاظ: 7 خطوات (بالصور)

فيديو: ضوء الاستيقاظ: 7 خطوات (بالصور)

فيديو: ضوء الاستيقاظ: 7 خطوات (بالصور)
فيديو: مكونات الكون |6| الضوء | طبيعة الضوء وبداية التساؤلات 2024, يوليو
Anonim
ضوء الاستيقاظ
ضوء الاستيقاظ

أثناء كتابتي لهذه التعليمات ، يكون منتصف الشتاء في نصف الكرة الشمالي وهذا يعني أيامًا قصيرة وليالي طويلة. أنا معتاد على الاستيقاظ في الساعة 06:00 وفي الصيف ستشرق الشمس بحلول ذلك الوقت. على الرغم من ذلك ، في فصل الشتاء ، يضيء في الساعة 09:00 إذا كنا محظوظين لقضاء يوم ليس غائمًا (وهو … ليس كثيرًا).

قرأت منذ بعض الوقت عن "مصباح تنبيه" من إنتاج شركة Philips تم استخدامه في النرويج لمحاكاة صباح مشمس. لم أشتري واحدة أبدًا ، لكنني ظللت أفكر في صنع واحدة لأن جعلها بنفسك أكثر متعة من مجرد شرائها.

اللوازم:

إطار صورة "ريبا" مقاس 50 × 40 سم من ايكيا

مثقبة اللوح الليفي من متجر لاجهزة الكمبيوتر

مجلس التنمية STM8S103 عبر موقع ئي باي أو غيرها

DS1307 ساعة الوقت الحقيقي (صائد الفئران ، فارنيل ، كونراد ، إلخ)

32768 هرتز كريستال ساعة (صائد الفئران ، فارنيل ، كونراد ، إلخ)

3V الليثيوم coincell + حامل coincell

BUZ11 أو IRLZ34N N-channel MOSFETs (3x)

BC549 (أو أي ترانزستور NPN آخر)

العديد من المصابيح البيضاء ، والأحمر ، والأزرق ، والأخضر ، وما إلى ذلك كما تريد

بعض المقاومات والمكثفات (انظر التخطيطي)

Powerbrick ، 12 فولت إلى 20 فولت ، 3 أمبير أو أكثر (على سبيل المثال ، مصدر طاقة الكمبيوتر المحمول القديم)

الخطوة 1: جعلها أسهل (قليلاً) للنهوض

جعلها أسهل (قليلاً) للنهوض
جعلها أسهل (قليلاً) للنهوض

الفكرة هي أنه من الصعب الخروج من السرير في الصباح عندما يكون الظلام لا يزال. وإذا كنت تعيش بالقرب من الدائرة القطبية الشمالية أو حتى فوقها ، فستظل مظلمة لفترة طويلة جدًا. في أماكن مثل ترومسو في النرويج ، لن تحصل على ضوء على الإطلاق حيث تغرب الشمس هناك في نصف نوفمبر فقط لتظهر مرة أخرى في منتصف الطريق جانواري.

إذن ما فعله فيليبس هو محاكاة شروق الشمس.

تزيد Philips ببطء من سطوع المصباح ، والذي ربما يكون مصنوعًا من عدة مصابيح LED ولكنه مخفي خلف ناشر واحد. يستغرق وقتهم من الإيقاف إلى السطوع الكامل 30 دقيقة.

مصابيح التنبيه من Philips ليست باهظة الثمن ولكن لها لون واحد فقط ويبدو صغيرًا بعض الشيء. أعتقد أنني أستطيع أن أفعل ما هو أفضل.

الخطوة 2: المزيد من اللون

المزيد من اللون
المزيد من اللون

يستخدم ضوء الاستيقاظ أربعة ألوان ، الأبيض والأحمر والأزرق والأخضر. تعال أولاً إلى المصابيح البيضاء ، ثم تأتي باللون الأحمر ، وتدوم بضعة مصابيح زرقاء وخضراء. كانت فكرتي أنه يمكنني محاكاة ليس فقط زيادة السطوع ولكن أيضًا تغيير لون ضوء الصباح ، من خلال البدء بقليل من اللون الأبيض ، وإضافة اللون الأحمر بعد ذلك بقليل والخلط باللونين الأزرق والأخضر في النهاية. لست متأكدًا من أنها تشبه بالفعل ضوء الصباح الفعلي ، لكني أحب العرض الملون كما هو الآن.

يعد المنجم أيضًا أسرع من ضوء تنبيه Philips ، فبدلاً من 30 دقيقة من مصباح Philips ، ينتقل سطوع المنجم من 0٪ إلى 100٪ في أقل من 5 دقائق. لذلك تشرق شمسي بشكل أسرع.

ملاحظة:

من الصعب جدًا التقاط صور لضوء الاستيقاظ الخاص بي ، لقد جربت العديد من الكاميرات والهواتف الذكية ولكن كل الصور التي التقطتها لا تحقق العدالة الحقيقية.

الخطوة 3: المنحنى السيني ، الخفقان و "الدقة"

منحنى السيني ، الخفقان و
منحنى السيني ، الخفقان و

بالطبع أردت أن أجعل السطوع سلسًا قدر الإمكان. تعتبر عيون الإنسان لوغاريتمية في الحساسية ، مما يعني أنها أكثر حساسية في الظلام الدامس مما هي عليه في وضح النهار. زيادة طفيفة جدًا في السطوع عندما تكون المستويات منخفضة "تشعر" بأنها خطوة أكبر بكثير عندما يكون سطوع الضوء على سبيل المثال 40٪. لتحقيق ذلك ، استخدمت منحنى خاصًا يسمى Sigmoid (أو S-curve) يبدأ هذا المنحنى كمنحنى أسي يتراجع إلى منتصف الطريق مرة أخرى. لقد وجدت أنها طريقة لطيفة جدًا لزيادة (وتقليل) الكثافة.

تردد الساعة لوحدة التحكم الدقيقة (وأجهزة ضبط الوقت) هو 16 ميجاهرتز وأنا أستخدم الدقة القصوى لـ TIMER2 (65536) لإنشاء ثلاث إشارات لعرض النبض (PWM). لذلك تأتي النبضات 16000000/65536 = 244 مرة في الثانية. هذا هو أعلى بكثير من حد العين لرؤية أي وميض.

لذلك يتم تغذية المصابيح بإشارة PWM مصنوعة من هذا 16 bittimer من متحكم STM8S103. على الأقل ، يمكن تشغيل إشارة PWM هذه بطول نبضة واحدة وطول أطوال النبضة المتبقية 65535.

لذا فإن المصابيح المتصلة بإشارة PM ستكون بعد ذلك في 1/65536-th من الوقت: 0.0015٪

كحد أقصى هم ON 65536/65536-th من الوقت: 100٪.

الخطوة الرابعة: الإلكترونيات

إلكترونيات
إلكترونيات
إلكترونيات
إلكترونيات
إلكترونيات
إلكترونيات
إلكترونيات
إلكترونيات

متحكم

دماغ ضوء التنبيه هو متحكم STM8S103 من شركة STMicroelectronics. أحب استخدام الأجزاء التي لديها فقط قدرات كافية لوظيفة ما. لمهمة بسيطة لأن هذا ليس ضروريًا استخدام ميكروكنترولر STM32 (المفضلة الأخرى) لكن Arduino UNO لم يكن كافيًا لأنني أردت ثلاث إشارات PWM بدقة 16 بت ولا يوجد مؤقت بثلاث قنوات إخراج على UNO.

ساعة الوقت الحقيقي

يتم قراءة الوقت من ساعة DS1307 في الوقت الحقيقي تعمل بكريستال 32768 هرتز وبطارية احتياطية 3 فولت.

يتم ضبط الوقت الحالي واليوم ووقت الاستيقاظ باستخدام زرين ويظهر على شاشة LCD مقاس 16 × 2. للحفاظ على غرفة نومي مظلمة حقًا في الليل ، يتم تشغيل الإضاءة الخلفية لشاشة LCD فقط عندما تكون المصابيح أكثر سطوعًا من الإضاءة الخلفية وعندما تقوم بتعيين الوقت واليوم ووقت الاستيقاظ.

قوة

تأتي الطاقة من مصدر طاقة قديم للكمبيوتر المحمول ، وينتج المنجم 12 فولت ويمكن أن يوفر 3 أمبير. عندما يكون لديك مصدر طاقة آخر ، فقد يكون من الضروري ضبط المقاومات على التوالي مع سلاسل الصمام. (انظر أدناه)

المصابيح

ترتبط المصابيح بإمداد 12V ، أما باقي الأعمال الإلكترونية على 5V فهي مصنوعة من منظم خطي 7805. في التخطيطي ، تقول أنني أستخدم منظم TO220 ، وهذا ليس ضروريًا لأن المتحكم الدقيق وشاشة العرض وساعة الوقت الفعلي تستخدم فقط بضعة مللي أمبير. تستخدم ساعتي إصدارًا أصغر من طراز TO92 من طراز 7805 قادر على توفير 150 مللي أمبير.

يتم تبديل سلاسل الصمام باستخدام وحدات MOSFET ذات القناة N. مرة أخرى ، يظهر في التخطيطي أجهزة أخرى غير التي استخدمتها. تصادف أن لديّ ثلاث وحدات BUZ11 MOSFET قديمة جدًا بدلاً من IRLZ34N MOSFETs الأحدث. يعملون بشكل جيد

بالطبع يمكنك وضع أكبر عدد تريده من المصابيح ، طالما أن وحدات MOSFET ومزود الطاقة يمكنها التعامل مع التيار. في التخطيطي ، رسمت سلسلة واحدة فقط من أي لون ، في الواقع هناك عدة ألوان موازية للخيوط الأخرى من ذلك اللون.

الخطوة 5: المقاومات (للمصابيح)

المقاومات (للمصابيح)
المقاومات (للمصابيح)

حول المقاومات في سلاسل الصمام. عادةً ما يكون لمصابيح LED البيضاء والزرقاء جهد 2.8 فولت فوقها عندما تكون في السطوع الكامل.

المصابيح الحمراء لها 1.8 فولت فقط ، المصابيح الخضراء الخاصة بي بها 2 فولت في السطوع الكامل.

شيء آخر هو أن سطوعها الكامل ليس هو نفسه. لذلك استغرق الأمر بعض التجارب لجعلها متساوية السطوع (لعيني). من خلال جعل المصابيح ساطعة بشكل متساوٍ عند السطوع الكامل ، فإنها ستبدو أيضًا ساطعة بشكل متساوٍ عند المستويات المنخفضة ، وتقوم إشارة عرض النبض دائمًا بتشغيلها عند السطوع الكامل ولكن خلال الأوقات الأطول والأقصر ، تهتم عيناك بالمتوسط.

ابدأ بحساب مثل هذا. يوفر مصدر الطاقة (في حالتي) 12 فولت.

تحتاج أربعة مصابيح LED بيضاء متسلسلة إلى 4 × 2.8 فولت = 11.2 فولت ، وهذا يترك 0.8 فولت للمقاوم.

لقد وجدت أنها كانت ساطعة بدرجة كافية عند 30 مللي أمبير لذلك يجب أن يكون المقاوم:

0.8 / 0.03 = 26.6 أوم. في المخطط ، ترى أنني وضعت مقاومًا بقوة 22 أوم ، مما يجعل المصابيح أكثر سطوعًا قليلاً.

كانت المصابيح الزرقاء ساطعة للغاية عند 30 مللي أمبير ، ولكن بالمقارنة مع المصابيح البيضاء عند 15 مللي أمبير ، كان لديها أيضًا حوالي 2.8 فولت فوقها عند 15 مللي أمبير ، لذا كان الحساب 4 × 2.8 فولت = 11.2 فولت مرة أخرى وترك 0.8 فولت

0.8 / 0.015 = 53.3 أوم لذلك اخترت المقاوم 47 أوم.

تحتاج المصابيح الحمراء الخاصة بي أيضًا إلى حوالي 15 مللي أمبير.تكون ساطعة مثل الآخرين ، لكن لديهم فقط 1.8 فولت فوقهم في هذا التيار. حتى أتمكن من وضع المزيد في سلسلة ولا يزال لدي بعض "مساحة" للمقاوم.

أعطتني ستة مصابيح LED حمراء 6 × 1.8 = 10.8 فولت ، لذلك كان فوق المقاوم 12 - 10.8 = 1.2 فولت

1.2 / 0.015 = 80 أوم ، وصلت إلى 68 أوم. تمامًا مثل الآخرين ، أكثر إشراقًا قليلاً.

المصابيح الخضراء التي استخدمتها ساطعة مثل المصابيح الأخرى عند حوالي 20 مللي أمبير. كنت بحاجة إلى عدد قليل فقط (تمامًا مثل الأزرق) واخترت وضع أربعة في سلسلة. عند 20 مللي أمبير ، يكون لديهم 2 ، 1 فولت ، مما يعطي 3 × 2.1 = 8.4 فولت

12 - 8.4 = 3.6 فولت للمقاوم. و 3.6 / 0.02 = 180 أوم.

إذا قمت بإنشاء مصباح التنبيه هذا ، فمن غير المحتمل أن يكون لديك نفس مصدر الطاقة ، فسيتعين عليك ضبط عدد المصابيح في السلسلة والمقاومات المطلوبة.

مثال صغير. لنفترض أن لديك مصدر طاقة يعطي 20 فولت. كنت سأختار تعيين 6 مصابيح زرقاء (وأبيض) في سلسلة ، 6 × 3 فولت = 18 فولت لذا 2 فولت للمقاوم. ودعنا نقول أنك تحب السطوع عند 40 مللي أمبير. يجب أن يكون المقاوم بعد ذلك 2V / 0.04 = 50 أوم ، سيكون المقاوم 47 أوم جيدًا.

أنصح بعدم الذهاب أعلى من 50 مللي أمبير مع المصابيح العادية (5 مم). يمكن للبعض التعامل مع المزيد ، لكني أحب أن أكون في الجانب الآمن.

الخطوة 6: البرمجيات

يمكن تنزيل كل الكود من:

gitlab.com/WilkoL/wakeup_light_stm8s103

احتفظ بكود المصدر مفتوحًا ، بجوار بقية التعليمات إذا كنت تريد اتباع الشرح.

ج الرئيسية

يقوم Main.c أولاً بإعداد الساعة وأجهزة ضبط الوقت والأجهزة الطرفية الأخرى. معظم "برامج التشغيل" التي كتبتها باستخدام المكتبة القياسية من STMicroelectronics وإذا كان لديك أي أسئلة عنها ، فاكتبها في تعليق أسفل التعليمات.

ابروم

تركت رمز "النص المراد عرضه" الذي استخدمته لوضع النصوص في eeprom من STM8S103 كتعليقات. لم أكن متأكدًا من أن لدي ذاكرة فلاش كافية لجميع شفراتي ، لذا حاولت وضع أكبر قدر ممكن في eeprom للحصول على كل الفلاش للبرنامج. في النهاية ثبت أن ذلك ليس ضروريًا وقمت بنقل النص إلى وميض. لكنني تركته كنص معلق في ملف main.c. من الجيد الحصول عليها ، عندما أحتاج إلى القيام بشيء مماثل لاحقًا (في مشروع آخر)

لا يزال eeprom مستخدمًا ، ولكن فقط لتخزين وقت الاستيقاظ.

مرة في الثانية

بعد إعداد الأجهزة الطرفية ، يتحقق الكود مما إذا كانت ثانية واحدة قد مرت (تم ذلك باستخدام مؤقت).

قائمة طعام

إذا كانت هذه هي الحالة ، فإنه يتحقق مما إذا كان قد تم الضغط على الزر ، وإذا كان الأمر كذلك ، فإنه يدخل القائمة حيث يمكنك ضبط الوقت الحالي واليوم من الأسبوع ووقت الاستيقاظ. تذكر أن الأمر يستغرق حوالي 5 دقائق للانتقال من وضع الإيقاف إلى السطوع الكامل ، لذا اضبط وقت الاستيقاظ قبل ذلك بقليل.

يتم تخزين وقت الاستيقاظ في eeprom بحيث "يعرف" متى يوقظك حتى بعد انقطاع التيار الكهربائي. يتم تخزين الوقت الحالي في ساعة الوقت الحقيقي بالطبع.

مقارنة الوقت الحالي والاستيقاظ

عندما لا يتم الضغط على أي زر ، فإنه يتحقق من الوقت الحالي ويقارنه بوقت الاستيقاظ ويوم الأسبوع. لا أريد أن يوقظني في عطلة نهاية الأسبوع:-)

في معظم الأوقات ، لا يلزم القيام بأي شيء ، لذا فإنه يضبط المتغير "المصابيح" على "إيقاف" وإلا على "تشغيل". يتم فحص هذا المتغير مع إشارة "change_intensity" ، والتي تأتي أيضًا من جهاز ضبط الوقت وتنشط 244 مرة في الثانية. لذلك عندما يكون متغير "المصابيح" في وضع التشغيل ، تزداد الكثافة 244 مرة في الثانية وعندما يكون متوقفًا عن التشغيل تقل 244 مرة في الثانية. لكن الزيادة تتم في خطوات فردية حيث يكون الانخفاض في خطوات من 16 مما يعني أنه عندما يؤمل ضوء الاستيقاظ في أداء وظيفته ، فإنه ينطفئ أسرع 16 مرة ولكن لا يزال بسلاسة.

نعومة ونفاد الذاكرة

النعومة تأتي من حساب المنحنى السيني. الحساب بسيط للغاية ولكن يجب إجراؤه في متغيرات النقطة العائمة (الزوجي) بسبب وظيفة exp () ، راجع الملف sigmoid.c.

في الحالة القياسية ، لا يدعم المحول البرمجي / الرابط الكوني متغيرات النقطة العائمة. يعد تشغيله أمرًا سهلاً (بمجرد العثور عليه) ولكنه يأتي مع زيادة في حجم الكود. كانت هذه الزيادة كبيرة جدًا لجعل الكود مناسبًا لذاكرة فلاش عند دمجها مع وظيفة sprintf (). وهذه الوظيفة ضرورية لتحويل الأرقام إلى نص للعرض.

إيتوا ()

لمعالجة هذه المشكلة ، قمت بإنشاء وظيفة itoa (). هذه وظيفة من Integer To Ascii شائعة إلى حد ما ، ولكنها غير مضمنة في مكتبة STMicroelectronics القياسية ، ولا مع المكتبات الكونية.

الخطوة 7: ايكيا (ماذا سنفعل بدونها)

ايكيا (ماذا كنا سنفعل بدونهم)
ايكيا (ماذا كنا سنفعل بدونهم)
ايكيا (ماذا كنا سنفعل بدونهم)
ايكيا (ماذا كنا سنفعل بدونهم)
ايكيا (ماذا كنا سنفعل بدونهم)
ايكيا (ماذا كنا سنفعل بدونهم)

تم شراء الصورة من ايكيا. إنه إطار ريبا مقاس 50 × 40 سم. هذا الإطار سميك جدًا مما يجعله رائعًا لإخفاء الإلكترونيات خلفه. بدلاً من ملصق أو صورة ، أضع قطعة من اللوح الليفي المثقوب. يمكنك شرائه من متجر لاجهزة الكمبيوتر حيث يطلق عليه أحيانًا "لوح السرير" به فتحات صغيرة تجعله مثاليًا لوضع المصابيح. لسوء الحظ ، كانت الثقوب الموجودة في لوحي أكبر قليلاً من 5 مم ، لذا اضطررت إلى استخدام الغراء الساخن "لتركيب" المصابيح.

لقد صنعت ثقبًا مستطيلًا في وسط اللوحة الصلبة لشاشة 16 × 2 وضغطت عليه. تم تعليق PCB مع جميع الأجهزة الإلكترونية على هذه الشاشة ، ولم يتم تثبيته على أي شيء آخر.

تم رش اللوح الخشبي المثقوب باللون الأسود ولكن خلف السجادة. لقد قمت بحفر فتحتين في الإطار للأزرار لضبط الوقت والتاريخ ، نظرًا لأن الإطار سميك إلى حد ما ، اضطررت إلى توسيع الثقوب الموجودة داخل الإطار لجعل الأزرار ملتصقة بما يكفي.

موصى به: