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

ساعة الموقع "ويزلي" بأربعة عقارب: 11 خطوة (بالصور)
ساعة الموقع "ويزلي" بأربعة عقارب: 11 خطوة (بالصور)

فيديو: ساعة الموقع "ويزلي" بأربعة عقارب: 11 خطوة (بالصور)

فيديو: ساعة الموقع
فيديو: هاري بوتر: مشاهد محذوفه كانت هتغير كل حاجه عن سلسله الفيلم | Harry Potter 2024, يوليو
Anonim
ساعة الموقع "ويزلي" بأربعة عقارب
ساعة الموقع "ويزلي" بأربعة عقارب

لذلك ، مع Raspberry Pi الذي كان يعمل لفترة من الوقت ، أردت أن أجد مشروعًا لطيفًا يسمح لي بالاستفادة منه على أفضل وجه. جئت عبر هذه الساعة الرائعة Instructable Build Your Own Weasley Location Clock بواسطة ppeters0502 واعتقدت أنه سيكون من الجيد المحاولة.

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

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

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

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

في النهاية ، سأدرج قسمًا عن "الأشياء التي كنت سأفعلها بشكل مختلف / أفضل إذا كنت أفعلها مرة أخرى …"

اللوازم:

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

بي إلخ

  1. Raspberry Pi - لا أتذكر التكلفة الأصلية ولكنها كانت طراز 2B. أعتقد أنه إذا لم يكن لديك واحدة بالفعل ، فمن المحتمل أن تفعل حتى Pi Zero. لقد أضفت دونجل wifi وبطاقة SD مع Raspbian. وكان لدي شاحن هاتف Android قديم ملقى.
  2. Adafruit Servohat لـ Pi - 16 جنيهًا إسترلينيًا
  3. مزود الطاقة لـ Servohat - لقد ناضلت حقًا للعثور عليه حيث أشارت جميع مواقع الويب للتو إلى موقع adafruit الذي يوصي بعد ذلك بمصدر طاقة أمريكي. ثم أدركت أن لدي مصدر جهد متغير قديم مع أطراف قابلة للتبديل ، لذلك استخدمت ذلك. لكن الدولار الأمريكي هو 8 دولارات ، لذا فهذه هي الملعب.
  4. حالة لـ Pi ، حتى أتمكن بعد ذلك من إرفاقها بإطار الساعة. 5 جنيهات إسترلينية

المؤازرة والتروس

أقتبس هنا سعر كل 4 ، لذا قسّمه إذا كنت تريد عددًا أقل من الأيدي (إضافته إلى 40 جنيهًا إسترلينيًا لكل يد = 160 جنيهًا إسترلينيًا: -o

  1. 4 x Servos - لقد استخدمت تلك التي أوصى بها ppeters0502 - الموجودة على موقع ebay مقابل 15 جنيهًا إسترلينيًا لكل منها = 60 جنيهًا إسترلينيًا - لقد بحثت عن النص التالي "GWS-Digital-Servo-Sail-Winch-S125-1T-2BB-360-degree "لكن في بعض الأحيان لم يكونوا متوفرين
  2. 4 × أنابيب نحاسية مثبتة تمامًا داخل بعضها البعض - حوالي 3 جنيهات إسترلينية لكل منها. حصلت على 1 لكل من 1/4 "، 7/32" ، 3/16 "، 5/32" = 11 جنيهًا إسترلينيًا
  3. 4 × مشابك مثبتة على الأنابيب النحاسية للسماح لك بإرفاق التروس. ~ 7 جنيهات إسترلينية لكل منها = 28 جنيهاً إسترلينياً. لقد حصلت عليها من ActiveRobots الذين يقومون بطلبات منتظمة من Servocity في الولايات المتحدة ، مما يسمح لك بتجنب الشحن الدولي. يمكنهم أيضًا الحصول على أي شيء آخر يمكنك العثور عليه على موقع Servocity الرئيسي في الولايات المتحدة. كان هذا مفيدًا جدًا للعنصرين التاليين
  4. 4 تروس نمطية أسيتيل 0.770 بوصة للتركيب على محاور التثبيت. ~ 6 جنيهات إسترلينية لكل منها = 24 جنيهًا إسترلينيًا
  5. 4 تروس أسيتيل مثبتة على الأسيتيل للتركيب على الماكينات. ~ 6.50 جنيهًا إسترلينيًا لكل منهما = 26 جنيهًا إسترلينيًا
  6. 1 × حزمة من المكسرات السداسية للتروس المرفقة بصواميل التثبيت = 2.60 جنيه إسترليني
  7. 1 × 7/64 "مفتاح ست عشري (مفتاح ألين) لأن أي شيء قادم من الولايات المتحدة هو إمبراطوري ، لذا فإن مئات مفاتيح ألين التي أمتلكها بالفعل عديمة الفائدة = 1 جنيه إسترليني

للبناء المادي

هنا كنت في الغالب أستخدم أجزاء من الأشياء التي كنت أكذب بشأنها

  1. 2 × مربعات من الخشب الرقائقي للوحة "الوجه" و "الخلفية"
  2. ثم قطعت أسطوانات مقاس 4x10 سم من سكة الدرابزين القديمة التي كنت أمتلكها ، من أجل توصيل الجزء الخلفي بالوجه
  3. بعض الكتل لتركيب الماكينات في الإزاحة الصحيحة - فقط قطع الخشب اللين التي قمت بقصها بالحجم.
  4. مسامير متنوعة. من صغير جدًا (لإرفاق Pi Case بالإطار) إلى متوسط (لإرفاق الإطار معًا)
  5. لوح من الفولاذ الطري 0.75 مم حوالي 50 سم × 20 سم (لقطع اليدين). كان هذا هو الشيء الوحيد الذي اشتريته ~ 9 جنيهات إسترلينية من ويكس

أدوات

بعض الأشياء التي أمتلكها والبعض الآخر اقترضتها أو اشتريتها

  1. لحام الحديد + لحام كهربائي - لربط الموصلات بـ Adafruit Hat & Pi.
  2. بانوراما - لقطع شكل اليدين الخام
  3. تدريبات. مجرد مثقاب لاسلكي عادي 18 فولت
  4. لقم الثقب - ضع في اعتبارك أنك ستحتاج لقم الثقب الإمبراطوري لعمل ثقوب تتناسب مع الأنابيب النحاسية. تمكنت من استعارة البعض.
  5. منشارا - لقطع الأنابيب النحاسية. لا تفعل ما فعلته وأنفق 3 جنيهات إسترلينية على قاطع الأنبوب ، فهو يعمل بالضغط ويعني أن الجزء الداخلي من الأنابيب يصبح أصغر قليلاً. لذا فإن الأنبوب ذي الحجم التالي لأسفل لا يصلح بعد ذلك
  6. طاحونة مقاعد البدلاء - لم يكن لدي واحدة من هؤلاء ولكن كان صديقًا لي ، وقد جعل تشكيل اليدين أسهل كثيرًا. حتى ذلك الحين كنت أستخدم الملفات فقط. لن أشتري واحدة لهذا المشروع فقط ، لكن بالنسبة للأيدي المعدنية كان الأمر رائعًا.
  7. اشتريت بعض ملفات نقاط الماس المتنوعة (صغيرة جدًا). مفيد لليدين والأنابيب بحوالي 15 جنيهًا إسترلينيًا
  8. ورق صنفرة خشن وسلس
  9. بعض المشابك الصغيرة تثبت الأشياء في مكانها عند الحفر.
  10. نائب لنفس السبب.

الخطوة 1: إعداد الهواتف الخاصة بك لإرسال موقعها إلى Pi (الجزء الأول MQTT Broker)

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

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

  1. ادفع 5 دولارات شهريًا مقابل Cloud MQTT (ولكن هذا يبدو باهظًا للساعة بشكل مستمر).
  2. اذهب إلى Mosquitto على طريق Pi كما هو موضح في Instructable الأول. لا يمكنني التعليق على ذلك ، ولكن يمكن أن يكون خيارًا جيدًا.
  3. مجرد جوجل "وسيط سحابة MQTT مجاني" ويبدو أن هناك البعض الآخر.

لذلك ، على افتراض أن لديك وسيط MQTT عامل ، إذا كان أي شيء مثل CloudMQTT ، فسيكون هناك خادم ومستخدم وكلمة مرور ومنفذ معروضين. ستحتاج إلى كل هذه لإعداد هواتفك لإرسال الوسيط مواقعك / تحركاتك.

الخطوة 2: إعداد الهواتف الخاصة بك لإرسال موقعها إلى Pi (الجزء الثاني Owntracks)

تمت تغطية هذا جيدًا أيضًا في Instructable الأصلي ، في الخطوات 7 (Android) و 8 (iOS) و 9 (إعداد المناطق).

لم يكن لدي سوى أجهزة iOS لذا لم أحاول الخطوة 7.

ماذا سأضيف إلى هذه التعليمات؟

  1. في الإعداد هناك أيضًا الحقلين TrackerID و DeviceID. يجب أن تكون قادرًا على التعرف عليك داخل عائلتك. على سبيل المثال كنت أمتلكهم كـ R و RPhone على التوالي. هذا يعني أنه يمكنك المرور إلى الساعة التي تعمل بها المؤازرة وبالتالي إلى أي يد تدور.
  2. المناطق هي اسم المواقع التي تريد تتبعها.
  3. يتم تحديد كل منطقة من خلال الاسم وخط العرض وخط الطول ونصف القطر.
  4. نظرًا لأنني كنت أرغب في الحصول على عدد من المواقع كقسم واحد على ساعتي ، فقد استخدمت اصطلاح تسمية ، والذي اتضح أنه مفيد للغاية. طرق أخرى ممكنة ولكن هذا العمل بالنسبة لي.

    • على سبيل المثال ، بالنسبة لقسم العائلة على مدار الساعة ، كنت أرغب في الحصول على والدي وإخوتي ووالدي زوجتي وإخوتي. لذلك كان لدي مواقع مثل "Family Tom" و "Family Dick" و Family Harry "و" Family ParentsR ". وهذا يعني أن المرحلة التالية يمكن أن تعرف ما الذي يجب نقله إلى الساعة.
    • ضع في اعتبارك أنه يمكن أن يكون للأشخاص مواقع مختلفة. ولكن طالما أنها تتوافق مع اصطلاح التسمية ، فلا بأس بذلك. على سبيل المثال سيكون عملي مختلفًا عن منطقة عمل زوجتي ويسمى بشكل مختلف. ولكن طالما أن كلاهما يبدأ "العمل" فكل شيء على ما يرام.
  5. تريد ضبط الوضع على "هام" على شاشة الخرائط. هذا يعني أنك (في الغالب) لا تتلقى رسائل إلا عند دخولك أو مغادرتك للمناطق. يبدو أن هذا هو الإصدار المحدث من الملاحظة المميزة بـ IMPORTANT: في نهاية الخطوة 8 في Instructable الأصلي.
  6. كما هو مذكور في Instructable الأصلي ، يعد استخدام خرائط Google طريقة رائعة لاكتشاف خطوط الطول / العرض في مكان ما. لقد وجدت أنه من الأكثر فاعلية القيام بذلك بكميات كبيرة ، واكتشفت كل خطوط الطول / الطول في موقعي ، ثم قمت بلصقها في الملاحظات (على جهاز Mac الخاص بي) ومع المزامنة السحابية ، فهذا يعني أنها ظهرت بطريقة سحرية على جهاز iPhone الخاص بي في Notes ويمكنني نسخها / لصقها في Owntracks. هذا يعني أيضًا أنه يمكنني إرسال الملف إلى هواتف عائلتي ولدينا جميعًا مواقع ثابتة.
  7. يمكن أن تتسبب المواقع القريبة من بعضها في حدوث مشكلات. يعيش شقيقي على بعد شارعين ، وفي البداية ظل هاتفي يفكر في أنني كنت في نفس الوقت في منطقة منزله وكذلك في المنزل. في النهاية ، اضطررت إلى وضع منطق إضافي في Node Red للقبض على هذا الحدوث وتجاهله.

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

إعداد Raspberry Pi
إعداد Raspberry Pi

لذا ، أفترض أن لديك قاعدة Pi على شبكة wifi. كنت أدير Raspbian لكن لا يجب أن يكون الأمر مهمًا. استخدم التعليمات الموجودة على موقع raspberrypi.org لإعدادها بالكامل.

لاحظ أن Pi لديها منافذ للعرض على الشاشة ولوحة المفاتيح / الماوس وما إلى ذلك ، ولكن من الواضح أنه بمجرد أن يكون لديك في الساعة ، فأنت لا تريد أيًا من ذلك. لذا فإن الإجابة التي اقترحها شخص ما على موقع Raspberry pi ، على ما أعتقد ، كانت إعداد اتصال VNC. يتيح لك هذا الاتصال من جهاز آخر بـ Pi والتحكم فيه أيضًا. أفعل ذلك من جهاز Mac الخاص بي ولكنني قمت بذلك أيضًا من جهاز iPad. أقترح استخدام شيء ما مع لوحة المفاتيح لسهولة الاستخدام.

لقد اكتشفت للتو أنهم جعلوا الأمر أسهل منذ أن قمت بالاتصال … انظر هنا

بشكل أساسي ، تقوم بالاتصال وتحصل على نافذة هي واجهة Pi القياسية.

لذلك ، لديك نافذة على Pi الخاص بك من الكمبيوتر المحمول أو الكمبيوتر.

أنت الآن بحاجة إلى توصيل الماكينات.

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

بينما يمكن للقبعة تشغيل 16 مؤازرة ، كنت بحاجة إلى 4 فقط ولذا فقد أزعجت فقط لحام المجموعة الأولى المكونة من 4 دبابيس.

ثم تضغط الماكينات على المسامير. لقد فعلت ذلك أولاً للتحقق من أنني أستطيع بالفعل تحريك المؤازرة.

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

:-(لذلك ، هناك تأخير طفيف عندما اشتريت واحدة جديدة ، وأعدت لحامها وتصحيحها. أفضل بكثير.

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

الخطوة 4: تثبيت Node Red (الحصول على الرسائل من خادم MQTT إلى برنامج Python النصي)

تثبيت Node Red (إحضار الرسائل من خادم MQTT إلى برنامج Python النصي)
تثبيت Node Red (إحضار الرسائل من خادم MQTT إلى برنامج Python النصي)
تثبيت Node Red (إحضار الرسائل من خادم MQTT إلى برنامج Python النصي)
تثبيت Node Red (إحضار الرسائل من خادم MQTT إلى برنامج Python النصي)
تثبيت Node Red (إحضار الرسائل من خادم MQTT إلى برنامج Python النصي)
تثبيت Node Red (إحضار الرسائل من خادم MQTT إلى برنامج Python النصي)
تثبيت Node Red (إحضار الرسائل من خادم MQTT إلى برنامج Python النصي)
تثبيت Node Red (إحضار الرسائل من خادم MQTT إلى برنامج Python النصي)

Node-RED هو برنامج تقوم بتثبيته على Pi ، والذي يمنحك واجهة مرئية (على متصفحك) لتلقي الرسائل من خادم MQTT الخاص بك واستخدامها لتمرير المعلومات الصحيحة إلى نص Python الخاص بك (تمت تغطيته في الخطوة التالية (الخطوة 5). لقد استخدمت تعليمات ppeters0502 إلى حد كبير في الخطوة 5. يوجد منطق في هذه التدفقات ومنطق إضافي في الثعبان ، ويمكنك الحصول على أكثر أو أقل في كل منها ، اعتمادًا على ما تفضله. الأتى

  1. احصل على عقد استقبال لرسائل MQTT - وهي أرجوانية فاتحة وكان لدي 1 لكل فرد من أفراد الأسرة
  2. قم بتعيين ذلك إلى المؤازرة التي ترغب في نقلها (مرقمة 0 ، 1 ، 2 ، 3)
  3. حدد ما إذا كنت تدخل أو تغادر دائرة نصف قطرها على OwnTracks
  4. حدد الموقع الذي يجب أن تشير إليه المؤازرة

    كانت هناك بعض الاستثناءات للقواعد الأساسية التي كنت بحاجة إلى البناء فيها

  5. اضبط الزاوية بشكل صحيح

لقد قمت بعمل Node-RED لأول 4 ، وأبقيت Python بسيطة نسبيًا.

يمكنك رؤية التدفق الأساسي هنا ، ويمكن تصدير جميع التدفقات إلى التنسيق هنا ، مما يعني أنه يمكنك استيراد هذا التدفق الأساسي إلى Node-RED الخاص بك ثم التكيف معه. لاحظ أنني قمت بتجريد جميع الاتصالات من العقد الأرجواني بحيث لا يمكنك الوصول إلى مثيل MQTT الخاص بي. لقد قمت أيضًا بتجريد جميع عقد الاختبار لأنها تحتوي على بيانات فعلية … قد تحتاج إلى تغيير نوع الملف هذا ليكون flow.json من أجل الاستيراد إلى Node-RED الخاص بك ولكن Instructables لم تسمح لي بتحميل ذلك.

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

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

عقد الاختبار

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

يمكنك أن ترى في التدفق أن حالات الاختبار تدخل جميعها في عقدة منفصلة ثم ينتقل ذلك إلى عقدة json. هذا فقط لترتيب الشاشة.

لا يمكنني التأكيد بما فيه الكفاية على مدى فائدة هذه العقد وما زالت كذلك.

استدعاء بايثون

لذلك أصبت بعد ذلك بالحاجز التالي. استغرق هذا الأمر الكثير من البحث على Google في المنتديات وما إلى ذلك ، سيعمل التدفق الخاص بي بشكل مثالي ، لكنه لن يؤدي إلى تشغيل نصي بيثون. لم أتمكن من حل هذا الأمر ، لكنني سأوفر لك الشتائم وما إلى ذلك. فقط لأقول أنه ، كما هو موضح في لقطة الشاشة الثانية ، يجب عليك تحديد python3 ، كما يبدو أن Node-RED تفترض python2 ، ما لم تحدد ذلك.

2 مضاعفات إضافية - فقط إذا لزم الأمر

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

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

آخر لقطة شاشة هي واحدة من تدفقاتي النهائية الفعلية ، مع كل الاستثناءات ، فقط من أجل مصلحتك.

الخطوة 5: نقل الماكينات فعليًا باستخدام Python على Pi

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

  1. استيراد بعض المكتبات
  2. نقل المتغيرات القادمة من Node-RED إلى المتغيرات في البرنامج النصي
  3. تعيين الزوايا التي يحددها برنامج المعايرة النصي إلى المواقع على مدار الساعة.
  4. تحقق من وجود الموقع في القائمة ، وإذا لم يكن الأمر كذلك ، فانتقل إلى "خطر"
  5. اكتب ما تم عمله في ملف السجل
  6. حرك المؤازرة المطلوبة إلى الزاوية المطلوبة
  7. منع مؤازرة واحدة من `` الأز '' *

3 أشياء يجب ملاحظتها.

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

2020-12-07_05: 36: 03 من = 0 ، loc = السفر ، التفاصيل = المنزل ، الزاوية = 10 ، الفهرس = 8

2020-12-07_05: 36: 04 Who = 0، loc = Dog، التفاصيل = Astons، Angle = 86.5، index = 10

2020-12-07_06: 07: 49 Who = 0، loc = Home، التفاصيل = إدخال، الزاوية = 75، الفهرس = 0

2020-12-07_06: 23: 53 مَن = 2 ، مكان = السفر ، التفاصيل = المنزل ، الزاوية = 19 ، الفهرس = 8

2020-12-07_06: 30: 48 Who = 2 ، loc = School ، التفاصيل = N ، الزاوية = 60.5 ، الفهرس = 2

الأزيز المؤازر

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

المواعيد

ضع في اعتبارك مدى انخفاض توزيع الورق على مدار الساعة. يمكنك أن ترى في البرنامج النصي أن هناك سطر time.sleep (4) قبل أن نضبط المؤازرة على إيقاف الطنين. هذا لأنه يجب عليك السماح لليد بالوصول إلى وجهتها قبل أن تضبطها على وضع الخمول. وإلا فإنه يتوقف فقط. هذا مهم أيضًا عند معايرته ، لأنك تقوم بحركات متعددة داخل البرنامج النصي. أود أن أجعلها تعمل للانتقال إلى جميع المواقع الـ 12 بدورها ، حتى أتمكن من إعادة فحصها جميعًا. لكنك تحتاج إلى القليل من الوقت بينهما.

الخطوة 6: إنهاء البرنامج - الهواتف إلى الماكينات

بمجرد حصولك على مقعد الاختبار وإعداد البرامج النصية ، يمكنك تشغيلها "مباشرة" قليلاً ومعرفة كيفية عملها في الوقت الفعلي. هذا هو المكان الذي وجدت فيه الاستثناءات التي كنت بحاجة لإضافتها إلى تدفق Node-RED الخاص بي.

يمكنك بسهولة فصل وتوصيل أفراد الأسرة في تدفق Node-RED إذا كنت تريد التركيز على واحد. على سبيل المثال ، إذا تسببت اثنتان في حدوث مشكلات ولكنك تريد إصلاح واحدة تلو الأخرى. بخلاف ذلك ، ضع في اعتبارك أنك ستستمر في تلقي الرسائل من أي هواتف متصلة.

لقد ذكرت مشكلة تمشية الكلاب وقرب منزل أخي تمامًا. كان لدي تحديين آخرين.

أولاً ، المواقع داخل مواقع أخرى. كانت زوجتي تحضر دورة دراسية في كلية في لندن. أردنا تسجيلها كـ "مدرسة" ، لكنها موجودة أيضًا في "لندن". لذلك احتجنا إلى إعادة استخدام السياق لنقول أنه إذا كنت تغادر تلك "المدرسة" ، فانتقل إلى "لندن" وليس "السفر".

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

الخطوة 7: بناء الساعة المادية - الجزء الأول - الماكينات والمحور

بناء الساعة المادية - الجزء الأول - الماكينات والمحور
بناء الساعة المادية - الجزء الأول - الماكينات والمحور
بناء الساعة المادية - الجزء الأول - الماكينات والمحور
بناء الساعة المادية - الجزء الأول - الماكينات والمحور
بناء الساعة المادية - الجزء الأول - الماكينات والمحور
بناء الساعة المادية - الجزء الأول - الماكينات والمحور

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

  • حصلت على مربعين كبيرين (حوالي 30 سم) من الخشب الرقائقي الذي كنت أرقد حوله (حوالي 9 مم).
  • ثم قطعت سكة الدرابزين القديمة إلى أقسام مقاس 4x10 سم وقمت بربط الألواح الأمامية والخلفية معًا.
  • بعد أن قمت بتمييز الفتحة المركزية ، قمت بحفرها لتكون بنفس حجم أكبر أنبوب نحاسي.
  • ثم قمت برسمه بطلاء أبيض لامع عادي.
  • بعد بعض التجارب ، أدركت أنه ربما لا يمكنني الحصول على 4 أجهزة حول نفس المحور إذا كانت جميعها متصلة باللوحة الخلفية (أو الأمامية). لذلك كنت بحاجة إلى 3 + 1 أو 2 + 2 على كل لوحة. انتهى بي الأمر برصيد 3 في الخلف و 1 في المقدمة.
  • لقد عملت على التعويضات المطلوبة على قطعة من الورق ثم قطعت الأنابيب النحاسية لتتناسب. لاحظ أن الأنبوب السميك هو الأقصر ، ويجب أن يصل الأنبوب إلى اللوحة الخلفية. (لقد قمت بالفعل بتضمين أصغر ثقب في حفرة قمت بحفرها جزئيًا في اللوحة الخلفية ، ولكن ليس طوال الطريق حتى لا يتحرك المحور للخلف).
  • بالنسبة للأنابيب ، اشتريت قاطعًا للأنبوب ، لكن هذا يستخدم الضغط لقطعها وهذا يعني أنه لا يمكنك إدخال الأنبوب الأصغر بالداخل. لذلك استخدمت منشارًا ومن ثم اضطررت إلى القيام بقدر لا بأس به من الملفات لحملهم على العمل. كانت ملفات النقاط الماسية لا تقدر بثمن هنا.
  • ثم قمت بمطابقة الرسم التخطيطي مع الإزاحات الفعلية للمشابك والتروس *.
  • بمجرد أن حصلت على الإزاحات ، عرفت مدى ارتفاع الكتل لتركيب الماكينات. لقد كسرت كتلتين من خلال نشرها بشكل رفيع جدًا وحفر الفتحة أيضًا لإخراج السلك.
  • ثم جاء الجزء الصعب من مكان وضع الكتل بحيث تتلاقى تمامًا مع التروس الموجودة على المحور. لقد قمت بربط كتلة واحدة ثم استطعت تدوير المؤازرة للوفاء بالمحور ثم برغي في الكتلة الثانية في الطرف الآخر من المؤازرة. لقد وجدت أيضًا أنني بحاجة إلى قطع بعض الكتل لتجنب تعطل التروس الأخرى. استغرق الأمر وقتا طويلا.
  • بمجرد الانتهاء من كل ذلك ، حصلت على علبة التوت الخاصة بي ، وحفرت فيها فتحتين ، وثبتها في اللوحة الأمامية. ثم يمكنني إضافة Pi في ، وإغلاق الألواح الأمامية والخلفية (بعد توصيل الماكينات بـ pi (تذكر المؤازرة التي كانت لأي فرد من أفراد الأسرة) والتحول إلى اليدين …

* وجدت هنا أكبر مشكلة لم أتمكن من حلها بالكامل بعد. الأنابيب النحاسية كانت 1/4 "، 7/32" ، 3/16 "، 5/32". لكن المشابك كانت مترية (باستثناء واحد كان 1/4 بوصة). تحويل الأنابيب إلى مترية كانت 6.35 مم ، 5.56 مم ، 4.76 مم 3.97 مم. كانت المشابك المتبقية 4 مم و 5 مم و 6 مم. أصغر 2 و الأكبر على ما يرام. ولكن من الواضح أن 0.44 ملم هو الكثير من السفر بالنسبة إلى المشبك ، لذلك اضطررت إلى تبطينه بالورق. لقد جربت هذا عدة مرات وهو يعمل جيدًا لفترة من الوقت ثم يخفف مرة أخرى. لذا ، فإن ثاني أكبر فشل اليد في العمل بشكل صحيح. كان الأمر جيدًا لمدة 6 أشهر تقريبًا ، لذا فإن الوقت الذي أمضيته في القيام بذلك بشكل جيد كان وقتًا جيدًا. ولكن إذا كنت أفعل ذلك مرة أخرى ، فربما أرتفع أو قل حجمًا واحدًا ، مع وجود فجوة لمحاولة الحصول على مشبك أفضل لملاءمة الأنبوب. على سبيل المثال ، انتقل إلى 9/32 "، 1/4" ، (فجوة) ، 3/16 "، 5/32"

الخطوة 8: عقارب الساعة

عقارب الساعة
عقارب الساعة
عقارب الساعة
عقارب الساعة
عقارب الساعة
عقارب الساعة

قررت استخدام ألواح الصلب لأنني أردت شيئًا صلبًا ولكن من غير المرجح أن ينكسر أثناء صنعه. كما أن كونك نحيفًا يعني أن 4 أيدي كانت مشكلة أقل.

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

الخطوة 9: أكمل

مكتمل!
مكتمل!
مكتمل!
مكتمل!

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

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

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

مرة أخرى ، قبعة كبيرة شكرًا لـ @ ppeters0502 على الإرشادات الرائعة التي يجب اتباعها. نأمل أن تضيف شيئًا ما حول إنشاء ساعة بأربعة عقارب..

الخطوة 10: الأشياء التي تعلمتها ، وسأفعلها بشكل أفضل / مختلف إذا كان علي أن أفعلها مرة أخرى

  • تحتاج الإنشاءات المادية إلى التجربة والخطأ. لا توجد طريقة للتنبؤ بمشاكل الفضاء ، ما عليك سوى الغوص والمحاولة.
  • بالنسبة للكود ، فإن مشاكل googling ضرورية
  • ابدأ الأساسي والبناء. تعني الماكينات الموجودة على منصة الاختبار الخشبية أنه يمكنني تشغيل معظمها بدون البنية المادية
  • ربما أكون قد قطعت يدي بالليزر في آلة CNC. لكنني لم أكن أعرف مكان المكان المحلي ، وأحب كيف يعمل الفولاذ الطري (كان رخيصًا وكانت مطحنة المقعد أسهل بكثير)
  • قد يكون من الممكن استخدام محرك متدرج إذا كنت تستخدم التروس للحصول على دوران 360 درجة. ولكن قد تضطر بعد ذلك إلى جعل الماكينات قريبة جدًا من المحور المركزي
  • هناك نوعان من المؤازرة (Futaba & HiTech). تأكد من التحقق من هذا لأن لديهم أعدادًا مختلفة من الأسنان على الشريحة. واشتريت الأشياء الخاطئة في البداية …
  • لا تربط القبعة بالقطبية الخاطئة ؛-)
  • Google و Stack Overflow هم أصدقاؤك عندما يتعثرون. لكنك تحتاج إلى استخدام مصطلحات بحث جيدة …
  • منصة الاختبار هي في الواقع طريقة يمكنك من خلالها الحصول على نسخة أبسط وأرخص بكثير بسهولة أكبر. تأتي معظم التعقيدات مع التصميم من الاضطرار إلى تدوير اليدين حول نفس المحور. إذا كنت تتنازل عن ذلك ، فسيكون كل شيء أسهل بكثير. وأعتقد أن 4 قد يكون الحد الأقصى للمحور المفرد ما لم يكن العمود أطول بكثير. يمكنك ، أفترض أن لديك 3 على اللوحة الأمامية وثلاثة على اللوحة الخلفية إذا كان العمود أطول …

الخطوة 11: الامتدادات المستقبلية المحتملة …؟

الأفكار التي كانت لدي حول الخطوات التالية هي كما يلي.

  1. أرغب في إعادة استخدام جهاز iPad قديم ليكون بمثابة وجه الساعة. أي اصنع ساعة رقمية. من المحتمل أن يكون مستندًا إلى متصفح أو تطبيق. نظرًا لأن الساعة المادية عديمة الحالة أساسًا (أي أنها لا تعرف مكانها حاليًا ، إلا بحكم أن العقارب في وضع مادي) ، سأحتاج إلى تخزين مستمر للبيانات. يمكن لـ Node Red الكتابة إلى نظام الملفات المحلي ، لذلك من المحتمل أن أفعل ذلك.
  2. إذا فعلت ذلك ، فأود أن أتمكن من رؤيته من خارج المنزل. ولكن بعد ذلك نحتاج حقًا إلى تسوية الأمن. نظرًا لأن الوصول داخل نفس شبكة wifi شيء ، فإن الوصول من الإنترنت شيء آخر. ليس لدي حاليًا أي فكرة عن أفضل السبل للقيام بذلك ، لكنني أظن أن اشتراك MQTT في الاتجاه الآخر يمكن أن يعمل (ينشر pi الحالة الحالية وتشترك الأجهزة الخارجية فيه) …؟
  3. أرغب تمامًا في الحصول على يد واحدة لـ "الخارج". ولكن قد يكون ذلك معقدًا من وجهة نظر OwnTracks. ربما يمكن فقط استخدام الطول / العرض جنبًا إلى جنب مع بعض أنصاف الأقطار الضخمة؟

موصى به: