![]() |
#1
|
||||
|
||||
![]()
اهدى اليكم اخوتى فى الله قريبا كيفيه استخدام السيرفو موتور و التحكم به عن طريق الميكرو سى ..
اضع هذا الموضوع قريبا ويعتبر البداية لمشروعات الروبوت و لا حدود للابتكار والسلام عليكم و رحمة الله و بركاته... ![]() |
#2
|
||||
|
||||
![]()
ستكون سبقة أن شاء الله
ننتظر باقى الموضوع بفارغ الصبر تحياتى
__________________
|
#3
|
||||
|
||||
![]()
رااااااائع
فى انتظارك ربنا يوفقك |
#4
|
|||
|
|||
![]()
we are waiting you
![]() |
#5
|
||||
|
||||
![]()
بداية تعريف السيرفو موتور:
هو عبارة عن DC Motor مجهز بدائرة الكترونيه للتحكم بدقة فى اتجاة دوران عمود الموتور و وضعه و مجموعه تروس gear box. يوجد نوعين من محركات السيرفو.. الاول هو standard servo وفيه يكون المحرك قابل على الدوران من 0 -120و180 درجة فى الاتجاهين مع عقارب الساعه و عكس عقارب الساعه. و الثانى هو contineous servo motor والاخير قادر على الدوران من 0 -360 درجه مع عقارب و عكس عقارب الساعة. العامل الاساسى فى تحديد مكان عمود الدوران هو potentiometer وهو عبارة عن مقاومه متغيرة تؤدى الى تغير فى قيمة الجهد الخارج منها و عن طريق قيمة الجهد الناتجه تحدد الدارة الالكترونيه وضع محور الدوران يدقة. انظر الصورة التالية: ![]() اذن يحنوى السيرفو موتور باختصار على اربعه اجزاء كالتالى 1.دائرة التحكم: ووظيفتها استلام اشارة التحكم من الميكروكنترول و تشغيل الموتور. 2.الموتور و وظيفته القيام بالحركة . 3.مجموعه التروس و وظيفتها مضاعفه السرعه و زيادة العزم. 4.المقاومة المتغيرة او الpotentiometer ووظيفته كما قلنا اعطاء قيمة جهد تناظر وضع عامود دوران المحركبناء على قيمة مقاومتها و هى تتحرك مع عامود دوران المحرك كما فى الصورة التالية. ![]() تبقى لنا الحديث عن كيفية التحكم فى حركة السيرفو موتور. كما نلاحظ فى الصورة التالية يوجد ثلاثه اسلاك خارجة من الموتور اسود و احمر و اصفر الاسود يتصل بالارضى و الاحمر بموجب 5 فولت و الاصفر اشارة التحكم و هى مجموعه نبضات pwm بتردد 50 هرتز مع اختلاف عرض النبضة بحسب اتجاة الدوران المطلوب. ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() الان نتسائل لماذا تردد 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 هرتز. الصورة التاليه توضح باختصار الشرح السابق. ![]() واللى لقاء قريب لشرح كود الميكرو سى والسلام عليكم و رحمة الله و بركاتة. |
#6
|
||||
|
||||
![]()
درس رااااااااااائع
بارك الله فيك ورزقك العلم وفى انتظارك |
#7
|
||||
|
||||
![]()
فى انتظار بعض التفاصيل عن سرعة السيرفو لينتقل من زاوية الى اخرى
|
#8
|
||||
|
||||
![]()
درس أكثر من رائع
وقبل أن تنتقل الى شرح الكود أسمح لى لتعم الفائدة سأنقل بعض المعلومات الهامة لتعم الفائدة 1- محرك السيرفو ![]() تعريفها: هي عبارة عن محركات تيار مستمر عادية 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 enlarge ![]() نظرية العمل : يقوم الـPIC بقراءة قيمة المقاومة وعلى هذا الأساس يقوم بتحريك الموتور حتى يتوقف عند زاوية معينة شاملا بذلك التحرك يمينا أو يسارا أو التوقف وكمثال بسيط فإن البرنامج الذي سوف نستخدمه يقوم بضبط وضع الموتور بحيث يستقر عند 90 درجة مهما كانت الزاوية الأساسية ، وأنا اعتبرت أن الوضع 90 درجة هو الوضع الذي تكون عليه قيمة المقاومة المتغيرة 12 ك أوم المكونات المطلوبات 1.الجزء الميكانيكي: مجموعة تروس على الأقل 3 تروس ، ولاحظوا الاختلاف في الحجم حيث يجب أن تتدرج الأحجام من الأصغر (القريب من الموتور ) إلى الأكبر ( البعيد عن الموتور) وذلك لخفض السرعة ![]() عدد 1 مقاومة متغيرة 50 ك اوم ![]() عدد 1 موتور DC 9 فولت ![]() 2.الجزء الاليكتروني: *مكونات قنطرة H : عدد 4 ترانزستور TIP31 عدد 2 ترانزستور TIP32 عدد 6 مقاومة 1 ك اوم عدد 2 مقاومة 200 اوم Resized to 97% (was 658 x 508) - Click image to enlarge ![]() *مكونات دائرة تحكم الـPIC : عدد 1 متحكم PIC16f84A عدد 1 كريستال 1 عدد 2 مكثف 22pf عدد 2 مكثف 0.1 ميكرو فاراد عدد 1 مقاومة 4.7 ك اوم عدد 1 شريحة منظم جهد 7805 عدد 1 مكثف 0.33 ميكروفاراد عدد 1 مكثف 100 ميكروفاراد تنفيذ الجزء الميكانيكي ، والذي يتطلبه من مهارة يدوية ، ودقة وحساسية في التنفيذ (الميللي متر قد يحدث فرقا كبيرا ) ولا تنسوا استخدام مادة لاصقة قوية مع بعض قطع البلاستيك ، وأكيد شنيور ( مثقاب) لتخريم الجزء البلاستيكي و بالتوفيق إن شاء الله ![]() ![]() ![]() هام جدا لا تحاولوا تسليط جهد مستمر الآن لتشغيل الموتور فقد يؤدي ذلك إلى كسر المقاومة المتغيرة (لاحظوا أن المقاومة لا تدور 360 درجة وإنما لها حدود بداية ونهاية ) أو قد يؤدي لكسر لحام الحامل الذي يرفع المقاومة (أيهما أضعف) وهذا ما قد حدث معي ![]() وهو الجزء الإليكتروني والآن لدينا 4 أطراف متصلين بالمجموعة ( أعني مجموعة الموتور والمقاومة ) طرفين وهما طرفي الموتور ، وطرفين متصلين بالمقاومة ( لاحظوا أن المقاومة المتغيرة تتكون من 3 أطراف " أساسيات كهربية! " ) ولن نعمل إلا على الطرفين الأيمن والأوسط. 1.أما طرفي الموتور فيوصلان بين طرفي Load في قنطرة H (راجعوا مخطط الدائرة في المشاركة الأولى )، بحيث يكون الطرف المسئول عن دوران الموتور في اتجاه عقارب الساعة عندما يكون (+) وفي الغالب مكتوب عليه + على جسم الموتور نفسه يكون متصلا بالطرف الايسر لـLoad والآخر متصل بالطرف الأيمن . 2.وبالنسبة لطرفي المقاومة فأحدهما يتصل بالمتحكم الـPIC الـPin رقم 6 وهو البت رقم صفر في Port B ، والآخر يتصل بمكثف 0.1 ميكرو فاراد كما بالشكل ![]() 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 أما القيمة هي القيمة المناظرة للمقاومة 12 كيلو أوم (في الواقع القيمة المناظرة لها هي 62 ولكني أضفت نسبة خطأ بالموجب 65 والسالب 59) والجدول التالي يوضح قيم المقاومة الأصلية مع ما يناظرها بالقيم الصحيحة ( مع الوضع في الاعتبار أن هذا لا يسري إلا بقيمة المكثف 0.1 ميكرو فاراد ، وscale 153 ) ![]() هام جدا تأكدوا من أن قيمة المقاومة تقل كلما دارت CW وتزيد كلما دارت CCW وإلا فإن المقاومة ستستمر في الدوران حتى تنكسر أو ينكسر اللحام... وهذا هو البرنامج إللي كنت بقوللكوا عليه وإللي بيحرك الموتور حتى وضع 90 درجة (شفتوا بقه انكم ممكن تغيروا في البرنامج زي مانتوا عايزين وتخلوا السيرفو يعمل أي حاجة تاني ![]() لاحظوا أننا استهلكنا 3 أطراف من الـPic في سبيل التحكم في سيرفو واحد على عكس السيرفو الجاهز والذي يمكن التحكم به من خلال طرف واحد فقط ، على العموم المشروع قيد التطوير ، وأي أفكار جديدة عن السيرفو من الأعضاء مرحب بها ولا تنسوا أن نكون إيجابيين عطائين دائما أي استفسارات ، تساؤلات أو مشاكل تعرضتم لها أثناء تنفيذ المشروع ، أنا في الخدمة كلمة أخيرة: هذا المشروع يعتبر Subsystem أي أنه يعتبر جزء من مشروعك الأكبر (روبوت بأنواعه) وحاول أن تستفبد من المتحكم اللي موجود في هذا السيرفو لينفذ تعليمات تحكم أخرى مثل قراءة sensor وهكذا ، فليس من الهندسة أن نجعل لكل سيرفو متحكم ونجعل للروبوت متحكم تاني (ده يبقى كتير أوي :s ) وهاتان النقطتان تم نقلهم لتعم الفائدة تحياتى للجميع
__________________
|
#9
|
||||
|
||||
![]()
شرح اكتر من رائع يا باشمهندس احمد ان شاء الله هقرى الدرس اكتر من مرة لتأكيد الفهم
بخصوص الجزئين اقتباس:
بمعنى فى حالة اننا موصلين الميكروكنترولر على مصدر ومن نفس المصدر موصلين على ماتور مايضر الميكروكنترلر فهو لن يصل اليه تيار اعلى مما يحتاج جزاك الله خيرا |
#10
|
||||
|
||||
![]()
اضافه جميله منك مهندس سيد تثرى الموضوع
جزيت خيرا وفطرت طيرا |
![]() |
مواقع النشر (المفضلة) |
أدوات الموضوع | |
انواع عرض الموضوع | |
|
|