تشغيل ليد باستخدام الرّاسبيري باي

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

  • لوح اختبار (Breadboard).
  • ليد (LED).
  • مقاومة 330Ω.
  • أسلاك توصيل ذكر/أنثى عدد 2.

لوح الاختبار:

يساعد لوح الاختبار في وصل العناصر الإلكترونية مع بعضها دون الحاجة إلى تلحيمها معاً، وعادةً ما يتمّ استخدام ألواح الاختبار لتجريب تصميم دارة ما قبل صناعة لوح الدّارة المطبوعة (PCB).

إنّ الثقوب الموجودة على اللّوح متّصلة مع بعضها بنمط محدّد يوضّحه الشّكل 1.

                        الشّكل (1):شرح عن لوح الإختبار

في لوح الاختبار الموضّح في الشّكل (1) تكون كلّ الثّقوب في الصف الأعلى متّصلة معاً (الثّقوب المحدّدة باللّون الأزرق)، والثّقوب في الصف الثّاني أيضاً متّصلة مع بعضها (الثّقوب المحدّدة باللّون الأحمر)، وكذلك الحال بالنّسبة إلى الصفين السفليين في اللّوح.

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

الليد LED:

يشير الاختصار (LED Light Emitting Diode) أو الديود الباعث للضّوء إلى أنّه يصدر ضوءاً عند مرور تيّار كهربائيّ عبره.

عندما ننظر إلى ليد (الشّكل 2) سنلاحظ أنّ أحد طرفيه أطول من الآخر، حيث أنّ الطّرف الأطول هو الطّرف الموجب، ويوصَل دائماً إلى القطب الموجب لمصدر التيّار الكهربائي في الدّارة، والطّرف الآخر لليد (الطّرف الأقصر) يسمّى الطّرف السّالب، ويوصَل إلى القطب السّالب من مصدر التيّار أو الأرضي.

  LED الشّكل (2): شرح قطبية ال                                                                      الشّكل (2): شرح قطبية ال LED

 

يضيء الليد عند توصيله بالطّريقة الصّحيحة فقط، ولن يتضرّر الليد إذا تمّ توصيله بالعكس ولكنّه لن يضيء، فإذا لم يُضأ الليد عند وضعه في الدّارة فقد يكون موصولاً بطريقة غير صحيحة.

المقاومة:

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

Resistor الشّكل (3): شكل المقاومة

                                                                 الشّكل (3): شكل المقاومة Resistor

 

تعتبر المقاومة وسيلة لتحديد كميّة الكهرباء التّي تمر عبر الدّارة وتحديداً تحديد كميّة التيّار المسموح لها بالمرور, تسمّى وحدة قياس المقاومة بالأوم (Ohm Ω)، وكلّما كانت قيمة المقاومة أكبر كلّما انخفضت كميّة التيّار التّي تمرّ عبر الدّارة.

يتم تحديد قيمة المقاومة عن طريق قراءة الخطوط الملوّنة الموجودة على جسم المقاومة.

سنستخدم مقاومة مقدارها 330Ω، يمكن التّعرف على هذه المقاومة عن طريق التّرميز اللّوني للخطوط الموجودة عليها، يعتمد التّرميز اللّوني للمقاومة المطلوبة على عدد الخطوط الموجودة عليها:

  • فإذا وجِد على المقاومة أربعة خطوط ستكون ألوانها برتقالي، برتقالي، بني، ذهبي.
  • أما إذا وجِد عليها خمسة خطوط ستكون ألوان الخطوط برتقالي، برتقالي، أسود، أسود، بني.

لا تهمّ الطّريقة التّي تصل بها المقاومات ضمن الدّارة، فالتيّار يمرّ عبر المقاومة بالاتجاهين.

 

أسلاك التّوصيل:

تُستخدم أسلاك التّوصيل لوصل النّقاط مع بعضها، يكون للأسلاك التّي سنستخدمها نهايتين مختلفتين، الطّرف الذّي ينتهي بقطب بارز (ذكر) سنصله إلى لوح الاختبار، والطّرف الذّي ينتهي بقطب بلاستيكية فيها ثقب نصلها إلى أقطاب الراسبيري باي.

 

              الشّكل (4):أسلاك التوصيل

 

أقطاب الراسبيري باي ذات الاستخدام العام:

تُعتبر أقطاب الدّخل والخَرْج عامّة الاستخدام الطّريق الذّي يتحكّم لوح الراسبيري باي عبره بالبيئة المحيطة، ويراقبها عن طريق توصيل هذه الأقطاب إلى الدّارات الإلكترونيّة، يمكن للوح الراسبيري باي أن يتحكّم بالليدات والمحرّكات والعديد من العناصر الأخرى، كما يمكنه أن يتحسّس بالحرارة والضّوء وحالة الأزرار الموصولة إليه.

يظهر في الشّكل (5) ترتيب الأقطاب على لوح الراسبيري باي (الإصدارين A وB)، عند النّظر إلى لوح الراسبيري باي والأقطاب متوضّعة في الزّاوية العليا اليمنى، تتشارك أسطر الأقطاب الثّلاثة عشر الأولى في الإصدارات الجديدة من ألواح الراسبيري باي (التّي تملك أربعين قطباً) نفس التّرتيب مع الإصدارات الأقدم.

 

    الشّكل (5): ترتيب الأقطاب على لوح الراسبيري باي

                                                       الشّكل (5): ترتيب الأقطاب على لوح الراسبيري باي

تصميم الدّارة:

تتكوّن الدّارة من مصدر للطّاقة الكهربائيّة (لوح الراسبيري باي)، ليد يضيء عند تطبيق تيّار كهربائي، ومقاومة تحدّد مرور التيّار في الدّارة.

سنستخدم أقطاب الأرضي (GND) على اللّوح كقطب سالب للبطاريّة، كما سيتم تأمين القطب الموجب للدّارة باستخدام أحد الأقطاب العامة، سنستخدم هنا القطب ذا الرقم 18، عندما يوضع القطب في وضع التّشغيل (high) سيعطي جهد 3.3v ويضيء الليد.

مخطّط الدارة موضّح في الشّكل (6).

مخطّط الدارة

                                                                            الشّكل (6): مخطّط الدارة

يجب فصل التّغذية الكهربائيّة عن لوح الراسبيري باي عند توصيل الدّارة لتجنّب حدوث دارات القصر غير المقصودة، مع ملاحظة ما يلي:

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

الكود البرمجي:

بعد توصيل الدّارة، أصبحنا جاهزين لكتابة الكود البرمجي الذي سيشغّل الليد.

عند تشغيل لوح الراسبيري باي، نفتح نافذة موجّه الأوامر (Terminal) وننشئ ملف بايثون باسم “LED.py” عن طريق كتابة الأمر التّالي:

nano LED.py

ثم أدخل الكود التّالي:

import RPi.GPIO as GPIO
import time
(GPIO.setmode(GPIO.BCM
(GPIO.setwarnings(False
(GPIO.setup(18,GPIO.OUT
print “LED on”
(GPIO.output(18,GPIO.HIGH
(time.sleep(1)
print “LED off”
(GPIO.output(18,GPIO.LOW

بعد أن قمنا بكتابة الكود وتدقيقه، نحفظ الملف ونخرج من محرّر النّص بالضّغط على زري Ctrl و x معاً، ثمّ زر y ثمّ Enter.

تشغيل الكود:

لتشغيل الكود نكتب الأمر التّالي:

sudo python LED.py

سنلاحظ أن الليد سيضيء لمدّة ثانية ثم سينطفئ.

إذا لم يعمل الكود وظهرت رسالة خطأ، نقوم بتعديل الكود باستخدام الأمر:

nano LED.py

توضيح الكود:

ماهي تعليمات الكود البرمجي؟ فلنتعرف على وظيفة كل سطر منه:

يخبر السطر الأول مترجم البايثون (مشغّل كود البايثون) أنّه سيستخدم مكتبة تساعده في التّعامل مع الأقطاب العامة للراسبيري باي, تعطي المكتبة لغة البرمجة أوامراً جديدة يمكن استخدامها للقيام بأشياء مختلفة لم تكن قادرة على القيام بها سابقاً, يمكن تشبيه إضافة المكتبة إلى المترجم بإضافة قناة إلى التّلفاز فتصبح قادراً على مشاهدة أشياء مختلفة. import RPi.GPIO as GPIO
يقوم هذا السطر بإحضار مكتبة التّوقيت لنستخدمها في إيقاف تنفيذ الكود لاحقاً. import time
كل قطب عام على لوح الراسبيري باي له أسماء عديدة، ولذلك يجب أن نحدّد للبرنامج أي نظام تسمية سنستخدم. (GPIO.setmode(GPIO.BCM
يأمر هذا السّطر بعدم إظهار رسائل التّحذير المتعلّقة بالأقطاب العامّة. (GPIO.setwarnings(False
يخبر هذا السّطر مترجم البايثون أنّ القطب ذا الرّقم 18 سيستخدم لإخراج المعلومات، وهو ما يعني أنّنا سنكون قادرين على جعل القطب في وضع التّشغيل (ON) أو الإيقاف (OFF). (GPIO.setup(18,GPIO.OUT
يعطي هذا السّطر أمر طباعة بعض المعلومات على موجّه الأوامر. “print “LED on
هذا الأمر يجعل القطب العام 18 في وضع التّشغيل، وفي الحقيقة يعني هذا السّطر جعل القطب يعطي جهد 3.3v، وهو جهد كافي لتشغيل الليد في الدّارة. (GPIO.output(18,GPIO.HIGH
إيقاف برنامج البايثون مؤقّتاً لمدة ثانية واحدة. (time.sleep(1
يعطي هذا السّطر أمر طباعة بعض المعلومات على موجّه الأوامر. “print “LED off
هذا السّطر يجعل القطب العام 18 في وضع الإيقاف، وهو ما يعني أن القطب سيتوقّف عن إعطاء الجهد. “GPIO.output(18,GPIO.LOW

 

وهكذا نكون قد قمنا بتنفيذ تطبيق بسيط يستخدم لإضاءة الليد وإطفائه باستخدام الراسبيري باي.


المصدر: هنا
ترجمة: لؤي ديب, مراجعة: محمد مرتكوش, تدقيق لغوي: سلام أحمد, تصميم: علي العلي , تحرير:قحطان غانم.

Leave a Reply

Your email address will not be published. Required fields are marked *