Raspberry Pi هو لوحة قائمة على معالج معماري ARM مصممة لمهندسي الإلكترونية والهواة. يعد PI أحد أكثر منصات تطوير المشاريع الموثوقة الموجودة حاليًا. بفضل سرعة المعالج العالية وذاكرة الوصول العشوائي (RAM) التي تبلغ 1 جيجابايت ، يمكن استخدام PI للعديد من المشاريع البارزة مثل معالجة الصور وإنترنت الأشياء.
للقيام بأي من المشاريع البارزة ، يحتاج المرء إلى فهم الوظائف الأساسية لـ PI. سنغطي جميع الوظائف الأساسية لـ Raspberry Pi في هذه الدروس. سنناقش في كل درس تعليمي إحدى وظائف PI. بنهاية سلسلة دروس Raspberry Pi التعليمية هذه ، ستكون قادرًا على القيام بمشاريع رفيعة المستوى بنفسك. اذهب من خلال الدروس أدناه:
- الابتداء مع Raspberry Pi
- تكوين Raspberry Pi
- وميض LED
- واجهة Raspberry Pi Button
- جيل Raspberry Pi PWM
- التحكم في محرك التيار المستمر باستخدام Raspberry Pi
في هذا البرنامج التعليمي ، سوف نتحكم في سرعة محرك متدرج باستخدام Raspberry Pi. في Stepper Motor ، كما يقول الاسم نفسه ، يكون دوران العمود في شكل الخطوة. هناك أنواع مختلفة من السائر المحركات ؛ هنا سنستخدم أكثرها شيوعًا وهو Unipolar Stepper Motor. على عكس محرك DC ، يمكننا تدوير محرك السائر إلى أي زاوية معينة من خلال إعطائه التعليمات المناسبة.
لتدوير هذا المحرك السائر ذو الأربع مراحل ، سنقوم بتوصيل نبضات الطاقة باستخدام حلبة محرك متدرج. تأخذ دائرة السائق المشغلات المنطقية من PI. إذا تحكمنا في المشغلات المنطقية ، فإننا نتحكم في نبضات الطاقة وبالتالي سرعة محرك السائر.
يوجد 40 دبوس إخراج GPIO في Raspberry Pi 2. ولكن من بين 40 ، يمكن برمجة 26 دبوسًا فقط من GPIO (GPIO2 إلى GPIO27). تؤدي بعض هذه المسامير بعض الوظائف الخاصة. مع وضع GPIO الخاص جانباً ، يتبقى لدينا 17 GPIO فقط. يمكن لكل من 17 GPIO pin هذه توصيل تيار 15mA كحد أقصى. ولا يمكن أن يتجاوز مجموع التيارات من جميع دبابيس GPIO 50 مللي أمبير. لمعرفة المزيد حول دبابيس GPIO ، انتقل إلى: وميض LED مع Raspberry Pi
يوجد + 5V (Pin 2 & 4) و + 3.3V (Pin 1 & 17) دبابيس خرج طاقة على اللوحة لتوصيل الوحدات وأجهزة الاستشعار الأخرى. لا يمكن استخدام قضبان الطاقة هذه لقيادة المحرك السائر ، لأننا نحتاج إلى مزيد من الطاقة لتدويره. لذلك يتعين علينا توصيل الطاقة إلى Stepper Motor من مصدر طاقة آخر. يتمتع محرك السائر الخاص بي بمعدل جهد 9 فولت ، لذا فأنا أستخدم بطارية 9 فولت كمصدر للطاقة الثاني. ابحث في رقم طراز محرك السائر لمعرفة تصنيف الجهد. اعتمادًا على التصنيف ، اختر المصدر الثانوي بشكل مناسب.
كما ذكرنا سابقًا ، نحتاج إلى دائرة سائق لقيادة محرك السائر. سنقوم أيضًا بتصميم دائرة تشغيل ترانزستور بسيطة هنا.
المكونات المطلوبة:
نحن هنا نستخدم Raspberry Pi 2 Model B مع نظام التشغيل Raspbian Jessie OS. تمت مناقشة جميع متطلبات الأجهزة والبرامج الأساسية مسبقًا ، يمكنك البحث عنها في مقدمة Raspberry Pi ، بخلاف ما نحتاج إليه:
- ربط دبابيس
- 220Ω أو 1KΩ المقاوم (3)
- السائر المحركات
- أزرار (2)
- 2N2222 الترانزستور (4)
- 1N4007 ديود (4)
- مكثف - 1000 فائق التوهج
- مجلس الخبز
شرح الدائرة:
يستخدم محرك متدرج 200 خطوة لإكمال دوران 360 درجة ، مما يعني استدارة 1.8 درجة لكل خطوة. نظرًا لأننا نقود محرك متدرج رباعي المراحل ، فنحن بحاجة إلى إعطاء أربع نبضات لإكمال دورة منطقية واحدة. كل خطوة في هذا المحرك تكمل 1.8 درجة من الدوران ، لذلك لإكمال دورة نحتاج إلى 200 نبضة. لذا فإن 200/4 = 50 دورة منطقية ضرورية لإكمال دورة واحدة. تحقق من هذا لمعرفة المزيد عن Steppers Motors وأنماط القيادة الخاصة بها.
سنقود كل ملف من هذه الملفات الأربعة بواسطة ترانزستور NPN (2N2222) ، يأخذ ترانزستور NPN النبضات المنطقية من PI ويدفع الملف المقابل. تأخذ أربعة ترانزستورات أربعة منطق من 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)
نحن نضع أربعة من دبابيس GPIO كناتج لقيادة أربع لفات من المحرك السائر.
IO.setup (5، IO.OUT) IO.setup (17، IO.OUT) IO.setup (27، IO.OUT) IO.setup (22، IO.OUT)
نحن نضع GPIO26 و GPIO19 كدبابيس إدخال. سنكتشف ضغط الزر بواسطة هذه المسامير.
IO.setup (19، IO.IN) IO.setup (26، IO.IN)
في حالة صحة الشرط الموجود في الأقواس ، سيتم تنفيذ العبارات داخل الحلقة مرة واحدة. لذا إذا انخفض رقم التعريف الشخصي GPIO pin 26 ، فسيتم تنفيذ العبارات الموجودة داخل حلقة IF مرة واحدة. إذا لم ينخفض دبوس GPIO 26 ، فلن يتم تنفيذ العبارات داخل حلقة IF.
إذا (IO.input (26) == خطأ):
ينفذ هذا الأمر الحلقة 100 مرة ، ويزداد x من 0 إلى 99.
لـ x في النطاق (100):
بينما 1: يستخدم للحلقة اللانهائية. باستخدام هذا الأمر ، سيتم تنفيذ التعليمات الموجودة داخل هذه الحلقة بشكل مستمر.
لدينا جميع الأوامر اللازمة لتحقيق التحكم في السرعة لمحرك متدرج بهذا.
بعد كتابة البرنامج وتنفيذه ، كل ما تبقى هو تشغيل التحكم. لدينا زران متصلان بـ PI. أحدهما لزيادة التأخير بين النبضات الأربعة والآخر لتقليل التأخير بين النبضات الأربعة. التأخير نفسه يتحدث عن السرعة. إذا كان التأخير أعلى ، فإن المحرك يأخذ الفرامل بين كل خطوة وبالتالي يكون الدوران بطيئًا. إذا كان التأخير قريبًا من الصفر ، فإن المحرك يدور بأقصى سرعة.
هنا يجب أن نتذكر أنه يجب أن يكون هناك بعض التأخير بين النبضات. بعد إعطاء النبض ، يستغرق محرك السائر بضعة أجزاء من الألف من الثانية للوصول إلى مرحلته النهائية. إذا لم يكن هناك تأخير بين النبضات ، فلن يتحرك محرك السائر على الإطلاق. عادة ما يكون تأخير 50 مللي ثانية جيدًا بين النبضات. لمزيد من المعلومات الدقيقة ، انظر في ورقة البيانات.
لذلك من خلال زرين يمكننا التحكم في التأخير ، والذي بدوره يتحكم في سرعة محرك السائر.