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

قم ببناء زر طاقة Raspberry Pi أفضل: 4 خطوات
قم ببناء زر طاقة Raspberry Pi أفضل: 4 خطوات

فيديو: قم ببناء زر طاقة Raspberry Pi أفضل: 4 خطوات

فيديو: قم ببناء زر طاقة Raspberry Pi أفضل: 4 خطوات
فيديو: Course Lesson 10 of 10: Controlling Raspberry Pi Pico 4WD Smart Car Kit with mobile App 2024, يوليو
Anonim
Image
Image

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

هناك أيضًا مشاريع لإعادة تشغيل Pi التي تم إيقاف تشغيلها ، لكن هذه أيضًا لا تمنحك أي ملاحظات مرئية.

لكن من يحتاج مثل هذا الزر؟ إذا كنت مهووسًا بعض الشيء مثلي ، أو حتى مجرد شخص غريب الأطوار ، فيمكنك دائمًا تسجيل الدخول إلى Pi محليًا أو عبر الشبكة واكتب sudo shutdown -h الآن. ولكن إذا كنت تبني مشروعًا للمستخدمين غير التقنيين ، فلن ينجح ذلك. صحيح ، يمكنك دائمًا الابتعاد بمجرد سحب سلك الطاقة ، لكن لاحظ ، قلت دائمًا تقريبًا! ينفد حظ الجميع عاجلاً أم آجلاً. لقد ماتت عليّ بطاقة SD الأسبوع الماضي فقط ، على الرغم من أنني لن أعرف أبدًا ما إذا كان ذلك بسبب فقدان الطاقة المفاجئ أم لا.

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

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

(في الفيديو ، أعرضه باستخدام Pi Zero v1.2 وشاشة صنعتها من شاشة كمبيوتر محمول معاد توجيهها ووحدة تحكم من الشرق الأقصى.)

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

كيف تعمل
كيف تعمل

هذا ما سيفعله لك زر التشغيل:

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

المكونات رخيصة جدا. كل ما تحتاجه هو:

  • ATTiny85 (شريحة متوافقة مع Arduino)
  • 3 مقاومات: 2 × 330 أوم و 1 × 10 كيلو أوم
  • 1 LED - أقترح اللون الأخضر أو الأزرق ، لكنه اختيارك
  • أسلاك اللوح والطائر ، أو اللوح ، أو مع ذلك تريد بنائه.

الخطوة 2: كيف يعمل

كما هو الحال مع جميع أزرار الطاقة Pi ، يقوم هذا الزر بسحب دبوس GPIO إلى حالة منخفضة للإشارة إلى طلب إيقاف التشغيل لبرنامج مساعد يعمل على Pi. لقد استخدمت GPIO4 (دبوس 7) ولكن يمكنك استخدام أي دبوس آخر.

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

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

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

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

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

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

الخطوة الثالثة: بناء نموذج تجريبي

بناء نموذج تجريبي
بناء نموذج تجريبي
بناء نموذج تجريبي
بناء نموذج تجريبي
بناء نموذج تجريبي
بناء نموذج تجريبي

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

الخطوة 4: برمجة ATTiny85

يتم إرفاق رسم Arduino والبرنامج المساعد بهذه الخطوة. في مجلد رسومات Arduino ، أنشئ مجلدًا يسمى PiPwr وانسخ الملف PiPwr.ino فيه. عند تشغيل Arduino IDE ، ستجده الآن في دفتر الرسم الخاص بك.

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

في Arduino IDE ضمن ملف - تفضيلات ، أضف

digistump.com/package_digistump_index.json

إلى عناوين URL لمدير المجالس الإضافية.

ضمن الأدوات - اللوحة ، يجب أن ترى الآن عددًا من خيارات Digispark. حدد Digispark (افتراضي - 16.5 ميجا هرتز).

إذا لم يكن لدى ATTiny85 محمل إقلاع (أو كنت لا تعرف) ، فيمكنك الحصول على مبرمج AVR ISP مقابل بضعة أرطال. أو يمكنك استخدام Arduino Uno أو Pro Mini أو Nano الأرخص كمبرمج. Google لـ "arduino as isp attiny85" (بدون علامات الاقتباس) للحصول على الإرشادات.

إذا كنت ترغب في تعديل المخطط ، فستجده معلقًا بالكامل ونأمل أن يكون من السهل متابعته. لتصحيح الأخطاء ، من الأسهل استخدام Arduino Pro Mini أو Nano. قم بإلغاء التعليق على serial.begin () في الإعداد وعبارات الطباعة في الحلقة () لمشاهدة الخطوات التي يمر بها باستخدام الشاشة التسلسلية. هناك تعريفات بديلة للدبابيس في المصدر ، تم التعليق عليها ، لـ Uno أو Pro Mini أو Nano.

في Raspberry Pi ، انسخ الملف shutdown_helper.py إلى المجلد / etc / local / bin وقم بتعيينه كقابل للتنفيذ باستخدام الأمر

sudo chmod + x /usr/local/bin/shutdown_helper.py

الآن قم بتحرير الملف /etc/rc.local باستخدام المحرر المفضل لديك. (ستحتاج إلى القيام بذلك كجذر.) قبل السطر الأخير (خروج 0) أدخل السطر

nohup /usr/local/bin/shutdown_helper.py &

إعادة التشغيل ، وسيبدأ البرنامج المساعد تلقائيًا.

موصى به: