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

TheSUN ، ساعة حائط بتصميم مدعوم من Arduino: 6 خطوات (مع صور)
TheSUN ، ساعة حائط بتصميم مدعوم من Arduino: 6 خطوات (مع صور)

فيديو: TheSUN ، ساعة حائط بتصميم مدعوم من Arduino: 6 خطوات (مع صور)

فيديو: TheSUN ، ساعة حائط بتصميم مدعوم من Arduino: 6 خطوات (مع صور)
فيديو: ساعة حائط شكل قرص الشمس Sun shaped wall clock 2024, يوليو
Anonim
TheSUN ، ساعة حائط بتصميم اردوينو
TheSUN ، ساعة حائط بتصميم اردوينو
TheSUN ، ساعة حائط بتصميم اردوينو
TheSUN ، ساعة حائط بتصميم اردوينو
TheSUN ، ساعة حائط بتصميم اردوينو
TheSUN ، ساعة حائط بتصميم اردوينو

مرحبًا مرة أخرى Instructables-folks!:-P

بسبب مشاكل الشحن ، لم أتمكن من متابعة مشروع ABTW الخاص بي ، لذلك قررت أن أعرض لكم آخر ، أحدث إبداعاتي.

أعتقد أن الكثيرين منا ، مثلي ، يحبون تلك المشارب اللطيفة LED القابلة للعنونة (وتسمى أيضًا NEOPIXEL LED). يمكنك الحصول عليها من ADAFRUIT. سيوفر البائعون الآخرون أيضًا منتجات مماثلة. توجد مكتبة متاحة على ADAFRUITS - GitHub (انقر فوقي) بما في ذلك بعض نماذج التعليمات البرمجية. لذا يجب أن يكون الترميز مباشرًا …

لقد رأيت هؤلاء NEOPIXELS فكرة ، ما هو … الذي يمكنني فعله بهذه الأشياء الصغيرة اللامعة.

  • شاشة LED مصفوفة؟ -> معقد ولا أستخدمه (في الوقت الحالي)
  • إضاءة إكس ماس؟ -> يناسب الموسم ولكن سيكون من الأرخص شراء واحدة:-P
  • ساعة؟ -> لمَ لا! لكن يجب أن تكون أنيقة وغير تقليدية

لذا ، دعونا نصنع ساعة حائط.

إذا ألقينا نظرة فاحصة على ساعة معصمنا (إذا كان لديك نظير مثلي) ، فسنلاحظ أن لدينا 12 ساعة و 60 دقيقة (نأمل). هذا يعني أننا بحاجة إلى 60 مصباح LED قابل للعنونة ، فو! إذا أخذنا شريطًا به 60 LED´s / متر ، فسنحصل على قطر يبلغ 318 مم تقريبًا (نصف القطر = النطاق / (2 * Π)) هذا بالتأكيد كبير جدا.

الحقيقة هي ، إذا سألت شخصًا ما عن الوقت ، فلن يقول أحد أنه دقيقتان و 3 دقائق! ستحصل على "إنها 5 و 3" كإجابة. فلماذا لا نقصر كل شيء إلى 5 دقائق؟ لذلك سنحتاج فقط إلى 12 مصباح LED مما يعني أننا نحصل على قطر يبلغ 63.6 مم. نحن قادرون أيضًا على التمييز بين الساعات والدقائق من خلال إعطائهم لونًا منفصلاً. وسنكون قادرين أيضًا على توفير خطوات الدقيقة الفردية "المفقودة" بشريط إضافي مكون من 4 مصابيح LED (أو مؤشر LED واحد قابل للعنونة.

هذه هي الخطة! دعونا نلقي نظرة كيف فعلت كل شيء. كما هو الحال دائمًا ، سأقدم قائمة / فاتورة بالمواد وتعليمات حول كيفية بنائها.

إذا كنت تعتقد أن السويسريين فقط هم من يمكنهم صنع ساعات رائعة ، فلنثبت أنك مخطئ (آسف سويسرا:-P)

الخطوة 1: تصميم واختيار المواد

تصميم واختيار المواد
تصميم واختيار المواد
تصميم واختيار المواد
تصميم واختيار المواد

تصميم:

إذا ألقينا نظرة فاحصة على ساعتنا / الساعة التناظرية مرة أخرى ، فسنرى أن الدائرة مقسمة إلى 12 * 30 درجة من الخطوات التي نعرفها ، ونحتاج إلى 63.6 مم لشريط LED. لذلك يجب أن يكون من الممكن محاذاة الشريط حول الأنبوب بطريقة ما. قررت استخدام زجاج الأكريليك ، لأنه يبدو جميلًا ومن الممكن تغليف ضوء LED به وعند كل عيب في الزجاج سيحدث بعض تشتت الضوء. لنفترض أن: المزيد من الشوائب سيؤدي إلى مزيد من تشتت الضوء! هذا بالضبط ما نريده. لذلك لا تتردد في الحصول على أدوات النقش الخاصة بك وكن مبدعًا:-)

إذا كنت تشير إلى قائمة BoM الخاصة بي والاسم الذي أعطيته للساعة ، فقد اخترت تصميمًا يشبه الشمس ، لقد حصلت على جميع أجزاء الأكريليك من بائع ألماني على E-Bay (الرابط متوفر في BoM). سوف تحتاج:

  • لوح أرضي أكريليك ، سمك شفاف = 6 مم ، قطر = 300 مم
  • لوحة وسط الاكريليك ، سمك شفاف = 3 مم ، القطر = 150 مم
  • لوحة أمامية من الأكريليك ، ساتان ، سمك = 3 مم ، قطر = 90 مم
  • أنبوب أكريليك ، شفاف ، قطر خارجي = 64 مم (يعني أنه يتعين علينا التعديل قليلاً باستخدام شريط LED)
  • قضيب أكريليك ، شفاف ، قطر = 5 مم (سيكون هذا هو عوارضنا) ؛ هناك أيضًا قضبان أكريليك حولها بها فقاعات بالداخل ، أوصي بها ولكني لا أجدها.
  • غراء الاكريليك

الإلكترونيات (راجع ملفات Fritzing):

  • Arduino mini (أو ما شابه)
  • 1 شريط LED قابل للعنونة (12 مصباح LED لساعة وخطوات 5 دقائق)
  • 4 مصابيح LED قابلة للتوجيه (دقيقة واحدة)
  • 2330 أوم مقاومات
  • 1 1000 درجة فهرنهايت مكثف
  • 1 امدادات الطاقة (5 فولت / 500 مللي أمبير)
  • RTC DS-1307 (اختياري!)
  • وحدة بلوتوث (اختيارية! نعم ، يمكنك ضبط الوقت عبر BT وهاتف ذكي يعمل بنظام Android)

إذا سألت نفسك لماذا لدي رقائق MAX485 في BoM الخاص بي. الإجابة هي أنني أريد مزامنة الساعة مع نظام التشغيل الآلي للمنزل الذي أنا على وشك صنعه (لن أضطر أبدًا إلى ضبط ساعة التوقيت الصيفي مرة أخرى:-P). سأصف ذلك في مدونتي في اليوم التالي أسبوعين / شهر.

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

الخطوة 2: تحضير أجزاء الأكريليك

تحضير أجزاء الاكريليك
تحضير أجزاء الاكريليك
تحضير أجزاء الاكريليك
تحضير أجزاء الاكريليك
تحضير أجزاء الاكريليك
تحضير أجزاء الاكريليك

الأدوات:

بادئ ذي بدء ، من المفيد حقًا أن تطبع خطة DWG التي أضفتها في المقياس 1: 1 ، سيساعدك هذا على محاذاة جميع الأجزاء وسيخدمك كخطة حفر.

  • hobbyknife
  • مقياس ميتري
  • منشارا
  • المشابك
  • ثاقب
  • يمكن الحفر ، قطرها 65 مم
  • مجموعة من المثاقب المعدنية
  • ملف معدني صغير
  • غراء الاكريليك

لنبدأ:

خذ اللوح الأرضي وقم بمحاذاة الخطة ، حتى تتمكن من الحصول على مركز الدائرة. الآن خذ مثقابك اليدوي مع مثقاب العلبة المثبت عليه وحفر ثقبًا (بطيئًا جدًا! ليس لضغط كبير!) في وسط اللوحة الأرضية ، يجب أن يكون عمق الدائرة الخارجية حوالي 2-3 مم. هذا لإغراق شريط LED في اللوحة الأرضية (شريط LED بعرض 10 مم ، قطر الحزم 5 مم فقط) ومواءمتها مع الحزم (راجع الصورة 1).

الآن نحن بحاجة إلى منشارا ومقياس ميتري وأنبوب أكريليك. فقط قم بتقطيعه إلى قطع قررت أن أجعل الغلاف (الأنبوب) بطول 40 مم (الصورة 2). الآن أمسك المنشار مرة أخرى وقم بعمل أرنب صغير على جانب واحد من الأنبوب ، واجعله سلسًا بالملف المعدني. هذا هو المكان الذي ستخرج فيه الأسلاك ؛-) (راجع الصورة 3)

حان الوقت لبعض الصمغ … خذ اللوح الأوسط (د = 150 مم) واللوح الأمامي (اللوح المشبع) ، قم بمحاذاةهما على الخطة مرة أخرى ، ضع بعض الغراء في وسط اللوحة الوسطى ، قم بمحاذاة اللوحة الأمامية وانتظر حتى يتم تقوية الغراء قليلاً. الغراء الذي استخدمته هو تصلب خفيف ويمكن أن يستغرق ما يصل إلى 2-3 ساعات ، لذلك تريد استخدام مشبك … (الصورة 3 و 4)

افعل نفس الشيء عند لصق الأنبوب على اللوح الأرضي ، وتأكد من أن الأرنب يواجه اللوحة ومحاذاة في مكان ما حيث تريد أن يكون أول مؤشر LED (الساعة 12).

انتظر حتى تصلب!

يمكننا الآن محاذاة الجزأين (المطابقين للكتب) على الخطة ، ثم حفر 4 ثقوب دقيقة واحدة لدينا (قطر 5 مم أو قطر الصمام الذي اخترته ؛ حفره ببطء مع عدم وجود ضغط كبير). حفر بعمق حوالي 8-9 ملم. كن حذرًا ، فاللوح المشبع هش للغاية ويمكنه الكبح إذا قمت بالثقب بعمق. يمكنك الآن لصقها معًا أو قررت ، مثلي قطع تهديد في اللوحة الأرضية وإرفاقها بمسمار.

مرة أخرى ، انتظر حتى يصلب الغراء ، والآن قم بمحاذاة الحزم وألصقها على اللوح الأرضي. (الصورة 6) خمن ماذا … انتظر حتى يصلب الغراء:-) دعنا ننتقل إلى الإلكترونيات …

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

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

الأدوات:

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

أنا مرتبك بمصابيح LED فردية. إذا كنت تستخدم سلكًا مطليًا بالمينا ، فلا تنسَ كشط الورنيش قبل اللحام. يمكنك استخدام سكين هواية لذلك ، قم بتوصيلهم ، يمكنك الرجوع إلى الصورة مع pinout على flikto.de. لاحظ أن DOUT ينتقل إلى DIN على مؤشر LED التالي! (انظر الصورة 2) بعد ذلك يمكنك قطع شريط LED إلى 4 عناصر لكل منها 3 مصابيح LED. تذكر ، لدينا شريط LED مقاس 63.6 مم وقطر خارجي 64 مم للأنبوب ، لذلك نحتاج إلى بعض "الطول الإضافي لمحاذاة الحزم بدقة. قم بتوصيله بسلك مطلي بالمينا كما في الصورة 4. لقد صنعت القليل من ثنائي الفينيل متعدد الكلور الأولي الذي سيخدم باعتباره "تسخير الطاقة" وسيحتوي على مكونات شرائط LED (المقاومتان 330 أوم ومكثف 1000 درجة فهرنهايت ، الصورة 7) راجع صورة فريتزينج لذلك.

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

يمكنك فعل الشيء نفسه بالنسبة لمصابيح LED الفردية (في النهاية عاكسة) ، ما عليك سوى إضافة بعض الغراء الساخن والضغط عليها في الثقوب المثقوبة مسبقًا.

لا تقم بتوصيل Arduino حتى الآن ، سنستخدم الجهاز التسلسلي لاتصال BT ، لذا تحقق أولاً من الخطوات التالية حيث أصف البرنامج.

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

الشفرة
الشفرة
الشفرة
الشفرة

يمكنك الآن تحميل الرسم التخطيطي على Arduino. أنت أيضًا قادر على توصيل شرائط LED الآن. لا تقم بتوصيل وحدة BT !!! نريد أولاً إلقاء نظرة على الكود ، يجب أن تعرف أين يمكنك تعديل عدة أشياء …

قم بتنزيل Arduino IDE والمكتبات. Arduino IDE ، AdafruitNeoPixel ، Time ، DS1307RTC

قم بتثبيت IDE ووضع المكتبات في مجلد Library- قم بفتح ملف INO المرفق وقم بتحميله على اردوينو الخاص بك. الكود الموصوف هنا هو نفسه ولكن مع تعليقات إضافية! إذا كنت قد فعلت كل شيء بشكل صحيح ، يمكنك الآن مشاهدة "bootanimation". من الممكن ضبط الوقت على جهاز العرض التسلسلي. فقط اكتب @ "hour" / "min" / "sec" على سبيل المثال. @ 10/33/00 (10:33).

لا تتردد في اللعب بالرمز … هنا سأقدم لك وصفًا موجزًا للكود (الإعداد بدون RTC!)

تعريفات:

#define PIN 6 // Hour LED Strip #define MINPIN 5 // Singelminute LED #define NUMPIXELS 12 // Number of Pixels for hour #define MINNUMPIXELS 4 // Number of Pixels for single minutes #define BAUDRATE 115200 // Baudrate، should be match معدل البث بالباود لوحدة BT #define utch '@' // start BYTE of TimeSync

عدد مرات int = 0 ؛ // علامة للتخزين إذا تم تعيين الوقت بعد bootint delayval = 20 ؛ // تأخير لتلاشي الرسوم المتحركة int clocktimer = 10000 ؛ // وقت التحديث int timebright = 250 ؛ // سطوع الساعة Strip int mtimebright = 50 ؛ // سطوع سينيلمينينت تهيئة = 0 ؛ // علم لاستدعاء وظيفة clearpixels بعد bootint ahour ؛ int oldahour = 0 ؛ // متجر prev. ساعة دقيقة إنت أولدامين = 0 ؛ // يخزن الدقيقة السابقة لتحديث ثانية ؛ int aday شهريا السنة الدولية int mmin؛ tmElements_t tm؛

// إعداد صفيفتي NeoPixel LED (الاسم = TYPE (عدد البيكسلات ، WHICH PIN ، FORMAT RGB أو GRB ، FREQ) ؛ راجع دليل Adafruit لمزيد من المعلومات. Adafruit_NeoPixel pixels = Adafruit_NeoPixel (NUMPIXELS، PIN، NEO_GRB + NEO_KHZ800) ؛ Adafruit_NeoPixel minpixels = Adafruit_NeoPixel (MINNUMPIXELS، MINPIN، NEO_RGB + NEO_KHZ800) ؛

اقامة:

الإعداد باطل() {

Serial.begin (BAUDRATE) ، Wire.begin () ؛ // Initialice the strips، all OFFpixels.begin ()؛ minpixels.begin () ، pixels.show () ، minpixels.show () ،

// اصنع القليل من AnimationSerial.println ("شروق الشمس") ؛ شروق الشمس()؛ تأخير (1000) ؛ Serial.println ("SUNSET") ؛ الغروب()؛ pixels.show () ، Serial.println ("جاهز") ؛ }

حلقة:

حلقة باطلة () {// تحقق من التزامن الزمني أثناء (Serial.available ()> 0) {char c = Serial.read () ؛ if (c == utch) // إذا كان هناك @ على السطر ، فاقرأ البايتات / ints القادمة {readtime () ؛ }} // initialice the LEDs ، مسح الرسوم المتحركة للتمهيد

إذا (تهيئة == 0) {clearpixels () ؛ تهيئة = 1 ؛ }

ahour = ساعة () ؛

دقيقة = دقيقة () ؛ إذا (timeset == 1 || timeset == 0) // هنا يمكنك التحقق مما إذا كان الوقت قد تم ضبطه ، يمكنك إيقاف البرنامج هنا إذا كانت Timeset = FALSE ، فقط قم بإزالة "|| timeset == 0"!

{

إذا كان (oldamin <aminute || oldahour ضبط الكل على OFF ، اعرض الوقت الجديد {clearpixels () ؛ ClockDisplay () ؛}}}

عرض الساعة:

ClockDisplay باطل () {

oldahour = ahour ؛

أولدامين = أمين. int xhour ، xmin ؛

إذا (ahour> = 12) {xhour = ahour-12 ؛ // لدينا فقط 12 مصباح LED لشاشة 24 ساعة} else {xhour = ahour؛ } // مقياسها إلى 5 دقائق من الخطوات xmin = (aminute / 5) ؛ إذا (أولدامين <أمينوت) {أولامين = أمينوت ؛ clearpixels () ؛ } // خذ باقي القسمة على المصباح الأحادي المنفرد mmin = (دقيقة٪ 5) ؛ // عامل modulo على سبيل المثال. 24٪ 5 = 4! مفيد جدا: -Ppixels.setBrightness (timebright) ؛ pixels.setPixelColor (xmin ، pixels. Color (5 ، 125 ، 255)) ؛ // يمكنك تغيير الألوان هنا! اللعب حول! pixels.setPixelColor (xhour ، pixels. Color (255 ، 50 ، 0)) ؛ pixels.show () ،

// عرض المفرد minsfor (int m = 0 ؛ m

minpixels.setBrightness (mtimebright) ؛ minpixels.setPixelColor (m ، pixels. Color (255 ، 255 ، 0)) ؛ minpixels.show () ، }} قراءة معلومات TIME من Serial ومعالجتها

void readtime () // إذا كان لدينا بالفعل "@" الرائد في معالجة البيانات القادمة وتخزين الوقت لـ TIME Lib {

ahour = Serial.parseInt () ، أمين = Serial.parseInt () ، asecond = Serial.parseInt () ، aday = Serial.parseInt () ، amonth = Serial.parseInt () ، سنة = Serial.parseInt () ، Serial.println ("TIMESET") ؛ Serial.print (ahour) ؛ Serial.print (":") ؛ Serial.println (دقيقة) ؛ setTime (ahour، aminute، asecond، aday، amonth، ayear) ؛ }

امسح الكل

void clearpixels () // اضبط كل PIXEL على إيقاف لتحديث العرض {

pixels.begin () ، minpixels.begin () ، لـ (int i = 0؛ ipixels.setPixelColor (i، pixels. Color (0، 0، 0))؛ minpixels.setPixelColor (i، pixels. Color (0، 0، 0))؛ pixels.show ()؛ minpixels.مشاهده()؛ } }

الخطوة 5: تطبيق Android و BT Connection

تطبيق Android واتصال BT
تطبيق Android واتصال BT
تطبيق Android واتصال BT
تطبيق Android واتصال BT
تطبيق Android واتصال BT
تطبيق Android واتصال BT

إذا نجحت في الخطوات السابقة ، فيمكنك الآن توصيل وحدة BT الخاصة بك. (آمل أن تكون قد تأكدت من تطابق البودرات). لا تنس عبور خطوط TX و RX:-)

قم بتنزيل التطبيق وتثبيته ، وإقرانه مع دونجل BT الخاص بك ، وابدأ تشغيل التطبيق ، واتصل بالدونجل ، وقم بمزامنة الوقت مع هاتفك المحمول. يقوم APP بشكل أساسي بنفس الشيء كما فعلنا من قبل. إنه يرسل فقط @ hh / mm / ss / dd / mm / YYYY الذي تم إنشاؤه من وقت النظام الخاص به ، كما قدمت ملف APPInventor AIA وشرحًا للخطوة التالية (لأولئك المهتمين).

الخطوة 6: APPInventor

APP المخترع
APP المخترع
APP المخترع
APP المخترع

APP Inventor سهل الاستخدام ويستحق الجهد المبذول لمثل هذا البرنامج البسيط.

إذا قمت بإنشاء مشروع جديد ، فستجد نفسك في شاشة المصمم. (الصورة 1) هذا هو المكان الذي نضيف فيه الجداول والأزرار وأجهزة الاستشعار والعناصر الأخرى لمزيد من الاستخدام ، وفي حالتنا نحتاج إلى:

  • جدول (لتجميع كل العناصر)
  • منتقي القوائم (لاختيار جهاز BT الذي نتصل به)
  • زر (لإطلاق TIME عبر BT)
  • بعض الملصقات (عرض الوقت والتاريخ الفعليين)
  • مستشعر الساعة (تحديث الوقت)
  • مستشعر عميل البلوتوث (اتصال)

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

إذا ألقيت نظرة فاحصة على الكتلة التالية ، يمكنك أن ترى ، الذي أنشأناه ، إذا كانت حالة BT "متصلة" ، فإن رسالة BT. إنه نفس الشيء الذي كتبناه في SerialMonitor من قبل. ستوفر لنا الكتلة الأخيرة الموجودة على اليسار الأصفار البادئة لعرض الوقت (على سبيل المثال. 01:08). على الجانب الأيمن ، يمكنك العثور على الكتلة الأخيرة ، حيث نستخدم عنصر الساعة ، وهنا نقوم بتحديث المتغيرات ودمجها مع إجراء الأرقام ، وهذا سيحدث كل 1000 مللي ثانية (الإعداد الافتراضي ، قم بتغييره في وضع المصمم) وعرض القيم المحدثة مع التسمية. هذا مجرد وصف موجز ، ولكن APPInventor حقًا بهذه السهولة:-) ربما هناك شخص ما في المجتمع يريد كتابة برنامج لنظام iOS أو WindowsPhone. (سيكون رائعا)

أتمنى أن تكون قد أحببت Instructable الخاص بي! استمتع بساعة الحائط الجديدة! ربما ترغب في إهدائها لشخص تحبه (موسم X-Mas):-)

وإذا كانت لديك أي أسئلة ، فلا تتردد في طرحها!

مع أطيب التحيات و Merry X-Mas.

موصى به: