سنتناول في هذا المقال النّقاط التّالية:
– كيف نستطيع التّحكّم بمحرّك السّيرفو؟
–  التّحكّم بمحرّك السّيرفو باستخدام raspberry pi.
– مثال للتّحكّم بمحرّك سيرفو باستخدام raspberry pi.

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

محرّك السّيرفو

                                                                                  الشكل (1): محرّك السّيرفو

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

كيف نتحكّم بمحرّك السّيرفو؟

يتمّ التّحكّم بمحرّكات السّيرفو عبر إرسال نبضة ذات عرض متغيّر أو ما يسمّى بتعديل عرض النّبضة PWM عبر سلك التّحكّم، يوجد نبضة أصغريّة ونبضة أعظميّة ومعدّل تكرار.
يدور محرّك السّيرفو عادة بزاوية 90 درجة فقط في كل اتّجاه، أي ما يعادل حركة كليّة تساوي 180 درجة، ويُحدَّد الموضِع الافتراضيّ للمحرّك بالموضع الذّي يملك فيه إمكانيّة الدّوران نفسها في كلا الاتجاهين -مع أو عكس عقارب السّاعة.
تُرسل إشارة PWM للمحرّك لتحديد موضع المحور، وبالاعتماد على عرض النّبضة المرسَلة عبر سلك التّحكّم يتحرّك المحور ويتوقّف عند الموضع المطلوب، يحدِّد عرض النّبضة مسافة زاوية دوران المحرّك، ويكون معدّل تكرار النّبضات الاعتياديّ بمعدّل نبضة كلّ 20 ميلي ثانية، فعلى سبيل المثال تجعل نبضة ذات عرض 1.5 ملم ثانية

المحرّك يدور بزاوية 90 درجة، أمّا النّبضة ذات العرض الأقصر من 1.5 ملم ثانية تجعل المحرّك يعود للموضع 0 درجة، والنّبضات الأطول من 1.5 ملم ثانية تجعل المحرّك يدور بزاوية 180 درجة كما هو موضّح في الشّكل التّالي:

                                                                           الشكل (PWM control example :(2

تُعرَف القيمة الأعظميّة للقوّة التّي يستطيع المحرّك تحمّلها بعزم دوران المحرّك.لا تحافظ محرّكات السّيرفو على الموضع الذّي تتحرّك به لفترة طويلة، لذلك يجب تكرار النّبضة لجعل المحرّك يحافظ علىموضعه باستمرار، وعندما تتلقّى محرّكات السّيرفو إشارة أو أمر للحركة ستتحرّك إلى الموضع الزّاويّ المطلوب وتحافظ عليه.

ملاحظة:

في حال تعرّضَ المحرّك لقوّة دفع خارجيّة تعاكس اتّجاه دورانه أثناء فترة محافظته على الموضع الزّاويّ الذّي تحرّك إليه، سيقاوم المحرّك هذه القوّة.

التّحكّم بمحرّك السّيرفو باستخدام Raspberry pi:

للتّحكم بمحرّك السّيرفو باستخدام raspberry pi سنستخدم وحدة تعديل عرض النّبضة في RPi.GPIO . الخطوة الأولى وهي تعديل عرض النّبضة المرتبط بمنفذ GPIO، عبر استخدام السّطر التّالي:

(P=GPIO.PWM9(12, 50

في هذه الحالة قمنا بربط وحدة تعديل عرضة النّبضة مع الرّجل 12 وبتردّد 50 هرتز، اخترنا هذا التّردّد لأنّ معدّل تكرار النّبضات الاعتياديّ يكون بمعدّل نبضة كل 20 ملم ثانية، هذا يعني 50 نبضة بالثّانية أو بالهرتز.
بعد ضبط وحدة تعديل عرض النّبضة نستخدم الأمر التّالي من أجل البدء بإرسال النّبضات للمحرّك:

(P.start(dc

في الحالة أعلاه، dc هو دورة التّشغيل ويُعطى بالعلاقة dc=length/period حيث أنّ length هو عرض النّبضة،و period هو المعدّل المنتظم لتكرارها.
طالما أنّ المحرّك يستخدم نبضات ذات 20 ملم ثانية، يمكن حساب دورة التّشغيل لمحرّك السّيرفو للحالات التّالية:

dc=(0.5/20)×100=2.5%
dc=(1.5/20)×100=7.5%
dc=(2.5/20)×100=12.5%

لتغيير دورة التّنفيذ نستخدم الأمر التّالي:

(p.ChangeDutyCycle(cd

لوقف إرسال النّبضات نستخدم:

()P.stop

مثال على التّحكّم بمحرّك السّيرفو باستخدام raspberry pi 
يبيّن المخطّط التّالي كيفيّة وصل محرّك السّيرفو إلى raspberry pi

وصل محرّك السّيرفو إلى raspberry pi
                                                       الشكل (3):وصل محرّك السّيرفو إلى raspberry pi
يُستخدم الكود البرمجيّ التّالي للتّحكّم بمحرّك السّيرفو بجعله يدور إلى موضعه الافتراضي (90درجة)، ينتظر لمدّة 1 ثانية ثمّ يتحرّك إلى موضع 180 درجة، ويستمرّ البرنامج بالتّنفيذ لحين مقاطعته:

الكود  البرمجي : التحميل من هنا 


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