منتديات الالكترونيات العصرية

منتديات الالكترونيات العصرية (http://www.dbaasco.com/vb/index.php)
-   منتدى المتحكمات ميكرو بلغة السي MikroC (http://www.dbaasco.com/vb/forumdisplay.php?f=11)
-   -   شرح التحكم فى السيرفو موتور (http://www.dbaasco.com/vb/showthread.php?t=6683)

اشرف كمال 08-13-2011 07:12 AM

شرح التحكم فى السيرفو موتور
 
اهدى اليكم اخوتى فى الله قريبا كيفيه استخدام السيرفو موتور و التحكم به عن طريق الميكرو سى ..

اضع هذا الموضوع قريبا ويعتبر البداية لمشروعات الروبوت و لا حدود للابتكار

والسلام عليكم و رحمة الله و بركاته...


eng_a_sayed 08-13-2011 09:21 AM

رد: شرح التحكم فى السيرفو موتور
 
ستكون سبقة أن شاء الله

ننتظر باقى الموضوع بفارغ الصبر

تحياتى

عمرو عبد الرحمن 08-13-2011 12:49 PM

رد: شرح التحكم فى السيرفو موتور
 
رااااااائع
فى انتظارك

ربنا يوفقك

Dr.Genius 08-13-2011 10:29 PM

رد: شرح التحكم فى السيرفو موتور
 
we are waiting you
:)

اشرف كمال 08-14-2011 04:58 AM

رد: شرح التحكم فى السيرفو موتور
 
بداية تعريف السيرفو موتور:

هو عبارة عن DC Motor مجهز بدائرة الكترونيه للتحكم بدقة فى اتجاة دوران عمود الموتور و وضعه و مجموعه تروس gear box.

يوجد نوعين من محركات السيرفو..
الاول هو standard servo وفيه يكون المحرك قابل على الدوران من 0 -120و180 درجة فى الاتجاهين مع عقارب الساعه و عكس عقارب الساعه.

و الثانى هو contineous servo motor والاخير قادر على الدوران من 0 -360 درجه مع عقارب و عكس عقارب الساعة.

العامل الاساسى فى تحديد مكان عمود الدوران هو potentiometer وهو عبارة عن مقاومه متغيرة تؤدى الى تغير فى قيمة الجهد الخارج منها و عن طريق قيمة الجهد الناتجه تحدد الدارة الالكترونيه وضع محور الدوران يدقة.
انظر الصورة التالية:




اذن يحنوى السيرفو موتور باختصار على اربعه اجزاء كالتالى
1.دائرة التحكم: ووظيفتها استلام اشارة التحكم من الميكروكنترول و تشغيل الموتور.
2.الموتور و وظيفته القيام بالحركة .
3.مجموعه التروس و وظيفتها مضاعفه السرعه و زيادة العزم.
4.المقاومة المتغيرة او الpotentiometer ووظيفته كما قلنا اعطاء قيمة جهد تناظر وضع عامود دوران المحركبناء على قيمة مقاومتها و هى تتحرك مع عامود دوران المحرك كما فى الصورة التالية.



تبقى لنا الحديث عن كيفية التحكم فى حركة السيرفو موتور.

كما نلاحظ فى الصورة التالية يوجد ثلاثه اسلاك خارجة من الموتور اسود و احمر و اصفر

الاسود يتصل بالارضى و الاحمر بموجب 5 فولت و الاصفر اشارة التحكم و هى مجموعه نبضات pwm بتردد 50 هرتز مع اختلاف عرض النبضة بحسب اتجاة الدوران المطلوب.



:q49::q49::q49::q49::q49::q49::q49::q49::q49::q49::q49::q49::q49::q49:

الان نتسائل لماذا تردد 50 هرتز ؟؟ نعلم ان زمن ال 50 هرتز هو 20 ميللى ثانية (1/50)

ولكى يدور محرك السيرفو فى اتجاة معين يحتاج الى مجموعه نبضات بتردد 50 هرتز و عرض النبضة ال
hight + low =20 ms

فى حالة اردنا ان يتحرك السيرفو فى اتجاة عقارب الساعه نقوم باعطاءة نبضة 1 لمده

0.7-1) ميللى ثانيه و نبضة 0 لمدة 19 ميللى ثانية و بالتالى الزمن الدورى هو 20 ميللى ثانية او 50 هرتز.

(فى حال كانت النبضة العالى 1 ميللى سيدور المحرك لاقصى زاويه متاحة له 180 درجة وتقل الزاويه كلما قلت عرض النبضه حتى الى 0.7 ثانيه )


فى حالة اردنا اعطاءه حركة فى عكس عقارب الساعه حتى نقوم باعطاءه نبضه عالى 1
from 1.7 to 2 ms و نبضه منخفض طرح ال20 ميللى من النبضه العالى 1.

و اذا اردنا ان يعود محور المحرك لوضعه الاصلى عند 0 زاويه يتم اعطاءه نبضة عالى لمدة 1.5 ميللى ثانية و نبضه منخفض طرح ال 20 ميللى ثانية من 1.5 لكى يكون دائما التردد هو 50 هرتز.



الصورة التاليه توضح باختصار الشرح السابق.



واللى لقاء قريب لشرح كود الميكرو سى

والسلام عليكم و رحمة الله و بركاتة.

عمرو عبد الرحمن 08-14-2011 05:41 AM

رد: شرح التحكم فى السيرفو موتور
 
درس رااااااااااائع
بارك الله فيك ورزقك العلم

وفى انتظارك

عمرو عبد الرحمن 08-14-2011 06:34 AM

رد: شرح التحكم فى السيرفو موتور
 
فى انتظار بعض التفاصيل عن سرعة السيرفو لينتقل من زاوية الى اخرى

eng_a_sayed 08-14-2011 09:23 AM

رد: شرح التحكم فى السيرفو موتور
 
درس أكثر من رائع

وقبل أن تنتقل الى شرح الكود

أسمح لى لتعم الفائدة سأنقل بعض المعلومات الهامة لتعم الفائدة
1- محرك السيرفو

http://www.dbaasco.com/vb/imgcache/193.png

تعريفها:
هي عبارة عن محركات تيار مستمر عادية DC مزودة بعلبة سرعة ميكانيكية مدمجة تؤمن العزم المطلوب للتحريك و تحوي علي تشكيلة كهر بائية تؤمن للمحرك التغذية العكسية Feedback .
استعمالاتها:
تستعمل محركات ال RcServos في تطبيقات الروبوتات الصغيرة و الميكانيزمات التي تتطلب دقة في التحريك و ذلك لما تمتاز به هذه المحركات من عزوم قوية و سهولة و دقة في التحكم.

آلية عملها:
لمحرك ال RcServo ثلاثة أقطاب الأول يغذى ب 5 أو 6 فولت و الثاني هو الجهد المرجعي GND أما القطب الأخير فهو قطب التحكم. يمرر إلى قطب التحكم نبضات متغيرة العرض PWM ذات عروض ضمن المجال 1 – 2 ms التي توافق دوران للمحرك من 0 – 180 درجة, هذه النبضات تطبق بشكل مستمر على المحرك و بتردد 40 – 50 هرتز (لا يعمل المحرك بدون نبضات التحكم) , و تجدر الإشارة إلى أهمية حدود عرض النبضة و التردد الملازم لها لأن أي خروج عن المجالات المذكورة يؤدي إلى إتلاف المحرك.

ميزاتها:
إستجرار ضعيف للتيار نسبياً مقارنةً مع المحركات الخطوية.
عزوم قوية يمكن أن تصل إلى 40 Kg.cm وذلك لوجود علبة السرعة الميكانيكية المدمجة.
التوافر بأحجام مختلفة لتلائم جميع التطبيقات (الروبوتات الحشرية و الروبوتات البشرية).
إمكانية العمل لفترات طويلة دون ارتفاع في الحرارة.حساسية كبيرة لتغيرات عرض النبضة المطبقة الأمر الذي يتطلب دقة هائلة في التحكم.صغر دارة القيادة مقارنةً مع غيرها من المحركات.


2- اصنع بنفسك سيرفو موتور
ما هو السيرفو موتورServo motor ؟
السيرفو موتور ما هو إلا نظام تحكم مغلقClosed loop control system لموتور DC عادي و يوضح الرسم التخطيطي التالي ما أعني :

Resized to 100% (was 636 x 186) - Click image to enlargehttp://www.dbaasco.com/vb/imgcache/194.png


نظرية العمل :

يقوم الـPIC بقراءة قيمة المقاومة وعلى هذا الأساس يقوم بتحريك الموتور حتى يتوقف عند زاوية معينة شاملا بذلك التحرك يمينا أو يسارا أو التوقف
وكمثال بسيط فإن البرنامج الذي سوف نستخدمه يقوم بضبط وضع الموتور بحيث يستقر عند 90 درجة مهما كانت الزاوية الأساسية ، وأنا اعتبرت أن الوضع 90 درجة هو الوضع الذي تكون عليه قيمة المقاومة المتغيرة 12 ك أوم

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

http://www.dbaasco.com/vb/imgcache/195.png

عدد 1 مقاومة متغيرة 50 ك اوم

http://www.dbaasco.com/vb/imgcache/196.png

عدد 1 موتور DC 9 فولت

http://www.dbaasco.com/vb/imgcache/197.png

2.الجزء الاليكتروني:
*مكونات قنطرة H :
عدد 4 ترانزستور TIP31
عدد 2 ترانزستور TIP32
عدد 6 مقاومة 1 ك اوم
عدد 2 مقاومة 200 اوم

Resized to 97% (was 658 x 508) - Click image to enlargehttp://www.dbaasco.com/vb/imgcache/198.png


*مكونات دائرة تحكم الـPIC :
عدد 1 متحكم PIC16f84A
عدد 1 كريستال 1
عدد 2 مكثف 22pf
عدد 2 مكثف 0.1 ميكرو فاراد
عدد 1 مقاومة 4.7 ك اوم
عدد 1 شريحة منظم جهد 7805
عدد 1 مكثف 0.33 ميكروفاراد
عدد 1 مكثف 100 ميكروفاراد

تنفيذ الجزء الميكانيكي ، والذي يتطلبه من مهارة يدوية ، ودقة وحساسية في التنفيذ (الميللي متر قد يحدث فرقا كبيرا )

ولا تنسوا استخدام مادة لاصقة قوية مع بعض قطع البلاستيك ، وأكيد شنيور ( مثقاب) لتخريم الجزء البلاستيكي و بالتوفيق إن شاء الله

http://www.dbaasco.com/vb/imgcache/199.png

http://www.dbaasco.com/vb/imgcache/200.png

http://www.dbaasco.com/vb/imgcache/201.png

هام جدا
لا تحاولوا تسليط جهد مستمر الآن لتشغيل الموتور فقد يؤدي ذلك إلى كسر المقاومة المتغيرة (لاحظوا أن المقاومة لا تدور 360 درجة وإنما لها حدود بداية ونهاية ) أو قد يؤدي لكسر لحام الحامل الذي يرفع المقاومة (أيهما أضعف) وهذا ما قد حدث معي http://www.dbaasco.com/vb/imgcache/202.png مما اضطرني إلى اعادة اللحام من جديد وليس لحام أول مرة مثل ثاني مرة حيث ستضطرون إلى تنظيف آثار اللحام الأول وبالتأكيد سوف يترك زوائد أو أجزاء ناقصة مما يجعلك تعيد حساباتك من جديد ، وإن احببتم اختبار مجموعة التروس والمقاومة يفضل أن تلف الترس الأصغر بيدك واحترس من كسر المقاومة أو اللحام

وهو الجزء الإليكتروني

والآن لدينا 4 أطراف متصلين بالمجموعة ( أعني مجموعة الموتور والمقاومة ) طرفين وهما طرفي الموتور ، وطرفين متصلين بالمقاومة ( لاحظوا أن المقاومة المتغيرة تتكون من 3 أطراف " أساسيات كهربية! " ) ولن نعمل إلا على الطرفين الأيمن والأوسط.


1.أما طرفي الموتور فيوصلان بين طرفي Load في قنطرة H (راجعوا مخطط الدائرة في المشاركة الأولى )، بحيث يكون الطرف المسئول عن دوران الموتور في اتجاه عقارب الساعة عندما يكون (+)
وفي الغالب مكتوب عليه + على جسم الموتور نفسه يكون متصلا بالطرف الايسر لـLoad والآخر متصل بالطرف الأيمن .

2.وبالنسبة لطرفي المقاومة فأحدهما يتصل بالمتحكم الـPIC الـPin رقم 6 وهو البت رقم صفر في Port B ، والآخر يتصل بمكثف 0.1 ميكرو فاراد كما بالشكل

http://www.dbaasco.com/vb/imgcache/203.png


3.أما عن ربط دائرة التحكم بالقنطرة فالموضوع بسيط جدا ، وهو أيضا موضح بالشكل السابق حيث تقوم بتوصيل طرف القنطرة المكتوب عليه CW بالـPin رقم 7 وهو البت رقم 1 في Port B ، وتوصيل طرف القنطرة المكتوب عليه CCW بالـPin رقم 8 وهو البت رقم 2 في Port B


هام جدا :
لا توصل دائرة التحكم والقنطرة بمصدر جهد واحد فقد يؤدي هذا لحرق أحد المكونات الاليكترونية وخصوصا الـPic فهو حساس جدا لقيمة التيار المار فيه ، وكما تعلمون فإن الموتور يسحب تيار عالي في بداية تشغيله و / أو إذا كان محمل ، والحمل هنا هو حمل ميكانيكي (دوران المقاومة)

وأخيرا إليكم برنامج التحكم بلغة PicBasic:

كود:


  device=16f84a
Dim R_Value As Byte
trisb=%00000001

start:
          portb = 0
          r_value=pot portb.0,153 'لقراءة قيمة المقاومة
          If R_Value > 65 Then GoTo Rotate_Lower        'Making motor rotate CW
          If R_Value < 59 Then GoTo Rotate_Higher  'Making motor rotate CCW
          If R_Value >= 59 And R_Value <= 65 Then GoTo Stop_Motion

Rotate_Lower:
                        portb 0.1 = 1
                        delayms 10
                        GoTo start
                       
Rotate_Higher:
                          portb 0.2 = 1
                          delayms 10
                          GoTo start
                         
Stop_Motion:
                          portb = 0
                          delayms 250
                          GoTo start

ولاحظوا معي في سطر قراءة المقاومة بأن الـPic لن يقرأ المقاومة بالكيلو أوم ولكن لكل قيمة مقاومة ما يناظرها عدد صحيح Integer يحتفظ به المتحكم وهذا العدد يعتمد على قيمة المكثف المتصل بالمقاومة (والذي قيمته هنا هو 0.1 ميكرو فاراد ) ، وقيمة الـ Scale والذي قيمته هنا هو 153 (انظروا السطر الذي به التعليق بالعربي!!)

أما القيمة هي القيمة المناظرة للمقاومة 12 كيلو أوم (في الواقع القيمة المناظرة لها هي 62 ولكني أضفت نسبة خطأ بالموجب 65 والسالب 59)
والجدول التالي يوضح قيم المقاومة الأصلية مع ما يناظرها بالقيم الصحيحة ( مع الوضع في الاعتبار أن هذا لا يسري إلا بقيمة المكثف 0.1 ميكرو فاراد ، وscale 153 )

http://www.dbaasco.com/vb/imgcache/204.png

هام جدا
تأكدوا من أن قيمة المقاومة تقل كلما دارت CW وتزيد كلما دارت CCW وإلا فإن المقاومة ستستمر في الدوران حتى تنكسر أو ينكسر اللحام...

وهذا هو البرنامج إللي كنت بقوللكوا عليه وإللي بيحرك الموتور حتى وضع 90 درجة (شفتوا بقه انكم ممكن تغيروا في البرنامج زي مانتوا عايزين وتخلوا السيرفو يعمل أي حاجة تاني http://www.dbaasco.com/vb/imgcache/205.png )

لاحظوا أننا استهلكنا 3 أطراف من الـPic في سبيل التحكم في سيرفو واحد على عكس السيرفو الجاهز والذي يمكن التحكم به من خلال طرف واحد فقط ، على العموم المشروع قيد التطوير ، وأي أفكار جديدة عن السيرفو من الأعضاء مرحب بها ولا تنسوا أن نكون إيجابيين عطائين دائما

أي استفسارات ، تساؤلات أو مشاكل تعرضتم لها أثناء تنفيذ المشروع ، أنا في الخدمة

كلمة أخيرة:
هذا المشروع يعتبر Subsystem أي أنه يعتبر جزء من مشروعك الأكبر (روبوت بأنواعه) وحاول أن تستفبد من المتحكم اللي موجود في هذا السيرفو لينفذ تعليمات تحكم أخرى مثل قراءة sensor وهكذا ، فليس من الهندسة أن نجعل لكل سيرفو متحكم ونجعل للروبوت متحكم تاني (ده يبقى كتير أوي :s )

وهاتان النقطتان تم نقلهم لتعم الفائدة

تحياتى للجميع

عمرو عبد الرحمن 08-14-2011 02:06 PM

رد: شرح التحكم فى السيرفو موتور
 
شرح اكتر من رائع يا باشمهندس احمد ان شاء الله هقرى الدرس اكتر من مرة لتأكيد الفهم

بخصوص الجزئين

اقتباس:

لا توصل دائرة التحكم والقنطرة بمصدر جهد واحد فقد يؤدي هذا لحرق أحد المكونات الاليكترونية وخصوصا الـpic فهو حساس جدا لقيمة التيار المار فيه ، وكما تعلمون فإن الموتور يسحب تيار عالي في بداية تشغيله و / أو إذا كان محمل ، والحمل هنا هو حمل ميكانيكي (دوران المقاومة)
ممكن توضحها اكتر
بمعنى فى حالة اننا موصلين الميكروكنترولر على مصدر ومن نفس المصدر موصلين على ماتور
مايضر الميكروكنترلر فهو لن يصل اليه تيار اعلى مما يحتاج


جزاك الله خيرا

اشرف كمال 08-14-2011 07:02 PM

رد: شرح التحكم فى السيرفو موتور
 
اضافه جميله منك مهندس سيد تثرى الموضوع

جزيت خيرا وفطرت طيرا


الساعة الآن 05:43 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
الحقوق محفوظة لمنتديات الاليكترونيات العصرية

Security team

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77