تقديم
ان صناعة روبوت سريع لن يكون هدفه المتعة فقط بل سيكون له فوائد كثيرة حيث سيعلمك الكثير من المبادئ العامة في صناعة الروبوت وسيفيدك بتعلم اشياء عن الالكترونيات والبرمجة والمشتشعرات وغيرها كثيراً. |
استعراض للروبوت
الأجزاء الرئيسية
العربية الانجليزية الفرنسية |
صور الاجزاء |
بطاقة مبرمجة للميكروكنترول PICAXE-28 PICAXE-28 Project Board Carte de PICAXE-28 |
|
كابل USB لبرمجة PICAXE USB PICAXE Programming Cable Cable USB pour la carte PICAXE-28 |
|
الميكروكنترولور PICAXE-28x1 PICAXE-28X1 Microcontroller Microcontrôleur PICAXE-28X1
|
|
كنترولور المحرك نوع L293D L293D Motor Driver Contrôleur de moteur L293D |
|
مصفوفة مقاومات من نوع DIL 330x8DIL 330 x 8 resistor arrayUne matrice de résistances |
|
مستشعر الاشعة تحت الحمراء Sharp Analog Infrared Range Finding System (AERS) with cable Capteur Infrarouge de type Sharp |
|
محرك سيرفو Standard servo Moteur Servo |
|
محركين DC (مسننة) مع عجلتين 2 Geared motors and wheelsتوجد أاشكال وانواع اخرى مختلفة من المحركات DC. ولكن محركا سريعا يشتغل بجهد كهربائي قليل مع عجلات جيدة فسيكون كل شيء على ما يرام. |
|
اسنان pins |
|
3 جسور 3 jumpers3 cavaliers (تسعمل كواصل كهربائي إذا وضعت بين سنين متجاورين) |
|
كابلات برؤوس انثوية (نوع 10-5) 5-10 Female-Female Header Jumper cables5-10 Entête Féminin-Féminin, Câbles cavaliers |
|
انابيب بلاستيكية قابلة للإنكماش بالحرارة Heat shrink tube (5 mm approx) يمكنك استعمال شريط لاصق إذا أردت. |
|
شريط لاصق إسفنجي (ليس مهما) Roll of double sided foam tape |
|
حاملة البطاريات Battery Holder
لك الإختيار بين من تحمل 3 بطاريات قابلة لإعادة الشحن أو التي تحمل 4 بطارية عادية. |
|
بطاريات حسب ما نوع حاملة البطاريات التي اخترت. |
|
لا داعي لأن نقول انك ستحتاج بطاريات وكاوية وقصدير وقاطع اسلاك وولاعة وبالطبع حاسوب متصل بالانترنت. من الجيد ان يكون لديك مقياس متعدد الوظائف و مفك براغي وعراية اسلاك (على الرغم من انها غير ضرورية). |
تركيب الجهاز
الرمزين A وBعلى اللوحة: وهي المنطقة المشار اليها في الصورة بالسهم الاحمر حيث تمثل مكان توصيل المحرك.
قطعتي الأسنان: افصل من صف الأسنان قطعتين. كل واحدة تحتوي على سنين. ثبتهما على اللوحة من خلال إدخال أطرافها القصيرة في الثقوب. |
|
رغم أن المسألة ثانوية إلا أنه يمكنك استعمال شريط لاصق أو شريط إسفنجي لاصق من أجل تثبيت الأسنان في الخطوة القادمة ولتكن داعمة لها حتى لا تتحرك. |
|
قم بعملية تلحيم الاسنان لتثبت في اللوحة. |
|
والآن يمكنك إدخال أي كابل ذو رأس أنثوي في السن. |
|
إلحم سنا آخر في المدخل التناظري 0 (Analog pin0) والذي سنستخدمه من أجل مستشعر الأشعة تحت الحمراء فيما بعد. |
|
إلحم سنا آخر أيضا في المخرج 0 (Output 0) للوحة.
تكن بهذا قد انتهيت من عملية تلحيم الأسنان (من الأفضل ان تلحم الأسنان في كل الثقوب على اللوحة ولكن ربما تفضل تركها إلى وقت لاحق). |
|
صل الأسلاك الكهربائية القصيرة مع بعضها البعض باتباع الصور جانبه. |
|
قم بتلحيم مكان الإتصال حتى تثبت. |
|
إذا بقيت الأسلاك الكهربائية عريانة، فقد تشكل خطرا على اللوحة وتحرق لك مكوناتها إذا حدث تماس.
لهذا فيجب تغطية مكان الإتصال بين الأسلاك بعازل.
يمكنك استخدام الأانابيب البلاستيكية القابلة للانكماش بالحرارة لعزل الأسلاك. |
|
اكوها بالنار حتى تنكمش وتثبت في مكانها. |
|
ركب كل عجلة على المحرك المناسب لها.
بعد تركيب العجلات، اقطع كابلين إلى نصفين.
صل كل نصفين بطرفي محرك.
احرص على عدم تلامس الاسلاك مع الجسم المعدني للمحرك. |
|
والآن حان موعد تركيب المركبات الإليكترونية.
عند شرائك للوحة ستجد أنها تحتوي على ثلاث مقابس. أحدهم خاص بالميكروكنترولور، وبجانبه مقبس متوسط الحجم وآخر صغير الحجم.
تذكر فقط بأن الميكروكنترولور يحتوي على علامة على شكل نصف قرص في أحد أطرافه. انظر إلى الصورة لتراه. قم بتركيب الميكروكنترولور على اللوحة كما ترى في الصورة جانبه.
|
|
قم بنزع المركب الإليكتروني الأسود من على المقبس المتوسط الحجم، ثم ضع عوضه مصفوفة المقاومة الصفراء. انظر إلى نصف القرص الموجود في طرف مصفوفة المقاومات. ضعها في مكانها كما ترى في الصورة جانبه.
قم بتركيب كنترولور المحرك في مكانه بنفس الطريقة.
|
|
قم بوضع شريط لاصق على طرفي حاملة البطاريات.
هذين الطرفين سيمثلان موضعي المحركين. |
|
قم بوضع المحركين في مواضعهما. ثم ركب محرك المحرك سيرفو امام المحركين باستعمال الشريط اللاصق. |
|
إليك زاوية أخرى لترى تموضع المحرك سيرفو.
تأكد من ان العجلات تستطيع الحركة.
ولك حرية تصميم روبوتك بنفسك...
|
|
المستخدم هنا حاملة 4 بطاريات لأن لها حجم كبير وبذلك يمكن حمل جميع أجزاء الروبوت عليها.
لكن اذا اردت ان تستخدم حاملة 3 بطاريات فلك ذلك. |
|
أو ثلاث... |
|
لحاملو البطاريات سلكين أحمر وأسود. وكذلك الأمر بالنسبة للوحة الإليكترونية. صل الاحمر بالاحمر والاسود بالاسود ( يمكنك استخدام أسلاكا اقصر من التي في الصورة).
ملاحظة هامة: حتى لا تحترق مكونات اللوحة قم بنزع البطاريات من الحاملة قبل أن تصلهما ببعضهما البعض. |
|
توصيل المحرك سيرفو: لهذا المحرك 3 أسلاك. ولربما تكون الاسلاك عندك مختلفة قليلاً ولكنها غالبا كالآتي: البني او الاسود: ويسمى الأرضية (Ground, masse). الاحمر في الوسط: ويسمة الجهد (volt) الاصفر او الابيض: ويسمى الإشارة (signal)
قم بإيصاله كما هو في الصورة. |
|
الصق اللوحة بالشريط اللاصق فوق المحركين وتأكد من ان اسفل اللوحة لا يلامس أي معدن.
وان المقبس الأبيض الصغير يكون بارزا وواضحا حتى يسهل عليك توصيله بكابل فيما بعد.
صل سلكا واحدا من كل محرك بالسن الذي ثبته في الموضع المشار إليه بالرمز A والآخر بالـموضع B. |
|
بين المحركين وأسفل اللوحة فجوة يمكنك وضع الاسلاك الزائدة داخلها. |
|
بهذا نكن قد أنهينا مرحلة التركيب. |
البرمجة
سنحتاج لجعل رأس المحرك سيرفو يلتف للوسط تلقائيا عن طريق التحكم به من خلال الميكروكنترولور.
ولكن اولا دعنا نحصل على برنامج البرمجة الخاص بالـ (PICAXE). يمكنك الحصول عليه مجانا من الرابط التالي:
http://www.rev-ed.co.uk/picaxe/
قم بتحميله وثيبته على جهازك. |
|||
حان الآن موعد إيصال بطاقة الروبوت بالحاسوب باستعمال الكابل المخصص لذلك...
صل الكابل بالكمبيوتر ولا تنسى أن تضع كل البطاريات. وتأكد من أنه لا توجد رائحة دخان أو شرر. |
|||
عند فتح البرنامج اضغط على (options) ثم (mode) ثم على زر اسمه (Firmware) او (Check firmware version).
هنا سيقوم البرنامج بالإتصال باللوحة الإليكترونية للروبوت ليتعرف على نوع الميكروكنترولور المستخدم أو على نوع اللوحة ذاتها.قد يظهر لك على الشاشة اسما لها كهذا مثلا: (28X1/40X1). قم بضبط البرنامج على الإسم الذي ظهر لك على الشاشة لأن البرنامج لا يقوم بهذا بنفسه رغم أنه يظهر لك الإسم.
إذا لم يظهر لك شيء أو ظهر خطأ ما فما عليك يا عزيزي إلا أن تضطلع على الركن help في البرنامج ذاته ليساعدك وتدبر أمرك بنفسك.
قم الآن بفتح واجهة البرمجة الاساسية عن طريق الضغط على القائمة (FILE) ثم (New).
والآن اكتب الأوامر التالية: |
|||
servo 0, 150 wait 2 |
|
||
هذه اول برمجة لك!
في السطر الأول نعلم الميكروكنترولور بأن هناك محرك سيرفو مرتبط بالسن 0 (pin 0) ويجب ان يكون في المركز. أما السطر الثاني فيأمر الميكروكنترولور بأن ينتظر ثانيتين ليعطي المحرك سيرفو وقتا مناسبا للدوران.
ملاحظة: في بعض أنظمة التشغيل كـ Windows يتم تنفيذ هذه الأوامر لبالضغط على الزر (F5).
والآن لنحاول تحريكه لجهات اخرى : |
|||
servo 0, 75 wait 2 servo 0, 225 wait 2 servo 0, 150 wait 2 |
|
||
اذا اردته ان يدور في حلقة : |
|||
servofun: servo 0, 75 wait 2 servo 0, 225 wait 2 servo 0, 150 wait 2 goto servofun |
|
||
يمكنك اللعب به وتجربته كما تشاء بتغير قيم الدوران...
والآن لنعد لموضوعنا...
قم بإيصال المستشعر كما هو واضح في الصورة جانبه وتأكد من أن عدد الاسلاك الخارجة منه هي 3 اسلاك مهما اختلفت الوانها عن التي في الصورة.
إيصالها يكون مباشرة خلف المقبس الصغير الخاص بالبرمجة في ثلاثة اسنان. |
|||
في هذه المرحلة ستحتاج الى جسور الوصل (jumpers) وهي أجزاء صغيرة توصل سنين ببعضهما البعض.
سنحتاج لـ 3 منها. لكن ان لم تجد فيمكنك استخدام كابل قصير برأسين أنثوين مثبتتان في طرفيه كما هو واضح في الصورة جانبه.
افعل كما هو واضح لك في الصورة. |
|||
وجه الروبوت هو مستشعر الأشعة تحت الحمراء الذي يمثل عيني الروبوت.
تأكد ثانية من ان المحرك سيرفو متموضع في الوسط، وبقطعة من الشريط اللاصق الصق المستشعر على رأس المحرك سيرفو.
وهكذا نكون قد صنعنا الوجه الخاص بالروبوت. |
|||
والآن ما ينقص روبوتك هو البرمجة الكاملة له. اكتب هذه الشيفرات عند توصيل الروبوت واضغط على الزر F5 : |
|||
main: debug goto main |
|
||
ضع يدك امام عيني الروبوت ولاحظ تغير القيمة b0، أما الآن فيأتي دورك أنت ايها القارئ لتقرر ماذا يحدث عندما يقترب روبوتك عند تحركه بالأشياء. كيف تريده أن يتصرف؟ يلتفت يمينا أم يسارا ام ماذا؟
ننصحك بوضع روبوتك داخل صندوق صغير (ستبدأ العجلات بالدوران) . اكتب هذه الشيفرات واضغط F5 : |
|||
high 4 low 5 |
|
||
احدى عجلاته ستدور باتجاه واحد. اذا كانت عجلاتك تدور للخلف جرب هذا: |
|||
low 4 high 5 |
|
||
للف العجلة الاخرى اكتب هذا الشيفرة : |
|||
high 6 low 7 |
|
||
هذه الشيفرات توقف المحركين : |
|||
low 4 low 5 low 6 low 7 |
|
||
ولدوران المحرك سيرفو لاحدى الجهات : |
|||
servo 0, 75 wait 2 |
|
||
وللجهة الاخرى : |
|||
servo 0, 225 wait 2 |
|
||
وفي الوسط : |
|||
servo 0, 150 wait 2 |
|
||
وفيما يلي سأضع لك الشيفرات ومهماتها والهدف منها: |
المهمة |
الشيفرة |
أولا نحدد بكم يجب ان يكون بعد الأشياء عن الروبوت. هذه الشيفرة تضبط المسافة التي يجب ان يلتف فيها الروبوت. وتضبط كم يجب ان ننتظر مكن الوقت الى ان يدور المحرك سيرفو (هذا يرتبط بسرعته). |
symbol dangerlevel = 70 symbol turn = 300 symbol servo_turn = 700 |
يمثل الأمرين باللون البنفسجي أداة التكرار الاساسية للروبوت. حيث يبدأ الروبوت بقراءة المسافة التي امامه أولا.
فإذا لم يجد أي عائق أمامه فسيستمر متجها نحو الأمام.
وإلا فإنه سيقرر أي الاتجاهات افضل.
وهنا تنتهي أداة التكرار فنرجع إلى بدايتها لأعادة نفس الأوامر. |
main: readadc 1, b1 if b1 < dangerlevel then gosub nodanger else gosub whichway end if goto main |
هذه هي شيفرة التوجه أماما. ما يفعله الروبوت هو ضبط طريقة تحرك المحركات إذا كان الطريق سليما امامه. |
nodanger: high 5 : high 6 : low 4 : low 7 return |
وهذه هذا الشيفرة يتوقف الروبوت لحظة لتقرير الوجهة التي يجب أن يتجه نحوها. |
whichway: gosub totalhalt |
هذا يجعل الروبوت ينظر لجهة اليسار وهذا يجعل الروبوت ينتظر حتى يدور رأس المحرك سيرفو وهذا يقرأ المسافة التي امامه
|
gosub lturn pause servo_turn readadc 1, b1 gosub totalhalt |
هذا يجعل الروبوت ينظر لجهة اليمين وهذا يجعل الروبوت ينتظر حتى يدور رأس المحرك سيرفو وهذا يجعله يقرأ المسافة التي أمامه
|
gosub rturn pause servo_turn readadc 1, b2 gosub totalhalt |
هنا يقوم الروبوت بتقرير الجهة الافضل للسير فيها. |
if b1 gosub body_lturn else gosub body_rturn end if return |
هذا يجعل الروبوت يلتف ناحية اليسار ان كان قد اختارها في الشيفرة السابقة. وهذه هى المقادير التي تجعله يدور في اتجاه اليسار وهذا ليوقف الدوران عندما يكون العائق بجانبه وليس امامه
|
body_lturn: high 6 : low 5 : low 7 : high 4 gosub totalhalt return |
هذا يجعل الروبوت يلتف ناحية اليمين ان كان قد اختارها في الشيفرة السابقة. وهذه هى المقادير التي تجعله يدور في اتجاه اليمين وهذا ليوقف الدوران عندما يكون العائق بجانبه وليس امامه
|
body_rturn: high 5 : low 6 : low 4 : high 7 gosub totalhalt return |
يجعله ينظر لجهة اليمين |
rturn: |
يجعله ينظر لجهة اليسار |
lturn: |
لإيقاف تحرك الروبوت. |
totalhalt: |
ينظر للأمام |
servo 0, 150 |
يتوقف لمدة ثانية واحدة |
wait 1 |
وبالقليل من المهارة في البرمجة يمكن لروبوتك ان يفعل كل شئ في وقت واحد.
بعد انتهائك من صناعة الروبوت وبرمجته سيكون روبوتك قادرا على الحركة للأمام واذا واجهه عائق نظر الى الجهتين يمينا ويسارا ليقرر ايهما انسب له حتى يتحرك فيها.
تأليف
مؤلف الأصلي: Fritsl
ترجمة وتحرير: محمد صلاح محمود عثمان (مصر)
المراجع
http://www.instructables.com/id/How-to-make-your-first-robot-an-actual-programma/?ALLSTEPS
التعليقات
وجزاكم الله خيرا
بعد ذلك انقر على "أين تباع المركبات الإلكترونية".
ستجد هناك قسما يسمى "في الأردن".
تفحص الأسئلة والردود هناك للإجابة على سؤالك.
لذلك، من الأفضل أن تتطرق أولا إلى سلسلة "كيف تصنع روبوتك" التي ستجدها في الرابط التالي:
isna3ha.com/.../...
وأيضا ننصحك بأن تنظر إلى المشاريع الروبوتية السهلة الإنجاز في الرابط التالي:
isna3ha.com/.../...