هل تريد أن تتعلم كيف تصنع روبوتك الخاص؟ هناك العديد من أنواع الروبوتات المختلفة التي يمكنك بناءها بنفسك. يرغب معظم الناس في رؤية روبوت يقوم بالمهمة السهلة للانتقال من النقطة أ إلى النقطة ب.يمكنك بناء روبوت بالكامل من مكونات تمثيلية أو شراء مجموعة أدوات بدء التشغيل. يعد صنع الروبوت الخاص بك طريقة رائعة لتعلم الإلكترونيات وبرمجة الكمبيوتر.
خطوة
جزء 1 من 5: تجميع الروبوت
الخطوة 1. تجميع المكونات الخاصة بك
لبناء روبوت أساسي ، ستحتاج إلى بعض المكونات البسيطة. يمكنك العثور على معظم أو كل هذه المكونات في متجرك المحلي للهوايات الإلكترونية ، أو في بعض بائعي التجزئة عبر الإنترنت. تتضمن بعض المجموعات كل هذه المكونات. هذا الروبوت لا يتطلب أي لحام:
- Arduino Uno (أو متحكم آخر)
- 2 أجهزة 360 درجة
- 2 عجلات مطابقة المؤازرة
- 1 عجلة حرة
- 1 لوح اختبار (لوح تجارب أو لوح مشروع) لم يتم لحامه (ابحث عن لوحة اختبار بها صفان موجبان وسالبان على كل جانب)
- 1 مستشعر القرب (مع كابل موصل بأربعة سنون)
- 1 مفتاح زر ضغط
- 1 المقاوم 10kΩ
- 1 كابل USB A إلى B
- مجموعة واحدة من الرؤوس القابلة للكسر
- 1 6 × حامل بطارية AA مع 9V DC. مقبس طاقة
- 1 حزمة من 22. كبلات العبور أو كابل واحد
- العزل للخلف وللأمام (شريط مزدوج) أو مسدس الغراء
الخطوة الثانية. اقلب حجرة البطارية بحيث يكون ظهرها المسطح متجهًا لأعلى
ستقوم ببناء جسم الروبوت باستخدام حجرة البطارية كقاعدة.
الخطوة 3. رتب وحدتين مؤازرتين تواجهان نفس الاتجاه في نهاية حجرة البطارية
هذه النهاية هي النهاية التي يخرج منها الكابل من البطارية. يجب أن تلمس الماكينات الجزء السفلي ، ويجب أن تكون آلية الدوران لكل مؤازرة متجهة للخارج من جانبي حجرة البطارية. من المهم أن يتم ترتيب هذه الماكينات بشكل صحيح بحيث تكون العجلات مستقيمة. يجب أن تخرج كبلات المؤازرة من الجزء الخلفي من حجرة البطارية.
الخطوة 4. الصق الماكينات بالعزل أو الغراء
تأكد من توصيل المؤازرة بإحكام بحجرة البطارية. يجب محاذاة الجزء الخلفي من المؤازرة مع الجزء الخلفي من حجرة البطارية.
الآن ، يجب أن تشغل الماكينات نصف المساحة الموجودة في الجزء الخلفي من حجرة البطارية
الخطوة 5. ألصق لوحة الاختبار بشكل عمودي على المساحة المتبقية في حجرة البطارية
ستتدلى لوحة الاختبار هذه قليلاً فوق الجزء الأمامي من حجرة البطارية ، وستمتد إلى كلا الجانبين. تأكد من إحكام لوحة الاختبار قبل المتابعة. يجب أن يكون الصف "A" أقرب إلى المؤازرة.
الخطوة 6. قم بتوصيل متحكم Arduino بأعلى المؤازرة
إذا قمت بتوصيل المؤازرة بشكل صحيح ، فيجب أن يكون هناك جزء مسطح من المؤازرتين يلمسان بعضهما البعض. ألصق لوحة Arduino بهذه البقعة المسطحة بحيث تكون موصلات الطاقة USB و Arduino متجهة لأسفل (بعيدًا عن لوحة الاختبار). سيتداخل الجزء الأمامي من Arduino مع لوحة الاختبار.
الخطوة 7. قم بتثبيت العجلات على الماكينات
اضغط بقوة على العجلات على آلية المؤازرة الدوارة. قد يتطلب هذا قوة كبيرة حيث تم تصميم العجلات بحيث تحتوي على ثقوب تتناسب تمامًا مع شكل طرف المؤازرة.
الخطوة 8. قم بتثبيت العجلة الحرة في الجزء السفلي من لوحة الاختبار
إذا قلبت الروبوت رأسًا على عقب ، فسترى لوحة اختبار صغيرة معلقة من حجرة البطارية. اربط العجلة الحرة بهذا الجزء المعلق. استخدم إسفين إذا لزم الأمر. تعمل العجلة الحرة كعجلة أمامية تسمح للروبوت بالدوران في أي اتجاه بسهولة.
إذا اشتريت مجموعة ، فقد تحتوي العجلة المجانية على بعض الأوتاد التي يمكنك استخدامها للتأكد من أن العجلة حرة في لمس الأرض
جزء 2 من 5: توصيل أسلاك الروبوت
الخطوة 1. قص رأسين من 3 سنون
سوف تستخدم هذا لتوصيل المؤازرة بلوحة الاختبار. ادفع الدبابيس لأسفل من خلال الرؤوس ، بحيث تخرج بمسافة متساوية على كلا الجانبين.
الخطوة 2. أدخل الرأسين في السنون 1-3 و6-8 في الصف E على لوحة الاختبار
تأكد من إدخالها بإحكام أو بإحكام.
الخطوة 3. قم بتوصيل أسلاك المؤازرة بالرأس ، بالسلك الأسود على الجانب الأيسر (الطرفان 1 و 6)
سيؤدي هذا إلى توصيل المؤازرة بلوحة الاختبار. تأكد من توصيل المؤازرة اليسرى بالرأس الأيسر ، وأن المؤازرة اليمنى متصلة بالرأس الأيمن.
الخطوة 4. قم بتوصيل سلك العبور الأحمر من المسامير C2 و C7 بمسمار السكة الأحمر (الموجب)
تأكد من استخدام السكة الحمراء على الجزء الخلفي من لوحة الاختبار (أقرب إلى باقي جسم الروبوت).
الخطوة 5. قم بتوصيل سلك العبور الأسود من المسامير B1 و B6 بمسمار القضيب الأزرق (الأرضي)
تأكد من استخدام السكة الزرقاء الموجودة على الجزء الخلفي من لوحة الاختبار. لا تقم بتوصيل الكبل بمسمار القضيب الأحمر.
الخطوة 6. قم بتوصيل أسلاك العبور البيضاء من المسامير 12 و 13 في Arduino بـ A3 و A8
سيسمح هذا لـ Arduino بالتحكم في المؤازرة وتدوير العجلة.
الخطوة 7. قم بتوصيل المستشعر بالجزء الأمامي من لوحة الاختبار
لا يتم تثبيت المستشعر على سكة الطاقة الخارجية على لوحة الاختبار ، ولكن في أول صفين من المسامير التي تحمل الأحرف (J). تأكد من وضعه في المنتصف مباشرةً مع وجود عدد متساوٍ من الدبابيس الفارغة على كل جانب.
الخطوة 8. قم بتوصيل سلك العبور الأسود من السن I14 إلى أول دبوس سكة حديد أزرق على يسار المستشعر
سيؤدي هذا إلى تأريض المستشعر.
الخطوة 9. قم بتوصيل سلك العبور الأحمر من السن I17 إلى أول دبوس سكة حديد أحمر على يمين المستشعر
سيوفر هذا الطاقة لجهاز الاستشعار.
الخطوة 10. قم بتوصيل أسلاك العبور البيضاء من طرف I15 إلى رقم 9 على Arduino ، ومن I16 إلى طرف 8
سيوفر هذا معلومات من المستشعر إلى وحدة التحكم الدقيقة.
جزء 3 من 5: تركيب كبل الطاقة
الخطوة 1. اقلب الروبوت حتى تتمكن من رؤية حجرة البطارية بالداخل
قم بترتيب حجرة البطارية بحيث يخرج الكبل من أسفل اليسار.
الخطوة 2. قم بتوصيل السلك الأحمر بالزنبرك الثاني من اليسار في الأسفل
تأكد من محاذاة حجرة البطارية بشكل صحيح أو مواجهة الاتجاه الصحيح.
الخطوة الثالثة. قم بتوصيل السلك الأسود بالربيع الأخير أسفل اليمين
سيساعد هذان السلكان في توفير الجهد المناسب لاردوينو.
الخطوة 4. قم بتوصيل الأسلاك الحمراء والسوداء بالدبابيس الحمراء والزرقاء الموجودة على الجانب الأيمن في الجزء الخلفي من لوحة الاختبار
يجب أن يذهب السلك الأسود إلى دبوس السكة الأزرق الموجود على الدبوس 30. يجب أن يذهب السلك الأحمر إلى دبوس السكة الأحمر الموجود على الدبوس 30.
الخطوة 5. قم بتوصيل السلك الأسود من دبوس GND على Arduino بالجزء الخلفي من السكة الزرقاء
قم بتوصيل السلك برقم 28 على السكة الزرقاء.
الخطوة 6. قم بتوصيل السلك الأسود من الجزء الخلفي للقضيب الأزرق بمقدمة السكة الزرقاء على السن 29 لكلا القضبان
لا تقم بتوصيل السكة الحمراء حيث قد تتلف Arduino.
الخطوة 7. قم بتوصيل السلك الأحمر من مقدمة السكة الحمراء على السن 30 إلى دبوس 5V في Arduino
سيوفر هذا الطاقة لأردوينو.
الخطوة 8. أدخل مفتاح الزر الانضغاطي في الفراغ بين المسامير 24-26
سيسمح لك هذا المفتاح بإيقاف تشغيل الروبوت دون الحاجة إلى إيقاف تشغيل الطاقة.
الخطوة 9. قم بتوصيل السلك الأحمر من H24 إلى السكة الحمراء على الدبوس الفارغ التالي على يمين المستشعر
سيوفر هذا الطاقة للزر.
الخطوة 10. استخدم المقاوم لتوصيل H26 بالقضيب الأزرق
قم بتوصيله بالدبوس الموجود بجوار السلك الأسود الذي قمت بتوصيله للتو في الخطوات السابقة.
الخطوة 11. قم بتوصيل السلك الأبيض من G26 إلى الطرف 2 على Arduino
سيسمح هذا لاردوينو باكتشاف الأزرار الانضغاطية.
جزء 4 من 5: تثبيت برنامج Arduino
الخطوة 1. قم بتنزيل واستخراج Arduino IDE
هذا هو المكان الذي تم فيه تطوير Arduino ويسمح لك ببرمجة الإرشادات التي يمكنك تحميلها بعد ذلك إلى متحكم Arduino الخاص بك. يمكنك تنزيله مجانًا من arduino.cc/en/main/software. قم بفك ضغط الملف الذي تم تنزيله عن طريق النقر المزدوج على الملف ونقل المجلد الذي يحتوي عليه إلى موقع يسهل الوصول إليه. لن تقوم بالفعل بتثبيت البرنامج ، بل ستقوم بتشغيله فقط من مجلد تم استخراجه بالنقر المزدوج فوق arduino.exe.
الخطوة 2. قم بتوصيل حجرة البطارية بـ Arduino
أدخل المقبس الخلفي للبطارية في الموصل الموجود في Arduino لتشغيله.
الخطوة الثالثة. أدخل Arduino في جهاز الكمبيوتر الخاص بك عبر USB
من المحتمل أن Windows لن يتعرف على الجهاز.
الخطوة 4. اضغط
Win + R. واكتب devmgmt.msc.
سيفتح هذا الأمر إدارة الأجهزة.
الخطوة 5. انقر بزر الماوس الأيمن فوق جهاز غير معروف ضمن أجهزة أخرى وحدد تحديث برنامج التشغيل
إذا كنت لا ترى هذا الخيار ، فانقر فوق خصائص ، وحدد علامة التبويب برنامج التشغيل ، ثم انقر فوق تحديث برنامج التشغيل.
الخطوة 6. حدد استعراض جهاز الكمبيوتر الخاص بي للحصول على برنامج التشغيل
سيسمح لك ذلك بتحديد برامج التشغيل المضمنة التي تأتي مع Arduino IDE.
الخطوة 7. انقر على "استعراض" ، ثم افتح المجلد الذي استخرجته مسبقًا
ستجد مجلد السائقين فيه.
الخطوة 8. حدد مجلد السائقين وانقر فوق موافق
قم بتأكيد رغبتك في المتابعة إذا تم تحذيرك بشأن برنامج غير معروف.
جزء 5 من 5: برمجة الروبوتات
الخطوة 1. افتح Arduino IDE عن طريق النقر المزدوج على ملف arduino.exe في مجلد IDE
سيتم الترحيب بك بمشروع فارغ.
الخطوة 2. الصق أو الصق الكود التالي لجعل الروبوت الخاص بك متقدمًا
الكود أدناه سيبقي Arduino الخاص بك مستمرًا.
# تضمين // هذا يضيف مكتبة "Servo" إلى البرنامج // يقوم الأمر التالي بإنشاء كائنين مؤازرين Servo leftMotor ؛ المؤازرة اليمنى إعداد باطل () {leftMotor.attach (12) ؛ // إذا قمت بتبديل أرقام الدبوس عن طريق الخطأ بمؤازرتك ، فيمكنك تبديل الأرقام هنا rightMotor.attach (13) ؛ } حلقة فارغة () {leftMotor.write (180) ؛ // مع دوران 360 درجة (دوران مستمر) ، فإن الرقم 180 يوجه المؤازرة للتحرك "للأمام" بأقصى سرعة. rightMotor.write (0) ، // إذا كانت كلتا القيمتين 180 ، فسوف يدور الروبوت في دائرة لأن المؤازرة معكوسة. "0" يخبر الروبوت أن يتحرك "للخلف" بأقصى سرعة. }
الخطوة 3. قم بإنشاء وتحميل البرنامج
انقر فوق زر السهم الأيمن أعلى الزاوية اليسرى لإنشاء برنامج وتحميله إلى Arduino المتصل.
قد ترغب في رفع الروبوت عن السطح حيث سيستمر الروبوت في السير للأمام بعد تحميل البرنامج
الخطوة 4. إضافة وظيفة إيقاف التبديل (مفتاح القفل)
أضف التعليمات البرمجية التالية إلى قسم "void loop ()" من التعليمات البرمجية لإضافة وظيفة إيقاف التبديل أعلى وظيفة "write ()".
if (digitalRead (2) == HIGH) // يتم تشغيل هذا الأمر عند الضغط على الزر على pin 2 Arduino {while (1) {leftMotor.write (90)؛ // "90" هو الموضع المحايد للمؤازرة ، والذي يخبر المؤازرة بالتوقف عن الدوران لليمين Motor.write (90) ؛ }}
الخطوة 5. قم بتحميل وتحقق من الكود الخاص بك
مع إضافة رمز تبديل الإيقاف بالفعل ، يمكنك تحميل الكود واختبار الروبوت. يجب أن يواصل الروبوت إلى الأمام حتى تضغط على زر مفتاح الإيقاف مما يؤدي إلى توقف الروبوت. سيبدو الكود الكامل كما يلي:
# تضمين // ينشئ الأمر التالي كائنين مؤازرين leftMotor ؛ المؤازرة اليمنى إعداد باطل () {leftMotor.attach (12) ؛ rightMotor.attach (13) ، } حلقة فارغة () {if (digitalRead (2) == HIGH) {while (1) {leftMotor.write (90)؛ rightMotor.write (90) ؛ }} leftMotor.write (180) ؛ rightMotor.write (0) ، }
مثال
سيستخدم الكود التالي أجهزة استشعار مثبتة على الروبوت لجعله يتجه إلى اليسار كلما واجه الروبوت عقبة. انظر إلى التعليقات في الكود للحصول على تفاصيل حول كيفية استخدام كل جزء. الكود أدناه هو البرنامج بأكمله.
# تتضمن سيرفو leftMotor ؛ المؤازرة اليمنى const int serialPeriod = 250 ؛ // يعطي هذا الرمز تأخرًا زمنيًا لإخراج وحدة التحكم ليكون كل 1/4 ثانية (250 مللي ثانية) بدون توقيع longSerialDelay = 0 ؛ كونست int loopPeriod = 20 ؛ // يضبط هذا الرمز تردد قراءة المستشعر على 20 مللي ثانية ، وهو 50 هرتز بدون إشارة طويلة timeLoopDelay = 0 ؛ // يقوم هذا الرمز بتعيين وظائف TRIG و ECHO للدبابيس الموجودة على Arduino. اضبط الأرقام هنا إذا قمت بتوصيلها بطريقة مختلفة const int ultrasonic2TrigPin = 8 ؛ const int ultrasonic2EchoPin = 9 ؛ int ultrasonic2Distance ؛ intrasonic2Duration كثافة العمليات ؛ // يحدد هذا الرمز حالتين ممكنتين للروبوت: تابع إلى الأمام أو انعطف إلى اليسار #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD؛ // 0 = متابعة للأمام (DEFAULT) ، 1 = إعداد الفراغ الأيسر () {Serial.begin (9600) ؛ // يحدد هذا المستشعر وضع pinMode لتكوين الدبوس (ultrasonic2TrigPin ، OUTPUT) ؛ pinMode (ultrasonic2EchoPin ، INPUT) ؛ // هذا يعين المحرك لدبابيس Arduino leftMotor.attach (12) ؛ rightMotor.attach (13) ، } حلقة فارغة () {if (digitalRead (2) == HIGH) // هذا الرمز يكتشف '' stop '' {while (1) {leftMotor.write (90)؛ rightMotor.write (90) ؛ }} debugOutput () ؛ // يطبع هذا الرمز رسائل تصحيح الأخطاء إلى وحدة التحكم التسلسلية إذا (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors () ؛ // هذا الكود يوجه المستشعر لقراءة وتخزين البيانات المتعلقة بحالة المسافة المقاسة () ؛ timeLoopDelay = ملي () ، }} void stateMachine () {if (state == DRIVE_FORWARD) // إذا لم يتم اكتشاف عائق {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // إذا لم يكن هناك شيء أمام الروبوت. ستكون المسافة فوق الصوتية سالبة لبعض الموجات فوق الصوتية إذا لم تكن هناك عوائق {// drive forward rightMotor.write (180)؛ leftMotor.write (0) ، } else // إذا كان هناك كائن أمامنا {state = TURN_LEFT؛ }} else if (state == TURN_LEFT) // إذا تم اكتشاف عقبة ، انعطف يسارًا {غير موقعة long timeToTurnLeft = 500 ؛ // يستغرق حوالي 0.5 ثانية للدوران 90 درجة. قد تحتاج إلى ضبط هذه القيمة إذا كانت عجلاتك تختلف في الحجم عن الحجم الموجود في المثال long turnStartTime = millis ()؛ // احتفظ بالحالة عندما يبدأ الروبوت في الدوران أثناء ((millis () - turnStartTime) <timeToTurnLeft) // احتفظ بهذه الدورة حتى يمر timeToTurnLeft (500) {// انعطف يسارًا ، تذكر أنه عندما يكون كلاهما "180" ، الروبوت سوف يستدير. rightMotor.write (180) ؛ leftMotor.write (180) ؛ } حالة = DRIVE_FORWARD ؛ }} void readUltrasonicSensors () {// هذا خاص بالموجات فوق الصوتية 2. قد تحتاج إلى تغيير هذا الأمر إذا كنت تستخدم مستشعرًا مختلفًا. digitalWrite (ultrasonic2TrigPin ، عالية) ؛ تأخير ميكروثانية (10) ؛ // اسحب دبوس TRIG عاليًا لمدة 10 ميكروثانية على الأقل كتابة رقمية (ultrasonic2TrigPin ، LOW) ؛ ultrasonic2Duration = pulseIn (ultrasonic2EchoPin ، عالية) ؛ ultrasonic2Distance = (ultrasonic2Duration / 2) / 29 ؛ } // ما يلي لتصحيح الأخطاء في وحدة التحكم. باطل debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:")؛ Serial.print (ultrasonic2Distance) ؛ Serial.print ("سم") ؛ Serial.println () ، timeSerialDelay = ملي () ، }}