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

Minidot 2 - Holoclock: 6 خطوات
Minidot 2 - Holoclock: 6 خطوات

فيديو: Minidot 2 - Holoclock: 6 خطوات

فيديو: Minidot 2 - Holoclock: 6 خطوات
فيديو: Luban L3 Mini Intelligent Repair Programmer for Phone 6 13ProMax 2024, يوليو
Anonim
Minidot 2 - Holoclock
Minidot 2 - Holoclock
Minidot 2 - Holoclock
Minidot 2 - Holoclock

حسنًا ، ربما يكون holoclock غير دقيق بعض الشيء … فهو يستخدم فيلم تشتت ثلاثي الأبعاد في المقدمة لإعطاء القليل من العمق. / EEGLXQCSKIEP2876EE / وإعادة استخدام الكثير من التعليمات البرمجية والدوائر من Microdot الموجودة هنا: كان Minidot السابق معقدًا للغاية ، من Microdot تعلمت كيفية عمل RTC على PIC باستخدام بلورة 32.768 فقط ولم أكن بحاجة إلى استخدام شريحة RTC خاصة. كما أردت التخلص من شرائح العرض من Minidot السابق. حتى الآن ، لا يوجد سوى شريحة منظم طاقة و PIC16F88…. شريحتان فقط. والأسباب الأخرى للتحديث هي أن Minidot الخاص بي كان غير موثوق به إلى حد ما بسبب لوحة التبديل المنفصلة وأردت تلاشيًا ناعمًا بين أنماط النقاط مثل بالإضافة إلى نوع من مستشعر الإضاءة المحيطة لتعتيم الشاشة في الليل. جهاز Minidot الآخر كان سطوعًا ثابتًا ، ويضيء غرفة في الليل. تم تصميم الجهاز بمساعدة حزمة برامج EagleCad ومترجم Sourceboost. ستحتاج إلى بعض الخبرة في مجال الإلكترونيات وبرمجة وحدات التحكم PIC لبدء هذا المشروع. يرجى ملاحظة أن هذا ليس تعليمات حول أي من الإلكترونيات أو برمجة الموافقة المسبقة عن علم ، لذا يرجى الاحتفاظ بالأسئلة ذات الصلة بتصميم Miniclock. الرجوع إلى التعليمات أعلاه أو العديد من التعليمات الأخرى على هذا الموقع للحصول على نصائح حول استخدام EagleCad أو برمجة بلدان جزر المحيط الهادئ. ها هو ….. Minidot 2 ، Holoclock …… أو Minidot الجيل القادم ………….

الخطوة 1: الدائرة

الدائرة
الدائرة
الدائرة
الدائرة
الدائرة
الدائرة

هذه الدائرة متشابهة جدًا مع Microdot. لاحظ أن مجموعة charlieplex متطابقة تقريبًا … تم تحريك عدد قليل من المسامير.

تمت إضافة بلورة 20 ميجا هرتز إلى دائرة Microdot لتسجيل الموافقة المسبقة عن علم بشكل أسرع ، مما يسمح بمسح الصفيف بشكل أسرع ويتيح تنفيذ خوارزمية التعتيم. كانت خوارزمية التعتيم مهمة جدًا للحصول على تلاشي النمط المتقاطع وتشغيل وظيفة الإضاءة المحيطة. كان من الممكن أن يكون هذا مستحيلًا مع Microdot ، بسبب سرعة الساعة الأبطأ حيث كانت هناك حاجة إلى إنفاق بعض دورات المسح على التعتيم. انظر القسم التالي للحصول على وصف لوظيفة التعتيم. الأشياء الأخرى التي يجب ملاحظتها هي استخدام منظم مضخة شحن MCP1252 لتزويد 5V ، الشريحة المفضلة لدي في الوقت الحالي. إذا قمت بتعديل الدائرة ، يمكنك استخدام 7805 قديمًا عاديًا …… لدي فقط عدد من هذه الرقائق اليدوية معلقة. لقد قمت الآن بنقل المفاتيح إلى الأمام ، وحفظ العبث على مدار الساعة بعد انقطاع التيار الكهربائي لإعادة ضبط الوقت والآن أصبح كل شيء ثنائي الفينيل متعدد الكلور واحد فقط … لا توجد مشاكل في الكابلات. وتجدر الإشارة أيضًا إلى تضمين LDR. يستخدم هذا في مقسم الجهد الذي يتم استشعاره بواسطة دبوس A / D على PIC. عندما يستشعر PIC أن مستوى الضوء المحيط منخفض (أي وقت الليل) ، فإن خوارزمية التعتيم تحافظ على مجموعة charlieplex مظلمة لدورات أكثر مما كانت عليه عندما يكون مستوى الضوء مرتفعًا. لم أتمكن من العثور على رمز LDR في مكتبة Eaglecad ، لذلك استخدمت للتو رمز LED … لا تنخدع ، إنه LDR. انظر الصورة الفعلية لثنائي الفينيل متعدد الكلور أدناه. شيء واحد يجب ملاحظته عند استخدام مصابيح LED متعددة الألوان في مجموعة charliplex. تحتاج إلى التأكد من أن الجهد الأمامي لمصابيح LED متماثل إلى حد ما. إذا لم يكن الأمر كذلك ، فقد تحدث مسارات تيار شارد وستضيء مصابيح LED متعددة. وبالتالي ، فإن استخدام مصابيح LED ذات طاقة 5 مم أو أعلى لهذا التكوين لن يعمل حيث يوجد عادة فرق كبير بين المصابيح الخضراء / الزرقاء ومصابيح LED الحمراء / الصفراء. في هذه الحالة ، استخدمت 1206 SMD LEDs ومصابيح LED خضراء / زرقاء عالية الكفاءة على وجه الخصوص. لم تكن الفولتية الأمامية مشكلة هنا بالرغم من ذلك. إذا كنت ترغب في استخدام مزيج من مصابيح LED ذات الطاقة العالية باللون الأخضر / الأزرق والأحمر / الأصفر في مجموعة charlieplex ، فستحتاج إلى فصل الألوان المختلفة في صفيفتين من charliplex. هناك العديد من التفسيرات لـ charlieplexing التي يمكن أن تكون غوغل ……. لن أخوض في التفاصيل هنا. سأترك الأمر لك لإجراء بعض الأبحاث. (اضغط على أيقونة "i" الصغيرة في زاوية الصورة أدناه لمشاهدة نسخة أكبر)

الخطوة 2: خوارزمية التعتيم - تعديل عرض النبض تشارليبليكسيد

خوارزمية التعتيم - تعديل عرض النبض تشارليبليكسيد
خوارزمية التعتيم - تعديل عرض النبض تشارليبليكسيد

كما ذكرنا سابقًا ، أردت أن تتلاشى أنماط النقاط المختلفة للوقت بسلاسة بدلاً من الاهتزاز من نمط إلى آخر. شاهد الفيديو للحصول على عرض توضيحي. في الوسط ، توجد ساعة Minidot الجديدة ، وعلى اليمين توجد ساعة Minidot الأقدم. لاحظ كم هو أجمل الجديد. (لمعلوماتك ، فإن الشاشات الأخرى في الخلفية هي شاشة عرض حالة الكمبيوتر الفائق Minicray وجسيم Nebulon الذي تم التقاطه والذي يعمل على تشغيل Minicray في حقل حجز مغناطيسي للمادة المضادة. انظر هنا: https://www.youtube.com/watch؟ v = bRupDulR4ME للحصول على عرض توضيحي من غرفة الحبس السديم) إذا نظرت في الكود ، افتح ملف display.c. لاحظ أن هناك أربع مصفوفات لتعيين قيم tris / المنفذ لإلقاء الضوء على أي مصفوفة معينة ومصفوفتين (واحد أكثر من رمز Microdot) لتحديد أي من مصابيح LED يجب أن تضيء لأي نمط معين من LEDs.eg:

// LED1 LED2 LED3 … غير موقعة LEDS_PORTA [31] = {0x10، 0x00، 0x00،… char LEDS_TRISA [31] = {0xef، 0xff، 0xff،… char LEDS_PORTB [31] = {0x00، 0x02، 0x04، … char غير موقعة LEDS_TRISB [31] = {0xfd، 0xf9، 0xf9،… char nLedsA [30]؛ nLedsB char غير موقعة [30]؛لإضاءة LED1 على سبيل المثال ، تحتاج إلى ضبط سجلات TRIS TRISA: B = 0xef: 0xfd و PORT مسجلات PORTA: B = 0x10: 0x00 وما إلى ذلك. إذا كتبت قيم tris في النظام الثنائي ، فستلاحظ أنه في أي وقت ، لا يوجد سوى ناتجين ممكّنين. تم تعيين جميع الآخرين على Tri-state (ومن ثم سجل TRIS). هذا أمر أساسي في charlieplexing. ستلاحظ أيضًا أن أحد المخرجات دائمًا ما يكون "1" منطقيًا والآخر دائمًا "0" منطقي … يتم تشغيل اتجاهه أيًا كان مؤشر LED بين خطي الإخراج هذين. القيمة الأخيرة في المنفذ / tris المصفوفات هي قيمة فارغة لتشغيل أي LED على الإطلاق. في Microdot ، يتم تدوير وظيفة update_display بشكل مستمر من خلال مصفوفة أخرى (nLeds ) لمعرفة ما إذا كان يجب إضاءة هذا LED المحدد. إذا كان الأمر كذلك ، فعندئذٍ تم تعيين قيم tris / المنفذ المقابلة وإضاءة LED لفترة من الوقت. بخلاف ذلك ، تم إرسال القيمة الفارغة إلى سجلات PICs TRIS / PORT ولم يضيء أي LED لفترة من الوقت. عند القيام بالسرعة الكافية ، أعطى هذا نمطًا. سيقرأ باقي البرنامج قيم RTC بشكل دوري ويشكل نمطًا عشوائيًا لطيفًا في تلك المصفوفة … وهكذا تغيرت الشاشة. لعمل وظيفة التعتيم ، تم تمديد هذا قليلاً بحيث أنه بعد إضاءة 30 مصباح LED (أو not) عندئذٍ سيتم إنفاق فترات إضافية على إرسال قيم فارغة إذا كان سيتم تعتيم الشاشة….. للسطوع الكامل ، فلن يتم إنفاق فترات إضافية. عند التكرار إذا كان هناك الكثير من الفترات الفارغة لمصابيح LED المضيئة ، ستكون الشاشة معتمة. في الواقع ، هذا هو تعديل عرض النبضة المتعددة … أو لأن الجهاز تم تكوينه في ترتيب charlieplex ، ثم تعديل عرض النبضة charlieplexed. يوضح الرسم البياني الثاني أدناه الإعداد الأساسي لذلك. أسمي هذا إطار المسح. تُستخدم الفترات الثلاثين الأولى للإطار للمرور عبر مصابيح LED….. ويحدد عدد متغير من الفترات الإضافية مدى تعتيم الشاشة. تتكرر هذه الدورة. يعني المزيد من الفترات الفارغة وقتًا أقل لتشغيل مؤشر LED لكل إطار (نظرًا لزيادة عدد الفترات). لاحظ أن المحور الرأسي لا يعني مستوى الجهد. تختلف الحالة الفعلية للدبابيس التي تنتقل إلى مصابيح LED اعتمادًا على موضعها في مجموعة charlieplex ….. في الرسم التخطيطي ، يعني هذا فقط تشغيل أو إيقاف تشغيل ، وهذا يعني أيضًا زيادة الطول الإجمالي للإطار في الوقت المناسب ، وبالتالي تقليل التحديث معدل. عندما تصبح مصابيح LED باهتة ، فإنها ستبدأ في الوميض بعبارة أخرى. لذلك هذه الطريقة مفيدة فقط إلى حد ما. بالنسبة للساعة ، كان الأمر جيدًا. تسمى الوظيفة بشكل متقطع والتي تقرأ محول A / D على PIC وتضبط مستوى السطوع هذا. إذا قرأت الرمز ، فإنه يتحقق أيضًا لمعرفة ما إذا كان مصباح LED الأقرب لـ LDR قيد التشغيل ، ولا يقوم بأي إعداد مستوى إذا كان الأمر كذلك ، فهذا يوقف سطوع الشاشة بشكل غير متوقع عند تغيير النمط.

الخطوة 3: خوارزمية التعتيم - تأثير التلاشي المتقاطع والتخزين المؤقت المزدوج

خوارزمية التعتيم - تأثير التلاشي المتقاطع والتخزين المؤقت المزدوج
خوارزمية التعتيم - تأثير التلاشي المتقاطع والتخزين المؤقت المزدوج

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

لم أكن بحاجة إلى التحكم في مصابيح LED الفردية عند مستويات سطوع منفصلة للقيام بالتلاشي المتقاطع. فقط بحاجة إلى النمط الأول عند سطوع واحد والثاني عند سطوع منخفض. ثم خلال فترة قصيرة أقوم بتقليل سطوع الأول قليلاً ، وزيادة الثانية….. سيستمر هذا حتى النمط الثاني كاملاً. ثم تنتظر الساعة حتى يحين موعد ظهور النمط التالي وسيكون هناك انتقال آخر. وبالتالي كنت بحاجة لتخزين نمطين. النموذج المعروض حاليًا والنمط الثاني الذي كان على وشك العرض. هذه في المصفوفات nLedsA و nLedsB. (لاحظ عدم وجود علاقة بالمنافذ في هذه الحالة). هذا هو المخزن المؤقت المزدوج. تم تعديل وظيفة update_display () للتنقل بين ثمانية إطارات وإظهار عدد من الإطارات من المصفوفة الأولى ثم الأخرى. أدى تغيير عدد الإطارات المخصصة لكل مخزن مؤقت خلال الدورات الثماني إلى تحديد مدى سطوع كل نمط. عندما انتهينا من التنقل بين المخازن المؤقتة ، قمنا بتبديل المخازن المؤقتة "للعرض" و "العرض التالي" ، وبالتالي فإن وظيفة إنشاء النمط ستكتب فقط إلى المخزن المؤقت "العرض التالي". يوضح الرسم البياني أدناه هذا نأمل. يجب أن تكون قادرًا على رؤية أن الانتقال سيستغرق 64 إطارًا للمسح. في الصورة ، يُظهر الشكل الداخلي الصغير مخطط إطار المسح الضوئي من الصفحة السابقة مصغرًا بشكل فني. كلمة عن سعر إعادة التجديد. كل هذا يجب القيام به بسرعة كبيرة. لدينا الآن مستويان من الحساب الإضافي ، أحدهما لظلال الشاشة المحيط والآخر لدورات الإطار الثماني التي تم إنفاقها في إجراء انتقال بين مخازن مؤقتة. لذلك يجب كتابة هذا الرمز في التجميع ، ولكنه جيد بما فيه الكفاية في "C".

الخطوة 4: البناء - ثنائي الفينيل متعدد الكلور

البناء - ثنائي الفينيل متعدد الكلور
البناء - ثنائي الفينيل متعدد الكلور
البناء - ثنائي الفينيل متعدد الكلور
البناء - ثنائي الفينيل متعدد الكلور

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

الشيء الوحيد الجدير بالملاحظة في بناء ثنائي الفينيل متعدد الكلور هو تضمين موصل لبرمجة الموافقة المسبقة عن علم. هذا يتصل بدبابيس ICSP على PIC وستحتاج إلى مبرمج ICSP. مرة أخرى ، استخدمت موصل صندوق البريد غير المرغوب فيه في متناول يدي. يمكنك حذف هذا وفقط أسلاك اللحام للوسادات إذا أردت. بدلاً من ذلك ، إذا كان لديك مبرمج ذو مأخذ توصيل فقط ، فيمكنك إنشاء رأس يتم توصيله بالمقبس الخاص بك ثم لحامه في وسادات ICSP. إذا قمت بذلك ، فقم بفصل Rx وقم بتوصيل Ry التي ليست سوى روابط صفرية أوم (أنا فقط استخدم blob اللحام). سيؤدي هذا إلى فصل بقية طاقة الدائرة عن الموافقة المسبقة عن علم حتى لا تتداخل مع البرمجة. يستخدم المبرمج ذو المقبس دبابيس ICSP مثل مبرمج ICSP ، ولا يوجد سحر حقيقي. تحتاج أيضًا إلى القيام بذلك إذا نسيت عن طريق الخطأ وضع تأخير في الكود قبل بدء تشغيل RTC. بالنسبة إلى 16F88 ، تكون دبابيس برمجة ICSP هي نفسها المسامير اللازمة لبلورة 32.768 كيلو هرتز المستخدمة في RTC … إذا كان المذبذب الخارجي T1 (أي RTC) يعمل قبل أن يبدأ ICSP في عمله ، فستفشل البرمجة. عادةً إذا كان هناك إعادة تعيين على دبوس MCLR وكان هناك تأخير ، فيمكن إرسال بيانات ICSP إلى هذه المسامير ويمكن أن تبدأ البرمجة بشكل صحيح. ومع ذلك ، من خلال عزل الطاقة عن PIC ، يمكن لمبرمج ICSP (أو مبرمج مقبس برأس) التحكم في الطاقة للجهاز وفرض البرنامج. الأشياء الأخرى التي يجب ملاحظتها هي أن الوسادات البلورية الموجودة على PCB مصممة أصلاً لبلورات SMD. لم أستطع الانتظار حتى يتم تسليم البعض ، لذا تم لحام بلورة الساعة 32.768 كيلو هرتز إلى الأعلى كما هو موضح ، وتم توصيل البلورة 20 ميجا هرتز عن طريق حفر بضع فتحات في الوسادات ، وكس البلورة من خلال الجزء السفلي ولحامها أعلى. يمكنك رؤية المسامير الموجودة على يمين PIC16F88 فقط.

الخطوة 5: الفيلم الهولوغرافي والإسكان

الفيلم الهولوغرافي والإسكان
الفيلم الهولوغرافي والإسكان
الفيلم الهولوغرافي والإسكان
الفيلم الهولوغرافي والإسكان
الفيلم الهولوغرافي والإسكان
الفيلم الهولوغرافي والإسكان

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

الجزء البارز من هذه الساعة هو استخدام فيلم ناشر ثلاثي الأبعاد. هذا فيلم خاص كنت أستلقي حوله يوفر عمقًا لطيفًا للجهاز. يمكنك استخدام ورق تتبع عادي (حيث أقوم بتحريك ثنائي الفينيل متعدد الكلور إلى الأمام) ، أو أي ناشر آخر مثل تلك المستخدمة في تركيبات الإضاءة الفلورية. من خلال التجربة ، الشيء الوحيد الذي تحتاج إلى القيام به هو السماح لك بالتمييز بين عدد مصابيح LED المضيئة ، وإلا فإن حساب النقاط لمعرفة الوقت سيكون صعبًا. لقد استخدمت مادة التشتت الثلاثية الأبعاد من شركة البصريات الفيزيائية (www.poc.com) مع تشتت دائري بمقدار 30 درجة ، واستخدمت شاشة عرض حالة الكمبيوتر العملاق الموضحة في مكان آخر في التعليمات فيلمًا به تشتت بيضاوي 15 × 60 درجة. يمكنك استخدام شريط التعتيم لإخفاء الأجزاء الداخلية اللامعة خلال النهار للحصول على مظهر أكثر غموضًا. يمكنك حتى ترك الشاشة واضحة والسماح للناس برؤية الأحشاء كما فعلت أنا. كان الحامل عبارة عن قطعتين من قضيب الألمنيوم على شكل حرف "L" مع قطع صغيرة من الأسفل للسماح بالانحناء. لاحظ أنه تمت إضافة إضاءة إضافية في هذه الصور حتى تتمكن من رؤية أغطية الشاشة وما إلى ذلك. في إضاءة غرفة المعيشة العادية ، تكون مصابيح LED أكثر بروزًا ، حتى في ضوء النهار.

الخطوة 6: البرنامج وواجهة المستخدم

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

لتعيين الوقت ، اضغط أولاً على SW1. سيومض الجهاز جميع مؤشرات LED عدة مرات ، ثم ستعمل مجموعة 10s ساعات من LED SW3 على زيادة المجموعة المحددة SW2 التي ستنتقل إلى المجموعة التالية من مصابيح LED ، وفي كل مرة تومض جميع مصابيح LED في المجموعة لفترة وجيزة. تمت كتابة الكود لمحول Sourceboost 'C' الإصدار 6.70. رمز RTC موجود في ملفات t1rtc.c / h ، وله وظيفة مقاطعة على مؤقت T1 للموافقة المسبقة عن علم. يتم ضبط عداد الوقت T1 على المقاطعة كل ثانية واحدة. في كل ثانية ، يتم زيادة متغير الوقت. يتم أيضًا عدّ عداد الوقت تنازليًا كل ثانية مع الوقت. يستخدم هذا لتحديد وقت نقل العرض. تستخدم وظيفة المقاطعة أيضًا مقاطعة المؤقت T0 لتحديث العرض ، واستدعاء وظيفة في شاشة العرض. c تحتوي الملفات display.h / display.c على وظائف لتحديث العرض وإظهار الوقت الذي يحتوي فيه عنصر التحكم في الملفات. وظائف لضبط الوقت وقراءة المفاتيح. الملفات holoclock.c / h هي الحلقات الرئيسية والتهيئة.

موصى به: