الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اصنع بنفسك سيرفو موتور (نظرة مقربة على نظام التحكم مغلق الحلقة)

مثبّتاستطلاعرائج
بدأه vision911 في 3 يناير 2007 · 21 رد · 35,468 مشاهدة · في منتدى تصميم مكائن ال CNC و ال ROBOTICS و برامج ال CAD و ال CAM
مشاركة: واتساب X فيسبوك تيليجرام

تقييم الموضوع

23 مشارك في التصويت

?? ???? ???????? ?

????? ? ????? ???????14 صوت · 61%
??? ???6 صوت · 26%
??? ??? ?? ??2 صوت · 9%
?????1 صوت · 4%
???0 صوت · 0%
#1 صاحب الموضوع

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

لقد عانيت أنا والكثير من الأخوة الأعضاء في الآونة الأخيرة من عدم توافر سيرفو موتور في مصر ، وفي الغالب في وطننا العربي كله ، وكما يقال "ما حك جلدك مثل ظفرك فتول أنت جميع أمرك".

لذا أقدم بين يديكم اليوم ما توصلت إليه سائلا الله عز وجل أن يكون على المستوى المطلوب...

بسم الله نبدأ الحلقة الأولى:

ما هو السيرفو موتورServo motor ؟

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

post-30728-1167798802_thumb.jpg

نظرية العمل :

يقوم الـPIC بقراءة قيمة المقاومة وعلى هذا الأساس يقوم بتحريك الموتور حتى يتوقف عند زاوية معينة شاملا بذلك التحرك يمينا أو يسارا أو التوقف

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

المكونات المطلوبات

1.الجزء الميكانيكي:

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

post-30728-1167799218_thumb.jpg

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

post-30728-1167799289_thumb.jpg

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

post-30728-1167799338_thumb.jpg

2.الجزء الاليكتروني:

*مكونات قنطرة H :

عدد 4 ترانزستور TIP31

عدد 2 ترانزستور TIP32

عدد 6 مقاومة 1 ك اوم

عدد 2 مقاومة 200 اوم

post-30728-1167799444_thumb.jpg

*مكونات دائرة تحكم الـPIC :

عدد 1 متحكم PIC16f84A

عدد 1 كريستال 1

عدد 2 مكثف 22pf

عدد 2 مكثف 0.1 ميكرو فاراد

عدد 1 مقاومة 4.7 ك اوم

عدد 1 شريحة منظم جهد 7805

عدد 1 مكثف 0.33 ميكروفاراد

عدد 1 مكثف 100 ميكروفاراد

والآن أترككم حتى تحضروا هذه الأشياء ومن ثم نكمل لاحقا إن شاء الله

04_08_05_05_25_08_1123201508Stoon.JPGIn this world I love Islam ,Computer ,Communications ,Electronics and

المسلم كالغيث أينما حل نفع

Don't ever trust machines

#2

ما شاء الله أظن انك حلتها لكن المشكله هتكون فى انك بعد ما تحصل على الزاويه المطلوبه

مش ممكن الموتور يرجع تانى لوضعه الأصلى

#3

أخي عبد الوارث أشكرك على مشاركتك ، ولكني كما ذكرت آنفا ( حلوة آنفا دي :) )

اقتباس
فإن البرنامج الذي سوف نستخدمه يقوم بضبط وضع الموتور بحيث يستقر عند 90 درجة

يعني موضوع الـ90 درجة ده ما هو إلا برنامج بتنزله على الـPIC وإن شاء الله بعد السلسلة دي سأقدم برنامج السيرفو كاملا

أتمنى أن تكونوا قد وجدتم القطع المطلوبة

بسم الله نبدأ الحلقة الثانية:

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

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

post-30728-1167859228_thumb.jpg

post-30728-1167859276_thumb.jpg

post-30728-1167859324_thumb.jpg

هام جدا

لا تحاولوا تسليط جهد مستمر الآن لتشغيل الموتور فقد يؤدي ذلك إلى كسر المقاومة المتغيرة (لاحظوا أن المقاومة لا تدور 360 درجة وإنما لها حدود بداية ونهاية ) أو قد يؤدي لكسر لحام الحامل الذي يرفع المقاومة (أيهما أضعف) وهذا ما قد حدث معي :D مما اضطرني إلى اعادة اللحام من جديد وليس لحام أول مرة مثل ثاني مرة حيث ستضطرون إلى تنظيف آثار اللحام الأول وبالتأكيد سوف يترك زوائد أو أجزاء ناقصة مما يجعلك تعيد حساباتك من جديد ، وإن احببتم اختبار مجموعة التروس والمقاومة يفضل أن تلف الترس الأصغر بيدك واحترس من كسر المقاومة أو اللحام

تحياتي :)

04_08_05_05_25_08_1123201508Stoon.JPGIn this world I love Islam ,Computer ,Communications ,Electronics and

المسلم كالغيث أينما حل نفع

Don't ever trust machines

#4

كنت افكر فى شي مثل هذا

اليس من الأسهل استخدام Stepper Motor؟

تم تعديل هذه المشاركة بواسطة NUCLEAR في 4 يناير 2007 في 16:26

Moore’s Law

– “Number of transistors in chips doubles every 18 
months”.
–  Every 10 years, processors are 100 times more 
powerful.

Gilder’s Law

– “Bandwidth grows at least three times faster than 
computer power”.
– Assuming bandwidth doubles every 12 months; 
every 10 years, it is 1000 times better.
#5

أخي العزيز NUCLEAR

بالفعل Stepper motor هيكون أسهل ولكن لن يتسنى لك أن تحدد الوضع الذي عليه الموتور بدون Feedback

وسنعود من حيث بدأنا من جديد :)

04_08_05_05_25_08_1123201508Stoon.JPGIn this world I love Islam ,Computer ,Communications ,Electronics and

المسلم كالغيث أينما حل نفع

Don't ever trust machines

#6

لا لا الStepper هيلف للزاويه اللى انا عايزها حسب ال coil الشغال :D

اعتقد انك لم تفهمنى

انا اقصد ان الPIC يحول الSquareWave Pulses الى درجات ثم يتحكم فى الStepper و هكذا نحصل على Servo MoToR

وأعتقد ان الDC Motor لا يصلح لأنه عندما يصل الى الدرجه المطلوبه سيتوقف ال PIC عن تغذيته ويصبح الTourque عليه صفر !! وهذا ليس Servo !

نعم سيعود الPIC الى تشغيله عند تغير المقاومه و لكن ربا يأخذ هذا وقتا تبعا لخصائص الMotor

شــكرا

تم تعديل هذه المشاركة بواسطة NUCLEAR في 4 يناير 2007 في 18:20

Moore’s Law

– “Number of transistors in chips doubles every 18 
months”.
–  Every 10 years, processors are 100 times more 
powerful.

Gilder’s Law

– “Bandwidth grows at least three times faster than 
computer power”.
– Assuming bandwidth doubles every 12 months; 
every 10 years, it is 1000 times better.
#7

مقالة ممتازة

همم

هل يصلح ال Shaft Encoder بدلا من المقاومة ، و ممكن تظبيطه لكي يعطي لنا درجات مثل السيرفو ما الرأي ؟؟

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#8

اول شي السلام عليكم

ثانياً اموضوع جميل جداً وانا انتظره ما خطر على بالي اطلاقاً

ثالثاً يعطيك العافية وهل بدها PIC (غالي) عليش

طيب نستخدم الحاسب مو احسن هل الموظوع له كمالة

طبعاً اسعار السيرفو متور غالية 10 دولار بدون شحن من اميركة وكذلك السبر متور غالي

طيب اذا دار المحرك 90 درجة كيف يرجع -90

#9

الأخ أحمد صالح

لكم يشرفني تواجدك معنا في هذا الموضوع

اقتباس
هل يصلح ال Shaft Encoder بدلا من المقاومة ، و ممكن تظبيطه لكي يعطي لنا درجات مثل السيرفو ما الرأي ؟؟

بالتأكيد يصلح وهو أفضل طبعا ( أي وسيلة ضوئية "optical" ستكون أفضل من الوسيلة الميكانيكية ) حيث ستسهل عليك عناء تركيب التروس واللحام وما شابه ، ولكنها ستأتي على حساب بساطة الكود ( حيث أنها سوف تستهلك كثيرا من موارد المتحكم ) واهو كله Feedback :D

على فكرة يا جماعة الـShaft encoder ده زي الموجود عندنا في الماوسات القديمة ( التي تستخدم البلية ) .

الأخ NUCLEAR

لنفترض أن عندك ذراع آلية تعمل بمحرك Stepper ( للتبسيط سنقول محرك واحد ) اوتوماتيكيا أي لا يتحكم بها عن بعد ، وقمت بتحريك الذراع إلى زاوية معينة ، ثم انتهيت من عملك وطفيت الذراع.

قل لي كيف سيتسنى للذراع في المرة التالية أن تعرف الوضعية أو الزاوية التي هي عليها لكي تتحرك في الاتجاه الصحيح بدون أن تضع Feedback

يجب أن يكون هناك Feedback سواء كان مقاومة أو Shaft encoder أو من أي نوع لكي تقرأ الوضع الأولي لها وعلى هذا الأساس تبدأ في العمل مرة أخرى .

بطريقة أخرى لو الذراع ها تتحرك إلى الزاوية 90 درجة تمشي يمين ولا شمال ؟

أكيد على حسب الزاوية إللي هي عليها يعني مثلا لو هيه عند 150 درجة ها تتحرك شمال (مثلا يعني) ، ولو عند 30 درجة ها تتحرك يمين

طيب ها تعرف منين هيه عند 150 ولا 30 ولا أي حاجة تاني ؟

ولكي لا يفهم من كلامي أنني متعصب للسيرفو ولا حاجة لا سمح الله الـstepper حلو برضه :)

أخي ab12oode وعليكم السلام

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

اقتباس
طيب اذا دار المحرك 90 درجة كيف يرجع -90

والله يا جماعة موضوع الـ90 درجة ده مثال فقط لا غير وما هو إلا كود ممكن تغيره ،

يعني أنا ممكن أعمل برنامج تاني وأنزله على الـPic اخلى السيرفو يدور من صفر درجة إلى 180 درجة ثم يعود مرة أخرى ، وهكذا

أي وظيفة تريدها يمكنك وضعها على الـPic وتعيش حياتك بدون أن تغير في مكونات الدائرة أو المجموعة الميكانيكية (هكذا أطلق على الموتور+التروس+المقاومة)

أشكركم جميعا على المشاركة بانتظار المزيد :D

04_08_05_05_25_08_1123201508Stoon.JPGIn this world I love Islam ,Computer ,Communications ,Electronics and

المسلم كالغيث أينما حل نفع

Don't ever trust machines

#10

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

أنا عموما ما قرات الموضوع كاملا بعد

و لكن حبيت أعلق لما رأيت الصور التى واضح من خلالها أنه عمل يدوى

أننى كنت أظن أننى الوحيد فى هذا المنتدى الذى يعانى من عدم وجود الخامات المناسبة دائما عندما يريد أن يجرى تجربة جديدة أو إبتكار جديد

عموما أنا أوحييكم بشدة على هذا العمل المتواضع الرائع و الفكرة الذكية و الجميلة

هذه هى الروح يا شباب

أعانك الله

بالمناسبة

قد تحصل على سيرفو موترز من المحرك الذى يحرك الصحن الذى يستخدم فى الإستقبال الفضائى

و أظن أنه متوفر بشدة فى العتبة و باب اللوق

و هو سهل الإستخدام و ثمنه أظنة يقل عن ال100 جنية مصرى و يعمل بأقل من 40 فولت مستمر

أعانكم الله

تم تعديل هذه المشاركة بواسطة أبو مُقاتل في 6 يناير 2007 في 01:38

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#11

ما شاء الله عليكم الله يوفقكم .

ملاحظة في loop لل feedback, هناك عدة طرق لايهم ماذا ستستعمل منها, فقط يجب أن تكون القيمة المعادة عبارة عن قراءة للموضع المطلق للزاوية absolute position.

في مشروع كنا قمنا به لحساب إتجاه الريح في محطة رصد جوية صغيرة, إستعملنا مقوامة ليست كالمقاومات المستعملة عادة في زيادة الصوت مثلا. بل كانت مقاومة من نوع خاص يمكنها الدوران بحرية 360 درجة في الإتجاهين. إستعمال المقاومة تحتاج لمحول تماثلي رقمي.

هناك طريقة أخرى طرحها أخي احمد الصالح وهي إستعمال optical encoder, لكن هناك أنواع من هذه encoders, منها incremantal و absolute

incremental هي المستعملة في mouse, وهي عبارة عن قارئ ضوئي يعيد إشارتين مربعتين, مع فارق في الطور, هذا الفرق في الطور هو الذي يحدد إتجاه الدوران فقط هل الفرق موجب أم سالب, لكنه لا يعيد بالضبط موقع الزاوية ( الموضع المطلق). لهذا لا يمكن إستعماله في مثالنا و وجب إستعمال photo encoder من نوع absolute.

نوع المحرك لا يهم ما دام الأمر فيه feedback ( حاليا أفضل stepper لتواجدها بكثرة). بالإظافة أنها توفر ميزة auto feedback, لأنننا يمكننا حساب عدد ااخطوات التي تحركها, غير أنها ليست موثوق بها 100%

B)

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#12

ikossan و أبو مُقاتل

مرحبا بكم ، وأشكركم على كل هذه الكلمات ، وهذا الذي يجعل أعضاء المنتدى لايبخلون بشئ عليه مما يجعله ثريا بالمعلومات

اقتباس
قد تحصل على سيرفو موترز من المحرك الذى يحرك الصحن الذى يستخدم فى الإستقبال الفضائى

كنت افتكره Stepper بس ها شوفه إن شاء الله

بسم الله نبدأ الحلقة الثالثة:

وهذا هو الجزء المفضل لدي (وهو الجزء الإليكتروني)

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

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

وفي الغالب مكتوب عليه + على جسم الموتور نفسه يكون متصلا بالطرف الايسر لـLoad والآخر متصل بالطرف الأيمن .

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

post-30728-1168085606_thumb.jpg

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

هام جدا :

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

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


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
device=16f84a

المرفقات
Real_Values_VS_PIC_Readouts_table.JPG

04_08_05_05_25_08_1123201508Stoon.JPGIn this world I love Islam ,Computer ,Communications ,Electronics and

المسلم كالغيث أينما حل نفع

Don't ever trust machines

#13

شكراً عيوني الموضوع جميل وإن شاء الله اجد القطع في السوق

شغلة جميلة ان ما تعاملت مع pic من قبل كم سعرها

#14

الموضوع احلو قوى :D

انا مش قصدى نشيل الShaft Encoder انا معترض على الDC Motor بس

يعنى اقصد نستبدل الDC Motor ب Stepper و نخلى باقى الSystem زى ما هو

Moore’s Law

– “Number of transistors in chips doubles every 18 
months”.
–  Every 10 years, processors are 100 times more 
powerful.

Gilder’s Law

– “Bandwidth grows at least three times faster than 
computer power”.
– Assuming bandwidth doubles every 12 months; 
every 10 years, it is 1000 times better.
#15
اقتباس
ان ما تعاملت مع pic من قبل كم سعرها

عندنا في مصر بـ22 جنيه يعني بتاع 4 دولار كده

اقتباس
اقصد نستبدل الDC Motor ب Stepper و نخلى باقى الSystem زى ما هو

طبعا ينفع ياباشا :D

تم تعديل هذه المشاركة بواسطة vision911 في 7 يناير 2007 في 21:26

04_08_05_05_25_08_1123201508Stoon.JPGIn this world I love Islam ,Computer ,Communications ,Electronics and

المسلم كالغيث أينما حل نفع

Don't ever trust machines

#16

حلو جاري التجربة

#17

لو أنكم إستخدمتم stepper سيكون الأمر أسهل

على فكرة

أى طابعة إبسون قديمة قبل"740" ستجدوا أنها تعمل بالكامل بالstepper

و أى طابعة hp قديمة ستجدوا أن المحرك الاساسى dc و تعمل بنظام الباركود أى الموتور يتحرك عن طريق قراءة شريط علية خطوط كثيرة

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#18
أبو مُقاتل كتب:
لو أنكم إستخدمتم stepper سيكون الأمر أسهل

على فكرة

أى طابعة إبسون قديمة قبل"740" ستجدوا أنها تعمل بالكامل بالstepper

و أى طابعة hp قديمة ستجدوا أن المحرك الاساسى dc و تعمل بنظام الباركود أى الموتور يتحرك عن طريق قراءة شريط علية خطوط كثيرة

ما انا باقوول كده من الصبح :D :lol:

Moore’s Law

– “Number of transistors in chips doubles every 18 
months”.
–  Every 10 years, processors are 100 times more 
powerful.

Gilder’s Law

– “Bandwidth grows at least three times faster than 
computer power”.
– Assuming bandwidth doubles every 12 months; 
every 10 years, it is 1000 times better.
#19

مش ها تفرق نوع الموتور ، المهم فيه Feedback وخلاص

04_08_05_05_25_08_1123201508Stoon.JPGIn this world I love Islam ,Computer ,Communications ,Electronics and

المسلم كالغيث أينما حل نفع

Don't ever trust machines

#20

شكر غالي وحار مني إلى ادارة المنتدى التي ضمت موضوعي لإلى قائمة المواضيع الهامة

ومعذرة على غيابي

إلى الأمام دائما

04_08_05_05_25_08_1123201508Stoon.JPGIn this world I love Islam ,Computer ,Communications ,Electronics and

المسلم كالغيث أينما حل نفع

Don't ever trust machines

#21

يا هلا

أين أنت أخى

ما هذه الغيبة كلها

أرنا الهمة إذن بعد عودتك

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#22

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

اخواني اردت انا ايضا صنع هذا النوع من الموتورات و قد و جتها هنا بطريقة مبسطة و رائعة. لكن لي طلب صغير بالرغم ان الموضوع يعتبر قديم نوعا ما

و هو عن برنامج قراءة المقاومة المتغيرة الخاصة بالسيرفو موتور و رجائي ان تتكرموا علينا بوضع البرنامج باستعمال الميكرو سي

و سؤال أخر ما هي قياسات التروس المستعملة في هذا المشروع

شكرا مقدما

مواضيع مشابهة