Raspberry Pi هو لوحة قائمة على معالج معماري ARM مصممة لمهندسي الإلكترونية والهواة. يعد PI أحد أكثر منصات تطوير المشاريع الموثوقة الموجودة حاليًا. بفضل سرعة المعالج العالية وذاكرة الوصول العشوائي (RAM) التي تبلغ 1 جيجابايت ، يمكن استخدام PI للعديد من المشاريع البارزة مثل معالجة الصور وإنترنت الأشياء.
للقيام بأي من المشاريع البارزة ، يحتاج المرء إلى فهم الوظائف الأساسية لـ PI. سنغطي جميع الوظائف الأساسية لـ Raspberry Pi في هذه الدروس. سنناقش في كل درس تعليمي إحدى وظائف PI. بحلول نهاية سلسلة البرامج التعليمية ، ستكون قادرًا على القيام بمشاريع رفيعة المستوى بنفسك. تحقق من بدء استخدام Raspberry Pi و Raspberry Pi Configuration.
لقد ناقشنا إنشاء LED Blinky و Button Interfacing و PWM في البرامج التعليمية السابقة. في هذا البرنامج التعليمي سوف نتحكم في سرعة محرك التيار المستمر باستخدام تقنية Raspberry Pi و PWM. PWM (تعديل عرض النبض) هي طريقة تستخدم لإخراج الجهد المتغير من مصدر الطاقة الثابت. لقد ناقشنا حول PWM في البرنامج التعليمي السابق.
يوجد 40 دبوس إخراج GPIO في Raspberry Pi 2. ولكن من بين 40 ، يمكن برمجة 26 دبوسًا فقط من GPIO (GPIO2 إلى GPIO27). تؤدي بعض هذه المسامير بعض الوظائف الخاصة. مع وضع GPIO الخاص جانباً ، يتبقى لدينا 17 GPIO. لمعرفة المزيد عن دبابيس GPIO ، انتقل إلى: وميض LED مع Raspberry Pi
كل من هذه 17 GPIO دبوس يمكن أن يحقق الحد الأقصى من 15mA. ولا يمكن أن يتجاوز مجموع التيارات من جميع دبابيس GPIO 50 مللي أمبير. لذلك يمكننا رسم متوسط 3 مللي أمبير بحد أقصى من كل من دبابيس GPIO هذه. لذلك لا ينبغي لأحد أن يعبث بهذه الأشياء إلا إذا كنت تعرف ما تفعله.
يوجد + 5V (Pin 2 & 4) و + 3.3V (Pin 1 & 17) دبابيس خرج طاقة على اللوحة لتوصيل الوحدات وأجهزة الاستشعار الأخرى. تم توصيل قضيب الطاقة هذا بالتوازي مع طاقة المعالج. لذا فإن سحب التيار العالي من قضيب الطاقة هذا يؤثر على المعالج. يوجد فتيل على لوحة PI والذي سينطلق بمجرد تطبيق حمولة عالية. يمكنك سحب 100 مللي أمبير بأمان من السكة + 3.3 فولت. نحن نتحدث عن هذا هنا لأن ؛ نقوم بتوصيل محرك DC بـ + 3.3 فولت. مع وضع حد الطاقة في الاعتبار ، يمكننا فقط توصيل محرك منخفض الطاقة هنا ، إذا كنت ترغب في قيادة محرك عالي الطاقة ، ففكر في تشغيله من مصدر طاقة منفصل.
المكونات المطلوبة:
نحن هنا نستخدم Raspberry Pi 2 Model B مع نظام التشغيل Raspbian Jessie OS. تمت مناقشة جميع متطلبات الأجهزة والبرامج الأساسية مسبقًا ، يمكنك البحث عنها في مقدمة Raspberry Pi ، بخلاف ما نحتاج إليه:
- ربط دبابيس
- 220Ω أو 1KΩ المقاوم (3)
- محرك DC صغير
- أزرار (2)
- 2N2222 الترانزستور
- 1N4007 ديود
- مكثف - 1000 فائق التوهج
- مجلس الخبز
شرح الدائرة:
كما ذكرنا سابقًا ، لا يمكننا سحب أكثر من 15 مللي أمبير من أي دبابيس GPIO ومحرك DC يسحب أكثر من 15 مللي أمبير ، لذلك لا يمكن تغذية PWM الناتج عن Raspberry Pi إلى محرك التيار المستمر مباشرة. لذلك إذا قمنا بتوصيل المحرك مباشرة بـ PI للتحكم في السرعة ، فقد تتضرر اللوحة بشكل دائم.
لذلك سنستخدم ترانزستور NPN (2N2222) كجهاز تبديل. يقود هذا الترانزستور هنا محرك DC عالي الطاقة عن طريق أخذ إشارة PWM من PI. هنا يجب الانتباه إلى أن توصيل الترانزستور بشكل خاطئ قد يؤدي إلى تحميل اللوحة بكثافة.
المحرك عبارة عن تحريض وبالتالي أثناء تبديل المحرك ، نشعر بالارتفاع الاستقرائي. سيؤدي هذا الارتفاع إلى تسخين الترانزستور بشدة ، لذلك سنستخدم الصمام الثنائي (1N4007) لتوفير الحماية للترانزستور من الارتفاع الاستقرائي.
من أجل تقليل تقلبات الجهد ، سنقوم بتوصيل مكثف 1000 فائق التوهج عبر مصدر الطاقة كما هو موضح في مخطط الدائرة.
شرح العمل:
بمجرد توصيل كل شيء وفقًا لمخطط الدائرة ، يمكننا تشغيل PI لكتابة البرنامج في PYHTON.
سنتحدث عن بعض الأوامر التي سنستخدمها في برنامج PYHTON.
سنقوم باستيراد ملف GPIO من المكتبة ، وتمكننا الوظيفة أدناه من برمجة دبابيس GPIO في PI. نقوم أيضًا بإعادة تسمية "GPIO" إلى "IO" ، لذلك في البرنامج عندما نريد الإشارة إلى دبابيس GPIO ، سنستخدم كلمة "IO".
استيراد RPi.GPIO كـ IO
في بعض الأحيان ، عندما تقوم دبابيس GPIO ، التي نحاول استخدامها ، ببعض الوظائف الأخرى. في هذه الحالة ، سوف نتلقى تحذيرات أثناء تنفيذ البرنامج. يخبر الأمر أدناه PI بتجاهل التحذيرات ومتابعة البرنامج.
تحذيرات IO.set (خطأ)
يمكننا إحالة دبابيس GPIO الخاصة بـ PI ، إما عن طريق رقم التعريف الشخصي على اللوحة أو عن طريق رقم وظيفتها. مثل "PIN 35" على السبورة هو "GPIO19". لذلك نقول هنا إما أننا سنمثل الدبوس هنا بـ "35" أو "19".
IO.setmode (IO.BCM)
نحن نضع GPIO19 (أو PIN35) كدبوس إخراج. سنحصل على خرج PWM من هذا الدبوس.
IO.setup (19، IO.IN)
بعد ضبط الدبوس كإخراج ، نحتاج إلى إعداد الدبوس كدبوس إخراج PWM ،
p = IO.PWM (قناة الإخراج ، تردد إشارة PWM)
الأمر أعلاه هو لإعداد القناة وأيضًا لإعداد تردد إشارة PWM. "p" هنا متغير يمكن أن يكون أي شيء. نحن نستخدم GPIO19 كقناة إخراج PWM. تم اختيار " تردد إشارة PWM " 100 ، لأننا لا نريد أن نرى وميض LED.
يتم استخدام الأمر أدناه لبدء إنشاء إشارة PWM ، و " DUTYCYCLE " هو لضبط نسبة التشغيل ، 0 يعني أن LED سيكون قيد التشغيل لمدة 0٪ من الوقت ، و 30 يعني أن LED سيكون قيد التشغيل لمدة 30٪ من الوقت و 100 يعني تمامًا.
p.start (DUTYCYCLE)
في حالة صحة الشرط الموجود في الأقواس ، سيتم تنفيذ العبارات داخل الحلقة مرة واحدة. لذا إذا انخفض رقم التعريف الشخصي GPIO pin 26 ، فسيتم تنفيذ العبارات الموجودة داخل حلقة IF مرة واحدة. إذا لم ينخفض دبوس GPIO 26 ، فلن يتم تنفيذ العبارات داخل حلقة IF.
إذا (IO.input (26) == خطأ):
بينما 1: يستخدم للحلقة اللانهائية. باستخدام هذا الأمر ، سيتم تنفيذ التعليمات الموجودة داخل هذه الحلقة بشكل مستمر.
لدينا جميع الأوامر اللازمة لتحقيق التحكم في السرعة بهذا.
بعد كتابة البرنامج وتنفيذه ، كل ما تبقى هو تشغيل التحكم. لدينا زران متصلان بـ PI ؛ واحد لزيادة دورة تشغيل إشارة PWM والآخر لتقليل دورة تشغيل إشارة PWM. بالضغط على زر واحد ، تزداد سرعة محرك التيار المستمر ، وبالضغط على الزر الآخر ، تقل سرعة محرك التيار المستمر. مع هذا حققنا التحكم في سرعة محرك DC بواسطة Raspberry Pi.
تحقق أيضًا من:
- التحكم في سرعة محرك التيار المستمر
- DC Motor Control باستخدام Arduino