الجمعة، 15 نوفمبر، 2013

روبوت البلوتوث

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


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

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



القطع التي سنحتاجها :

1) بطاقة أردوينو  Uno " ميجا ستحتاج لتعديل في البرنامج "




2)غطاء قيادة المحركات L293 Motor driver 

او دارة قيادة المحرك  L298




3) هيكل روبوت Magician Chassis من شركة spark fun  او الهيكل 4Wheel Robot او هيكل روبوت Zumo من Pololu





4) قطعة البلوتوث HC-05 او HC-06 او احياناً تسمى Linvor .






5)بطاريتان , واحدة لتغذية المحرك "يجب ان تكون أكبر من 5 فولت " و الثانية  بطارية 9 فولت مع الحاضنة  لتغذية الأردوينو .



6) جهاز ذكي او لوح مزود لنظام التشغيل أندرويد 4.0

7) قطع اخرى , مثل  اسلاك توصيل , ستحتاج لأسلاك توصيل female-female عدد 4 , و ايضاً ستحتاج ل dc jack male+female لتسهيل توصيل البطارية مع غطاء الأردوينو الخاص بالمحرك  , و اخيراً pin header male عدد 1 .




التوصيل :

لأنني سأستخدم الغطاء L293 Motor driver فسأربط البلوتوث مع الأرجل A0,A1 على التوالي , و الجيد في هذا الغطاء هو امكانية توصيل المداخل التناظرية بسهولة .

التوصيل كالتالي :







وفي حال استخدام دارة القيادة L298 يكون التوصيل كالآتي :

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






هذا التطبيق متوافق مع هذا البرنامج 

البرنامج للروبوت سواءاً كانت ب 4 عجلات ام بعجلين .

الكود مع دارة القيادة L298









الكود مع دارة غطاء قيادة المحرك L293



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






الثلاثاء، 12 نوفمبر، 2013

الروبوت المتفادي للحواجز باستخدام حساس الأشعة تحت الحمراء 1

الروبوت المتفادي للحواجز Avoiding IR Robot 1


L298 Motor driver



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




ما سنقوم ببناءه هو روبوت متفادي للحواجز " Avoiding Robot " هذا الروبوت يمكنه تحسس الأجسام التي أمامه و تفاديها , مستخدماً حساس الأشعة تحت الحمراء SHARP 2Y0A21




في ما يلي في هذا المقال سستعرف على كل المفاهيم المرتبطة بهذا الروبوت .

في البداية , ماذا سنحتاج لتنفيذ هذه التجربة ؟ 

القطع المطلوبة لتنفيذ هذا الروبوت قليلة و سهلة التوافر , و طريقة ربطها بعضها سهلة ايضاً , القطع هي 

1) أردوينو Uno او Dumilanova  .



2) هيكل الروبوت Magician Chassis من شركة Sparkfun , هيكل سهل التركيب ,و يمكن استخدام هيكل ذو 4 محركات ذو عزم و تحكم أفضل من ذو العجلين , لكنه يستهلك طاقة مضاعفة  





3)  L298 Motor Sheild و هو غطاء مصمم خصيصاً ليتناسب مع بطاقات الأردوينو المختلفة , يحتوي على دارة متكاملة هي L298


4) حساس الأشعة تحت الحمراء IR 
SHARP 2Y0A21





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


5)بطاريتان , واحدة لتغذية المحرك "يجب ان تكون أكبر من 5 فولت " و الثانية  بطارية 9 فولت مع الحاضنة  لتغذية الأردوينو .
6) قطع اخرى , مثل  اسلاك توصيل , ستحتاج لأسلاك توصيل female-female عدد 4 , و ايضاً ستحتاج ل dc jack male+female لتسهيل توصيل البطارية مع غطاء الأردوينو الخاص بالمحرك  , و اخيراً pin header male عدد 1 .

توصيل القطع : قد تحتاج فقط لعكس التوصيلات بحيث تقلب السلك الأحمر مع السلك الأزرق لكلا المحركين , و لا ضرورة لتوصيل 5فولت بين غطاء قيادة المحرك L298 Module و بين الأردوينو .



التوصيلة لروبوت بمحركين 
التوصيل لروبوت بأربع محركات 

توصيلة الحساس مع الأردوينو

هذا الحساس يعطي خرجاً متناسباً تناسباً عكسياً مع المسافة .

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

برنامج اختبار المحركات فقط :








و هذا البرنامج الكامل للمشروع .







و هذا الفيديو يوضح كيف يعمل هذا الروبوت , رائع أليس كذلك ؟




الأحد، 10 نوفمبر، 2013

الروبوت المتفادي للحواجز باستخدام الألتراسونيك 2

الروبوت المتفادي للحواجز 


Avoiding Ultrasonic Robot 

L293 Motor driver Module


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

ما سنقوم ببناءه هو روبوت متفادي للحواجز " Avoiding Robot " هذا الروبوت يمكنه تحسس الأجسام التي أمامه و تفاديها , مستخدماً حساس الأمواج فوق الصوتية Ultrasonic 

في ما يلي في هذا المقال سستعرف على كل المفاهيم المرتبطة بهذا الروبوت .

في البداية , ماذا سنحتاج لتنفيذ هذه التجربة ؟ 
القطع المطلوبة لتنفيذ هذا الروبوت قليلة و سهلة التوافر , و طريقة ربطها بعضها سهلة ايضاً , القطع هي 

1) أردوينو Uno او Dumilanova  .

2) هيكل الروبوت Magician Chassis من شركة 

Sparkfun , هيكل سهل التركيب .


او الهيكل رباعي العجلات 4Wheel  المميز ذو العزم العالي و 

الدقة الأكبر في الحركة .




3) Arduino L293 Motor Sheild و هو غطاء مصمم خصيصاً ليتناسب مع بطاقات الأردوينو المختلفة , يحتوي على دارة متكاملة هي L293 خاصة لقيادة المحركات الكهربائية بالأضافة لمسجل الازاحة 74595 لزيادة مجال التحكم بسرعة المحركات .


4) حساس الأمواج فوق الصوتية Ultrasonic HC-SR04






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

استخدم الليثيوم كخيار أول و أفضل من حيث الآداء

5)بطاريتان , واحدة لتغذية المحرك "يجب ان تكون أكبر من 5 فولت " و الثانية  بطارية 9 فولت مع الحاضنة  لتغذية الأردوينو .

غذي بها الأردوينو , حتى تكون تغذية الروبوت منفصلة عن تغذية المحركات 

6) قطع اخرى , مثل  اسلاك توصيل , ستحتاج لأسلاك توصيل female-female عدد 4 , و ايضاً ستحتاج ل dc jack male+female لتسهيل توصيل البطارية مع غطاء الأردوينو الخاص بالمحرك  , و اخيراً pin header male عدد 1 .

توصيل القطع : 

1) قم بتجميع هيكل الروبوت .
2) قم بتوصيل الpin header male  مع غطاء الأردوينو الخاص بالمحرك .
3) قم بوضع غطاء الأردوينوالخاص بالمحرك فوق بطاقة الأردوينو كما في الصورة .
4) ثبت الألتراسونيك في الأمام و قم بتوصيله كالأتي 

tri >>>pin15 "A1 "
echo>>pin16 "A2"
vcc>> vcc 
Gnd>>Gnd

ستحتاج لعملية لحام بسيطة ل Pin header حتى يسهل عليك تثبيت اطراف الألتراسونيك بالغطاءShield و ستراها بوضوح اسفل يمين الغطاء .

5) ثبت البطاريات بهيكل الروبوت , قم بعملية لحام ل ل dc jack female  مع سلكين و توصيلهما لمداخل التغذية مع غطاء الأردوينوالخاص بالمحرك , ليسهل تشغيل و ايقاف الروبوت .


6)الشكل ادناه يوضح طريقة توصيل المحركين بالأردوينو



7) حمل الكود من مقالة غطاء قيادة المحرك  L293 لتتأكد نم ان توصيلك صحيح .

8) للتأكد حمل برنامج الألتراسونيك من هذا المقال لتتأكد من تثبيت الالتراسونيك صحيح " فقط غير السطر :


 Ultrasonic ultrasonic (12,13);

إلى :
 Ultrasonic ultrasonic (15,16);


حتى يناسب توصيلك , و افتح شاشة العرض Serial monitor يجب ان تتغير القراءة كلما اقتربت يدك من الاتراسونيك .

9) حمل الكود الرئيسي التالي :







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






الجمعة، 8 نوفمبر، 2013

الروبوت المتفادي للحواجز باستخدام الالتراسونيك 1

الروبوت المتفادي للحواجز 


Avoiding Ultrasonic Robot 

L298 Motor driver Module



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

ما سنقوم ببناءه هو روبوت متفادي للحواجز " Avoiding Robot " هذا الروبوت يمكنه تحسس الأجسام التي أمامه و تفاديها , مستخدماً حساس الأمواج فوق الصوتية Ultrasonic 

في ما يلي في هذا المقال سستعرف على كل المفاهيم المرتبطة بهذا الروبوت .

في البداية , ماذا سنحتاج لتنفيذ هذه التجربة ؟ 

القطع المطلوبة لتنفيذ هذا الروبوت قليلة و سهلة التوافر , و طريقة ربطها بعضها سهلة ايضاً , القطع هي 

1) أردوينو Uno او Dumilanova  .

2) هيكل الروبوت Magician Chassis من شركة 

Sparkfun , هيكل سهل التركيب .او الهيكل رباعي العجلات

 4Wheel  المميز ذو العزم العالي و الدقة الأكبر في الحركة .









3) Arduino L298 Motor Sheild و هو غطاء  يحتوي على دارة متكاملة هي L298 خاصة لقيادة المحركات الكهربائية



4) حساس الأمواج فوق الصوتية Ultrasonic HC-SR04






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

استخدم الليثيوم كخيار أول و أفضل من حيث الآداء

5)بطاريتان , واحدة لتغذية المحرك "يجب ان تكون أكبر من 5 فولت " و الثانية  بطارية 9 فولت مع الحاضنة  لتغذية الأردوينو .

غذي بها الأردوينو , حتى تكون تغذية الروبوت منفصلة عن تغذية المحركات 

6) قطع اخرى , مثل  اسلاك توصيل , ستحتاج لأسلاك توصيل female-female عدد 8 , و ايضاً ستحتاج ل dc jack male+female لتسهيل توصيل البطارية مع غطاء الأردوينو الخاص بالمحرك "اختياري "  , و اخيراً pin header male عدد 1 .

توصيل القطع : 

1) قم بتجميع هيكل الروبوت .
2) قم بتثبيت  غطاء الأردوينو الخاص بالمحرك على هيكل الروبوت .

3) ثبت الألتراسونيك في الأمام و قم بتوصيله كالأتي 

tri >>>"D12 "
echo>>"D13"
vcc>> vcc 
Gnd>>Gnd

ستحتاج لمفك صغير لتوصيل الاسلاك مع هذا غطاء قيادة المحرك .

إذا لم يكن متوفراً لديك بطارية 9 فولت فبإمكانك بعد أن توصل البطارية إلى هذا الغطاء أن تأخذ سلك من المدخل 5V من غطاء القيادة و أن توصله بمدخل ال 5 فولت من الأردوينو كما في الشكل "أجعل هذا خيارك الأخير لأنه يسبب الكثير من التشويش على عمل الأردوينو "
 .


المخرج المكتوب عنده 5V هو مصدر تغذية يمكنك تغذية الأردوينو به مباشرة


4) ثبت البطاريات بهيكل الروبوت , قم بعملية لحام ل ل dc jack female  مع سلكين و توصيلهما لمداخل التغذية مع غطاء الأردوينوالخاص بالمحرك , ليسهل تشغيل و ايقاف الروبوت , او يمكنك توصيل السلك مباشرة مع غطاء المحرك بحيث :

الخط الموجب للبطارية مع المدخل المكتوب عليه VCC

الخط السالب للبطارية  مع المدخل المكتوب عليه Gnd


5)الشكل ادناه يوضح طريقة توصيل المحركين بالأردوينو




7) حمل الكود من مقالة غطاء قيادة المحرك  L298 لتتأكد نم ان توصيلك صحيح .

8) للتأكد حمل برنامج الألتراسونيك من هذا المقال لتتأكد من تثبيت الالتراسونيك بشكل صحيح  



حتى يناسب توصيلك , و افتح شاشة العرض Serial monitor يجب ان تتغير القراءة كلما اقتربت يدك من الاتراسونيك .

9) حمل الكود الرئيسي التالي :






 

و هذا الفيديو يوضح طريقة العمل لهذا الكود 



الخميس، 7 نوفمبر، 2013

دارة قيادة المحركات Motor driver L298

دارة قيادة المحركات Motor driver L298




سأتحدث في هذه التدوينة عن استخدام الدارة المتكاملة L298 و هي دارة تستخدم لقيادة محركين كهربائيين بتيار أعظمي 2أمبير لكل محرك , و تتميز بسهولة التحكم و تحملها لفولتيات حتى 36 فولت .

النشرة الفنية لهذه القطعة تبين الخصائص الكهربائية لهذه القطعة و توزيع أرجلها .



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

مبدأ التحكم :

لهذه القطعة عدة مداخل و هي :

مداخل المحركات : و عددها 4 مداخل و موزعة بواقع مدخلين في كل جهة , و يربط بهما المحرك الكهربائي .

تكون هذه المخارج مرقمة ب OUT1-OUT4 , نربط المحرك الأول بالمدخلين OUT1 ,OUT2  و المحرك الثاني بالمدخلين OUT3,OUT4 هكذا نستطيع التحكم بسهولة باتجاه دوران المحرك .



هناك المداخل ENA,ENB هذان مدخلان التفعيل , إذا تم تطبيق صفر منطقي LOW فإن المحرك لن يدور ابداً و سيتوقف , و اذا كان بوضع التفعيل HIGH فإن التحكم ينتقل عن طريق المداخل IN1-IN4 بصورة عامة و توفيراً للمداخل Pins في الأردوينو , يتم وضع jumper صغير بين هذه المداخل مع ال 5v لتفعيلها دائماً .


التحكم يكون عن طريق المداخل من IN1-IN4 حيث أن IN1 يتحكم بالمدخل OUT1 و الIN2 يتحكم ب OUT2 و هكذا , فبتطبيق 1 منطقي "5 فولت" على مدخل IN1 مثلاً سيتم تمرير التيار ممن خلال OUT1 و عند تطبيق 0 منطقي سيتم ايقاف مرور التيار عبر OUT1 .

هذا مثال بسيط لكيفية التحكم بمحرك .

توصيلة المداخل مع الأردوينو سهلة , من المفضل توصيلها مع مداخل تدعم ال PWM مثل 3,5,6,9,10,11  لنستطيع التحكم بسرعة المحرك .




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


التوصيل :




و هذا البرنامج للتحكم بسرعة المحرك .







و هذا الفيديو يوضح طريقة عمل هذين البرنامجين







الثلاثاء، 5 نوفمبر، 2013

غطاء قيادة المحرك L293 Shield

دارة قيادة المحرك L293 




تعد أغطية الأردوينو Shields من أكثر الأمور روعة نظراً لما توفره من سهولة في التعامل في التركيب أو البرمجة  , من ضمن هذه الأغطية غطاء قيادة المحركات من Adafruit المبنية باستخدام الدارة L293  التي تسمى Adafruit Motor Driver L293 Shield  و المدعومة بمكتبة قوية جداً تسمح لهذا الغطاء Shield  التعامل مع المحركات المستمرة DC محركات السيرفو Servo و المحركات الخطوية Stepper 




يمكن لهذا الغطاء التحكم ب 4 محركات DC او محركين سيرفو او محركين خطويين .

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



تحتاج فقط لتركيب هذا الغطاء  Shield فوق الأردوينو و توصيل أطراف المحرك معه .



هذه الغطاء يتكون من الدارة المتكاملة L293 و من الدارة المتكاملة 74595 و الهدف منها توفير تعديل نبضي ذات تردد عالي جداً يصل لغاية 64KHz  .


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



و له مكتبة يمكن تحميلها من هنا .


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

أمور يجب أن تأخذها بعين الأعتبار ما يلي :

كل مدخل من مداخل هذا الغطاء M1,M2,M3,M4 يستطيع أن يتحمل فقط 600 ملي أمبير فقط , فعندما نريد ربط محركات للوربوت مع هذا الغطاء , نربط فقط محرك واحد على كل مدخل , حتى نتجنب حرق هذا الغطاء .





لتغدية المحركات هناك وسيلتين , أما من الأردوينو مباشرة أو من خلال مصدر خارجي , و حتى لا ندخل في أمور معقدة و في حسابات الخوف من ان نسحب تيار كبير او نعطب بطاقة الأردوينو , فإن كل ما علينا هو نزع Jumper  صغير اسفل الغطاء , و ربط المصدر الخارجي"البطارية مثلاً " مع المدخل المكتوب عليه EXT-Power و يجب وصله بقطبية صحيحة و إلا سيتلف الغطاء .




البرمجة :

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


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




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






كتوضيح لهذا البرنامج أهم أمر في البداية هو :




#include <AFMotor.h>

هذا الأمر يقوم بتحميل المكتبة و يجهزها لبدء العمل 

AF_DCMotor motor(motor #)

و في هذا الأمر نعرف المحركات التي سنتعامل معها و نعطيها اسماً محدداً يمكننا تغييره كما نشاء و نحدد رقم المحرك المربوط به من 1-4 .

يمكن ايضاً التحكم بالتردد الذي يعمل عليه التعديل النبضي من خلال هذا الأمر , لكن توفيراً للبطارية أنصحك بأن لا تستعمله لانه يستهلك البطارية 4 اضعاف التردد العادي"التردد العادي 1KHz "


 motor.setSpeed(255);

و هنا نضبط سرعة المحرك بقيمة ما بين 0-255 

 motor.run();

أوامر حركة الروبوت : هي تجمع كلها في هذا الأمر و نقوم فقط بتغيير ما بين القوسين كما يلي :
RELEASE  توقف
FORWARD   للأمام
BACKWARD   للخلف

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

و هذا فيديو يوضح عملية تجريب هذا الغطاء على هيكل روبوت .



 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.