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
- Interfacing Shift سجل مع Raspberry Pi
- دروس Raspberry Pi ADC
في هذا البرنامج التعليمي سوف نتحكم في محرك سيرفو باستخدام Raspberry Pi. قبل الذهاب إلى المؤازرة ، دعنا نتحدث عن PWM لأن مفهوم التحكم في محرك سيرفو يأتي منه.
PWM (تعديل عرض النبض):
لقد تحدثنا سابقًا عن PWM عدة مرات في: تعديل عرض النبض مع ATmega32 و PWM مع Arduino Uno و PWM مع مؤقت 555 IC و PWM مع Arduino Due. PWM تعني "تعديل عرض النبض". PWM هي طريقة تستخدم للحصول على جهد متغير من مصدر طاقة ثابت. لفهم PWM بشكل أفضل ، ضع في اعتبارك الدائرة أدناه ،
في الشكل أعلاه ، إذا تم إغلاق المفتاح بشكل مستمر خلال فترة زمنية ، فسيكون مؤشر LED "ON" خلال هذا الوقت بشكل مستمر. إذا تم إغلاق المفتاح لمدة نصف ثانية وفتح لمدة نصف ثانية تالية ، فسيكون مؤشر LED قيد التشغيل فقط في النصف الأول من الثانية. تسمى الآن النسبة التي يكون مؤشر LED قيد التشغيل خلال الوقت الإجمالي " دورة التشغيل" ، ويمكن حسابها على النحو التالي:
دورة العمل = وقت التشغيل / (وقت التشغيل + وقت الإيقاف)
دورة العمل = (0.5 / (0.5 + 0.5)) = 50٪
لذا فإن متوسط جهد الخرج سيكون 50٪ من جهد البطارية.
أثناء قيامنا بزيادة سرعة التشغيل والإيقاف إلى مستوى ، سنرى مؤشر LED معتمًا بدلاً من تشغيله وإيقافه. هذا لأن أعيننا لا تستطيع التقاط ترددات أعلى من 25 هرتز بوضوح. ضع في اعتبارك دورة 100 مللي ثانية ، وإيقاف تشغيل LED لمدة 30 مللي ثانية وتشغيلها لمدة 70 مللي ثانية. سيكون لدينا 70٪ من الجهد المستقر عند الخرج ، لذلك سوف يتوهج LED باستمرار بكثافة 70٪.
تنتقل نسبة الخدمة من 0 إلى 100. وتعني "0" إيقاف التشغيل تمامًا و "100" قيد التشغيل تمامًا. تعتبر نسبة العمل هذه مهمة جدًا لمحرك سيرفو. يتم تحديد موضع محرك سيرفو من خلال نسبة العمل هذه. تحقق من هذا لمظاهرة PWM مع LED و Raspberry Pi.
محرك سيرفو و PWM:
محرك سيرفو عبارة عن مزيج من محرك DC ونظام التحكم في الوضع والتروس. الماكينات لها العديد من التطبيقات في العالم الحديث ومع ذلك ، فهي متوفرة بأشكال وأحجام مختلفة. سنقوم باستخدام SG90 محرك سيرفو في هذا البرنامج التعليمي، وهي واحدة من شعبية وأرخص واحد. SG90 هو مؤازر 180 درجة. لذلك باستخدام هذه المؤازرة ، يمكننا وضع المحور من 0-180 درجة.
يحتوي المحرك المؤازر بشكل أساسي على ثلاثة أسلاك ، أحدها للجهد الإيجابي ، والآخر للأرض والأخير لإعداد الموضع. و السلك الأحمر يرتبط إلى السلطة، براون سلك متصل الأرض و الأصفر الأسلاك (أو WHITE) متصلة إشارة.
في المؤازرة ، لدينا نظام تحكم يأخذ إشارة PWM من Signal pin. يقوم بفك تشفير الإشارة ويحصل على نسبة الواجب منها. بعد ذلك ، يقارن النسبة بقيم المواضع المحددة مسبقًا. إذا كان هناك اختلاف في القيم ، فإنه يضبط موضع المؤازرة وفقًا لذلك. لذا فإن موضع المحور للمحرك المؤازر يعتمد على نسبة العمل لإشارة PWM عند دبوس الإشارة.
يمكن أن يختلف تردد إشارة PWM (معدل عرض النبض) بناءً على نوع محرك سيرفو. بالنسبة لـ SG90 ، يكون تردد إشارة PWM 50 هرتز. لمعرفة مدى تكرار تشغيل المؤازرة الخاصة بك ، تحقق من ورقة البيانات الخاصة بهذا الطراز المحدد. لذلك بمجرد تحديد التردد ، فإن الشيء المهم الآخر هنا هو النسبة المطلوبة لإشارة PWM.
يوضح الجدول أدناه موقف المؤازرة لهذه النسبة المعينة من الخدمة. يمكنك الحصول على أي زاوية بينهما باختيار القيمة وفقًا لذلك. لذلك بالنسبة لـ 45 درجة من المؤازرة ، يجب أن تكون نسبة الخدمة "5" أو 5٪.
موضع |
نسبة الرسوم |
0º |
2.5 |
90 درجة |
7.5 |
180 درجة |
12.5 |
قبل ربط محرك سيرفو بـ Raspberry Pi ، يمكنك اختبار المؤازرة الخاصة بك بمساعدة دائرة اختبار محرك سيرفو هذه. تحقق أيضًا من مشاريعنا المؤازرة أدناه:
- التحكم في محرك سيرفو باستخدام اردوينو
- التحكم في محرك سيرفو مع اردوينو ديو
- محرك سيرفو يتفاعل مع متحكم 8051
- التحكم في محرك سيرفو باستخدام MATLAB
- التحكم في محرك سيرفو بواسطة Flex Sensor
- التحكم في موضع السيرفو مع الوزن (مستشعر القوة)
المكونات المطلوبة:
نحن هنا نستخدم Raspberry Pi 2 Model B مع نظام التشغيل Raspbian Jessie OS. تمت مناقشة جميع متطلبات الأجهزة والبرامج الأساسية مسبقًا ، يمكنك البحث عنها في مقدمة Raspberry Pi ، بخلاف ما نحتاج إليه:
- ربط دبابيس
- مكثف 1000 فائق التوهج
- محرك سيرفو SG90
- اللوح
مخطط الرسم البياني:
يجب توصيل A1000µF عبر سكة الطاقة + 5 فولت وإلا فقد يتم إغلاق PI بشكل عشوائي أثناء التحكم في المؤازرة.
شرح العمل والبرمجة:
بمجرد توصيل كل شيء وفقًا لمخطط الدائرة ، يمكننا تشغيل PI لكتابة البرنامج في PYHTON.
سنتحدث عن بعض الأوامر التي سنستخدمها في برنامج PYHTON ،
سنقوم باستيراد ملف GPIO من المكتبة ، وتمكننا الوظيفة أدناه من برمجة دبابيس GPIO في PI. نقوم أيضًا بإعادة تسمية "GPIO" إلى "IO" ، لذلك في البرنامج عندما نريد الإشارة إلى دبابيس GPIO ، سنستخدم كلمة "IO".
استيراد RPi.GPIO كـ IO
في بعض الأحيان ، عندما تقوم دبابيس GPIO ، التي نحاول استخدامها ، ببعض الوظائف الأخرى. في هذه الحالة ، سوف نتلقى تحذيرات أثناء تنفيذ البرنامج. يخبر الأمر أدناه PI بتجاهل التحذيرات ومتابعة البرنامج.
تحذيرات IO.set (خطأ)
يمكننا إحالة دبابيس GPIO الخاصة بـ PI ، إما عن طريق رقم التعريف الشخصي على اللوحة أو عن طريق رقم وظيفتها. مثل "PIN 29" على السبورة هو "GPIO5". لذلك نقول هنا إما أننا سنمثل الدبوس هنا بـ "29" أو "5".
IO.setmode (IO.BCM)
نقوم بتعيين PIN39 أو GPIO19 كدبوس إخراج. سنحصل على خرج PWM من هذا الدبوس.
IO.setup (19، IO.OUT)
بعد ضبط دبوس الإخراج ، نحتاج إلى إعداد الدبوس كدبوس إخراج PWM ،
p = IO.PWM (قناة الإخراج ، تردد إشارة PWM)
الأمر أعلاه لإعداد القناة وأيضًا لإعداد تردد القناة. "p" هنا متغير يمكن أن يكون أي شيء. نحن نستخدم GPIO19 كقناة إخراج PWM. "تردد إشارة PWM" سنختار 50 ، لأن تردد عمل SG90 هو 50 هرتز.
يتم استخدام الأمر أدناه لبدء توليد إشارة PWM. " DUTYCYCLE " هو لتعيين نسبة "التشغيل" كما هو موضح من قبل ،
p.start (DUTYCYCLE)
يتم استخدام الأمر أدناه كحلقة إلى الأبد ، باستخدام هذا الأمر ، سيتم تنفيذ التعليمات الموجودة داخل هذه الحلقة بشكل مستمر.
بينما 1:
هنا يوفر برنامج التحكم في المؤازرة باستخدام Raspberry Pi إشارة PWM في GPIO19. يتم تغيير نسبة العمل لإشارة PWM بين ثلاث قيم لمدة ثلاث ثوان. لذلك لكل ثانية ، يتم تدوير المؤازرة إلى موضع تحدده نسبة الخدمة. تدور المؤازرة باستمرار إلى 0 درجة و 90 درجة و 180 درجة في ثلاث ثوانٍ.