جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
يعد Raspberry Pi نظامًا أساسيًا مفيدًا للغاية للحوسبة يسمح بإنشاء تطبيقات IoT / robotics / smart-home /… للمشاريع. الشيء الوحيد الذي لا يتوفر عليه ، مقارنة بجهاز كمبيوتر عادي ، هو زر إيقاف التشغيل. إذن كيف يمكننا أن نصنع واحدًا بأنفسنا؟ حسنًا ، لنفعل ذلك معًا!
في هذا البرنامج التعليمي ، ستحتاج إلى ما يلي:
- 1 Raspberry Pi مهيأ بالفعل وجاهز للاستخدام
- 1 لوح توصيل أو أي شيء يسمح لك بإنشاء الدائرة الإلكترونية
- 1 زر ضغط
- عدد 2 سلك توصيل
إذا لم تستخدم Raspberry Pi مطلقًا ، فيمكنك الاطلاع على البرنامج التعليمي الخاص بي حول كيفية وما يجب القيام به لتكوينه:
www.instructables.com/How-to-Setup-a-Raspberry-Pi-and-Start-Using-It/
الخطوة 1: الدائرة الإلكترونية
لا يوجد شيء معقد هنا ، إنها دائرة مباشرة. توضح الصورتان أعلاه بناء الدائرة. يمكنك استخدام أي دبوس GPIO تريده لإدخال الزر ، ستحتاج فقط إلى التأكد من تحديث الكود ليعكس ذلك.
لنوضح بسرعة كيف سيعمل هذا:
- يأخذ السلك الأحمر 3.3 فولت إلى أحد طرفي زر الضغط.
- يقوم كبل BLACK بتوصيل الطرف الآخر من زر الضغط بـ Pi GPIO والذي سيتم استخدامه كمدخل.
- الزر مفتوح افتراضيًا ، لذلك لا يوجد جهد يمر به. لذا يكون كابل BLACK عند 0 فولت عند عدم الضغط على الزر. هذا يعني أن الحالة المنطقية لإدخال Pi GPIO هي 0.
- عندما يتم الضغط على الزر ، سوف يمر الجهد عبره وسيتم توصيل كابل BLACK بـ 3.3 فولت. سيشهد Raspberry Pi بعد ذلك جهدًا قدره 3.3 فولت عند مدخلاته ، وهو ما يقابل الحالة المنطقية 1.
الخطوة الثانية: كود بايثون
الآن بعد أن أصبحت الدائرة جاهزة للاستخدام ، نحتاج إلى كتابة الكود الذي سيشغلها ، وأنا أستخدم Python في بيئة PyCharm هنا. لقد قمت بتكوين الزر لإيقاف تشغيل Raspberry Pi فقط عند الضغط عليه لأكثر من 3 ثوانٍ. السبب في أنني أقوم بذلك هو أنه من السهل جدًا الضغط عليه عن طريق الخطأ ، ولا تريد إيقاف تشغيل Pi الخاص بك عن طريق الصدفة.
شاشة الطباعة أعلاه مأخوذة من بيئة PyCharm الخاصة بي ، والرمز هو التالي (مع اختلاف بسيط في السطر 26 المرتبط بمشروع آخر ولكن ليس مطلوبًا هنا):
# هذا هو رمز aa لإيقاف تشغيل Raspberry Pi عند الضغط مع الاستمرار على زر محدد # استيراد الوحدة الخارجية استيراد RPi. GPIO مثل GPIOimport timeimport os # Raspberry Pi pin & variables Definitons & hold_time = 3 # الاحتفاظ بالوقت في ثوانٍ إلى poweroffbutton_poweroff = 1 # زر ضغط لإيقاف تشغيل Raspberry PiGPIO.setwarnings (False) GPIO.setmode (GPIO. BCM) # مخطط ترقيم أطراف Broadcom button_poweroff، GPIO. RISING) بدء = time.time () time.sleep (0.2) # تبديل debounce أثناء إدخال GPIO.input (button_poweroff) == 1: time.sleep (0.01) length = time.time () - ابدأ إذا كان الطول > Hold_time: os.system ("sudo poweroff")
أول شيء ، إذا قمت بتوصيل زر الضغط بـ GPIO مختلف ، هو تحديث السطر 11 على شاشة الطباعة أعلاه بإدخال GPIO المناسب:
button_poweroff = GPIO_X # التحديث باستخدام GPIO الصحيح المستخدم في دائرتك
أيضًا ، يسمح لك متغير hold_time بتعديل وقت الانتظار الذي يؤدي إلى إيقاف تشغيل Pi.
الخطوة 3: كيفية تشغيل البرنامج النصي تلقائيًا بعد إجراء التمهيد
الآن بعد أن أصبح لدينا الكود جاهزًا ، نحتاج فقط إلى تنفيذه. ولكن ، سيكون من الملائم أن يكون بإمكاننا تنفيذ هذا البرنامج النصي في كل مرة يتم فيها تشغيل Pi ، بطريقة تلقائية ، لذلك سيعمل الزر بدوننا لتشغيل البرنامج النصي في كل مرة. هناك العديد من الطرق للقيام بذلك. لقد أضفت هنا سطرًا واحدًا إلى ملف rc.local الموجود في المجلد / etc / الخاص بـ Pi. يتم تنفيذه كجزء من تسلسل التمهيد.
تحتاج إلى فتح سطر أوامر وكتابة الأوامر التالية (شاشة الطباعة الأولى أعلاه):
قرص مضغوط /
مؤتمر نزع السلاح الخ sudo نانو rc.local
سينقلك الأمر الأول من دليل / home / pi إلى المجلد الجذر ، وهو /.
سيأخذك الأمر الثاني بعد ذلك إلى الدليل / etc /.
أخيرًا ، سيفتح الملف الثالث ملف rc.local باعتباره مستخدمًا متميزًا يتمتع بحقوق التحرير الكاملة ، والتي تحتاجها لتعديل الملف.
بمجرد إدخال الملف ، تحتاج فقط إلى إضافة سطر في نهايته ، ولكن قبل عبارة الخروج 0 (الشاشة الثانية للطباعة أعلاه):
# أضف هذا السطر إلى ملف rc.local لبدء تشغيل البرنامج النصي
sudo python /home/pi/Documents/shutdown_with_hold.py &
هناك بعض الأشياء التي يجب الانتباه إليها هنا:
- اسم الملف الخاص بك: في السطر أعلاه ، أفترض أن الملف هو shutdown_with_hold.py. ولكن يمكن أن يكون ما تريده ، ما عليك سوى تحديث الاسم باسمك.
- المكان الذي حفظت فيه ملفك: في السطر أعلاه ، أفترض أنه تم حفظه في دليل / home / pi / Documents. لكن مرة أخرى ، يمكن أن يكون في أي مكان. تحتاج فقط إلى التأكد من وضع المسار المطلق لملفك هنا.
- الحرف "&" في نهايته: هذا مهم ، ويسمح لهذا الأمر بالعمل في الخلفية
وهذا كل شيء! الآن ، سيتم تنفيذ البرنامج النصي في كل مرة يتم فيها تشغيل Pi ، وسيتعين عليك فقط الضغط أكثر من 3 ثوانٍ على الزر لإيقاف تشغيله.