روبوتات http://www.isnaha.com Sat, 19 Aug 2017 05:29:21 +0000 Joomla! - Open Source Content Management ar-aa آيبو - هذه قصتي http://www.isnaha.com/isnaha_new/الروبوتات/item/785-آيبو-هذه-قصتي http://www.isnaha.com/isnaha_new/الروبوتات/item/785-آيبو-هذه-قصتي

آيبو "قصة حلم تحول إلى حقيقة"

image002

أدعي آيبو الكلب الذكي، صنعت من طرف شركة صوني، سأحدتكم اليوم عن نفسي.

 

أهم ما يميزني يا أصدقاء هو أني أفهم اللغتين الانجليزية والاسبانية. وانتمي الى صنف الروبوتات المستقلة أي أني أستطيع التعلم والتفاعل مع كل من البيئة المحيطة بي وكلاب آيبو أخرى ومالكي من خلال المحفزات الخارجية التي امتلكها.

 

{youtube}nMhIiuLcjqw{/youtube}

 

{youtube}uA7HrZX2ViE{/youtube}

 

الرؤية

ترجع جذور آيبو إلى أوائل سنة 1990 حينما ابتدأ تصميم البرامج والمشاريع بالتقنيات الحديثة التي توصل لها العلم في مجال الذكاء الاصطناعي. في أواسط هذه السنة أخد الدكتور دوي (الذي يشغل رئيس مختبر الرقميات بشركة صوني) على عاتقه رؤية جديدة تتمثل في القيام بمشروع يرسل شرارة لامعة تخطو بشركة صوني للابداعات الروبوتية إلى خطوة كبيرة إلى الامام.

 

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

 

في المراحل الاولى من سنة 1992 واجه مهندسو صوني عدة تحديات في الروبوتيك لم يتطرق لها احد من قبل. في ذلك الوقت، كانت الروبوتات المستعملة للكاميرات تعتمد على العجلات في تحركاتها وتحتاج إلى إعادة برمجة لكل مهمة أو نشاط تقوم به.

 

من بين هذه التحديات واجه المهندسون مشكلة المشي بالارجل ومشكلة ادماج برنامج للذكاء الاصطناعي قادر على التفاعل مع المستشعرات الاليكترونية للروبوت كاللمس والنظر والصوت.

 

في سنة 1997، ابتدأت النماذج الاولى بالتطور حاملة معها حصاد كل الجهد المبذول خلال السنوات الاولى من البحث والتطوير. حينها استطاع فريق الدكتور دوي بتجاوز العقبات التي واجهوها في البداية. وكما عودتنا العادة، رغم هذا الجهد الجهيد كان النموذج الاول بسيطا ويمتلك ستة أرجل وكانت هي أول خطوة بالنسبة لهم للحصول على روبوت يعتمد على اﻷرجل في المشي عوض العجلات.

image004

 

 

 

 

بعدما توصل الفريق الى هذا النموذج البدائي الذي لا تربطه صلة بتصميم الكلب قرروا أن يركزوا على نحت تصميم قد يستطيع أن يحاكي جسم الكلب الى حد ما. وما تبينه الصور التالية كانت التصاميم الذي أنجزت بين سنتي 1997 و 1998.

 

 

image006 image008

التصميم الثالث

التصميم الثاني

image010
 

طورت العديد من النماذج الاخرى في محاولة للاقتراب من شكل أول آيبو ظهر في العلن. واعتمد التطوير على بنية برمجية طورت من طرف صوني نفسها تدعى OPEN-R والتي تمتاز بتسهيل التفاعل بين البرامج والمركبات الاليكترونية. بالاعتماد على هذه الأخيرة تم تطوير قدرات صوني للابداعات الروبوتية حتى أصبح بالامكان تغيير شكل الروبوت باستبدال مركب اليكتروني مكان آخر (كالرأس والذيل والارجل).

 

 

 

 تمرة النجاح

image011

بيعت الدفعة الاولى (5000 نموذج) من النموذج الأصلي لآيبو في 20 دقيقة لما قدم إلى العلن في ماي 1999 باليابان وبيع كذلك 2000 نموذجا بالولايات المتحدة الامريكية في اربعة أيام مما جعل شركة صوني تدخل موسوعة جينيس للأرقام القياسية لسنة 2001 بأسرع روبوت أليف مبيعا. عالميا، أصبح آيبو ذائع الصيت ومتحدثا عنه في وسائل الاعلام مما زاد من حماسة صوني بهذا النجاح.

 

فكرة تصميم روبوت أليف يستأنس الناس به كان له صدى عالميا كبيرا. هذا ما دفع صوني، التي كانت ما تزال تصمم نماذج متقدمة أخرى، إلى جلب آيبو إلى السوق الاوروبية في 26 من أكتوبر 1999.

 

في نوفمبر 1999، استهذفت صوني السوق اليابانية والاوروبية والامريكية حيث بيع 10000 نسخة من النموذج ERS-111 في أسبوع واحد. ومرة أخرى، تم تجاوز كل توقعات صوني حيث أنها سجلت 135000 طلبا في هذا الاسبوع الواحد.

 

في فبراير 2000، قررت صوني أن تحقق لجميع الزبائن طلباتهم فتم تجميع جميع الطلبات خلال 10 أيام قبل البدأ في المبيع.

 

وهاكم مراحل تطوري 

image013

 

 *****النماذج الأولية*****

أول نموذج بستة أرجل سنة 1997 تم تصميمه بعد جهوذ كبيرة من البحوثات والتطوير. المهم هو ضمان شيئا متحركا في البداية وبعدها تحفز النفوس لتطويره مرة بعد أخرى.

 

 

image014

المهم ما قد نستنجه من هذا هو أن لا يتوقع الانسان أن يأتي بنتيجة تذهل العقول في أول تجربة، بل يأتي الحصاد بعد الزرع والري والرعاية الطويلة. أليس كذلك؟

 

 

 

 

 

 

 

 

من بين التصاميم الأولى بين سنتي 1997 و 1998. هنالك بدأ التركيز على الاعتماد على 4 أرجل عوض 6. لكن كانت ما تزال التصاميم بدائية الشكل كما هو موضح في الصور.

image017
 

image018

 

*****الجيل الأول*****

image020

ERS-110

في سنة 1999 تم عرض آيبو في العلن لأول مرة ملقبا بالنموذج

ERS-110. وهي التمرة الاولى الحقيقية التي تم التوصل إليها. فإذا كانت النفوس كبارا تعبت في مرادها الابدان.

 

image021

وبعدما لقي النموذج السابق نجاحا بالغا تم عرض النموذج ERS-111 إلى العلن.

image024

 

*****الجيل الثاني*****

image025 

ERS-210

النجاح الذي حققه الجيل الاول من آيبو حمس صوني على إصدار الجيل الثاني في أكتوبر 2000.

أصبح النموذج ERS-210 متطورا عن سابقيه بالاضافات المميزة فيه والتي تمثلت في التفاعل مع اﻷحاسيس بشكل أكثر تطورا ومرونة حركية أعلى. تم بيع هذا النموج في كل من أستراليا وأوروبا وكندا وسنغفورة واليابان والولايات المتحدة.

 

image027

ERS-220

في نوفمبر 2001 تم إصدرا النموذج ERS-220 الذي امتاز بتغير في الطول وجودة عالية في التفاعل مع البيئة الخارجية وبرهن على أنه أقوى الروبوتات الاليفة تقدما في السوق.

image028

يسارا ERS-310 البني الفاتح
يمينا ERS-312  الاسود الفاتح

هذين النموذجين أضيفا إلى عائلة آيبو في شتنبر 2001. تم تصميمهما للتفاعل بشكل حلو ومحبوب.

image030

 

*****الجيل الثالث*****

image032

ERS-7

في سنة 2003 تم طرح النموذج ERS-7 إلى السوق.  تم تطويره بحيث يمكنه أن يتعرف على وجه وصوت صاحبه بالاضافة الى العديد من التقنيات. كما أن دور التصميم الخارجي للشكل يلعب دورا حاسما في ابهار الجمهور قبل أن يبهرهم بمميزاته.

 

image034

ERS-7M3

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

image036

ERS-7M3/T

كان هو آخر كلب آلي من عائلة الآيبو تم تطويره وإخراجه إلى السوق سنة 2006. وهنا تنتهي سلسة كلاب الايبو الآلية مع ترقب المزيد من المشاريع الأخرى.

image038

 

{youtube}2l2P8Uz0LkA{/youtube}

 


 تأليف: محمد السهلي


المراجع

 

http://www.sonyaibo.net/aibostory.htm

http://www.sony.net/SonyInfo/News/Press_Archive/199806/98-052/

http://www.sony.net/SonyInfo/News/Press_Archive/199905/99-046/

http://www.aibo-life.org/images/slides/aibo_proto97_1.shtml

http://www.communistrobot.com/robots/186

http://www.sony.net/SonyInfo/News/Press_Archive/200001/00-002E/

http://www.megadroid.com/Robots/Aibo/aibo-ers210a.htm


 

 

]]>
nihon.sahli@gmail.com (محمد السهلي) قصص روبوتية Thu, 22 Sep 2011 06:27:56 +0000
أسيمو - هذه قصتي http://www.isnaha.com/isnaha_new/الروبوتات/item/786-أسيمو-هذه-قصتي http://www.isnaha.com/isnaha_new/الروبوتات/item/786-أسيمو-هذه-قصتي


أسيمو "هذه قصتي"

00

أدعى أسيمو وأرجو أن أكون أول إنسان آلي متطور، فهل تعرفون قصتي؟

01

كثير من الإنجازات البشرية بدأت بنموذج بسيط وهكذا بدأت أنا سنة 1986. كان جسدي عبارة عن رجلين فقط، بدون رأس ولا بطن ولا يدين.

كانت مهمتي الأولى هي أن أخطو وأسير في خط مستقم فقط وياما تعثرت وفقدت توازني.

وحين نجحت، كانت كل خطوة أخطوها تستغرق 20 ثانية أي أني كنت بطيئا جدا. كنت أدعى حينها بالنموذج E0.

 

02

ما بين 1987 و 1991

كان الهدف خلال هذه السنوات هو المشي بسرعة، ومن أجل هذا تطلب دراسة المخلوق البشري وكيف يستطيع المشي على رجلين

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

 

مررت حينها من النموذج E1 حيث كانت سرعتي لا تتعدى ربع كيلومتر في الساعة الواحدة. بطيييييئ.

لما تطورت قليلا إلى النموذج E2 أصبحت سرعتي 1.2 كيلومتر في الساعة الواحدة.

لكن أصبح حجمي كبيرا وأصبح عندي بطن. ولما حققت سرعة 3 كيلومترات في الساعة الواحدة ,اصبجت أدعى النموذج E3.

وحتى الآن لم أكن أستطيع المشي إلا على أرض مسطحة وبدون معوقات أو عراقيل على الأرض.

03

ما بين 1991 و 1993

هنا أريد مني أن أمشي في بيئة معقدة التضاريس كبيئة الإنسان تماما. كل هذه السنوات وأنا أحاول المشي فقط.

سبحان الله بعض الحيوانات تتمكن من المشي في اللحظات الأولى من ولادتها والانسان يتمكن من المشي خلال السنتين الأولتين من ولادته.

سنة بعد سنة يصبح وزني أكبر فأكبر ولأجل التمكن من المشي فقط.

 

تم إزاحة طول ساقي إلى 40 سنتميتر وبالتالي أصبحت ركبتي عاليتين قليلا وذلك لمحاكاة سرعة الإنسان في المشي التي تبلغ 4.7 كيلومتر في الساعة.

لقبت حينها بالنموذج E4. كان بطني أحمر اللون. وكان أول تحرك مستقل لي عندما طورت إلى النموذج E5. لكن بطني وإذا أردت فقل رأسي كان كبير الحجم. ولقابلية الطلوع والنزول من السلالم وكذلك تجاوز المعوقات تم تطويري إلى النموذج E6.

04

ما بين 1993 و 1997

مع تقدم التكنولوجيا والحواسيب، أصبح الهدف خلال هذه السنوات هو جعلي إنسانا آليا مستقلا تماما عن المساعدة. وكذلك وجب دمج يدين لي ورأس.

أصبح التقدم سريعا هذه المرة، أليس كذلك يا أحباب. نعم في البداية تكون الغاية بسيطة والتقدم بطيئا ولكن من أسر على باب فتحه ولو كان من حديد.

إليكم الآن باقي القصة.

 

مع هذا التطور المفاجئ انتقلت إلى مرحلة المراهقة ليكون أول لقب لي هو النموذج P1. كان أول نموذج يحاكي جسم الإنسان شيئا ما.

كان طولي 1.915 مترا ووزن هائل 175 كيلوغرام مع رأس ضخم. أصبحت أتحكم بشحن واستهلاك الطاقة، وامساك مقبض الباب وكذلك رفع وحمل الأشياء. وأصبح البحث يركز على التوافق بين حركتي اليدين والرجلين.

 

ففي سنة 1996 لقبت بالنموذج P2. وكان هو أول نموذج يذهل الناس بحركاته الواقعية. بل كنت أول إنسان آلي قادر على التنظيم الذاتي.

طولي أصبح أقصر من النموذج السابق 1.820 مترا. عفوا كان وزني ثقيلا جدا 210 كلغ.

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

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

 

في السنة الموالية 1997 رقيت إلى النموذج P3. تم تخفيف وزني إلى 130 كلغ وتقصير طولي إلى 1.6 متر. وحققت استقلالية كلية في هذه المرحلة.

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

 

05

pn2

أصبحت شابا أخيرا يا أحباب. وأصبحت ألقب بأسيمو انطلاقا من سنة 2000.

تم التركيز على تطوير مرونة المشي واستعملت في هذا تقنية جديدة تسمى (أنا أمشي i-WALK) وكذلك تم تخفيف وزني وتقصير طولي حتى أتناسب مع بيئة الإنسان.

ولا تنسوا التصميم الخارجي لجسدي، فأنا الآن أبدو أحلى وأسوم من ذي قبل، أليس كذلك؟

أقول لكم سرا، مهما أنجزت من عمل متقن فلابد أن تكمل إتقانه بتصميم رائع للمظهر الخارجي، لأن الناس يحكمون على المظهر أولا. أوليس من أسماء الله الحسنى "البديع"؟

06

أزداد وسامة وذكاء وخفة وزن سنة بعد سنة. وإليكم مراحل نموي :

 

07

 

سنة 2001

ما زال التركيز على تطوير تقنية المشي التي كانت أساس بدايتي إذا تذكرتم. أصبحت مرنا في تحركاتي وطورت لأتعامل مع المنحدرات أيضا.

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

التقنيات المضافة في هذه المرحلة: تطوير القدرة على المشي بمرونة أكبر.

 

08

 

سنة 2002

ماذا تتوقعون الآن؟ هنا وجب علي التعرف والتعامل مع الإشارات المتداولة بين الناس. مثلا: كيفية الترحيب بالناس والذهاب مع شخص إلى مكان معين.

نعم، وأصبحت قادرا على التعرف على أوجه الأشخاص كذلك.

التقنيات المضافة في هذه المرحلة: القدرة على التواصل وقدرة التعرف على الأشياء.

 

09

سنة 2004

تم تحسين قدراتي لأتعايش مع بيئة الإنسان بشكل أكبر مع سرعة اتخاذ قراراتي.

التقنيات المضافة في هذه المرحلة: سرعة الحركة. محاكاة طريقة مشي إنسان بشكل أكبر. المصافحة. مرافقة الإنسان يدا بيد،

دفع طاولة، القدرة على تقديم المشروبات كالنادل وأخرى متعددة.

 

10

سنة 2005

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

كما أن سرعتي القصوى أصبحت تبلغ 6 كيلومترات في الساعة.

التقنيات المضافة في هذه المرحلة: تحسن التقنيات السابقة مع القدرة على الرقص.

 

11

سنة 2007

والآن مع هذ التقدم المذهل الذي حصل لي وجب علي أن أطور لأتعامل مع بيئة بها العديد من الناس وتقديم خدمات أكثر بالمشاركة مع قرنائي الآخرين من عائلة أسيمو.

التقنيات المضافة في هذه المرحلة: التعاون مع أسيموات من نفس عائلتي. القدرة على تمييز الأشخاص، وشحن نفسي بنفسي.

بالإضافة إلى زيادة تطوير وتحسين فاعلية القدرات السابقة الذكر.

 

12

سنة 2010

احتفلت بعيد ميلادي العاشر أي عندما طورت إلى نموذج أسيمو. لكن لا أستطيع أن آكل الكعكعة.

 

13

سنة 2011

أصبحت إنسانا آليا عالميا يا أحباب، ترقيو المزيد عني. انطلاقا من هذا الموقع المتميز ستتعلمون كيف تنجزون أسيمو العربي بل وأحسن إن شاء الله.

ترقبو المزيد بل وشاركونا أيضا بمقترحاتكم وأفكاركم.

 

 

اترككم الان مع هذا الفيديو الذي يختصر مراحل تطوري:

 

{youtube}dwBlpdJcEd8{/youtube}

 


التأليف

المؤلف: محمد السهلي

 


المراجع

http://world.honda.com/ASIMO/history/

http://www.honda.co.jp/ASIMO/

http://ar.wikipedia.org/wiki/%D8%A3%D8%B3%D9%8A%D9%85%D9%88

http://blogs.yahoo.co.jp/cub_ki_mono1/folder/844066.html

]]>
nihon.sahli@gmail.com (محمد السهلي) قصص روبوتية Thu, 22 Sep 2011 06:27:56 +0000
ابدأ من حيث انتهوا - الأفعى الروبوتية http://www.isnaha.com/isnaha_new/الروبوتات/item/792-ابدأ-من-حيث-انتهوا-الأفعى-الروبوتية http://www.isnaha.com/isnaha_new/الروبوتات/item/792-ابدأ-من-حيث-انتهوا-الأفعى-الروبوتية

ابدأ من حيث انتهوا - الأفعى الروبوتية ACM-R5

image001

نفتتح سلسلة ابدأ من حيث انتهوا بأول مقال لها.

الفكرة بسيطة وراء انشاء الأفعى الروبوتية وليست معقدة حتى بالامكان للفرد منكم أن ينجز أفعى روبوتية

مثلها أو أحسن منها إذا أصر على ذلك. احدثكم اليوم عنها وعن الطريقة العامة لإنشاء الأفاعي الروبوتية.

 


الهدف

 

لابد من تعيين الهدف في البداية. هل تريد انشاء روبوت للتسلية فقط؟ أم لك فكرة وراء استخدام روبوتك؟ أيا كان، على الأقل ضع هدفا ولو كان كل ما في الامر هو تسلية فقط. 

طًورت الأفعى الروبوتية من طرف مختبر هيروسي فوكوشيما بمعهد طوكيو للتكنولوجيا. الهدف العام وراء تطوير هذه الأفعى هو كالتالي:

 

من أجل فحص ومراقبة الأماكن الخطرة على الانسان

 

أمثلة:

استكشاف الكهوف الضيقة

مراقبة أماكن بها غازات سامة

مراقبة أماكن بها اشعاعات نووية

استكشاف أعماق البحار

استكشاف الأنابيب

...


 التفكر 

 

كيف خُلقت؟ كيف تمشي الأفعى يا ترى؟؟؟ آه، يوجد العديد من الحيات والأفاعي فائقة الاتقان من طرف من أتقن كل شيء خلقه. أولا وقبل كل شيء لننظر في إحداها ونتفكر فيها كيف خلقت، ولا تخف فهي لن تعضك لأنها في الفيديو فقط. لنشاهد مختلف تحركات الأفاعي التالية:

 

{youtube}zEto1-ZTbd4{/youtube}

  

المشكلة العظمى تكمن في طريقة تحرك الأفعى فهي لا تملك رجلين ولا يدين أو جناحين، بل تمشي على بطنها. وانشاء آلة روبوتية تحاكي الأفعى في تحركها تماما أمر فائق التعقيد حقا. لكن، لا بد من التبسيط في البداية وأنا في رأيي أن القوة تكمن في البساطة.

 

أول ما قد تفكر فيه هو القطارات. فهي تشبه الأفاعي في تحركها شيئا ما. القطار هو مجموعة من العربات المتصلة ببعضها البعض مزودة بعجلات وتتحرك على سكة حديدية. وبالتالي، كأول تطبيق بسيط يمكن الاعتماد عليه هو صنع قطار بسيط بعجلات لا يحتاج لسكة حديدية.

 


 النموذج ACM-R1

  

التصميم

 

يمكن للقطار أن يعمل حركة تموجية إذا كان على سكة متموجة. لكن كيف يمكنك أن تعملها بدون سكة حديدية يا ترى؟؟؟؟ كل ما تحتاج اليه بعد صنع القطار أو الحصول عليه من محلات ألعاب الأطفال ثم قم بالتعديلات التالية:

  أن تجعل بين كل عربتين محركا كهربائيا مركبا بطريقة عمودية ليربط بين كل عربتين (محرك سيرفو غالبا)

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

   أمر آخر ثانوي وهو تزويد الروبوت بكاميرا في الأمام أو ببعض المستشعرات الاليكترونية.

 

التطبيق 

نموذج بسيط يمكنه أن يتموج كالأفعى في حركته.

مزود بـ 5 محركات الكهربائية تتوسط عرباته

يمكنك أن تعيد برمجته وأن تضيف اليه بعض المسشعرات الاليكترونية حسب رغباتك.

 

image002


النموذج ACM-R4H

 

التصميم

 

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

 

    عربتين على الأقل (للتسهيل فقط)

     أربع عجلات لكل عربة

     محرك كهربائي واحد يتحكم في حركة عربة واحدة. (محرك بسيط)

    محرك كهربائي آخر يتوسط عجلتي العربة الأمامية والخلفية. (غالبا ما سيكون محرك سيرفو )

     محرك آخر بين كل عربتين ليمكن الأفعى من اللف والدوران. (غالبا ما سيكون محرك سيرفو)

     مستشعر اليكتروني: كاميرا مثلا. وهو أمر ثانوي في البداية، لكن تزويدها بكاميرا يمَكنك من مشاهدة الأماكن التي تتحرك فيها الحية الروبوتية.

 

ربما فهمت أن الأمر بسيط، أليس كذلك؟ إذا كان هذا صحيحا فهذا ما نريده منك. دائما بسطها، بسطها، بسطها.... ألم يذكر خالق الكون أنه يريد بنا اليسر لا العسر.... ألم يكن النبي صلى الله عليه وسلم إذاخير بين أمرين إلا اختار أيسرهما ما لم يكن كفرا.... هل تعرف ماذا قال أنشطاين عن الفهم؟؟؟ قال: إن لم تستطع أن تفهمها لطفل في السادسة من عمره فأنت أيضا لم تفهمها....

 

التطبيق

 

image003

نموذج بسيط يمكنه أن:

  • يرفع رأسه كأفعى الكوبرا.
  • يتجه يمينا أو يسارا.

الرأس مزود بكاميرا وبالتالي يمكنك التحكم بالروبوت عن بعد ورؤية ما يكون أمامه. يمكنك أيضا أن تعوض الكاميرا أو تزود الأفعى بمستشعرات اليكترونية للقيام بمهام أخرى حسب رغبتك.

 

{youtube}E0oN9yz5pTw{/youtube}


النموذج ACM-R3n

 

التصميم

 

هل فكرت في بعض من عيوب النموذج ACM-R4H؟ فكر قبل أن تكمل.

هذا النموذج انما هو تطوير للنموذج ACM-R4H، بحيث إذا انقلب على جنبه يمكنه التحرك أيضا.

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

 

التطبيق

 

كل عربة مزودة بمحرك سيرفو واحد وكنترولور المحرك أيضا. يتم التحكم بحركة المحركات انطلاقا من بطاقة برمجية غالبا ما ستكون موضعة في رأس الأفعى.

 

يمكنك اعادة برمجته واضافة مستشعرات اليكترونية أخرى اليه ايضا.

image004

 

{youtube}10aIZcjgSYE{/youtube}


النموذج ACM-R5

  

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

 

التصميم

 

مرة أخرى: هل فكرت في عيوب النموذج السابق؟؟

 

النموذج السابق يمكنه التحرك على جنبين فقط. ولو ترى حركته بإمعان ستجد أنها حركة تفتقد إلى كثير من الليونة. ولمالا تكون حية  تستطيع السباحة أيضا؟ فما العمل إذن؟ الحل بسيط. لما لا نستعمل الآتي:

 

عربات أسطوانية الشكل من أجل القيام بحركة تمتاز بمرونة عالية وتمكن من الاقتراب من شكل الحية الحقيقي أيضا.

 

تصميم كل مفصل بين كل عربتين تجده في الصور المحيطة بهذا النص.

 

كل مفصل مغطى بغلاف مطاطي رخو من أجل حماية الأجهزة من الماء عند القيام بعملية السباحة.

 

image005

image006

image007

 

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

 

image008

رأس الحية مزود بكاميرا كما هو الشأن لسائر الحيات الروبوتية السابقة.  ومدعوما أيضا بصمامات ثنائية ضوئية من أجل الإنارة.

image009 

التطبيق

 

كل مفصل مزود بميكروبروسيسور (معالج) وبطارية ومحركات خاصة به. وبالتالي كل فقرة من فقرات الحية تعمل بشكل مستقل.

 

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

 

 

image001

 

{youtube}LZJslSbsLOU{/youtube}

 


 أين يكمن النقص في هذا النموذج؟

 

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

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

 

وبالتالي كما ترون أنا ما تم التوصل اليه ليس ببعيد. ويمكن للواحد منكم أن يطور هذه الحية بعدما فهم آليات تحركها بنفسه. قد نزودكم بمزيد من التفاصيل العملية حول تصميم الأفعى الروبوتية في القريب العاجل ان شاء الله. لكن لحبذا لو كنت شغوفا ان تقرر من الآن صنع مثل هذا النوع من الحيات الروبوتية.

 

اسمعنا بأخبارك عما قريب.

 


تأليف محمد السهلي

 


المراجع

 

 http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4399390

http://www.hibot.co.jp/development.php?lang=en

http://www-robot.mes.titech.ac.jp/robot/snake/acm-r5/acm-r5_e.html 

http://www.snakerobots.com/S7.html 

http://www.robotonline.net/en/articles/534/german-future-prize-for-bionic-robot/

http://robot.watch.impress.co.jp/cda/news/2007/08/20/610.html

http://www.timog.com/brb/robo-japan-2008-acm-r5-snake-robot


 

]]>
nihon.sahli@gmail.com (محمد السهلي) روبوتات للباحثين Mon, 07 Nov 2011 19:34:10 +0000
ابدأ من حيث انتهوا - الكلب الكبير http://www.isnaha.com/isnaha_new/الروبوتات/item/791-ابدأ-من-حيث-انتهوا-الكلب-الكبير http://www.isnaha.com/isnaha_new/الروبوتات/item/791-ابدأ-من-حيث-انتهوا-الكلب-الكبير

ابدأ من حيث انتهوا الكلب الكبير

image002

الكلب الكبير هو روبوت عسكري تقوم الولايات المتحدة الأمريكية بتطويره من أجل مساعدة الجنود

في المهمات العسكرية عن طريق حمل أمتعتهم أو ما شابه

نقوم اليوم بدراسة تفصيليلية لهذا الروبوت حتى يتسنى للمهتمين منكم أن ينجزوا مثله أو خيرا منه.


تقديم

 

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

 


الهدف  

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

 

الهدف وراء إنشاء روبوت الكلب الكبير هو كالتالي:

 

إنجاز روبوت قادر على التحرك والتنقل إلى أي مكان يمكن للإنسان أو الحيوان التنقل إليه

 

image001

 

هذا الروبوت سيقوم بمساعدة الجنود في مهماتهم العسكرية عن طريق حمل أمتعتهم ومرافقتهم أينما ولوا وحيثما ارتحلوا. 

 


أمثلة 

{vsig}cat_robot/theyfinished/bigdog/00{/vsig}

 


استعراض للروبوت

 

{youtube}cNZPRsrwumQ{/youtube}

 


التفكر

 

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

 

{vsig}cat_robot/theyfinished/bigdog/01{/vsig}

 

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

 

{youtube}jdikR_mxp6I{/youtube}

 

{youtube}6uB2a2K6HGI{/youtube} 

 

وإذا كان عندك وقت، أنهِ المقال أولا ثم عد إلى هذا الوثائقي وشاهده ليس لمجرد المتعة فقط بل بعين تحليلية ثاقبة، إنك مخلوق قوي وبإمكانك فعل الكثير: 

 

{youtube}k0VGBZjqyIE{/youtube}

 


هندسة الروبوت

 

التصميم العام

image003

image004

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

 

الحاسوب 

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

 

الصورة جانبه تمثل الحاسوب الذي استعمل لتدبير مهام الكلب الكبير. ويتميز بالتالي:

معالج من فئة  Pentium 4

PC/104 هو اسم اللوحة الاليكترونية ام

 نظام تشغيل صغير يشبه UNIX يسمى بـ QNX

 البرمجة باستعمال اللغة ++C

 

قد يأخذك العجب في شكل هذا الحاسوب، لكن دعني أسألك سؤال: مالذي ستحتاجه من الشاشة ولوحة المفاتيح عندما تريد أن تزود الروبوت بحاسوب؟؟ ستزيد في وزنه فقط! وبالتالي، يمكنك الاستغناء عنهما والاعتماد على اللوحة ام الاليكترونية داخل الحاسوب مع بعض التعديلات إذا تطلب الأمر.

image005

 

الدوال اساسية التي تمت برمجتها باستعمال اللغة ++C تتمثل في المحاور التالية:

التحكم : أي التحكم بطريقة المشي لدى ارجل.

الاستشعار: أي التعامل مع مختلف المستشعرات الاليكترونية التي تمثل مختلف الحواس لدى الكلب الكبير.

جمع البيانات

الاتصالات

توزيع الكهرباء لمختلف أجهزة الكلب الكبير.

 

المحرك الرئيسي

image006

يقوم المحرك بقيادة المضخات الهيدروليكية التي بدورها تقود محركات ارجل.

 

اسم المحرك:  15-HP go-kart engine

اسطوانة واحدة

ذي شوطين

القدرة: 9000 دورة في الدقيقة

نظام التبريد بالماء

يبدأ بالعمل عند تزويده بشحنة كهربائية في البداية

image009

image008

 

ارجل

image009

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

 

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

 

فأنا أنصحك إن كنت تريد أن تبدأ بصنع روبوت، عليك البدء بتصميم أرجل بطريقة ميكانيكية كالمثال الذي تراه في الصورة جانبه. وهذا سيجرك وبلا شك إلى التفكر في خلق الله، وهنا قد تفهم عندما يخاطبك خالقك ويقول {وَكَأَيِّنْ مِنْ آَيَةٍ فِي السَّمَاوَاتِ وَالْأَرْضِ يَمُرُّونَ عَلَيْهَا وَهُمْ عَنْهَا مُعْرِضُونَ}... والآية تعني المعجزة...

 

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

image010

رجل كلب روبوتي إيطالي

أرجل الكلب الكبير مزودة بمحركات سيرفو و محركات هيدروليكية (هيدروليكية أي تعمل بالهواء أو بسائل)

 

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

 

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

 

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

image011

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

 

من بين هذه البرامج نذكرAutoCAD وSolidWorks  و Google SketchUp و ….

 

التصميم جانبه هو تصميم رجل الكلب الروبوتي الايطالي الصنع الذي سنتطرق له أسفله.

image012

 

المستشعرات الإليكترونية

image013

حواس أي روبوت تمثل بالمستشعرات الإليكترونية. والكلب الكبير مزود بعدة مستشعرات اليكترونية أهمها مستشعرات مثيتة على ارجل للمساعدة على المشي ومستشعرات الرؤيةالتي تخوله تتبع صاحبه الجندي مثلا.

 

لنا سلسلة خاصة لبرمجة المستشعرات الإليكترونية تساعدك على إنجاز روبوت متقدم تجدها في ركن برمجة الروبوت.

 

نستعرض فيما يلي أهم هذه المستشعرات مع بيان مهامها بشكل مبسط:

  

LIDAR

 

نظام الليدار يخول الروبوت من تتبع صاحبه الجندي من دون أن يحتاج هذا الأخير من قيادته.

 

يبقى على الجندي أن يلبس بذلة تضم قطعا معدنية أو اليكترونية ليتعرف عليها المستشعر LIDAR وبالتالي يمكن للحاسوب من قيادة الروبوت لتتبع صاحبه مع الحفاظ على مسافة محددة فاصلة بين الجندي والروبوت.

image014

 

Stereo vision

 

مزود بثلاث مستشعرات من هذا النوع. تخوله من تفادي العوائق وتحديد المنحنى الأرضي.

image015

  

الجيروسكوب Gyro

 

مزود بثلاث جيروسكوبات لحساب نسبة الدوران وثلاث جيروسكوبات لحساب التسارع الخطي.

 

يستعمل الجيروسكوب لحفظ توازن أو اتجاه الروبوت.

 

كما أن جهاز الآيفون مثلا مزود بجيروسكوب وبالتالي يمكن تغيير طريقة عرض الشاشة عندما تميله مثلا.

image016

مقياس الجهد الانزلاق الخطي Linear Pot

 

مزود بـ 16 مستشعرا من هذا النوع أربعة في كل رجل. واحد في الركبة وآخر في الرسغ واثنين في الورك.

 

image017

Load Cell

 

مزود بـ 16 مستشعرا من هذا النوع متموضعة في ارجل تراقب المحركات وقوة كل رسغ حيث تقوم بتحويل القوة إلى إشارة كهربائية.

image018

مستشعر التيار  Current sensor

 

يقوم بقياس التيار ويرسل إشارة تعبر عنه.

مزود بـ 16 من هذا النوع.

image019

مستشعر درجة الحرارة  Temperature

 

لقياس درجة حرارة المحرك الرئيسي والزيت.

مزود بـ ثلاثة من هذا النوع.

image020

مستشعر التدفق  Flow

 

لحساب نسبة تدفق السوائل (وهنا نعني الزيت)

مزود بأربعة.

image021

مستشعر الضغط  Pressure

 

يمكن استخدام هذا المسشعر لقياس ضغط الغازات أو السوائل. واستعمل اثنين منه في الكلب الكبير لقياس ضغط الزيت.

 

image022

التحكم  Governor

 

مزود باثنين منهذا المستشعر لمراقبة المحرك الرئيسي والجهد الكهربائي للبطارية.

image023

  


طريقة التحكم بالروبوت

 

image024

يقوم الجندي (قائد الكلب) بلبس بذلة مجهزة بأدوات للتحكم بالروبوت والتواصل معه أيضا. والمسألة سهلة هنا إذا تمت إضافة جهاز اتصال كـ WiFi أو الأشعة الحمراء أو البلوتوث أو ما شابه ذلك...

  

 


نموذج الكلب الصغير LittleDog

 

هو النموذج المصغر للكلب الكبير، ويمكنك مشاهدة أهم خصائصه في الفيديو التالي:

 

{youtube}nUQsRPJ1dYw{/youtube}

 image030
image031
 

 


نموذج الكلب الكبير BigDog

 

طوله 91 سنتمتر وارتفاعه 76 سنتمتر ويزن 110 كيلوغراما. تقريبا بحجم بغل صغير.

يستطيع المشي على أرض وعرة بسرعة 6.4 كيلومترا في الساعة، وقادر على حمل 150 كيلوغراما من الأمتعة، وقدرة على تسلق عقبة مائلة بـ 35 درجة كأقصى حد.

image025

 


نموذج الكلب العملاق LS3

 

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

image026

 


النموذج HyQ الإيطالي

 

ابتدأ البحث فيه في ربيع سنة 2007 في المعهد الإيطالي للتكنولوجيا. وكان الهدف هو إنشاء روبوت رباعي الأرجل قادر على التحرك ديناميكيا كالجري والقفز والتحرك على أرض وعرة.

 

تم امتحان عمل أو رجل صنعت بشكل مكثف بين سنة 2008 و2009 (ولو تتذكر هذا ما قلناه آنفا عن صعوبة الرجل). وأول نموذج من هذا الروبوت تم اصداره سنة 2010. وكما جرت العادة، بعد النجاح الأول نقوم بتحسين أداء صنعنا ميكانيكيا وبرمجيا كذلك.

image027

 

وهاك مختلف النماذج لهذا الروبوت:  

{vsig}cat_robot/theyfinished/bigdog/02{/vsig}

 

يمكنك أن ترى مختلف وظائفه في هذا الفيديو: 

{youtube}wPxXwYGZmd8{/youtube}

 


تحليل

 

للكلب الكبير والنموذج الإيطالي عدة مزايا من جري وقفز والمشي على أرض وعرة وما إلى ذلك. لكن إذا ما قارنت بالكلب الحقيقي فستلاحظ أن الفرق شاسع جدا جدا. فمن خلال ملاحظتي لمميزات الكلب الآلي تبين لي ما يلي:

 

l          إذا ما حدث وانقلب الكلب الآلي على ظهره بفعل حادث مثلا، فيبدوا أنه لن يستطيع الوقوف تلقائيا إلا بمساعدة الجنود. وهذا سيستعصي على الجنود لثقل وزنه أيضا.

l          الشيء الآخر وهو إذا وضع الكلب الآلي في الماء فيبدوا أنها ستون نهايته إذا تسرب الماء إلى أجزاءه الإليكترونية،

l          وماذا عن مصادفته لنهر أو بحيرة أو بحر مثلا، فسيغرق لا محالة إذ أنه لا يستطيع السباحة عكس الكلب الحقيقي.

 

ليس من الضروري الجري وراء إنشاء كلب آلي كما يفعلون، لكن جائتني فكرة في تطوير حصان آلي، حيث أن الحصان استغدم عبر مر العصور في الحروب وهو عكس الحيوانات الأخرى لا يهاب المعارك مهما حميت واشتد وطيسها. وبهذا ربما نرجع إلى العصور الوسطى باستخدام أحصنة في الحرب لكن هذه المرة آلية الصنع ههههههه.

 

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

 

{vsig}cat_robot/theyfinished/bigdog/03{/vsig}

 

أقول لك هذا لأشير لك بمميزات تضيفها أنت إن قررت صنع روبوت يشبهه أو يظاهيه. أوليس هذه السلسلة مسماة بابدأ من حيث انتهوا!!!

 


وفي الأخير

 

أرجوا من الله أن يسعفنا الحظ للتطرق إلى برمجة المزيد من المستشعرات الإليكترونية في سلسلة برمجة المستشعرات الاليكترونية من أجل مساعدتكم على صناعة مختلف الروبوتات من سيارات وطائرات ومركبات وغواصات وما إلى ذاكوإذا كان باستطاعتك أنت أيها القارئ مساعدتنا في هذا فسنكون ممتنين لك وعسى الله أن يجعلها حسنة جارية لك للمساعدة في بناء الأمة. فيد واحدة لا تصفق!!!!

 


تأليف

 

محمد السهلي 


المراجع

 

 

]]>
nihon.sahli@gmail.com (محمد السهلي) روبوتات للباحثين Sun, 04 Dec 2011 00:00:00 +0000
ابدأ من حيث انتهوا – اللباس الآلي HAL http://www.isnaha.com/isnaha_new/الروبوتات/item/790-ابدأ-من-حيث-انتهوا-–-اللباس-الآلي-hal http://www.isnaha.com/isnaha_new/الروبوتات/item/790-ابدأ-من-حيث-انتهوا-–-اللباس-الآلي-hal

ابدأ من حيث انتهوا – اللباس الآلي HAL

00

يمكن للشخص العادي أن يرفع أثقالا لا يستطيع عليها في الوضع العادي، ويمكننا مساعدة المعاقين والمرضى والمسننين وذوات الحالات الخاصة على التحسين من قدراتهم الحركية... كل ذلك باستعمال اللباس الآلي HAL.

 


تقديم

 

أقدم لكم ما جد واستجد في عالم الصناعة لعل أحدا منكم يعجبه شيئا فيبادر في صنعه بعد أن يجد التفاصيل العامة حول صناعة ما نتكلم عنه.

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

 

 


الهدف

 

الهدف وراء إنشاء هذا الروبوت هو كالتالي:

إنجاز لباس آلي من أجل تحسين وتقوية تحركات الشخص لاسيما عند مزاولة الأعمال الشاقة ومن أجل المرضى وذوا العاهات.

image002

 

 


أمثلة 

 

{vsig}cat_robot/theyfinished/hal/00{/vsig}

 

 

{youtube}fy7ipDAyXtI{/youtube}

 

 


دور الخيال العلمي

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

حاولت البحث ثانية عن الرسوم المتحركة التي شاهدت فيها هذه الفكرة لكن لم أجدها. هذا إن دل على شيء فإنما يدل على أن المرء عوض أن يقضي وقت فراغه في الأفلام الضارة وغير النافعة فليوجه نفسه على الأقل لمشاهدة أفلام الخيال العلمي وتنبؤات بعض الكتاب والمخرجين حول ما يمكن اختراعه في المستقبل. إذا كان عندك وقت فارغ فقم بمشاهدة هكذا أفلام أو رسوم متحركة فربما ساعدتك على الإتيان أو تطوير فكرة ما.

image006

 

 


التفكر في حركات الانسان

 

جسم الانسان ينتج شحنات كهربائية مختلفة ونقصانها في الدماغ قد بؤدي بصاحبها إلى الصرع. فبدون الكهرباء لم تكن لتستطيع قراءة هذا المقال الآن. ليس لأن الحاسوب لن يشتغل ولكن لأن دماغك أنت لن يشتغل.

 

عندما نتكلم عن الجهاز العصبي ونقول أنه يرسل "إشارات" إلى الدماغ أو أن الدماغ يأمر اليدين بفتح الباب ففي الحقيقة نتكلم عن كهرباء تحمل رسائل بين النفطتين أ و ب.

 

عندما نتحدث عن تنقل الكهرباء في الجسم فليست الحالة كما هي بالنسبة للأسلاك المعدنية وتنقل الاليكترونات فيها. فما يحدث هو انتقال شحنة كهربائية من خلية لأخرى إلى أن تصل مبتغاها.

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

image007

   


التصميم العام

 

هذا هو التصميم العام لهذا الروبوت. وهو عبارة عن حزمة من المحركات والمستشعرات الإليكترونية كما سترى لاحقا في بقية المقال. سنحاول بطبيعة الحال أن نزودك بتفاصيله إذا كنت تهتم بتطوير نموذج آخر له أو على الأقل يلهمك بفكرة جديدة لروبوت آخر.

image008

  

 


طريقة التحكم بالروبوت

 

 

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

image009

الإشارات البيوكهربائية تظهر على سطح الجلد.

image010

 

 

image011

تقوم وحدات الطاقة بتشغيل المحركات ووضع الأرجل الآلية تحت العمل.

image012

ومنه، يقوم الروبوت يمساعدة الشخص بإنتاج تحركات مفتعلة.

 

 

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

 


تقنيا

المحركات الكهربائية

 

تم استعمال محركات سيرفو. وربما لو تم الاعتماد على المحركات الخطوية (كالتي تجدها في الطابعة) سيكون أفضل إلا أنها تتطلب تحكما برمجيا أكبر.

 

وحدات الطاقة

 

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

 

وحدة التحكم

 

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

 

المستشعرات الإليكترونية

 

مستشعر القوة force sensor

 

مستشعر بسيط جدا وتجد طريقة استخدامه في المقال: برمجة المستشعرات – استشعار القوة

 

 

 

 

 

 image013

مستشعر الزاوية angle sensor

 

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

 

مستشعر الإشارات البيوكهربائية Bio-electrical signal sensor

 

اتصلت بالمختبر الذي يقوم بتطوير هذه البذلة الآلية لكن لم يصلني الجواب لهذه اللحظة. وفي الحقيقة لم أستطع الحصول على المستشعر الذي استعملوه بالضبط. وهو كما يبدوا أنه سر صناعة هذا الروبوت. لكن في رأيي، ربما تم استعمال أحد المستشعرات التالية:

 

  •  مستشعر التيار الكهربائي Current sensor الذي يقوم بتحديد شدة التيار الكهربائي المطبق على منطقة محددة. وحيث أن الجسم ينتج شحنات كهربائية خفيفة فمن المفترض أنه تم استعمال هذا النوع من المستشعرات. إذا عرفت شيئا عن هذا المستشعر فمن فضلك أفدنا به إما بمقال عنه أو على الأقل تعليق عليه.
  • مستشعر القوة Force sensor: تجد طريقة استعماله في المقال برمجة المستشعرات – استشعار القوة
  •  Goniometer : يمكن أن يستعمل لقياس الزاوية في مفاصل الرجل والذراع. وتوجد نسخة مصغرة له من أجل مفاصل الأصابع.[المرجع 3]
  • EKG Sensor : وهو الأكثر احتمالا لصنع هذا الروبوت حيث أنه يعمل على قياس الشحنات الكهربائية المنتجة أثناء عمل العضلة. يمكن أن يستعمل لقياس الشحنات الكهربائية للقلب أيضا. [المراجع 5 و 4 و 3]

  


النموذج HAL-3 

النموذج الأول (سنة 2000) الذي تم تطويره من طرف الدكتور سانكاي وفريقه يتكون فقط من أرجل آلية.

 

تطلب هذا النموذج ربطه بالحاسوب مباشرة. بطاريته لوحدها تزن 22 كيلوغراما وتحتاج لمساعدين لتركيبها مما جعله غير فعال وغير تطبيقي.

 

image014

  


النموذج HAL-5 

أما هذا النموذج فهو أكثر تطورا من سابقه حيث يضم ذراعين وساقين آلين ويزن فقط 10 كيلوغرامات.

أما البطارية والحاسوب فتمت إضافتهما إلى حزام الروبوت.

 

image015

  


تحليل

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

 

image016

بالنسبة للأفكار التي أظن أنه بالإمكان إضافتها إلى هذا الروبوت فهي كالتالي:

l       صنع خودة تنغلق أتوماتيكيا عندما يواجه الرأس لخطر لاسيما رصاصة متجهة إليه مثلا. هذه قد تكون مفيدة للجنود في المعارك.

l       نفس المبدأ بالنسبة لصدرية حديدية تقي الجسم من أي خطر محدق.

l       هل يمكن إضافة جناحين للربوت مثلا؟

  


محاولات أخرى

 

{vsig}cat_robot/theyfinished/hal/01{/vsig}

 


أشكال أخرى من الرسوم المتحركة

 

{vsig}cat_robot/theyfinished/hal/02{/vsig}

 


تأليف محمد السهلي 

 


المراجع 

  1. http://www.cyberdyne.jp/english/index.html
  2. http://www.bioexplorer.it/generality-on-bioelectrical-sensors.aspx
  3. http://www.delsys.com/products/biosignal.html
  4. http://www.vernier.com/products/sensors/ekg-bta/
  5. http://www.vernier.com/files/manuals/ekg-bta.pdf
  6. http://health.howstuffworks.com/human-body/cells-tissues/human-body-make-electricity.htm
  7. http://en.wikipedia.org/wiki/Hybrid_assistive_limb

 

]]>
nihon.sahli@gmail.com (محمد السهلي) روبوتات للباحثين Sun, 15 Jan 2012 00:00:00 +0000
الباب الذكي والطرقة السرية http://www.isnaha.com/isnaha_new/الروبوتات/item/657-الباب-الذكي-والطرقة-السرية http://www.isnaha.com/isnaha_new/الروبوتات/item/657-الباب-الذكي-والطرقة-السرية

الباب الذكي والطرقة السرية

image001

يمكنك فتح الباب بمفتاح عادي، أو برقم سري، أو بصمات أصابعك... لكن هل فكرت في أن ينفتح الباب لك بطرقة سرية؟ هذا ما سنريه لك اليوم...


تقديم

 

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

بكل بساطة سنحتاج إلى بطاقة Arduino ومحرك كهربائي ومستشعر الاهتزاز وبعض الأنابيب البلاستيكية.... 

 

ملاحظة مهمة: نعتبر في هذا المقال المصطلحات التالي:

  • طقطقة: ضربة واحدة على الباب
  • طرقة: مجموعة من الطقطقات (من واحدة إلى ما لانهاية)

 


استعراض للجهاز

 

يمكنك أن تشاهد المقطع التالي لتفهم آلية هذا الجهاز البسيط: 

{youtube}zE5PGeh2K9k{/youtube}

 

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

image002

 

يمكنك تحميل الشيفرة المخصصة لهذا الجهاز في أسفل هذه الصفحة. العدد اقصى المسموح به للضربات هو 20 طقطقة على الباب. ما عليك إلا أن تضغط على الزر الكهربائي ثم سجل الطقطقات على الباب كما يحلو لك. وتأكد من الجهاز سجل الطرقة بشكل صحيح. 

 


تنبيه

                                                           

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

 

ثانيا، هذا المشروع ليس للمبتدئين.... يجب عليك أن تكون عارفا ببرمجة الروبوتات ولو قليلا..... 

 


الأجزاء الرئيسية

 

{vsig}cat_robot/makeRobot_Med/SecretKnock/00{/vsig} 

بطاقة Arduino

مستشعر الاهتزاز (الطقطقةPiezo

محرك كهربائي (5 فولط) (يمكنك أن تستبدله بمحرك سبرفو سيكون أحسن)

أسلاك كهربائية

بطارية 9 فولط

أنابيب بلاستيكية

زر كهربائي

ترنزستور NPN(نوع P2N2222A أو ما شابه)

 

صمام ثنائي ضوئي أحمر (LED)

صمام ثنائي ضوئي أخضر

صمام ثنائي عادي (1N4001 أو ما شابه)

 

مقاومة كهربائية 2.2 كيلوأوم

مقاومة كهربائية 10 كيلوأوم

مقاومة كهربائية 1000 كيلوأوم

مقاومتين كهربائيتين 560 أوم

 

هذه الأجزاء إنما هي فقط لهذا المشروع... يمكنك أن أجزاء مختلفة شرط أن تكون عارفا ما تفعل.... 

 


برمجة

 

أولا وقبل كل شيء، قم بتحميل هذا الملف الذي يحمل شيفرة هذا الجهاز.

صل بطاقة Arduino بالحاسوب

افتح برنامج Arduino ثم نفذ الشيفرة وحولها إلى الميكروكنترولور.

أما عن طريقة تركيب الأجزاء الإليكترونية، فلا حاجة لها الآن لأننا سنتكلم عنها بعد هذه الفقرة.

 

 

/ شيفرة الطرقة السرية   

   Steve Hoefer  من طرف

   http://grathio.com الموقع 

   0.1.10.20.10 الإصدار

   Licensed under Creative Commons Attribution-Noncommercial-Share Alike 3.0

   http://creativecommons.org/licenses/by-nc-sa/3.0/us/

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

   Analog Pin 0: Piezo المستشعر

   Digital Pin 2: الزر الكهربائي

   Digital Pin 3: المحرك الكهربائي

   Digital Pin 4: الصمام الأحمر

   Digital Pin 5: الصمام الأخضر

 */

//................................................................................................................

// تعريف المرابط

const int knockSensor = 0;           // مربط مستشعر الاهتزاز

const int programSwitch = 2;

const int lockMotor = 3;                 // مربط المحرك الكهربائي

const int redLED = 4;                     // مربط الصمام الاحمر

const int greenLED = 5;                // مربط الصمام الأخضر

 

// تعريف الثوابت

//من أجل التحكم بخصائص الجهاز

const int threshold = 3;              // أصغر إشارة من المستشعر لحفظ الطرقة

const int rejectValue = 25;        // إذا مر هذا الوقت على طقطقة واحدة فلن يتم فتح الباب

const int averageRejectValue = 15; //متوسط الوقت للطقطقات. إذا تم تجاوزه لن ينفتح الباب

 /*يستعد الجهاز لاستقبال طرقة أخرى بعد مرور 150 جزء من الثانية على الطرقة السابقة*/

const int knockFadeTime = 150;   

const int lockTurnTime = 650;      // عدد أجزاء الثانية المتطلبة لجعل المحرك يقوم بنصف دورة

const int maximumKnocks = 20;       // العدد الأقصى للطقطقات المسموح بها

// بعد انتهاء هذه المدة الزمنية نستنج أن عدد الطقطقات قد استكمل

const int knockComplete = 1200;    

 

 

// تعريف المتغيرات

// الطرقة الافتراضية

int secretCode[maximumKnocks] = {50, 25, 25, 50, 100, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

 //تسجل الطرقة الجديدة في هذا الجدول مع الزمن الذي يفصل بين طقطقاتها

int knockReadings[maximumKnocks]

int knockSensorValue = 0;           // القيمة المقروءة من المستشعر

 /* إذا تم الضغط على الرز نضع "صح" في هذا المتغير وإلا فستكون القيمة هي "خطأ"ه*/

int programButtonPressed = false

 

//................................................................................................................

void setup()

{

  pinMode(lockMotor, OUTPUT);

  pinMode(redLED, OUTPUT);

  pinMode(greenLED, OUTPUT);

  pinMode(programSwitch, INPUT);

 

  Serial.begin(9600);                           // سرعة التحويل لتهيئة البطاقة البرمجية

  Serial.println("Program start.")

  digitalWrite(greenLED, HIGH);        // نقوم باشعال الصمام اﻷخضر للإشارة إلى أن الجهاز قد بدأ بالعمل

}

 

//................................................................................................................

void loop()

{

  knockSensorValue = analogRead(knockSensor);  // التنصت لأي طقطقة على الباب

 

  if (digitalRead(programSwitch)==HIGH) // هل تم الضغط على الزر الكهربائي؟

  {

    programButtonPressed = true;          // نعم، وبالتالي نضع "صح" في المتغير

    digitalWrite(redLED, HIGH);              // نشعل ضوء الصمام الاحمر

  }

  else

 {

    programButtonPressed = false;

    digitalWrite(redLED, LOW);

  }

 

  if (knockSensorValue >=threshold)  listenToSecretKnock();

}

 

//................................................................................................................

//تسجل هذه الدالة زمن الطقطقات على الباب

void listenToSecretKnock()

{

  Serial.println("knock starting");  // جملة للإعلان عن عملية تسجيل الطرقة السرية

 

  int i = 0;

  // تهيئة جدول الطقطقات

  for (i=0; i < maximumKnocks; i++)  knockReadings[i] = 0; 

 

  int currentKnockNumber = 0;                     // مؤشر لخانات الجدول

  int startTime = millis();                                 // تسجيل زمن البداية

  int now = millis();

 

  digitalWrite(greenLED, LOW);                  //نشعل ضوء الصمام الاخضر كإشارة للطرقة

  if (programButtonPressed==true)            // والضوء الاحمر كإشارة لتسجيل طرقة جديدة

                 digitalWrite(redLED, LOW);             

 

  delay(knockFadeTime);                             // ننتظر لبعض الوقت حتى نستعد لتسجيل التالية

 

  digitalWrite(greenLED, HIGH)

  if (programButtonPressed==true)     digitalWrite(redLED, HIGH);                       

 

 do

 {

    //ننصت للطقطقة التالية أو يتم الانتظار حتى ينفذ الوقت المسموح به

    knockSensorValue = analogRead(knockSensor);

    if (knockSensorValue >=threshold)                   //لنسجل الطقطقة

    {

      //نسجل الزمن الفاصل بينها وبين سابقتها

      Serial.println("knock.");

      now=millis();

      knockReadings[currentKnockNumber] = now - startTime;

      currentKnockNumber++;                             //تزداد قيمة المؤشر استعدادا للطقطقة التالية

      startTime=now;                                              // إعادة تهيئة زمن البداية من أجل الطقطقة التالية

      digitalWrite(greenLED, LOW)

      // والضوء الأحمر أيضا إذا كنا ما نزال نريد تسجيل طقطقة أخرى

      if (programButtonPressed==true)  digitalWrite(redLED, LOW);       

 

      delay(knockFadeTime);                              // مرة أخرى ننتظر لبعض الوقت استعدادا للتالي

      digitalWrite(greenLED, HIGH);

      if (programButtonPressed==true)   digitalWrite(redLED, HIGH);                        

    }

 

    now=millis();   

 

    //هل تجاوزنا الوقت المسموح به للانتظار أم تجاوزنا عدد الطقطقات المسموح به

   } while ((now-startTime < knockComplete) && (currentKnockNumber < maximumKnocks));

 

  // تم تسجيل الطرقة، لنرى ما الذي يمكن العمل بها

  if (programButtonPressed==false)            //التاكد من موافقة الطرقة مع الطرقة السرية

  {

    if (validateKnock() == true) triggerDoorUnlock();

    else

    {

      Serial.println("Secret knock failed.");

      digitalWrite(greenLED, LOW);         

      // لم نفتح وبالتالي نظهر وميضا أحمر كإشارة لذلك

      for (i=0;i<4;i++) {  digitalWrite(redLED, HIGH);   delay(100);

                                  digitalWrite(redLED, LOW);   delay(100);  }

      digitalWrite(greenLED, HIGH);

    }

   }

  else  // تسجيل طرقة سرية جديدة

  {

    validateKnock();

    Serial.println("New lock stored.");

    /* نظهر وميضا متناوبت بين الأخضر والأحمر كإشارة على أنه تم تسجيل طرقة سرية جديدة بنجاح*/

    digitalWrite(redLED, LOW);

    digitalWrite(greenLED, HIGH);

    for (i=0;i<3;i++)

    {

      delay(100);  digitalWrite(redLED, HIGH);  digitalWrite(greenLED, LOW); 

      delay(100);  digitalWrite(redLED, LOW);  digitalWrite(greenLED, HIGH);     

    }

  }

} 

//................................................................................................................

// التحكم بالمحرك الكهربائي من أجل فتح الباب

void triggerDoorUnlock()

{

  Serial.println("Door unlocked!");

  int i=0; 

  // تدوير المحرك قليلا

  digitalWrite(lockMotor, HIGH);

  digitalWrite(greenLED, HIGH);

  delay (lockTurnTime);                         // ننتظر لبعض الوقت

  digitalWrite(lockMotor, LOW);            // ثم نوقف المحرك

 

  // وميض أخضر كإشارة لهذه العملية

  for (i=0; i < 5; i++)  { digitalWrite(greenLED, LOW);  delay(100);

                                  digitalWrite(greenLED, HIGH); delay(100)}  

}

 

//................................................................................................................

// للتأكد من موافقة الطرقة المسجلة بالطرقة السرية

boolean validateKnock()

{

  int i=0; 

  // أولا وقبل كل شيء، هل عدد الطقطقات صحيح؟

  int currentKnockCount = 0;

  int secretKnockCount = 0;

  int maxKnockInterval = 0;              

 

  for (i=0;i<maximumKnocks;i++)

 {

    if (knockReadings[i] > 0) currentKnockCount++;

    if (secretCode[i] > 0){                     //todo: precalculate this.

      secretKnockCount++;

    } 

    // للحصول على أقصى قيمة

    if (knockReadings[i] > maxKnockInterval) { maxKnockInterval = knockReadings[i]; }

  }

 

  // هل نريد أن نسجل طرقة جديدة فقط؟

  if (programButtonPressed==true)

  {

      for (i=0;i<maximumKnocks;i++)

        secretCode[i]= map(knockReadings[i],0, maxKnockInterval, 0, 100);

 

      // إظهار وميض للإشارة على أننا في مرحلة تسجيل طرقة جديدة

      digitalWrite(greenLED, LOW);  digitalWrite(redLED, LOW);   delay(1000); 

      digitalWrite(greenLED, HIGH) digitalWrite(redLED, HIGH);   delay(50);

 

      for (i = 0; i < maximumKnocks ; i++)

      {

        digitalWrite(greenLED, LOW);   digitalWrite(redLED, LOW)

       

        if (secretCode[i] > 0) // في حالة إذا كان هناك تأخر

        {

          delay( map(secretCode[i],0, 100, 0, maxKnockInterval));

          digitalWrite(greenLED, HIGH)  digitalWrite(redLED, HIGH);

        }

        delay(50);

      }

      return false;     // لن نفتح الباب عندما نريد تسجيل طرقة سرية جديدة

  }

 

  if (currentKnockCount  != secretKnockCount)  return false;

 

  /*  نقارن الآن بين الطرقة الجديدة. تجدر الاشارة إلى أنه لو كانت الطرقة بطيئة أو سريعة سينفتح الباب.

هذا سيجعل الباب أقل أمنا لكن لو غيرت الوقت أيضا فسيصبح استعماله صعبا شيئا ما إذ لم يكن المستعمل يتقن طرقته السرية بنجاح  */

  int totaltimeDifferences = 0;

  int timeDiff = 0;

  for ( i = 0; i < maximumKnocks; i++ )

  {

    knockReadings[i] = map(knockReadings[i], 0, maxKnockInterval, 0, 100);     

    timeDiff = abs(knockReadings[i] - secretCode[i]);

 

    if (timeDiff > rejectValue)  return false;

 

    totaltimeDifferences += timeDiff;

  }

 

  if (totaltimeDifferences / secretKnockCount > averageRejectValue) return false

 

  return true

}

 

الدالة listenToSecretKnock

 

تقوم هذه الدالة بالتصنت لأي طقطقة ممكنة على الباب.

مهمة الأداة do while هو تسجيل الوقت الفاصل بين كل طقطقة والتي قبلها.

يتم الخروج من هذه الأداة والنتقال إلى السطور التي تليها في حالة انتهت المدة الزمنية المسموح للجهاز بانتظار الطقطقة التالية

(now-startTime < knockComplete)

أو تم تجاوز عدد الطقطقات المسموح بها

(currentKnockNumber < maximumKnocks).

 

الدالة triggerDoorUnlock

 

كم يحتاج بابك من دورة للمفتاح حتى ينفتح؟

تقوم هذه الدالة بتشغيل المحرك حتى يقوم بدوران في مدة زمنية محدودة كافية لفتح قفل الباب.

يجب أن تضع هذه المدة الزمنية في المتغير lockTurnTime.

تشغيل المحرك معبر عليه في الأمر التالي:

digitalWrite(lockMotor, HIGH);

 

أما السطرين الأخيرين في هذه الدالة فهما فقط من أجل انتاج وميض يعبر عن تشغيل المحرك.

 

الدالة validateKnock

 

هذه الدالة مهمة حيث أنها تقوم إما بتسجيل الطرقة الجديدة أو التأكد من موافقتها للطرقة السرية المحفوظة عندك.

أولا وقبل كل شيء، يتم حساب عدد طقطقات الطرقة الجديدة في هذا المقطع من الشيفرة:

for (i=0;i<maximumKnocks;i++)

{

   if (knockReadings[i] > 0) currentKnockCount++;

   if (secretCode[i] > 0){                     //todo: precalculate this.

      secretKnockCount++;

    }

 

يتم تسجيل طرقة جديدة إذا كنت ضاغطا على الزر الكهربائي، بمعنى آخر إذا تم الشرط التالي:

  if (programButtonPressed==true)

 

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

 

نقوم أولا بالتأكد من عدد طقطقات الطرقة الجديدة: هل هذا العدد موافق لعدد طقطقات الطرقة السرية أم لا، هذا الأمر يتم في السطر التالي:

  if (currentKnockCount  != secretKnockCount)  return false;

 

إذا كان عدد الطقطقات صحيحا نبدأ بعملية المقارنة والتي تنفذ في المقطع التالي:

 

 for ( i = 0; I < maximumKnocks; i++ )

  {

    knockReadings[i] = map(knockReadings[i], 0, maxKnockInterval, 0, 100);     

    timeDiff = abs(knockReadings[i] - secretCode[i]);

   

    if (timeDiff > rejectValue)  return false; 

    totaltimeDifferences += timeDiff;

  }

 

حيث يتم رفض الطرقة الجديدة والإعلان على أنها لا توافق الطرقة السرية إذا تحقق أحد الشرط التالي: 

if (timeDiff > rejectValue)  return false;

ويتم رفضها أيضا إذا تحقق الشرط الثاني: 

if (totaltimeDifferences / secretKnockCount > averageRejectValue) return false;

 

أما إذا كان الأمر على ما يرام فسيتم ارجاع القية "صح” (true) في آخر الدالة:

return true;

 


تركيب الدارة الكهربائية

 

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

{vsig}cat_robot/makeRobot_Med/SecretKnock/01{/vsig} 

المستشعر Piezo

 

تركيب: قم بإيصال بين المربط التناظري 0 (Analog 0) ومربط الأرضية GND للبطاقة Arduino. ولا تنسى أن تضع مقاومة 1000 كيلوأوم بين مربطي المستشعر حتى لا يتلف هذا الأخير البطاقة بسبب الجهد الكهربائي الذي قد يولده.

 

امتحان: بما أنك أوصلت البطاقة Arduino بالحاسوب، عليك أن تقوم بتنفيذ البرنامج وسترى جملة Program startعلى الشاشة. قم بعدها بالنقر على المستشعر Piezo بأصابعك وسترى جملة Knock startingو Knockعلى الشاشة كلما نقرت عليه. توقف عن النقر لثانية أو ثانيتين وربما سترى الجملة Secret knock failedأو Door unlockedعلى الشاشة.

يمكنك الان أن تقلد الطرقة التي رأيتها على الفيديو، وانظر هل حصلت على الجملة Door unlockedعلى الشاشة. إذا قلدت الطرقة بشكل جيد ومع ذلك لم ترى هذه الجملة فحينها يمكنك تغيير  قيمة المتغير  threshold حتى يصبح تحديد الطرقة السرية أقل حساسية. يمكن أن تصل قيمة هذا المتغير إلى 1023 إذا كان مستشعر جد حساس.

 

const int threshold = 3;  // Minimum signal from the piezo to register as a knock

الصمامات الضوئية (LED)

 

تركيب: صل الصمام الأحمر بالمربط 4 والصمام الأخضر بالمربط 5 مصحوبين بمقاومتيهما 560 أوم.

 

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

إذا لم ترى شيئا من هذه، فتأكد من قطبية الصمامين، أي هل ركبتهما في البطاقة بالشكل الصحيح؟

 

الزر الكهربائي

 

تركيب:قم الآن بإيصال أحد أطراف الزر الكهربائي بـ 5v+، والطرف الآخر بالمربط 2 للبطاقةلا تنسى أن تجعل مقاومة كهربائية 10 كيلوأوم بين الطرف الموصول بالمربط والأرضية GND للبطاقة Arduino(انظر إلى الدارة الكهربائية).

 

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

 

المحرك الكهربائي

 

تركيب: سنحتاج هنا للترنزستور والصمام الثنائي المتبقي وبعض المقاومات... قم بتكيب الكل واستخدم بعض الأسلاك الكهربائية للمساعدة... استعن بالدارة الكهربائية أعلاه لتعرف طريقة التركيب الصحيحة. تأكد من أن الصمام الثنائي موجه بالشكل الصحيح.

 

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

 

مشاكل أخرى قد تواجهها

 

1.  إذا قام المحرك بدوران بطيء فربما قمت بتركيب الصمام الثنائي بالشكل الخاطئ.

2.  إذا كنت تحتاج لمزيد من الطاقة لمحركك الكهربائي فقم بالتغيير التالي في الدراة الكهربائية: قم بإيصال مربط المحرك بالمربط بـ Vin عوض v5. سيزود المحرك بـ 9 فولط.

تأكد من منحى دوران المحرك. يجب أن يدور في نفس منحى دوران مفتاح قفل الباب.

 

إذا تم كل شيء على ما يرام، فتهانينا بنجاحك في صنع هذا الجهاز! 

 


تركيب الجهاز

 

{vsig}cat_robot/makeRobot_Med/SecretKnock/02{/vsig} 

 

{vsig}cat_robot/makeRobot_Med/SecretKnock/03{/vsig} 

 

{vsig}cat_robot/makeRobot_Med/SecretKnock/04{/vsig} 

 

{vsig}cat_robot/makeRobot_Med/SecretKnock/05{/vsig} 

 

{vsig}cat_robot/makeRobot_Med/SecretKnock/06{/vsig}

 

بعدما فهمت كيف يتم تركيب الدارة الكهربائية... قم الآن بعملية التلحيم لتثبت المركبات الاليكترونية بعضها ببعض. أما مسألة تركيب الجهاز ككل، فالصور غنية عن التعبير واترك لك هذه المهمة لتتولاها أنت بنفسك.... 

 


أفكار جديدة لتحسين الجهاز

 

يمكنك تحسين أداء هذا الجهاز حتى يصبح قادرا على فتح وقفل الباب تلقائيا، كما يمكنك الرفع من جودته عن طريق التطويرات أو التغييرات التالية:

l          تصغير الجهاز ككل حتى يثبت داخل الباب.

l          تحسين الجهاز لتمكين عدة أشخاص من تسجيل طرقاتهم السرية.

l          يمكنك تعويض الطرقات برنات جرس الباب أو إضافتها هي أيضا.

l          إضافة مقبض لتعديل الحساسية (أعني نسبة مطابقة الطرقة السرية)

l          استعمال ميكروكنترول اقتصادي عوض Arduino حتى يتسنى وضع الجهاز في حالة السبات للاقتصاد من حياة البطارية.

l          يمكنك استعمال وميض ضوئي عوض الطرق على البابما عليك إلا أن تضع مستشعر الضوء في ثقب الباب حتى يتمكن من تحديد الوميض.

l          يمكنك أن تضع في ثقب الباب مستشعر الأشعة تحت الحمراء وبالتالي ينفتح الباب عندما تضغط على زر معين من أداة التحكم عن بعد كما هو الشأن بالنسبة لبعض السيارات. 

image003

 


تأليف

 

تأليفSteve Hoefer

ترجمة بتصرف: محمد السهلي 


المراجع

 

http://www.instructables.com/id/Secret-Knock-Detecting-Door-Lock/ 


 

]]>
nihon.sahli@gmail.com (محمد السهلي) روبوتات للمتوسطين Thu, 22 Dec 2011 00:00:00 +0000
الحاسوب الروبوت (الجزء 1) – عربة الروبوت http://www.isnaha.com/isnaha_new/الروبوتات/item/766-الحاسوب-الروبوت-الجزء-1-–-عربة-الروبوت http://www.isnaha.com/isnaha_new/الروبوتات/item/766-الحاسوب-الروبوت-الجزء-1-–-عربة-الروبوت

الحاسوب الروبوت (الجزء 1) – عربة الروبوت 

 00

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

 


تقديم

 

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

 


أشكال أخرى 

{vsig}cat_robot/makeRobot_Adv/laptopBot/00{/vsig}

 


استعراض لعربة الروبوت

01

نتناول في هذا المقال إلى صنع العربة التي تراها في هذه الصورة، وما عليك إلا أن تقلد ما تجده أو على الأقل خذ الفكرة ثم أنجز عربة بشكل آخر فهذا لا يهم.

 

إليك استعراض لعربة الروبوت أولا:  

{youtube}-NpeZPkPsKM{/youtube} 

 


تجهيز عربة الروبوت

 

هذه المقال يتطرق لشرح تصميم عربة الروبوت لمن يريد نفس التصميم، أما من يفكر في تصميم آخر فلا داعي لأن يقرأها. بطبيعة الحال، ليس ضروريا أن تتبع نفس النموذج ولكن اتبع نفس الأسلوب  لتصنع عربتك.هذه هي الأجزاء الرئيسية للعربة: 

 

{vsig}cat_robot/makeRobot_Adv/laptopBot/01{/vsig} 

 


المواد اللازمة

02

هذه هي مختلف أجزاء العربة. يمكنك أن تستعين بقطع خشبية أو معدنية لصنع العربة. فيما يلي المواد اللازمة لإنشاء عربة هذا المقال:

 

أسماء الأجزاء تجدها مرفقة في الرابط التالي:

 

http://www.isna3ha.com/images/cat_robot/makeRobot_Adv/laptopBot/pieces.jpg 

 


تقطيع الأجزاء

 

هذه هي مختلف أجزاء العربة. من أجل صنعها يمكنك تحميل تصميمها حسب الأداة المستعملة للتقطيع. 

 

{vsig}cat_robot/makeRobot_Adv/laptopBot/02{/vsig}

 

الاختيار 1: شراءها

لشراء نفس القطع مجهزة وبدون تعب فإليك رابط الموقع على الانترنت: 

http://store.oomlout.com/arduino-controller-servo-robot-serb--chassis.html 

 

الاختيار 2: القاطع الليزري (Laser Cutter)

قم بتحميل الملف التالي الخاص بالقاطع الليزري: الملف cdr، الملف eps. 

يمكنك أن تقطع بواسطة قاطعك الليزري أو استعن بالموقع http://www.ponoko.com ليقوم لك بهذه المهمة.

المقاييس الذي تحتاجها للقاطع الليزري هي (3mm, .118" acrylic) أو (3mm, .125" acrylic)

 

 

الاختيار 3: المنشار الدوار والمثقب الكهربائي (Scroll saw, Drill)

هنا ستحتاج لأن تكون الأجزاء مرسومة على ورق كبير الحجم، وهذا ما ستجده في الملفات التالية، قم باختيار الملف الذي يناسب حجم الورقة لديك.

 

حجم الورقة : A4 

حجم الورقة : letter

 

قم بطباعة الملف الذي يناسبك دون أن تغير من حجمها من خلال معايير الطابعة لديك (أي إطبعها كما هي).

بعدها قم بإلصاق الورق المطبوع على قطعة البلاستيك أو الخشب أو المعدن عندك. 

أولا وقبل كل شيء، قم بثقب مكان الثقب باستعمال المثقب الكهربائيثم ابدأ بتقطيعها باستعمال المنشار الدوار. 

 


تجميع الأجزاء

 

{vsig}cat_robot/makeRobot_Adv/laptopBot/03{/vsig}

 

مبروك عليك، حوالي 90% من المهمة أنجزت. ما عليك إلا أن تقوم بتحميل الملف التالي وقم بتتبع طريقة التجميع:

 

مشروحة خطوة خطوة أو مصورة بالفيديو كما التالي: 

 

{youtube}ajzBob1kbSs{/youtube}

 


تركيب الأسلاك

 

{vsig}cat_robot/makeRobot_Adv/laptopBot/04{/vsig}

 

أيا كانت العربة التي أنجزتها، علينا أن نضيف لها شرايينها الآن حتى نتمكن من التحكم بالروبوت فيما بعد.

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

تذكر ألا تقوم بربط البطاريات في البداية حتى تتم تركيبها بالكامل وتأكد من أن كل شيء على ما يرام حتى لا تصاب دارتك بالتلف عند إضافة البطاريات لها. 

 


امتحان عمل العربة

 

05

قم بتحميل شيفرة الروبوت من هنا.

 

افتح برنامج Arduino ثم قم بتنفيذ الشيفرة. بعدها قم بتحويلها إلى البطاقة Arduino.

بعد ذلك، يمكنك أن تضع البطاريات بعد أن تفصل البطاقة Arduino عن الحاسوب.

إذا أنجزت كل شيء على ما يرام فمن المفترض أن ترى أن روبوتك بدأ يتحرك.

 

برمجة 

06

 

انتهينا من تجميع الروبوت وما بقي سوى البرمجة الآن. إن كان مستواك ضعيفا في البرمجة، فقم بالاضطلاع على برمجة الروبوت في هذا الموقع أولا ثم عد إلينا. توجد ثلاث طرق لتبرمج عربة الروبوت:

 

الطريقة 1: تعديل شيفرة الروبوت

أحيانا يكون الأسهل أن تستسعمل شيفرة موجودة ثم قم بتعديلها حسب رغاباتك.

من أجل هذا، نزودك بشيفرة جاهزة وما عليك إلا أن تحملها من هنا.

قم بتنفيذها وتحويلها إلى بطاقة Arduino.

 

الطريقة 2: إضافة دوال أخرى

يمكنك إضافة دوال أخرى لشيفرتك من أجل القيام بمهام إضافية.

قم بالنقر على هذا الملف الذي يحمل في طياته بعض الدوال. 

1.        انسخ جميع الدوال من الملف وقم بوضعها في آخر الشيفرة.

2.        ما تبقى قم بوضعه في بداية الشيفرة.

3.        استدع الدالة serbSetup انطلاقا من داخل الدالة setup.

 

الطريقة 2: كتابة شيفرتك الخاصة

ليست بالصعبة. يجب أن تعرف فقط أن المحرك الأيمن متصل بالمربط 9، بينما المحرك الأيسر متصل بالمربط 10 للبطاقة Arduino. 

 


اشكال أخرى 

{vsig}cat_robot/makeRobot_Adv/laptopBot/05{/vsig}

 


في النهاية  

 

07

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

  


تأليف

 

المؤلف : oomlout

ترجمة بتصرف : السهلي محمد 

 


المراجع

 

http://www.oomlout.co.uk

http://www.instructables.com/id/How-to-Make-an-Arduino-Controlled-Servo-Robot-SER


 

]]>
nihon.sahli@gmail.com (محمد السهلي) روبوتات للمتقدمين Thu, 29 Dec 2011 00:00:00 +0000
الحاسوب الروبوت (الجزء 2) – حاسوب الروبوت http://www.isnaha.com/isnaha_new/الروبوتات/item/765-الحاسوب-الروبوت-الجزء-2-–-حاسوب-الروبوت http://www.isnaha.com/isnaha_new/الروبوتات/item/765-الحاسوب-الروبوت-الجزء-2-–-حاسوب-الروبوت

الحاسوب الروبوت (الجزء 2) – حاسوب الروبوت

 00

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


تقديم

 

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

كلما تمكنت من استعمال أجهزة الاتصال الحديثة كالحواسيب والهواتف النقالة واجهزة الراديو والأقمار الاصطناعية للتحكم بالآلات عن بعد كلما كان ذلك مفيدا جدا في تطوير بلدك. 

  


أشكال مختلفة 

 

{vsig}cat_robot/makeRobot_Adv/laptopBot2/00{/vsig}

  


استعراض لنموذج اليوم

 

{youtube}HsvqQ5h7QMY{/youtube}

  


مميزاته

 

{vsig}cat_robot/makeRobot_Adv/laptopBot2/01{/vsig}

 

يستعمل هذا الروبوت متصفحا (Firefox أو  Google Chrome أو iexplorer أو ما شابه) وبرنامجا للاتصالات والدردشة (Skype أو MSN أو Yahoo أو ما شابه).

 

إذا كنت تجد عندك أحد هذه البرامج فلا حاجة لك أن تقوم بتثبيت برامج أخرى.

  


الأجزاء الرئيسية

image002

حاسوب محمول: إذا لم تتملك حاسوبا محمولا فيمكنك أن تحاول شراء واحد قديم أو يمكنك تفكيك حاسوب المكتب وانزع منه فقط اللوحة الاليكترونية الأم ولا حاجة لك أن تستعمل شاشته أو وحدته المركزية في النهاية.

 

عربة صغيرة: يمكنك أن ترجع للجزء الأول من هذا المشروع لترى مثالا لعربة الروبوت.

 


تركيب

 

{vsig}cat_robot/makeRobot_Adv/laptopBot2/02{/vsig}

 

قم بإضافة بعض القطع البلاستيكية كداعمة أو قل رافعة لحاسوب الروبوت. ثم بعد ذلك قم بوضع الحاسوب فوق العربة وصله ببطاقة Arduino عن طريق الكابل USB.

 

إذا كنت تريد هذه العربة بالذات فلك ثلاث اختيارات:

 

الاختيار 1: يمكنك شراء أجزاءها من هنا: http://store.oomlout.com/ladeforse.html

 

الاختيار 2: استعمال القاطع الليزري

قم بتحميل هذا الملف ثم قم بتقطيعها حسب المعيار  3mm (1/8") Acrylic

 

الاختيار 3: المنشار الكهربائي

قم بتحميل هذا الملف ثم قم بطباعته باستعمال ورق ذي الحجم A4.

وما عليك إلا أن تقطعه باستعمال المنشار الكهربائي

 

أما التجميع فهو موصوف في هذا الملف.

 


شيفرة عربة الروبوت

 image003

 

بالنسبة للمبتدئين، ننصح أولا بالتطرق لسلسلة برمجة الروبوت، أما من له دراية بالموضوع فلا بأس أن يتابع.

قم بتحميل الشيفرة من هنا. ثم قم بتحويلها إلى بطاقة Arduino بعدما تقوم بتنفيذها في برنامج Arduino

 

إليك بعض التعليقات على شيفرة الروبوتتجدر الإشارة إلى أنه تم تعريف 5 متغيرات من النوع long حيث أن:

1.        المتغيرات 1 إلى 3 تمثل الرمز "AAA".

2.        المتغير الرابع: يحمل الأمر لنقول لبطاقة Arduino ما يجب عليها فعله أي:

  • F : اتجه أماما
  • B : اتجه إلى الخلف
  • L : اتجه يسارا
  • R : اتجه يمينا
  • S : أسرع
  • X : سرعة اليسار
  • Y : سرعة اليمين
  • C : توقف

3.        المتغير الخامس، عندما يمثل:

أوامر التحرك: تكون قيمته عبارة عن مجال زمني (Parameter*100 ms)

السرعة: تكون قيمته نسبة مئوية من 0 إلى 100.

  


شيفرة حاسوب الروبوت

image004

البرنامج الذي سيُزَود به حاسوب الروبوت بسيط وغير معقد، وهو عبارة عن مسير بدائي لصفحات الويب (webserver) ويتميز بما يلي:

l        يقوم بانتظار الأوامر من متصفح الانترنت  (web browser)

l        واجهة (أو نافذة) بسيطة حتى يتسنى للمستعمل ضبط معايير البرنامج.

l        يقوم بتسهيل عملية تحويل الأوامر (المستقبلة من خلال متصفح الانترنت) إلى بطاقة  Arduino

 

الاختيار 1: إذا كنت تريد أن تستعمله مباشرة فاتبع ما يلي:

1.        قم بتحميله من هنا.

2.        ثم قم بتثيبته في نظام التشغيل عندك (Windows).

 

الاختيار 2: وإذا كنت تريد أن تغير أو تعدل أو تطور أو تفهم شيفرته فاتبع ما يلي:

1.        قم بتحميل لغة البرمجة المسماة processing من الموقع :http://processing.org

2.        هذه اللغة بسيطة جدا، تعلمها أولا بسرعة.

3.        قم بفتح برنامج اللغة processing

4.        قم بتحميل شيفرة البرنامج من هنا.

5.        ثم افتح الملف (WEBB_WebServer_RobotComputer.pde)

6.        عدله كما تريد.

 

ليس إجباريا عليك أن تستعمل هذا البرنامج إذا كنت مبرمجا ماهرا. يمكنك إنجاز برنامج مماثل أو أحسن منه باستعمال أحد اللغات المتطورة كاللغة Java أو Visual Basic أو أي لغة برمجية تجيدها.

 

امتحان عمل البرنامج

 

قم بتشغيل البرنامج على حاسوب الروبوت.

سيظهر لك في النافذة الرئيسية ثلاث مستطيلات:

l        المستطيل 1: سيكون حاسوبك مجهزا بعدة مداخل من صنف COM، قم بالنقر على رقم المدخل المرتبط ببطاقة Arduino لديك. سيظهر لك بعدها قرصا بلون أزرق فاتح أمام المدخل المتصل ببطاقة Arduino.

l        المستطيل 2: اضغط على الأسهم الأربعة لترى هل الحاسوب يتحكم بتحرك الروبوت أم لا.

l        المستطيل 3:قم بالضغط على الزر Startحتى تبدأ خدمة متصفح الويب بالعمل.

 

قم بتحميل صفحة التحكم (ControlPage.html) من هنا.

  

قم الان بفتح متصفح الانترنت لديك (IExplorer, Firefox, Google Chrome) على نفس الحاسوب. ثم افتح فيه هذه الصفحة http://127.0.0.1:12345/ControlPage.html.

 

من المفترض أن يظهر لك الآن صفحة عليها بعض الأزرار.

أما كيف تستعمل هذه الصفحة فستجد التفاصيل في الخطوة التالية من هذا المقال. 

 


الحاسوب الآخر الذي تريد من خلاله التحكم بالروبوت عن بعد! 

 

{vsig}cat_robot/makeRobot_Adv/laptopBot2/03{/vsig}

 انتهينا تقريبا، كل ما بقي هو التكلم مع روبوتك عن بعد. توجد حالتين:

 

عبر شبكة محلية (local network, reseau local)

إذا كان حاسوب الروبوت وحاسوبك متصلين بشبكة محلية (منزلك، أو شركة أو مؤسسة ...)، فما عليك إلا أن تحصل على العنوان IP لحاسوب الروبوت وتوكل على الله!

 

لمعرفة العنوان IP لحاسوب الروبوت تتبع الخطوات التالية:

اضغط على الزر windows والزر R في نفس الوقت.

 

اكتبcmd ثم اضغط على Enter

 image005

ستظهر لك نافذة سوداء، اكتب فيها ipconfig ثم اضغط على  Enter

 image006

سيظهر لك العنوانIPللحاسوب.

اكتبه في ورقة من فضلك.

 image007

 

لنفترض أن العنوان الذي حصلت عليه هو: 111.222.333.444

ارجع الى حاسوبك الشخصي الذي من خلاله تود التحكم بالروبوت عن بعد. ما عليك إلا أن تفتح متصفح الانترنت ثم اكتب العنوان التاليhttp://111.222.333.444:12345/ControlPage.html

إذا أنجزت كل شيء على ما يرام، فمن المفترض الآن أن تظهر لك صفحة التحكم  ControlPage.html على متصفحك.

لم يبق شيء يذكر، قم بالتحكم بروبوتك كما تشاء.

 

عبر الشبكة العنكبوتية الانترنت

هذه الخطوة أصعب شيئا ما من سابقتها. حاسوبك الشخصي يجب أن ينصت الآن للإنترنت عوض شبكة محلية كما السابق. عليك أن تعدل من معايير الروتر (Router, Routeur) بحيث يسمح لبعض الطلبات بالمرور عبره حتى يتسنى لك التحكم بحاسوب الروبوت. هذه العملية صعبة قليلة وبعيدة عن هدف هذا المقال، لكن يمكنك زيارة الموقع http://portforward.com/default.htm لمعرفة كيف يمكنك تغيير معايير الروتر (Router, Routeur). عندما تريد القيام بذلك فلا تنسى أن تجعل الروتر يحول المدخل الرقمي 12345 (Port 12345) إلى حاسوب الروبوت.

 

بعد ذلك لمعرفة العنوانIP للحاسوب على الإنترنت، قم بزيارة الموقع http://whatismyip.com. لنفترض أن  العنوان التالي الذي حصلت عليه هو كالتالي: aaa.bbb.ccc.ddd

 

وفي النهاية، يمكنك تشغيل برنامجا للدردشة (Skype أو MSN أو Gmail …) ولحبذا لو كان حاسوب الروبوت مدعوما بكاميرا (Webcam) حتى يتسنى لك مشاهدة المكان الذي يتواجد فيه الروبوت.

 

يمكنك أيضا استدعاء أصدقاءك للتحكم بالروبوت أيضا إذا أريتهم عنوان صفحة التحكم بالروبوت

 (http://aaa.bbb.ccc.ddd:12345/ControlPage.html) 

 


وفي النهاية

 

يمكنك أن تزود روبوتك بـ:

  كاميرالترى بها أين يتواجد روبوتك (ربما قد يكون حاسوبك مزودا بكامير داخلية).

  نظام GPS : حتى تتمكن من رؤية حاسوبك على الخريطة.

  مستشعر الحرارة.

  مستشعر الموجات تحت الصوتية لتفادي العوائق في الطريق مثلا.

 

أو أي مركبات إليكترونية  أخرى، المهم إذا أنجزت شيئا فشاركنا بمقال عن كيف أنجزته. 

 


تأليف

 

المؤلف: oomlout

ترجمة بتصرف: محمد السهلي 

 


المراجع

 

http://www.oomlout.com 

http://www.instructables.com/id/How-to-Make-a-Web-Connected-Robot-for-about-500/?ALLSTEPS


 

]]>
nihon.sahli@gmail.com (محمد السهلي) روبوتات للمتقدمين Fri, 06 Jan 2012 00:00:00 +0000
الخنفساء الروبوت http://www.isnaha.com/isnaha_new/الروبوتات/item/783-الخنفساء-الروبوت http://www.isnaha.com/isnaha_new/الروبوتات/item/783-الخنفساء-الروبوت

 الخنفساء الروبوت

F1YOZ1ZFHY0I617

الخنفسابوت هو عبارة عن روبوت بسيط وفعال ولا يستعمل أي مركب إليكتروني معقد لتجنب العوائق في طريقه. يستعمل فقط مبدالين كهربائيين من نوع SPDT switch لتجنب العوائق. ويتم ذلك عن طريق تثبيت محرك وتحويل دوران الآخر بشكل مؤقت. لا يحتاج هذا الربوت لدارة إليكترونية أو ترنزستور أو مكثف أو مقاومة. بل هو رخيص وبسيط جدا لإنشائه.

 يكمن لغز تفادي العوائق في شكل قرني الاستشعار (الزبانيان) للخنفساء. لاحظ تحرك الخنفسابوت في الفيديو التالي:

{youtube}s6X6d-RXNps{/youtube}


1. الأجزاء الرئيسية

{vsig}cat_robot/robot1/01{/vsig}

أجزاء عامة

القوقعة

أدوات مساعدة

محرك 1.5 فولط

مبدالين من نوع (SPDT switches)

حاملة بطارية من نوع AA أو AAA

موصيلين نهائيين

خرزة

سبيكة ألومنيومية (للتلحيم)

قاطع التيار

مشبكي ورق صغيرين (paperclips)

مشبك ورق كبير

أسلاك كهربائية

انابيب بلاستيكية قابلة للإنكماش بالحرارة

شريط لاصق

غطاء بلاستكي مقعر

صباغة

إيبوكسي (Epoxy)

مغناطيسين صغيرين

مقص

سكين

أداة التلحيم

مسدس اللصاق

قاطع أسلاك

 ملاحظات مهمة:

1- يمكن أن تجد المحركات في لعب الأطفال الصغار.

2- لا تستعمل محركات كهربائية 3 فولط أو حتى 12 فولط.

3- كل محرك سيربط ببطارية واحدة من نوع AA. استعمال محركات أكبر تؤدي إلى استنزاف البطاريات.

4- أنصحك أن تأخد وقتك لقراءة هذا المقال قبل أن تبدأ في العمل. ستجد مجموعة من الصور المرفقة في كل مرحلة فلا تنسى أن تلتفت إليها. 


2. المبدال (The SPDT switch)

{vsig}cat_robot/robot1/02/00{/vsig}

هو المركب الاليكتروني الرئيسي لهذا الروبوبت.

قد تجده مجانا أو تحتاج لأن تدفع 1$ أو 4$ للواحد.

المبدالين المستعملين هنا تم الحصول عليهما من :

http://www.cherrycorp.com/english/switches/sealed/dcjk.htm 

 

نصيحة من عندي: يحوم حول كل واحد منا كميات كبيرة من المركبات الاليكترونية غير المستعملة. قم بتفكيك المركبات الإليكترونية لإعادة استعمالها فيما بعد من ألعاب الأطفال، الحواسب القديمة، PS2، VCR، طابعات، راديو، إلخ.

تركيب المبدالين على حاملة البطاريات

{vsig}cat_robot/robot1/02/01{/vsig}

انتبه كثيرا لموضع المبدالين على حاملة البطاريات حيث أن المنطقة المشار إليها بالمربع الأصفر تؤكد على ضرورة تماس سنتي المبدالين.

ألصق المبدالين على حاملة البطاريات. (قد تحتاج للإيبوكسي لإلصاقهما أو أي أداة مشابهة)

هذا التركيب هو أساس قرني الاستشعار للخنفسائبوت. 


3. المحركين 

{vsig}cat_robot/robot1/03/00{/vsig}

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

تركيب المحركين على حاملة البطاريات

{vsig}cat_robot/robot1/03/01{/vsig}

إما أن يتم لإلصاق المحركين على حاملة البطاريات بواسطة لصاق مباشرة أو باستعمال صحيفة معدنية كما هو مبين في الصور(تبدو مهنية وأحلى أكثر).

ملاحظة: تكون الصحيفة المعدنية ألومنيومية أو بمعدن آخر، وقد تجدها في الآلات الإليكترونية كالحواسيب والرديو.

 

{vsig}cat_robot/robot1/03/02{/vsig}

هذه مرحلة سهلة جدا لكن انتبه لقطبية المحركين كما هو مبين في الصورة. إذا تبثها بالشكل الصحيح ستكون فرصت نجاحك في المرة الاولى كبيرة.

استعمل شريطا لاصقا لتتبيث المحركين.

{vsig}cat_robot/robot1/03/03{/vsig}

قد تواجه بعض المشاكل عند محاولة إلصاق الصفيحة المعدنية على ظهر حاملة البطاريات:

1. انفصال الصفيحة المعدنية من حاملة البطاريات

الحل: إذا استعملت لصاق الإيبوكسي مباشرة قد لا تتمكن من تعديل مكانها مرة أخرى خاصة إذا أحسست أن الموضع لم يكن مناسبا للوهلة الأولى.

وبالتالي: قم بإلصاق شريط لاصق على ظهر حاملة البطاريات وشريط لاصق آخر على بطن الصفيحة المعدنية ثم استعمل لصاق الإيبوكسي لتتبيث الصفيحة. الفكرة وراء هذه الطريقة هو أنه بإمكانك أن تزيل فقط الشريط اللاصق إذا حصل وأردت أن تفكك الروبوت أو تغير مكان أجزاءه.

2. الجزء الأمامي للبروبوت ثقيل وبالتالي سينعدم توازنه

الحل: جعل رأسي المحركين يميلان إلى الأمام وليس الوسط. أو أن تضع ثقلا إضافية في مؤخرة الروبوت كما سنرى لاحقا. 


 4. تركيب الذنب

{vsig}cat_robot/robot1/04{/vsig}

تحتاج هنا لمشبك ورق كبير وخرزة.

لإلصاق المشبك يمكنك أن تستعمل ثقبين في مؤخرة حاملة البطاريات أو تستعمل لصاقا كثيرا.

لمعالجة توازن الروبوت تحتاج لأن تركب مشبكا طويلا فقط. 


5. تلحيم المبدالين والمحركين

{vsig}cat_robot/robot1/05/00{/vsig}

قم الآن بربط السنتين المتوسطتين للمبدالين ببعضهما البعض. كمايمكنك أن تطلي الصفيحة المعدنية بطلاء أسود للتزين.

{vsig}cat_robot/robot1/05/01{/vsig}

أما الآن فما عليك إلا أن تربط السنتين الباقيتين بسنتي المحركين المحاديتين كما في الصورة.

{vsig}cat_robot/robot1/05/02{/vsig}

قم بإيصال سنتي المحركين الأخريين ببعضهما البعض.

{vsig}cat_robot/robot1/05/03{/vsig}

هنا الجزء الرئيسي والأشد أهمية للخنفسائبوت.

لحاملة البطاريات AA أو AAA مخرجين يزودان 3 فولط.

في الحقيقة سنستعمل فقط 1.5 فولط لكلا المحركين.

كيف نحصل إذا على نصف جهد التيار الكهربائي؟ ببساطة تقوم بربط سلك كما هو مبين في الصورة

{vsig}cat_robot/robot1/05/04{/vsig}

استكمال تركيب الدارة الكهربائية يتم كما هو مبين في الصورة.

حاملة البطاريات من نوع AA أو AAA مزودة بسلك أحمر(+) وآخر أسود (-).

ثبت السلكين كما هو مبين في الصورة.

قم الآن بوضع بطاريتين. يجب أن يشتغل المحركين.

يشتغل المحرك الأيسر بالضغط على المبدال الأيسر والمحرك الأيمن بالضغط على المبدال الأيمن. 


6. تركيب قرني الإستشعار

{vsig}cat_robot/robot1/06/00{/vsig}

نحتاج هنا لموصيلين نهائيين.

خذ هذين الموصلين وانزع عنهما قطع البلاستيك الملتفة. بهذا يمكنك تلحيم الموصلين بسهولة.

اضغط على أطراف الموصلين بالكماشة (الزردية). بعدها يصبح من السهل تركيبها أو فصلها من الموصل المعدني للمبدال.

{vsig}cat_robot/robot1/06/01{/vsig}

قم بتلحيم كل مشبك بنهاية موصل على حدة. وهكذا يتم إنجاز قرني ال‘ستشعار.

بعد ذلك ثبت قرني الإستشعار بالمبدالين.

إذا كان تركيبهما غير مسوي بالأمر المطلوب يمكنك إذن أن تعيد تضييقهما بالكماشة (الزردية).

ربوبتك الأول انتهى هنا. ما سيأتي هو فقط تزيين للروبوت. 


7. ربط قاطع الكهرباء

{vsig}cat_robot/robot1/07{/vsig}

لتشغيل الروبوت أو إيقافه نحتاج لقاطع كهرباء. انظر إلى الصورة ليتضح لك الأمر. 


8. تصميم القوقعة

يمكنك استعمال أيا من أغطية القنينات.

بخصوص خنفسائنا الروبوت نستعمل الغطاء الشفافي.

قم بتصميم القوقعة كما تحب، يمكنك الاستعانة بالصور المرفقة: 

{vsig}cat_robot/robot1/08/00{/vsig}

{vsig}cat_robot/robot1/08/01{/vsig}

{vsig}cat_robot/robot1/08/02{/vsig} 


 9. إنهاء الروبوت

قم بتركيب القوقعة على ظهر الروبوت وأضف بعض التحسنات كطلي قرني الإستشعار باللون الأسود وبالتالي تكون قد أتممت أول روبوت لك.

{vsig}cat_robot/robot1/09{/vsig}

مبروك عليك. سهل أليس كذلك؟ 


10. القاموس

العربية

الانجليزية

الفرنسية

محرك كهربائي

Motor

Moteur

المبدال( المقلاد أوقاطع التيار)

Switch

Interrupteur

بطارية

Battery

Batterie

حاملة البطارية

Battery holder

Supportde batterie

قاطع التيار

Toggle switch

Interrupteur

مشبك الأوراق

Paper clip

Trombone

موصل نهائي

Terminal connector

 

انابيب بلاستيكية قابلة للإنكماش بالحرارة

Heat shrink

Thermorétractable

التلحيم

Soldering

Brasage

لحامالحديد

Soldering iron

Fer à souder

مسدس اللصاق الساخن

Glue gun (Hot glue or Hot Melt Adhesive)

Collesthermofusibles

 

Wire stripper

Pince à dénuder

الزردية أو الكماشة

Side cutter (Plier)

Pince

مشرط

x-acto

Scalpel

إيبوكسي

Epoxy glue

Époxydes 


التأليف

المؤلف: Jerome Demers
ترجمة بتصرف:
محمد السهلي
مدة الترجمة:
5 ساعات





المراجع

http://www.instructables.com/id/How-to-Build-a-Robot-The-BeetleBot-v2-Revisite/?ALLSTEPS
http://blog.makezine.com/archive/2008/03/top_articles_in_make_1_12.html?CMP=OTC-0D6B48984890
 
http://www.make-digital.com/make/vol12/?pg=150 
http://www.jeromedemers.com
 http://www.solarbotics.com/products/k_jb/


 إليك الآن باقة من أعمال مشابهة:

{youtube}gBAXLeSMMdk{/youtube}

{youtube}Js2sdjDbJ9s{/youtube}

{youtube}LxkhLHh23Ac{/youtube}

]]>
nihon.sahli@gmail.com (محمد السهلي) روبوتات للمبتدئين Wed, 14 Sep 2011 16:57:22 +0000
الخنفسـابـوت http://www.isnaha.com/isnaha_new/الروبوتات/item/1209-الخنفسـابـوت http://www.isnaha.com/isnaha_new/الروبوتات/item/1209-الخنفسـابـوت

الخنفسابوت

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

تقديم

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

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

{youtube}SzKj3aswAkM{/youtube}

{youtube}XFuuV_pSD-E{/youtube}

{vsig}cat_robot/Hexapod/00{/vsig}

الجزء 1: الأجزاء الرئيسية

{vsig}cat_robot/Hexapod/01{/vsig}

جسم الروبوت والفكين

العربية

إنجليزية

فرنسية

الكمية

القيمة أو الصيغة

ألواح خشبية

Wooden planks

Planches de bois

2x3mm

شريحة من الألمنيوم

Sheet of aluminium

Feuille d'aluminium

مبدد حراري

Heatsink

Dissipateur de chaleur

احصل عليه من الخردة

طلاء (صباغة)

paint

سوداء

شرائح إسفنجية صلبة

EVA foam

أحمر وأسود

براغي وصمولات

Screws with nuts

55

3 mm

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

Servos

14

12 للأرجل

2 للفكين

الرابط

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

Servo controller

USC 16-channel

الرابط

لوحة أردوينو

Arduino board

UNO مثلا

الرابط

مقوم كهربائي

Voltage Regulator

Régulateur de tension

UBEC 8A/15A

الرابط

بطارية ليبو

LiPo battery

الرابط

العينين والمتحكم

العربية

إنجليزية

فرنسية

الكمية

القيمة أو الصيغة

صمامات ضوئية

LED

64

أسود

الرابط

90

أحمر

الرابط

أسلاك كهربائية

Wires

أحمر وأسود

متحكم

Microcontroller

2

Atmega8

الرابط

مقبس

Socket

douille

28 pin

الرابط

متذبذب بلوري

Crystal oscillator

Quartz

16 MHz

الرابط

مكثف سيراميكي

Ceramic capacitor

Condesateur ceramique

4

22pF

الرابط

مقوم كهربائي

Regulator

Régulateur

LM7805

الرابط

مقاومات

Resistors

Resistance

12

220 Ohm

الرابط

كابلات

Cables

الكثير

المتحكم عن بعد

العربية

إنجليزية

فرنسية

الكمية

القيمة أو الصيغة

مقبض البلايستايشن 2

PS2 Joysticks

Manche à balai PS2

2

الرابط

بلوك دبابيس

Screw terminal blocks

Borniers à vis

الرابط

مقاومات

Resistors

Resistance

10KOhm

الرابط

اللوحة المثقبة للتجريب

Bread board

(Y use one with 700 points)

الرابط

مقاومة متغيرة خطية

slide potentiometer

Potentiomètre linéaire

50Kohm

الرابط

بطاقة أردوينو نانو

Arduino nano

V3.0

الرابط

مقياس التسارع

Accelerometer

Accéléromètre

MMA7361 3 axis

الرابط

نموذج مرسل/مستقبل

Transceiver module

Emetteur-récepteur

NRF24L01 2,4 GHz

الرابط

البرامج

Arduino IDE

USC Software

AutoCad 2012

الأدوات

منشار

Saw

ورق مرحاض

Toilet paper

مبرد

Lime

مقص

Scissors

مثقاب كهربائي

Electric Drill

مسطرة

Rule

غراء (لصاق)

Glue (cyanoacrylate glue)

قلم رصاص

Pencil

مقبض تمساحي

Tweezers

مفك براغي

Screwdriver

الخطوة 2: تصميم الأجزاء وصنع النموذج

{vsig}cat_robot/Hexapod/02{/vsig}

قمت بتصميم الأجزاء لتناسب محركات السيرفو من صنف SG90. صممت النماذج على الورق. استعملت صفيحة خشبية سمكها 3 ملم. رسمت عليها النماذج على حسب حجم محركات السيرفو. وعدد الأجزاء التي احتجتها هي كالتالي:

القطعة A: نحتاج لـ 48 وحدة القطعة B: نحتاج لـ 6 وحدة.

القطعة C: نحتاج لـ 12 وحدة القطعة D: نحتاج لـ 12 وحدة.

القطعة E: نحتاج لـ 12 وحدة القطعة F: نحتاج لـ 12 وحدة.

القطعة G: نحتاج لـ 12 وحدة القطعة H: نحتاج لـ 12 وحدة.

القطعة I: نحتاج لـ 6 وحدة القطعة J: نحتاج لـ 2 وحدة.

الخطوة 3: التقطيع

{vsig}cat_robot/Hexapod/03{/vsig}

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

قبل الشروع في التقطيع من الأفضل أن تنجز ثقوبا باستعمال مثقابا كهربائيا قطره 3 ملم.

بعد القطع من المستحسن لك أن تبرد حافات القطع بالمبرد حتى تصبح ملساء.

الخطوة 4: التلصيق

{vsig}cat_robot/Hexapod/04{/vsig}

الأدوات التي استخدمتها هنا هي: لصاق شديد (غراء)، وورق المرحاض (للتنظيف)، ومقابض.

سنحتاج لأربع قطع من أجل صنع كل رجل سنوصلها بمحرك السيرفو. إذن، لكل رجل قم بلصق قطعة B بقطعة C. وآخر شيء يجب أن تفعله هو إلصاق قطعتين H ببعضهما البعض.

ملاحظة: إذا خشيت من عدم مطابقة الثقوب، فيمكنك تنفيذ اللصق أولا ومن بعد ذلك تنجز الثقوب.

الخطوة 5: التزويق والتجميل

{vsig}cat_robot/Hexapod/05{/vsig}

الأدوات التي استخدمتها هنا هي: أغلفة سوداء وحمراء، ولصاق، ومقص، وقلم وصباغة.

إذا اردت أن تتقنها جدا فعليك أن تصبغ القطع أولا ثم تغلفها بالأغلقة كما ترى في الصور.

الخطوة 6: تركيب محركات السيرفو

{vsig}cat_robot/Hexapod/06{/vsig}

الأدوات التي استخدمتها هنا هي: الكثير من البراغي، مفك براغي ومحركات السيرفو.

الخطوة 7: توصيل الأجزاء الإلكترونية

{vsig}cat_robot/Hexapod/07{/vsig}

الأدوات التي استخدمتها هنا هي: لوحة أردوينو، المتحكم (كونترولور 16-قناة) بمحركات السيرفو، ومنظم UBEC 8A، وبطاريات LIPO.

التغذية الكهربائية

سيحتاج متحكم (كونترولور) السيرفو لمنبعين للطاقة: منبع تغذية محرك السيرفو ومنبع تغذية الشريحة.

  • القطب الموجب لمحرك السيرفو (+): القطب VS (على يسار الموصل 3 في الشكل أعلاه)

  • القطب الموجب لمحرك السيرفو (–): القطب GND (في وسط الموصل 3 في الشكل أعلاه)

تعتمد معايير التغذية الكهربائية لمحركات السيرفو على المواصقات التي تجدها مرافقة للمحركات ذاتها. مثلا، لمحرك السيرفو من صنف SG-90 تعذية كهربائية تتراوح بين 4 و 5 فولط. فلا تنسى أن تفحص الجهد الكهربائي الذي تحتاجه محركات السيرفو التي اخترتها لهذا المشروع.

  • القطب الموجب للشريحة (+): القطب VSS (على يمين الموصل 3 في الشكل أعلاه)

  • القطب الموجب للشريحة (–): القطب GND (في وسط الموصل 3 في الشكل أعلاه)

إذا كانت الشريحة ستوصل من خلال الدخل VSS، فيجب أن تكون التغذية الكهربائية تتراوح بين 6.5 و 12 فولط.

توصيل أردوينو، والمنظم USC ومحركات السيرفو

الأطراف التي تراها مؤطرة بالأحمر هي التي سيتم إيصال محركات السيرفو بها لتلقي الإشارة (احذر من مسألة الإتجاه عند التوصيل مع محركات السيرفو ).

لتوصيل الكونترولور USC، قم ببساطة بإيصال مربطه rx بالمربط tx لبطاقة أردوينو، وإيضا مربطه tx بالمربط rx لبطاقة أردوينو. بعدها صل مربطه GND ببطاقة أردوينو.

الخطوة 8: البرمجة

{vsig}cat_robot/Hexapod/08{/vsig}

قم بتحميل الملفات التالية التي ستحتاجها لصنع هذا الروبوت:

rios_usc.exe

usc_driver.exe

usc_en.pdf

الأدوات التي استخدمتها هنا هي: برنامج أردوينو، وبرنامج USC، قم بتحميلهما من الملفات المذكورة.

قبل شروعك في البرمجة سيكون من الجميل معرفة القيم القصوى والقيم الدنيا لتحرك كل محرك من محركات السيرفو. لمعرفة هذا قم بتركيب الكونترولور USC داخل الروبوت. وحيث أننا سنبرمج المتحكم عن طريق الكابل USB، الذي سيصل الحاسوب بالروبوت، سنستطيع باستخدام البرنامج RIOS-USC التحكم بدوران المحركات واختبار نجاعة واتجاه دورانها.

بعد هذا الفحص الأولي، سننتقل لبرمجة بطاقة أردوينو من أجل التحكم بالمتحكم USC الذي بدوره سيتحكم بمحركات السيرفو. يعتبر الكونترولور USC جهازا تابعا، أي أن مهمته هو استقبال الأوامر وتنفيذها وفي المقابل فليس مهمته هي ”التفكير“.

مميزات بروتوكول الإتصال الذي استخدمناه هي كالتالي:

serial communication (TTL level),

baud rate 9600,

no check bit,

8 data bits,

1 stop bit

التحكم في محرك واحد

سنحتاج للأمر التالي:

#1P1500T100\r\n

بحيث ترمز:

  • المعلومة 1# لقناة التحكم بمحرك السيرفو.

  • المعلومة P1500 لمكان محرك السيرفو في المجال من 500 إلى 2500.

  • المعلومة T100 لمدة التنفيذ وتمثل السرعة في المجال من 100 إلى 9999.

التحكم في عدة محركات

سنحتاج للأمر التالي:

#1P600#2P900#8P2500T100\r\n

بحيث ترمز:

  • المعلومات 1# و2# و8# لقنوات التحكم لمحركات السيرفو.

  • المعلومات P600 و P900 و P2500 لأمكنة ثلاث محركات السيرفو في المجال من 500 إلى 2500.

  • المعلومة T100 لمدة التنفيذ وتمثل السرعة للمحركات الثلاث في المجال من 100 إلى 9999. بغض النظر عن عدد محركات السيرفو، نحتاج لمدة تنفيذ واحدة تتحرك فيها المحركات تآنيا.

في حدود دوران كل محرك، قم بحساب المجال الأقصى أو ”الخطوة“ لكل محركات السيرفو الأفقية لإيجاد أصغر خطوة من بينها جميعا وسنجعلها أقصى خطوة ندير بها محركات السيرفو. كما يجب فعل نفس الشيء مع محركات السيرفو العمودية.

{youtube}cxYIbUk4WGg{/youtube}

{youtube}Emhtqq1_6DY{/youtube}

{youtube}ORFg-BbFJXM{/youtube}

{youtube}6YMuhP6cBas{/youtube}

{youtube}UF-xCvleJIU{/youtube}

{youtube}SzKj3aswAkM{/youtube}

الخطوة 9: تصميم وتصنيع العينين

{vsig}cat_robot/Hexapod/09{/vsig}

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

تتكون شاشة العين من زمرة تتألف من 32 صماما ضوئيا أزرق محيطة بمصفوفة مكونة من 5 صفوف و9 أعمدة لصمامات ضوئية حمراء. هذا من أجل جعل المصفوفة تظهر عدة إشعارات ثابتة ومتحركة على الشاشة.

الخطوة 10: لوحة التحكم بالعينين

{vsig}cat_robot/Hexapod/10{/vsig}

للتحكم بالعينين قمت بتصميمها على برنامج كما هو مذكور في المقال 1 ومن ثم طبعت التصميم على ورق لأنفذها بالطريقة المذكورة في المقال 3. المهم هذا يعتمد على الطريقة التي تختارها أنت:


المقال 1: اصنعها إليكترونيا – تحويل الدارات إلى بطاقات إليكترونية
المقال 2: اصنعها إليكترونيا – الشرائح الإليكترونية1
المقال 3: اصنعها إليكترونيا – الشرائح الإليكترونية2

{youtube}cLMuH5qllFk{/youtube}

{youtube}xhzqyUmUSxY{/youtube}

الخطوة 11: الفكين

{vsig}cat_robot/Hexapod/11{/vsig}

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

للتحكم في حركة الفكين استخدمنا محركي سيرفو معا. قمت أيضا بتزيينها بطليها بغطاء أسود وجوانب حمراء. يمكنك أيضا صباغتها لتلاءم شكل الخنفسابوت.

{youtube}HJeZE9c8T74{/youtube}

الخطوة 12: تصميم الصندوق

{vsig}cat_robot/Hexapod/12{/vsig}

الصور شارحة نفسها بنفسها. قم بتصميم الصندوق وصنعه كما تراه في الصور.

الخطوة 13: النتيجة النهائية

{vsig}cat_robot/Hexapod/13{/vsig}

تمثل هذه الخطوة اللمسات الأخيرة للروبوت. لكن خلال الخطوات القادمة سأقوم بشرح كيفية صنع مقبض التحكم التي من خلالها سنتحكم في روبوتنا.

الخطوة 14: مقبض التحكم

{vsig}cat_robot/Hexapod/14{/vsig}

الأدوات التي استخدمتها هنا هي: المنشار، والمبرد، والمثقب.

قمت بتصميم هذه اللوحات على برنامج كما هو مذكور في المقال 1 ومن ثم طبعت التصميم على ورق لأنفذها بالطريقة المذكورة في المقال 3. المهم هذا مرة أخرى يعتمد على الطريقة التي تختارها أنت:


المقال 1: اصنعها إليكترونيا – تحويل الدارات إلى بطاقات إليكترونية
المقال 2: اصنعها إليكترونيا – الشرائح الإليكترونية1
المقال 3: اصنعها إليكترونيا – الشرائح الإليكترونية2

صممت هذه اللوحات لتناسب حجم مقبض التحكم الخاص بجهاز الألعاب PS2. والسبب الرئيسي وراء تصميمي لهذه اللوحات الصغيرة هو تسهيل التوصيل بين حدي المقاومة المتغيرة والزر الضغطي الموجودة في بطاقة أردوينو. تضم هذه اللوحة مقاومة 10KOhm وهو الشيء الذي يجعل التوصيل بين الزر وأردوينو يحتاج لكابل فقط.

بعد الإنتهاء من صنعها قم بتوصيل الدبابيس التابعة للوحة مقبض التحكم على الشكل التالي:

  • يوصل المربط GND بالمربط GND للوحة أردوينو.

  • يوصل المربط Vin بالمربط 5V للوحة أردوينو.

  • يوصل المربط x-axis للمقاومة المتغيرة بمربط تناظري (analog pin) للوحة أردوينو (مثلا A0).

  • يوصل المربط y-axis للمقاومة المتغيرة بمربط تناظري (analog pin) للوحة أردوينو (مثلا A1).

  • يوصل الزر بمربط رقمي (digital pin) للوحة أردوينو (مثلا D8).

الخطوة 15: كيف نستعمل النموذج 2.4GHz؟

{vsig}cat_robot/Hexapod/15{/vsig}

قم بتحميل الملفات التالية التي ستحتاجها لصنع هذا الروبوت:

nRF24L01P_Product_Specification_1_0.pdf

RF24-master.zip

استعملت نموذجين للتواصل اللاسكي/المذياعي من صنف nRF24L01 2.4GHz لتحقيق التواصل بين لوحتي أردوينو. مجال هذين النموذجين يقدر من مسافة 50 قدم إلى 2000 قدم.

وللمعلومة فقط، يعتمد هذين النموذجين على شريحة تسمى +nRF24L01 التي تضم خاصية الإرسال والإستقبال بتردد 2.4GHz، ومحلل الترددات المذياعية، ودارة منطقية تحوي بروتوكولا مسرعا للتواصل عن طريق الواجهة SPI. وهذين النموذجين يحتويان على هوائيتين مركبيتن داخليا.

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

استعن بالصورتين والجدول جانبه من أجل توصيل نموذج الإرسال والإستقبال ببطاقة أردوينو.

يجب أن تعرف أنه يجب عليك إيصال المربط VCC للنموذج بمربط 3.3V وليس 5.0V.

فيما يلي البرنامج الخاص بالأرسال وآخر خاص بالإستقبال.

برنامج المرسل

/*

- WHAT IT DOES: Reads Analog values on A0, A1 and transmits

them over a nRF24L01 Radio Link to another transceiver.

1 - GND

2 - VCC 3.3V !!! NOT 5V

3 - CE to Arduino pin 9

4 - CSN to Arduino pin 10

5 - SCK to Arduino pin 13

6 - MOSI to Arduino pin 11

7 - MISO to Arduino pin 12

8 - UNUSED

- Analog Joystick:

GND to Arduino GND

VCC to Arduino +5V

X Pot to Arduino A0

Y Pot to Arduino A1

*/

/*-----( Import needed libraries )-----*/

#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>

/*-----( Declare Constants and Pin Numbers )-----*/

#define CE_PIN 9

#define CSN_PIN 10

#define JOYSTICK_X A0

#define JOYSTICK_Y A1

// NOTE: the "LL" at the end of the constant is "LongLong" type

const uint64_t pipe = 0xE8E8F0F0E1LL; // Define the transmit pipe

/*-----( Declare objects )-----*/

RF24 radio(CE_PIN, CSN_PIN); // Create a Radio

/*-----( Declare Variables )-----*/

int joystick[2]; // 2 element array holding Joystick readings

void setup() /****** SETUP: RUNS ONCE ******/

{

Serial.begin(9600);

radio.begin();

radio.openWritingPipe(pipe);

}//--(end setup )---

void loop() /****** LOOP: RUNS CONSTANTLY ******/

{

joystick[0] = analogRead(JOYSTICK_X);

joystick[1] = analogRead(JOYSTICK_Y);

radio.write( joystick, sizeof(joystick) );

}//--(end main loop )--

برنامج المستقبل

/*

- WHAT IT DOES: Receives data from another transceiver with 2 Analog values from a Joystick

- Displays received values on Serial Monitor

1 - GND

2 - VCC 3.3V !!! NOT 5V

3 - CE to Arduino pin 9

4 - CSN to Arduino pin 10

5 - SCK to Arduino pin 13

6 - MOSI to Arduino pin 11

7 - MISO to Arduino pin 12

8 - UNUSED

*/

/*-----( Import needed libraries )-----*/

#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>

/*-----( Declare Constants and Pin Numbers )-----*/

#define CE_PIN 9

#define CSN_PIN 10

// NOTE: the "LL" at the end of the constant is "LongLong" type

const uint64_t pipe = 0xE8E8F0F0E1LL; // Define the transmit pipe

/*-----( Declare objects )-----*/

RF24 radio(CE_PIN, CSN_PIN); // Create a Radio

/*-----( Declare Variables )-----*/

int joystick[2]; // 2 element array holding Joystick readings

void setup() /****** SETUP: RUNS ONCE ******/

{

Serial.begin(9600);

delay(1000);

Serial.println("Nrf24L01 Receiver Starting");

radio.begin();

radio.openReadingPipe(1,pipe);

radio.startListening();;

}//--(end setup )---

void loop() /****** LOOP: RUNS CONSTANTLY ******/

{

if ( radio.available() )

{ // Read the data payload until we've received everything

bool done = false;

while (!done)

{ // Fetch the data payload

done = radio.read( joystick, sizeof(joystick) );

Serial.print("X = ");

Serial.print(joystick[0]);

Serial.print(" Y = ");

Serial.println(joystick[1]);

}

}

else

{

Serial.println("No radio available");

}

}//--(end main loop )---

الخطوة 16: توصيل أداة التحكم والمقاومة المتغيرة الخطية

{vsig}cat_robot/Hexapod/16{/vsig}

قمت أولا بتركيب جميع المركبات الإلكترونية، المكونة لمقبض التحكم، على لوحة التجريب المثقبة. قم ببساطة بتوصيل المرابط x وy وGND وVin لعصا كل مقبض للمرابط A0 و A1 و 5V وGND. والمقاومة المتغيرة الخطية بنفس الطريقة أيضا.

الخطوة 17: كيف تستعمل مقياس التسرع MMA7361؟

{vsig}cat_robot/Hexapod/17{/vsig}

قم بتحميل الملفات التالية التي ستحتاجها لصنع هذا الروبوت:

AcceleroMMA7361_v0.8b.zip

refman.pdf

يحتاج مقياس التسارع لقليل من الطاقة الكهربائية ويحتوي على دخل للتبديل بين النطاقين 1.5g± و 6g±. صفات أخرى يتضمنها مقياس التسارع من بينها: نمط السبات، شرطية الإشارة، مصفاة عبور منخفضة أحادية القطب، تعويضات درجة الحرارة، اختبار ذاتي، وتحديد السقوط الحر.

مميزاته هي كالتالي:

  • التغذية الكهربائية: من 2.2V إلى 3.6V أو 5V.

  • نمطين للتبديل: 1.5g± و 6g±.

  • لوحة قابلة للتركيب على لوحة التجريب المثقبة.

  • استهلاك ضئيل للتيار الكهربائي: 400µA

  • نمط السبات: 3µA

  • استهلاك جهد كهربائي ضئيل أثناء العمل: بين 2.2V و 3.6V

  • حساسية عالية: 800mV/g عند 1.5g

  • استجابة سريعة: 0.5ms

  • اختبار ذاتي للحماية عند السقوط الحر.

  • شرطية الإشارة بمصفاة عبور منخفضة

  • تصميم قوي مضاد للصدمات.

باستعمال المكتبة البرمجية للحساس AcceleroMMA7361 سيكون من السهل استعماله وبرمجته. الدوال التي يمكنك استخدامها من هذه المكتبة هي كالتالي:

الدالة

المهمة

void begin()

للتهيئة بنمط اعتيادي.

void begin(int sleepPin, int selfTestPin, int zeroGPin, int gSelectPin, int xPin, int yPin, int zPin)

للتهيئة بنمط الخاص.

int getXRaw()

ترجع بقيمة خام صحيحة للمحور X للمنفذ التناظري لبطاقة أردوينو.

int getYRaw()

ترجع بقيمة خام صحيحة للمحور Y للمنفذ التناظري لبطاقة أردوينو.

int getZRaw()

ترجع بقيمة خام صحيحة للمحور Z للمنفذ التناظري لبطاقة أردوينو.

int getXVolt()

ترجع بقيمة صحيحة للجهد الكهربائي بـ mV من المحور X للمنفذ التناظري لبطاقة أردوينو.

int getYVolt()

ترجع بقيمة صحيحة للجهد الكهربائي بـ mV من المحور Y للمنفذ التناظري لبطاقة أردوينو.

int getZVolt()

ترجع بقيمة صحيحة للجهد الكهربائي بـ mV من المحور Z للمنفذ التناظري لبطاقة أردوينو.

int getXAccel()

ترجع بقيمة صحيحة للتسارع من المحور X للمنفذ التناظري لبطاقة أردوينو (1G = 100.00).

int getYAccel()

ترجع بقيمة صحيحة للتسارع من المحور Y للمنفذ التناظري لبطاقة أردوينو (1G = 100.00).

int getZAccel()

ترجع بقيمة صحيحة للتسارع من المحور Z للمنفذ التناظري لبطاقة أردوينو (1G = 100.00).

void getAccelXYZ(int _XAxis, int _YAxis, int _ZAxis)

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

int getTotalVector()

ترجع بقيمة صحيحة لمقدار متجهة التسارع.

void setOffSets(int xOffSet, int yOffSet, int zOffSet)

void calibrate()

void setARefVoltage(double _refV)

void setAveraging(int avg)

تضع عدد القيم التي يجب أن يحسب متوسطها في الدالة getAccel، والإعتيادي فيها هو 10.

int getOrientation()

void setSensitivity(boolean sensi)

إذا كان sensi يساوي HIGH فإن نسبة الحساسية ستصبح تساوي Gه1.5 -/+

إذا كان sensi يساوي LOW فإن نسبة الحساسية ستصبح تساوي Gه6 -/+

void sleep()

تدفع الجهاز إلى نمط السبات (أي أن الجهاز سيصبح فاقدا للعمل)

void wake()

إذا كان الجهاز على نمط السبات فاستدعاء هذه الدالة يوقظه

للمكتبة ثلاث نماذج بسيطة:

  • الأول يقوم بمعرفة التسارع في كل محور.

  • الثاني يقوم بمعرفة الزاوية.

  • الثالث يقوم بمعرفة الجهد الكهربائي.

استعملت RawData للحصول على زاوية كل محور للمتحكم من أجل التحكم بالإنعطاف أو قل الميلان.

#include <AcceleroMMA7361.h>

AcceleroMMA7361 accelero;

int x;

int y;

int z;

void setup()

{

Serial.begin(9600);

accelero.begin(8, 7, 6, 5, A5, A6, A7);

accelero.setSensitivity(HIGH); //sets the sensitivity to +/-6G

accelero.calibrate();

}

void loop()

{

x = accelero.getXRaw();

y = accelero.getYRaw();

z = accelero.getZRaw();

Serial.print("\nx: ");

Serial.print(x);

Serial.print("\ty: ");

Serial.print(y);

Serial.print("\tz: ");

Serial.print(z);

delay(500); //(make it readable)

}

الخطوة 18: تجميع الكل

{vsig}cat_robot/Hexapod/18{/vsig}

ما بقي من التركيب هو وضع مقياس التسارع (accelerometer) على لوحة التحكم وتوصيله لبطاقة أردوينو نانو كما شرحنا في الخطوة السابقة.

الخطوة 19: برمجة المتحكم عن بعد

{vsig}cat_robot/Hexapod/19{/vsig}

اعتمادا على حدود حركة محركات السيرفو، يجب عليك أن تضع خارطة لقيم عددية تأمر بها بطاقة أردوينو لتحويل قيم المقاومة المتغيرة ومقياس التسارع إلى قيم داخل مجال دوران محركات السيرفو. الخارطة هي كالتالي:

values[0] = map(values[0], 23, 1000, 900, 1500); //Value from slider pot

values[1] = map(values[1], 23, 1000, 2100, 1540); //Value from slider pot

values[3] = map(values[3], 1, 1033, -295, 295); //Value from y-axis of right joystick

values[4] = map(values[4], 1, 1023, -295, 295); //Value from y-axis of left joystick

values[5] = map(values[5], 1, 1023, -360, 360); //Value from x-axis of left joystick

values[6] = map(values[6], 170, 500, -360, 360); //Value from x-axis of the accelerometer

values[7] = map(values[7], 170, 510, -360, 360); //Value from y-axis of the accelerometer

باستعمال أحد الأزرار على مقبضي التحكم أردت أن استعمل المثال المذكور في إحدى صفحات موقع أردوينو الذي يتمثل في عد عدد المرات التي يضغط فيها على الزر مما يؤدي إلى خلق نمط معين يستجيب له الخنفسابوت. http://arduino.cc/en/Tutorial/ButtonStateChange

/* State change detection (edge detection)

This example shows how to detect when a button

or button changes from off to on and on to off.

*/

// this constant won't change:

const int buttonPin = 2; // the pin that the pushbutton is attached to

const int ledPin = 13; // the pin that the LED is attached to

// Variables will change:

int buttonPushCounter = 0; // counter for the number of button presses

int buttonState = 0; // current state of the button

int lastButtonState = 0; // previous state of the button

void setup() {

pinMode(buttonPin, INPUT); // initialize the button pin as a input

pinMode(ledPin, OUTPUT); // initialize the LED as an output

Serial.begin(9600); // initialize serial communication

}

void loop() {

buttonState = digitalRead(buttonPin); // read the pushbutton input pin

if (buttonState != lastButtonState) { // compare the buttonState to its previous state

// if the state has changed, increment the counter

if (buttonState == HIGH) { // if the current state is HIGH then the button

// wend from off to on:

buttonPushCounter++;

Serial.println("on");

Serial.print("number of button pushes: ");

Serial.println(buttonPushCounter);

}

else { // if the current state is LOW then the button wend from on to off:

Serial.println("off");

}

}

// save the current state as the last state, for next time through the loop

lastButtonState = buttonState;

// turns on the LED every four button pushes by

// checking the modulo of the button push counter.

// the modulo function gives you the remainder of

// the division of two numbers:

if (buttonPushCounter % 4 == 0) { digitalWrite(ledPin, HIGH); }

else { digitalWrite(ledPin, LOW); }

}

أنشئت ثلاثة أنماط للتحكم بحركة الروبوت:

  • يخول النمط الأول مقبضي التحكم وكذا المقاومة المتغيرة الخطية لتحريك الخنفسابوت.

  • يخول النمط الثاني مقبضي التحكم والمقاومة المتغيرة ومقياس التسارع لتحريك الخنفسابوت.

  • يخول النمط الثالث الخنفسابوت قابلية المشي أماما وخلفا وغيرها عن طريق اللعب بمقبضي التحكم معا.

{youtube}XFuuV_pSD-E{/youtube}

تأليف

تأليف: Deividmaxx

ترجمة بتصرف: محمد السهلي

المراجع

http://www.instructables.com/id/DIY-handmade-Hexapod-with-arduino-Hexdrake/?ALLSTEPS 
]]>
nihon.sahli@gmail.com (محمد السهلي) روبوتات للمتوسطين Sat, 25 Jul 2015 00:00:00 +0000