العودة إلى ساعة المستقبل: 8 خطوات (بالصور)
العودة إلى ساعة المستقبل: 8 خطوات (بالصور)
Anonim
العودة إلى ساعة المستقبل
العودة إلى ساعة المستقبل

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

الخطوة 1: الخلفية

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

كان الإصدار الأول يعمل جيدًا (لم يكن جاهزًا لعيد ميلاده: لقد أنجزته بحلول عيد الميلاد) ولكني كنت طموحًا للغاية فيما أردت أن أفعله ووجدت أن رسومي ظل يعمل في حدود ذاكرة Arduino. كان لدي أيضًا العديد من وحدات الأجهزة الخارجية الصغيرة (WiFi ، ومشغل MP3 ، ومكبر الصوت ، و RTC ، وما إلى ذلك) ، لذلك كان كل شيء صعبًا بعض الشيء. في النهاية ، قررت الانتقال إلى منصة Raspberry Pi التي بسّطت الأجهزة وسمحت لي بتضمين المزيد من الوظائف والميزات.

الخطوة 2: مكونات الأجهزة الرئيسية

داخل الصندوق

فيما يلي المكونات الإلكترونية التي استخدمتها. كان معظمهم من مصادر Core Electronics في أستراليا ، لكنهم بالطبع متاحون بسهولة في أماكن أخرى أيضًا:

  • 4 × شاشة أبجدية رقمية رباعية - أصفر - أخضر
  • Raspberry Pi Zero W
  • Pimoroni pHAT DAC لـ Raspberry Pi Zero
  • مضخم الصوت (PAM8403 IC)
  • مصدر طاقة Raspberry Pi 3+
  • 4 × سلك توصيل - 0.1 بوصة ، 5 سنون ، 12 بوصة
  • 40 دبوس (2 × 20) كابل الشريط
  • رأس Raspberry Pi GPIO ذكر
  • Raspberry Pi موديل B - رأس GPIO مغطى (2X20)
  • رأس تجميع GPIO لـ Pi A + / B + / PI 2 / PI 3 - طويل جدًا 2X20
  • رأس ذكر 4 × 5 دبوس
  • 2 مكبرات صوت صغيرة 3 واط
  • عدد 2 من الكابلات المحورية لتوصيل الصوت التناظري DAC إلى Amp
  • Veraboard أو PCB مخصص للتعامل مع Rpi لأزرار أمبير ، LED
  • 5 × مفاتيح ضغط لحظية
  • 4 كتل طرفية لولبية ثنائية الاتجاه قابلة للتركيب على ثنائي الفينيل متعدد الكلور

الصندوق

  • قطع وقطع من MDF ومسامير ومسامير لصنع `` الهيكل ''
  • البرسبيكس الأخضر ، المورد المحلي
  • ستيرين ، صمغ نمذجة ، رذاذ الطلاء (لون الألومنيوم) من متجر هوايات محلي
  • ملصقات (الملف متاح عند الطلب - طبع بواسطة Redbubble)

الخطوة 3: وضع كل ذلك معًا

ضع كل شيء معا
ضع كل شيء معا

تتكون شاشة LED للساعة من شاشات أبجدية رقمية من 16 × 14 مقطعًا ، لحسن الحظ نفس عدد الأحرف مثل دارة العودة إلى المستقبل. في حين أن الأحرف الثلاثة الأولى فقط يجب أن تكون أبجدية رقمية والباقي يمكن أن تكون شاشات رقمية مكونة من 7 مقاطع لمحاكاة دعامة الفيلم ، فقد قررت أن أجعلها كلها أبجدية رقمية للسماح ببعض المرونة في ما يمكن عرضه ولإبقائهم جميعًا يبحثون عن نفس. تعد حقائب الظهر الرباعية Adafruit حلاً رائعًا هنا ويمكن تشغيلها على حافلة Raspberry Pi I2C. يمكن العثور على مزيد من المعلومات حول هذه الوحدات وكيفية توصيلها هنا على موقع Adafruit. الشيء الوحيد غير القياسي الذي كان علي فعله هو تغيير عناوين ثلاثة منهم بحيث تكون كل حقيبة ظهر فريدة من نوعها.

لتشغيل الصوت (في الاستريو) ، قمت بتضمين Pimoroni pHAT DAC ومكبر صوت استريو 2 × 3 واط يعتمد على شريحة PAM8403. من السهل حقًا توصيل pHAT DAC بـ Pi. لقد وضعت رأسًا ذكرًا بحجم 2 × 20 دبوسًا على Pi ورأس تجميع GPIO على DAC حتى يمكن توصيلهما معًا فوق الآخر. تمر دبابيس الرأس الذكرية من خلال الجزء العلوي من DAC ، مما يسمح لي بتشغيل كبل الشريط مع موصلات أنثوية ، في البداية إلى كسر Raspberry Pi لاختبار اللوح ولكن في النهاية إلى رأس مغلف على PCB مصنوع خصيصًا.

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

تتضمن التوصيلات الأخرى الصوت التناظري من DAC إلى مكبر الصوت (لقد استخدمت كبلًا متحد المحور هنا للمساعدة في إدارة التقاط الضوضاء) وإخراج الصوت إلى زوج من مكبرات الصوت الصغيرة 3 وات التي تتلاءم مع العلبة. توجد أيضًا وصلات GPIO للمفاتيح اللحظية الأربعة الموجودة أعلى الصندوق وقمت بتوصيل زر مؤقت إلى دبابيس "RUN" لإعادة الضبط الثابت (انظر قسم التوصيلات الإضافية في هذه الصفحة). تم تثبيت زر إعادة الضبط بعيدًا عن الأنظار في الجزء الخلفي من العلبة. فيما يلي رسم تخطيطي يوضح الروابط:

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

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

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

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

الخطوة 5: الضميمة

الضميمة
الضميمة
الضميمة
الضميمة
الضميمة
الضميمة

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

الصور أعلاه تظهر:

  1. الجزء الأمامي من هيكل MDF. حقائب الظهر الأربعة LED مثبتة في المقدمة مع البرسبيكس الأخضر
  2. داخل الصندوق. جميع حقائب الظهر مثبتة ومصطفة ، Raspberry Pi ومكبرات صوت PCB في كلا الجانبين.
  3. تم تركيب الأسلاك والقشرة الخارجية جاهزة للاستمرار. لقد كان قليلا من الضغط!

الخطوة 6: إعداد Raspberry Pi

واجهت بعض مشكلات التوافق مع Raspbian Stretch (والتي قد تكون قابلة للحل إذا كنت أصر على ذلك) ولكن Jessie تعمل معها بشكل جيد ، لذلك قررت أن أذهب مع ذلك.

قمت بإعداد Pi كوحدة بدون رأس مع وصول VNC و SSH. كان من الممكن أن يتم ذلك دون توصيل لوحة مفاتيح أو شاشة ، لكنني استعرت للتو التلفزيون وفحصت لوحة المفاتيح ، وجعلتها مقطوعة الرأس بسرعة كبيرة. منذ ذلك الحين ، استخدمت VNC إلى حد كبير منذ ذلك الحين.

يستخدم رمز ساعتي Python 2.7.9 ويعتمد على عدد غير قليل من المكتبات المدرجة أدناه. بالإضافة إلى ذلك ، أقوم بتشغيل خادم الويب Flask و MQTT للتحكم عن بعد و Shairplay لتدفق الموسيقى. لقد اتبعت للتو ملاحظات التثبيت عبر الإنترنت لكل هذه ولم يكن لدي أي مشاكل على الإطلاق. فيما يلي مكتبات python والحزم الأخرى وما إلى ذلك ، احتجت إلى تثبيتها مع روابط لملاحظات التثبيت أو الأمر الذي تحتاجه لتشغيله للحصول عليه:

مكتبات بايثون

  • Adafruit_LED_Backpack
  • Rpi. GPIO (apt-get install python-rpi.gpio)
  • السعود
  • paho.mqtt.client (تثبيت نقطة paho-mqtt)
  • قارورة (apt-get install python-flask)

حزم أخرى وما إلى ذلك

  • البعوض (apt-get install mosquito)
  • شيربورت
  • يحتوي موقع Pimoroni على الويب على بعض الوثائق الجيدة حول إعداد DAC ، لذلك قمت بإجراء ذلك.

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

Image
Image
برمجة
برمجة

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

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

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

تطبيق الويب

تُظهر الصورة التالية كيف تبدو واجهة الويب على مدار الساعة. هناك أيضًا صفحات تكوين وضبط وهذه تجعل من السهل جدًا اللعب بالساعة دون الكثير من الضغط على الأزرار:-).

الخطوة الثامنة: ماذا بعد؟

ماذا بعد؟
ماذا بعد؟

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