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

Ultimate Binary Watch: 12 خطوة (بالصور)
Ultimate Binary Watch: 12 خطوة (بالصور)

فيديو: Ultimate Binary Watch: 12 خطوة (بالصور)

فيديو: Ultimate Binary Watch: 12 خطوة (بالصور)
فيديو: Как сделать монокок часть 1 2024, يونيو
Anonim
الساعة الثنائية المطلقة
الساعة الثنائية المطلقة
الساعة الثنائية المطلقة
الساعة الثنائية المطلقة
الساعة الثنائية المطلقة
الساعة الثنائية المطلقة

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

اللوازم

جميع ملفات هذا المشروع:

يمكن تنزيل مكتبات كود Arduino من GitHub هنا:

مكتبة M41T62 RTC

مكتبة FastLED

مكتبة LowPower

الخطوة 1: الفكرة

لقد عثرت مؤخرًا على الفيديو التالي:

ساعة اليد الثنائية DIY

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

كانت الخطوة الأولى هي تحديد معايير تصميمي. هذا هو ما خطرت لي:

  • واجهة ثنائية RGB
  • عرض الوقت (مع عرض توقيت دقيق للغاية)
  • عرض التاريخ
  • وظيفة ساعة توقيت
  • وظيفة الإنذار
  • عمر البطارية لا يقل عن أسبوعين
  • شحن USB
  • البرنامج قابل للتخصيص بسهولة من قبل المستخدم
  • تصميم نظيف وبسيط

أصبحت هذه المعايير أساس المشروع بأكمله. كانت الخطوة التالية هي معرفة كيف أردت أن تعمل الساعة!

الخطوة الثانية: بعض نظرية المراقبة الثنائية

بعض نظرية المراقبة الثنائية
بعض نظرية المراقبة الثنائية

كانت الخطة بسيطة. ستعمل الساعة الثنائية تمامًا مثل الساعة العادية باستثناء أن الواجهة ستكون ثنائية ، على وجه التحديد ، BCD (Binary Coded Decimal). BCD هو نوع من التشفير الثنائي حيث يتم تمثيل كل رقم عشري بعدد ثابت من البتات. أحتاج إلى 4 بتات لأتمكن من تمثيل رقم من 0 إلى 9. وللمعيار

hh: mm

تنسيق الوقت ، أحتاج 4 من هذه الأرقام. هذا يعني أنني بحاجة إلى إجمالي 16 بت والتي سيتم تمثيلها بواسطة 16 مصباح LED.

قراءة الوقت في BCD سهل جدًا بمجرد أن تعتاد عليه. يمثل الصف الموجود أسفل الساعة أقل قيمة بت (1) والصف الموجود في الجزء العلوي هو البت الأكثر أهمية (8). يمثل كل عمود رقمًا في

hh: mm

تنسيق الوقت. إذا كان مؤشر LED قيد التشغيل ، فأنت تحسب هذه القيمة. إذا كان مؤشر LED مطفأ ، فإنك تتجاهله.

لقراءة الرقم الأول ، قم ببساطة بجمع جميع القيم المقابلة لمصابيح LED النشطة في العمود الأول (أقصى اليسار). افعل الشيء نفسه بالنسبة للأرقام الأخرى من اليسار إلى اليمين. لقد قرأت الآن الوقت في BCD!

سيكون هذا المبدأ هو نفسه بالنسبة لبقية وظائف الساعة. سيساعد استخدام RGB LEDs في التمييز بين الوظائف والأوضاع المختلفة باستخدام ألوان مختلفة. يتم اختيار الألوان من قبل المستخدم ويمكن تعديلها بسهولة على أي لوحة ألوان يفضلونها. يتيح ذلك للمستخدم التنقل بسهولة عبر الوظائف دون الشعور بالارتباك.

كانت الخطوة التالية هي إنشاء مخطط كتلة!

الخطوة الثالثة: الشروع في العمل

الحصول على العمل
الحصول على العمل

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

كانت الخطوة التالية هي البدء في اتخاذ قرارات بشأن المكونات الفردية لكل كتلة في مخطط الكتلة!

الخطوة 4: اختيار المكونات

تبين أن هناك الكثير من المكونات في هذه الدائرة. أدناه ، اخترت بعضًا من أهمها مع شرح لماذا اخترت لهم.

المصابيح

بالنسبة للواجهة الثنائية ، كان الاختيار واضحًا إلى حد ما. كنت أعلم أنني أردت استخدام مصابيح LED للعرض واكتشفت أنني بحاجة إلى 16 منها (في شبكة 4 × 4) لعرض أكبر قدر ممكن من المعلومات. أثناء بحثي عن مصباح LED المثالي ، استمر APA102 في الظهور. إنه مصباح LED صغير جدًا (2 مم × 2 مم) مع مجموعة واسعة من الألوان وهو غير مكلف إلى حد ما. على الرغم من أنني لم أعمل معهم من قبل ، فقد بدوا أنهم الأنسب لهذا المشروع ، لذلك قررت استخدامها.

المتحكم

كان اختيار المتحكم الدقيق أيضًا بسيطًا جدًا. لقد كان لدي الكثير من الخبرة في استخدام Atmega328P-AU في التطبيقات المستقلة وكنت على دراية بميزاته. هذا هو نفس الميكروكونترولر المستخدم في لوحات Arduino Nano. إنني أدرك أنه من المحتمل أن يكون هناك متحكم دقيق أرخص كان بإمكاني استخدامه ولكن مع العلم أن Atmega328 سيكون له دعم كامل لجميع مكتبات Arduino كان عاملاً كبيرًا في اختياره لهذا المشروع.

RTC (ساعة الوقت الحقيقي)

كان الشرط الأساسي لـ RTC هو الدقة. كنت أعلم أن الساعة لن يكون لها أي اتصال بالإنترنت وبالتالي لن تكون قادرة على إعادة معايرة نفسها عبر اتصال بالإنترنت ، سيحتاج المستخدم إلى إعادة معايرتها يدويًا. لذلك ، أردت أن أجعل ضبط الوقت دقيقًا قدر الإمكان. يتمتع M41T62 RTC بأحد أعلى درجات الدقة التي يمكن أن أجدها (± 2 جزء في المليون أي ما يعادل ± 5 ثوانٍ في الشهر). إن الجمع بين الدقة العالية والتوافق مع I2C والاستهلاك الحالي المنخفض للغاية جعل RTC خيارًا جيدًا لهذا المشروع.

محول DC-DC Boost

تم اختيار DC-DC Boost Converter IC ببساطة من خلال النظر إلى الدائرة ومعرفة الفولتية والتيارات المطلوبة. إن تشغيل الدائرة بجهد منخفض من شأنه أن يقلل من الاستهلاك الحالي ، لكنني لا أستطيع أن أقل من 4.5 فولت (الحد الأدنى لجهد متحكم دقيق عند الساعة 16 ميجاهرتز) ولا يمكنني تجاوز 4.5 فولت (أقصى جهد لـ RTC). هذا يعني أنه كان عليّ تشغيل الدائرة عند 4.5 فولت بالضبط من أجل تشغيل المكونات ضمن المواصفات الموصى بها. حسبت أن التيار الأقصى للدائرة لن يتجاوز 250 مللي أمبير. لذلك ، بدأت في البحث عن محول تعزيز يمكنه تلبية المتطلبات ووجدت سريعًا في TPS61220. يتطلب TPS61220 الحد الأدنى من المكونات الخارجية ، وكان رخيصًا إلى حد ما وكان قادرًا على تلبية متطلبات التيار والجهد.

البطارية

كان المتطلب الأساسي للبطارية هو الحجم. يجب أن تكون البطارية صغيرة بما يكفي بحيث يمكن وضعها داخل علبة الساعة دون أن تبدو ضخمة. كنت أحسب أن البطارية لا يمكن أن تتجاوز 20 مم × 35 مم × 10 مم. مع قيود الحجم هذه والمتطلبات الحالية البالغة 250 مللي أمبير ، اقتصر اختياري للبطاريات على بطاريات LiPo. لقد وجدت بطارية "Turnigy nano-tech 300mAh 1S" على Hobbyking والتي قررت استخدامها.

شحن IC

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

حماية LiPo

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

الآن وقد تم اختيار المكونات ، فقد حان الوقت لإنشاء التخطيطي!

الخطوة 5: التخطيطي

التخطيطي
التخطيطي

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

كانت الخطوة التالية هي وضع المخطط على ثنائي الفينيل متعدد الكلور!

الخطوة 6: تخطيط ثنائي الفينيل متعدد الكلور

تخطيط ثنائي الفينيل متعدد الكلور
تخطيط ثنائي الفينيل متعدد الكلور
تخطيط ثنائي الفينيل متعدد الكلور
تخطيط ثنائي الفينيل متعدد الكلور
تخطيط ثنائي الفينيل متعدد الكلور
تخطيط ثنائي الفينيل متعدد الكلور
تخطيط ثنائي الفينيل متعدد الكلور
تخطيط ثنائي الفينيل متعدد الكلور

تبين أن تصميم PCB هو الجزء الأكثر تحديًا في هذا المشروع. اخترت استخدام ثنائي الفينيل متعدد الكلور من طبقتين لتقليل تكاليف تصنيع ثنائي الفينيل متعدد الكلور إلى الحد الأدنى. لقد اخترت استخدام حجم قياسي للساعة يبلغ 36 مم لأنه يبدو أنه يناسب مصابيح LED بشكل جيد. أضفت بعض فتحات المسامير 1 مم لتأمين ثنائي الفينيل متعدد الكلور في حاوية الساعة. كان الهدف هو الحفاظ على تصميم نظيف وحسن المظهر من خلال وضع جميع المكونات (باستثناء مصابيح LED بالطبع) على الطبقة السفلية. أردت أيضًا استخدام الحد الأدنى المطلق لعدد vias لتجنب وجود فيا مرئية على الطبقة العليا. هذا يعني أنه كان عليّ أن أقوم بتوجيه كل الآثار على طبقة واحدة مع التأكد من إبقاء الأجزاء "الصاخبة" من الدائرة بعيدًا عن آثار الإشارات الحساسة. لقد حرصت أيضًا على إبقاء جميع الآثار قصيرة قدر الإمكان ، ووضع المكثفات الالتفافية بالقرب من الحمل ، باستخدام آثار أكثر سمكًا للمكونات عالية الطاقة واتباع جميع الممارسات الجيدة الشائعة لتصميم ثنائي الفينيل متعدد الكلور. استغرق التوجيه بعض الوقت ، لكنني أعتقد أنه سارت الأمور بشكل جيد للغاية.

كانت الخطوة التالية هي إنشاء نموذج ثلاثي الأبعاد لحاوية الساعة!

الخطوة 7: تصميم ثلاثي الأبعاد

تصميم ثلاثي الأبعاد
تصميم ثلاثي الأبعاد
تصميم ثلاثي الأبعاد
تصميم ثلاثي الأبعاد
تصميم ثلاثي الأبعاد
تصميم ثلاثي الأبعاد

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

الآن وقد تم الانتهاء من الأجهزة ، فقد حان الوقت لبدء العمل على البرنامج!

الخطوة 8: الكود

الرمز
الرمز

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

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

قضت البرمجة بقية الوقت في جعل الأوضاع الأخرى بديهية قدر الإمكان. لقد اعتقدت أن وجود نفس الزر المسؤول عن نفس الوظيفة عبر جميع الأوضاع سيكون هو الأكثر سهولة. بعد بعض الاختبارات ، هذا هو تكوين الزر الذي توصلت إليه:

  • الضغط على الزر العلوي: تنبيه / دورة بين أوضاع "Display Time" و "Display Date" و "Stopwatch" و "Alarm" (التنبيه).
  • الضغط على الزر العلوي: أدخل وضع "ضبط الوقت" أو "ضبط التاريخ" أو "بدء ساعة الإيقاف" أو "ضبط المنبه".
  • الضغط على الزر السفلي: زيادة السطوع.
  • الضغط على الزر السفلي: أدخل وضع "اختيار اللون".

الزر السفلي مسؤول دائمًا عن ضبط السطوع والألوان ، بغض النظر عن الوضع الذي أنت فيه. عندما يدخل المستخدم في وضع "اختيار اللون" ، تبدأ مصابيح LED بالدوران عبر جميع ألوان RGB الممكنة. يمكن للمستخدم إيقاف الرسوم المتحركة مؤقتًا واختيار اللون الذي يفضله لهذا الوضع المحدد (وقت العرض باللون الأحمر ، وتاريخ العرض باللون الأزرق ، وما إلى ذلك). من المفترض أن تكون الألوان قابلة للتخصيص بسهولة من قبل المستخدم لمساعدتهم على التمييز بين الأوضاع المختلفة.

الآن وقد تم الانتهاء من الكود ، فقد حان الوقت لتحميله على وحدة التحكم الدقيقة!

الخطوة 9: البرمجة

برمجة
برمجة

لقد حان وقت اللحام والتجميع تقريبًا ولكن قبل ذلك كنت بحاجة إلى برمجة وحدة التحكم الدقيقة. لقد اتبعت هذا البرنامج التعليمي

انسخ محمل الإقلاع إلى ATmega328P-AU SMD

حول كيفية نسخ محمل الإقلاع وبرمجة المتحكم الدقيق باستخدام Arduino Uno العادي كمبرمج.

كانت الخطوة الأولى هي تحويل Arduino Uno إلى مزود خدمة إنترنت عن طريق تحميل مثال كود ArduinoISP. لقد استخدمت لوحة توصيل مع مقبس برمجة وقمت بتوصيل المخطط من البرنامج التعليمي. بعد ذلك ، تمكنت من نسخ أداة تحميل التشغيل إلى وحدة التحكم الدقيقة عن طريق الضغط فقط على "نسخ أداة تحميل التشغيل" في Arduino IDE.

بمجرد أن يكون لدى المتحكم الدقيق محمل إقلاع ، قمت ببساطة بإزالة المتحكم الدقيق الموجود من Arduino Uno واستخدمت لوحة Arduino Uno كجهاز USB إلى Serial Adapter لتحميل الكود إلى وحدة التحكم الدقيقة في مقبس البرمجة. بعد الانتهاء من التحميل ، يمكنني بدء عملية اللحام.

كانت الخطوة التالية هي جمع جميع المكونات ولحامها معًا!

الخطوة 10: اللحام

اللحيم
اللحيم
اللحيم
اللحيم
اللحيم
اللحيم
اللحيم
اللحيم

تم تقسيم عملية اللحام إلى قسمين. أولاً ، يجب لحام الطبقة السفلية ، ثم الطبقة العليا.

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

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

حان الوقت الآن للتجميع النهائي!

الخطوة 11: التجميع

المجسم
المجسم

كان التجميع بسيطًا جدًا. لقد قمت بتوصيل البطارية بـ PCB ووضعت البطارية و PCB داخل العلبة المطبوعة ثلاثية الأبعاد. شرعت في تثبيت المسامير الأربعة الموجودة في فتحات التثبيت في كل ركن من أركان لوحة الدوائر المطبوعة. بعد ذلك ، قمت بتوصيل أحزمة الساعة باستخدام قضبان زنبركية مقاس 18 مم وكانت الساعة مكتملة!

الخطوة 12: الخاتمة والتحسينات

الخلاصة والتحسينات
الخلاصة والتحسينات
الخلاصة والتحسينات
الخلاصة والتحسينات

تعمل الساعة كما هو متوقع وأنا سعيد جدًا بكيفية ظهورها. لم أواجه أي مشاكل معه حتى الآن ولا تزال البطارية مشحونة بالكامل تقريبًا بعد أسبوع كامل من الاستخدام.

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

إذا كانت لديك أية أفكار أو تعليقات أو أسئلة حول هذا المشروع ، فيرجى تركها أدناه. يمكنك أيضًا إرسالها إلى [email protected].

مسابقة الساعات
مسابقة الساعات
مسابقة الساعات
مسابقة الساعات

الجائزة الأولى في مسابقة الساعات

موصى به: