الروبوت المتفادي للحواجز
Avoiding Ultrasonic Robot
L298 Motor driver Module
L298 Motor driver Module
سأتناول في هذا المقال , خطوة بخطوة , كيف تبني روبوتك الخاص بسهولة و في أقل من ساعة واحدة ! ليست بذلك التعقيد الذي يتصوره البعض .
ما سنقوم ببناءه هو روبوت متفادي للحواجز " Avoiding Robot " هذا الروبوت يمكنه تحسس الأجسام التي أمامه و تفاديها , مستخدماً حساس الأمواج فوق الصوتية Ultrasonic
في ما يلي في هذا المقال سستعرف على كل المفاهيم المرتبطة بهذا الروبوت .
في البداية , ماذا سنحتاج لتنفيذ هذه التجربة ؟
القطع المطلوبة لتنفيذ هذا الروبوت قليلة و سهلة التوافر , و طريقة ربطها بعضها سهلة ايضاً , القطع هي
1) أردوينو Uno او Dumilanova .
2) هيكل الروبوت Magician Chassis من شركة
Sparkfun , هيكل سهل التركيب .او الهيكل رباعي العجلات
4Wheel المميز ذو العزم العالي و الدقة الأكبر في الحركة .
Sparkfun , هيكل سهل التركيب .او الهيكل رباعي العجلات
4Wheel المميز ذو العزم العالي و الدقة الأكبر في الحركة .
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 فولت من الأردوينو كما في الشكل "أجعل هذا خيارك الأخير لأنه يسبب الكثير من التشويش على عمل الأردوينو " .
إذا لم يكن متوفراً لديك بطارية 9 فولت فبإمكانك بعد أن توصل البطارية إلى هذا الغطاء أن تأخذ سلك من المدخل 5V من غطاء القيادة و أن توصله بمدخل ال 5 فولت من الأردوينو كما في الشكل "أجعل هذا خيارك الأخير لأنه يسبب الكثير من التشويش على عمل الأردوينو " .
![]() |
المخرج المكتوب عنده 5V هو مصدر تغذية يمكنك تغذية الأردوينو به مباشرة |
4) ثبت البطاريات بهيكل الروبوت , قم بعملية لحام ل ل dc jack female مع سلكين و توصيلهما لمداخل التغذية مع غطاء الأردوينوالخاص بالمحرك , ليسهل تشغيل و ايقاف الروبوت , او يمكنك توصيل السلك مباشرة مع غطاء المحرك بحيث :
الخط الموجب للبطارية مع المدخل المكتوب عليه VCC
الخط السالب للبطارية مع المدخل المكتوب عليه Gnd
الخط الموجب للبطارية مع المدخل المكتوب عليه VCC
الخط السالب للبطارية مع المدخل المكتوب عليه Gnd
7) حمل الكود من مقالة غطاء قيادة المحرك L298 لتتأكد نم ان توصيلك صحيح .
8) للتأكد حمل برنامج الألتراسونيك من هذا المقال لتتأكد من تثبيت الالتراسونيك بشكل صحيح
حتى يناسب توصيلك , و افتح شاشة العرض Serial monitor يجب ان تتغير القراءة كلما اقتربت يدك من الاتراسونيك .
9) حمل الكود الرئيسي التالي :
8) للتأكد حمل برنامج الألتراسونيك من هذا المقال لتتأكد من تثبيت الالتراسونيك بشكل صحيح
حتى يناسب توصيلك , و افتح شاشة العرض Serial monitor يجب ان تتغير القراءة كلما اقتربت يدك من الاتراسونيك .
9) حمل الكود الرئيسي التالي :
و هذا الفيديو يوضح طريقة العمل لهذا الكود
كيف استخدم السيرفو مع l293
ردحذففي الجهة العلوية اليسرى لدارة ال L293 Module هناك مدخلين مخصصين للسيرفو مربوطين على D9, D10 و يمكن برمجتهما بشكل اعتيادي .
حذفأزال أحد مشرفي المدونة هذا التعليق.
ردحذفالسلام عليكم ورحمة الل وبركاته
ردحذفأخي العزيز أنا حملت الكود على برنامج Arduino و بعيطيني الخطا" الموضح بالأسفل
sketch_feb28b.ino:22:26: error: Ultrasonic.h: No such file or directory
sketch_feb28b:24: error: 'Ultrasonic' does not name a type
sketch_feb28b.ino: In function 'void loop()':
sketch_feb28b:83: error: 'ultrasonic' was not declared in this scope
sketch_feb28b:83: error: 'CM' was not declared in this scope
يوجد شيء لالنسبة لملف Ultrasonic أرجو منكم المساعده في كود لأنو أنا جمعت الروبوت و ضل الكود عشان أختبر الروبوت
شكرا"
وعليكم السلام ورحمه الله وبركاته , المشكله هنا ان مكتبه الUltrasonic لم توضع في مسار مكتبات اردوينو او وضعت بشكل خاطئ يمكنك تتبع خطوات في مقال كيفيه وضع مكتبه جديده للاردوينو http://www.genotronex.com/2014/01/blog-post_20.html
حذفلحل المشكله .
Thanks a lot dear Tala
ردحذفهل من الممكن عدم لحم القطع
ردحذفنعم ممكن المهم استخدم الأدوات الصحيحة و المناسبة .
حذفأزال المؤلف هذا التعليق.
ردحذفبعد اذنك يا بشمهندس كيف يتم نسخ الأكواد الخاصة بتعريف حساس الألتتراسونيك و غطاء المحرك ؟
ردحذفهل يتم النسخ قبل الكود الرئيس ام بعدده ؟
و لا قصد حضرتك انه هنشغل الحساس و الغطاء بالأكواد الخاصة بيهم في الأول للتاكد من عملهم بطريقة صحيحة و الكود الرئيسي قائم بذاته
انسخ الكود كاملاً كما نضعه بالمدونة لا أكثر
حذفشكرا يا بشمهندس جزاك الله خيرا
حذفالالتراسونك الى معايا 3 مخارج بس نوعه GH-311 اوصله ازاى ؟؟؟
ردحذفعد للنشرة الفنية لهذا الحساس , ما هو طبيعة الخرج Output المتناسب مع مقدار المسافة المقاسة ؟؟ استخدم مكتبة ping له ,ربما تعمل لكن عليك بالرجوع للنشرة الفنية لمعرفة العلاقة بين المسافة و الأشارة الخارجة من الحساس
حذفهو هنا مستخدم شريحة بلوتوث ولو مستخدم. عاوز استخدم سيرفو وعاوز الكود الخاص
حذفArduino: 1.6.6 Hourly Build 2015/10/20 07:42 (Windows 8.1), Board: "Arduino/Genuino Uno"
ردحذفC:\Users\NONA\AppData\Local\Temp\arduino_49bb21ab07c7ab64997ce4b4103c1f0d\sketch_oct21a.ino: In function 'void loop()':
sketch_oct21a:62: error: 'class Ultrasonic' has no member named 'Ranging'
distance=ultrasonic.Ranging(CM);
^
sketch_oct21a:62: error: 'CM' was not declared in this scope
distance=ultrasonic.Ranging(CM);
^
exit status 1
'class Ultrasonic' has no member named 'Ranging'
Invalid library found in C:\Users\NONA\Desktop\arduino-nightly\libraries\sketch_oct21a4: C:\Users\NONA\Desktop\arduino-nightly\libraries\sketch_oct21a4
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
ممكن حل لهاذه االمشكله
سلام عليكم حملت البرنامج يطلعلي اخطاء ومااعرف السبب
ردحذفرائع لكن يظهر لي خطا في #include "Ultrasonic.h"
ردحذفارجو الرد بسرعة
قم بتثبيت المكتبة بشكل صحيح , المكتبه غير معرفه لديك
حذفشكرا
حذفبش مهندس هل القطع المذكورة اعلاه متوفرة بالاردن واين اجدها شكرا؟
ردحذفالسلام عليكم ما نوع المحرك الذي يجعل الربوت يدور
ردحذفالسلام عليكم ما نوع المحرك الذي يجعل الربوت يدور
ردحذفالسلام عليكم انا لو عايز اتحكم فى التمكين الى هما enable 1 و enable 2 والتمكين ده هو سرعة المحرك ايه الى هيتغير فالكود وشكرااا
ردحذفكيف اتحكم بعزم المحرك والتيار وما هي مواصفات المحرك المطلوب لهكذا روبوت
ردحذفللتحكم المتقدم تحتاج لقراءة اوسع في ال DC Motor لان له معادلات رياضية
حذفللتحكم بالتيار تحتاج لدارة قيادة Current source IC للقيام بتغذية المحرك بالتيار المطلوب و تحديد الحمل على المخرج .
السلام عليكم يعطيكم الف عافية
ردحذفلو سمحتم البرنامج الكامل للمشروع غير موجود إذا في إمكانية لتوفيره باكون شاكر الكم كثير جدا
وشكرا
يرجى مراسلتنا على صفحتنا على الفيسبوك للرد على سؤالك
حذفhttps://www.facebook.com/Genotronex-229428667198604/
السلام عليكم .. عندى سؤالين
ردحذف1- هل الموتوران المستخدمان هنا هما DC ولا سيرفو ؟؟
2- لوأنا لو عاوز أشترى موتور سيرفو للروبوتات وبصفة عامة اجرب مشاريع واتعلم أختار ال180 ولا ال360 ؟؟
DC
حذفServo 180
أزال المؤلف هذا التعليق.
ردحذفالسلام عليكم باش مهندس ممكن استفسر منك على كيفية رسم الدائرة الالكترونية لان انا استخدم برنامج fritzing ولكن لم اجد دائرة h bridge من نوع l298n ممكن توضحلي كيف رسمت الدائرة وشكرا
ردحذفظهر لي هذا الخطأ
ردحذفأردوينو 1.8.10 (Windows 7), لوحة:"Arduino Uno"
E:\L298_ULTRASONIC_2MOTOR\L298_ULTRASONIC_2MOTOR.ino: In function 'void loop()':
L298_ULTRASONIC_2MOTOR:85:22: error: 'class Ultrasonic' has no member named 'Ranging'
distance=ultrasonic.Ranging(CM);
^~~~~~~
العثور على عدة مكتبات لـ"Ultrasonic.h"
مستخدم : C:\Users\cudi\Documents\Arduino\libraries\Ultrasonic-3.0.0
exit status 1
'class Ultrasonic' has no member named 'Ranging'
هذا التقرير قد يحتوي على معلومات أكثر مع تفعيل الخيار
"Show verbose output during compilation"
في ملف -> تفضيلات
البرنامج لايتم تحميله ولا يتم تحميل المكتبة ؟ كيف احمل الكود ؟ ممكن احد ينسخه الي بالتعليقات
ردحذف