الإعلانات

إن تعلم استخدام دبابيس GPIO في Raspberry Pi يفتح عالمًا كاملاً من الاحتمالات. تمهد المبادئ الأساسية التي تم تعلمها من خلال المشاريع المبتدئة الطريق نحو المعرفة المفيدة لكل من الإلكترونيات والبرامج الإلكترونية.

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

سوف تحتاج

للبدء ، تأكد من أن لديك المكونات التالية:

  • 1 x Raspberry Pi (أي شيء سيفعله ، يتم استخدام النموذج 3B في هذا البرنامج التعليمي)
  • 1 × زر ضغط
  • 1 × LED
  • 1 × 220 أوم المقاوم (القيم الأعلى جيدة ، سيصبح مصباح LED خافتًا)
  • 1 × اللوح
  • ربط الأسلاك

بمجرد جمعها ، يجب أن يكون لديك مكونات تبدو كالتالي:

الأجزاء المطلوبة لبرنامج Pi Button التعليمي

ستحتاج أيضًا إلى بطاقة SD مثبت عليها نظام التشغيل Raspbian. أسرع طريقة للقيام بذلك هي باستخدام صورة NOOBS (برنامج New Out Of the Box Software). تتوفر تعليمات حول كيفية القيام بذلك في هذا الفيديو:

إنشاء الدائرة

ستستخدم دبابيس GPIO الخاصة بـ Pi لإنشاء الدائرة ، وإذا لم تكن على دراية بها دليل دبابيس Raspberry Pi GPIO سوف يساعد. الدائرة هنا هي نفسها تقريبًا كما كانت في السابق مشروع Raspberry Pi LED، مع إضافة الزر الذي ستستخدمه اليوم.

instagram viewer

قم بإعداد دائرتك وفقًا لهذا الرسم التخطيطي:

Fritzing الرسم التخطيطي لتعليمي زر زر
  • ال 5 فولت و GND تتصل الدبابيس بقضبان توصيل اللوح.
  • دبوس 12 (GPIO 18) يتصل بالساق الإيجابية لمصباح LED.
  • ساق واحدة المقاوم يتم إرفاقه بالساق السلبية لمصباح LED ، بينما يتم إرفاق الساق الأخرى بالسكك الأرضية للوحة التوصيل.
  • دبوس 16 (GPIO 23) يعلق على جانب واحد من الزر ، والجانب الآخر يعلق على السكة الأرضية للوحة الخبز.

بمجرد إعداده ، إليك كيف يجب أن يبدو:

يتم توصيل Raspberry Pi بزر وزر LED على لوحة توصيل.

تحقق من دائرتك للتأكد من صحتها ، ثم قم بتشغيل Raspberry Pi.

الطريقة الأولى: RPi. مكتبة GPIO

بمجرد أن يتم تمهيد Pi ، توجه إلى القائمة وحدد برمجة> Thonny Python IDE. سيتم فتح نص Python جديد. إذا كنت جديدًا تمامًا على Python ، فهي لغة رائعة للمبتدئين وهناك العديد من الأماكن الرائعة لمعرفة المزيد عن Python بعد الانتهاء من هذا البرنامج التعليمي!

Thonny Python IDE

ابدأ باستيراد RPi. مكتبة GPIO وضبط وضع اللوحة.

استيراد RPi. GPIO مثل GPIO GPIO.setmode (GPIO.BOARD)

أعلن الآن المتغيرات لأرقام LED وزر دبوس.

ledPin = 12. buttonPin = 16. 

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

بلدي Pi Pinout

إعداد الزر

حان الوقت لإعداد دبابيس GPIO. اضبط دبوس LED للإخراج ، ودبوس الزر للإدخال باستخدام مقاوم سحب لأعلى

GPIO.setup (ledPin، GPIO.OUT) GPIO.setup (buttonPin، GPIO.IN، pull_up_down = GPIO.PUD_UP)

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

قبل أن نواصل ، دعونا ننظر إلى المقاومات القابلة للسحب والقوة.

الاستراحة: سحب المقاومات لأعلى / لأسفل

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

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

رسم تخطيطي لمقاوم السحب لأعلى

الصورة أعلاه هي رسم تخطيطي مبسط لزر و Raspberry Pi. يتصل دبوس GPIO بالأرض من خلال الزر. مقاوم السحب الداخلي يربط دبوس GPIO بمصدر طاقة Pi الداخلي. يتدفق هذا التيار ويتم سحب الدبوس بأمان إلى أعلى.

عندما تضغط على الزر ، يتصل دبوس GPIO مباشرة بالدبوس الأرضي ، ويقرأ الزر منخفضًا.

رسم تخطيطي لمثال المقاوم المنسدل

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

نظرية المقاوم للسحب والسحب للأسفل مربكة للوهلة الأولى ، ولكن المعرفة المهمة التي يجب الحصول عليها عند العمل مع وحدات التحكم الدقيقة. في الوقت الحالي ، إذا لم تفهم الأمر تمامًا ، فلا تقلق!

دعونا نستمر من حيث توقفنا.

حلقة البرنامج

بعد ذلك ، قم بإعداد حلقة البرنامج:

بينما True: buttonState = GPIO.input (buttonPin) if buttonState == False: GPIO.output (ledPin، GPIO.HIGH) آخر: GPIO.output (ledPin، GPIO.LOW)

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

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

حفظ وتشغيل البرنامج النصي الخاص بك

حفظ النص الخاص بك عن طريق النقر ملف> حفظ باسم واختيار اسم الملف. يمكنك تشغيل الرسم بالنقر على الأخضر لعب في شريط أدوات Thonny.

لوحة تحكم Thonny

الآن اضغط على الزر ، وسوف تضيء الصمام الخاص بك! اضغط على الأحمر قف زر في أي وقت لإيقاف البرنامج

اضغط على زر اختبار Gif

إذا كنت تواجه صعوبات ، فتحقق من التعليمات البرمجية وإعداد الدائرة جيدًا بحثًا عن الأخطاء وحاول مرة أخرى.

الطريقة الثانية: مكتبة GPIO Zero

RPi. مكتبة GPIO رائعة ، ولكن هناك طفل جديد على الكتلة. كانت مكتبة GPIO Zero تم إنشاؤها من قبل مدير مجتمع Raspberry Pi Ben Nuttall بهدف جعل الشفرة أبسط وأسهل في القراءة والكتابة.

لاختبار المكتبة الجديدة ، افتح ملف Thonny جديدًا واستورد المكتبة.

من gpiozero استيراد الصمام ، زر. من وقفة استيراد إشارة. 

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

يعد إعداد الدبابيس أسهل بكثير مع GPIO Zero:

الصمام = LED (18) زر = زر (23)

نظرًا لأن مكتبة GPIO Zero تحتوي على وحدات لمصباح LED وزر ، فلن تحتاج إلى إعداد المدخلات والمخرجات كما كان من قبل. ستلاحظ أنه على الرغم من أن الدبابيس لم تتغير ، إلا أن الأرقام هنا تختلف عن المذكورة أعلاه. وذلك لأن GPIO Zero يستخدم فقط أرقام GPIO pin (المعروفة أيضًا باسم Broadcom أو BCM أرقام).

ما تبقى من البرنامج النصي هو ثلاثة أسطر فقط:

button.when_pressed = led.on. button.when_released = led.off وقفة ()

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

طريقتان لإضافة زر إلى Raspberry Pi

من بين طريقتين لإعداد الزر ، يبدو أن طريقة GPIO Zero هي الأسهل. لا يزال من المفيد التعرف على RPi. مكتبة GPIO باسم معظم مشاريع راسبيري باي للمبتدئين استخدمه. بهذه البساطة ، يمكن استخدام المعرفة لعدد من الأشياء.

يعد استخدام دبابيس GPIO طريقة رائعة لتعلم وابتكار أجهزتك الخاصة ، ولكنه بعيد عن كل شيء يمكنك القيام به مع Pi. لنا دليل غير رسمي ل Raspberry Pi Raspberry Pi: البرنامج التعليمي غير الرسميسواء كنت مالك Pi الحالي وتريد معرفة المزيد أو مالك محتمل لهذا الجهاز بحجم بطاقة الائتمان ، فهذا ليس دليلاً تريد تفويته. قراءة المزيد مليء بالأفكار والبرامج التعليمية الإبداعية التي يمكنك تجربتها بنفسك! للحصول على برنامج تعليمي آخر مثل هذا ، تحقق من ذلك كيفية إنشاء زر متصل بشبكة Wi-Fi كيفية إنشاء زر متصل بشبكة Wi-Fi باستخدام ESP8266في هذا البرنامج التعليمي ، ستتعلم كيفية إنشاء زر مزود بشبكة Wi-Fi باستخدام NodeMCU و IFTTT. قراءة المزيد .

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