هل تريد أن تتعلم كيفية بناء الروبوت الخاص بك؟ هناك الكثير من أنواع الروبوتات المختلفة التي يمكنك صنعها بنفسك. يرغب معظم الناس في رؤية روبوت يؤدي المهام البسيطة المتمثلة في الانتقال من النقطة أ إلى النقطة ب. يمكنك صنع روبوت بالكامل من مكونات تمثيلية أو شراء مجموعة أدوات بدء التشغيل من نقطة الصفر! يعد بناء الروبوت الخاص بك طريقة رائعة لتعليم نفسك كل من الإلكترونيات وكذلك برمجة الكمبيوتر.
خطوات
جزء 1 من 6: تجميع الروبوت
الخطوة 1. اجمع المكونات الخاصة بك
لبناء روبوت أساسي ، ستحتاج إلى عدة مكونات بسيطة. يمكنك العثور على معظم ، إن لم يكن كل ، هذه المكونات في متجر هوايات الإلكترونيات المحلي الخاص بك ، أو العديد من بائعي التجزئة عبر الإنترنت. قد تتضمن بعض المجموعات الأساسية كل هذه المكونات أيضًا. هذا الروبوت لا يتطلب أي لحام:
- Arduino Uno (أو متحكم آخر)
- 2 الماكينات التناوب المستمر
- 2 عجلات تناسب الماكينات
- 1 أسطوانة العجلات
- 1 لوح تجارب صغير غير ملحوم (ابحث عن لوح تجارب يحتوي على خطين موجبين وسالبين على كل جانب)
- مستشعر مسافة واحد (مع كابل موصل رباعي السنون)
- 1 مفتاح ضغط صغير
- 1 10kΩ المقاوم
- 1 كابل USB A إلى B
- 1 مجموعة من الرؤوس الانفصالية
- 1 6 × حامل بطارية AA مع مقبس طاقة 9V DC
- 1 حزمة من أسلاك العبور أو سلك ربط قياس 22
- شريط قوي على الوجهين أو غراء ساخن
الخطوة الثانية. اقلب البطارية بحيث يكون الظهر المسطح متجهًا لأعلى
ستقوم ببناء جسم الروبوت باستخدام البطارية كقاعدة.
الخطوة 3. قم بمحاذاة المؤازرتين في نهاية حزمة البطارية
يجب أن تكون هذه هي النهاية التي يخرج منها سلك حزمة البطارية من المؤازرة يجب أن تلامس القيعان ، ويجب أن تواجه آليات الدوران لكل جانب جوانب حزمة البطارية. يجب محاذاة الماكينات بشكل صحيح بحيث تسير العجلات بشكل مستقيم. يجب أن تنطلق أسلاك الماكينات من الجزء الخلفي من حزمة البطارية.
الخطوة 4. ألصق الماكينات بالشريط اللاصق أو الغراء
تأكد من أنها متصلة بقوة بالبطارية. يجب محاذاة ظهور الماكينات مع الجزء الخلفي من حزمة البطارية.
يجب أن تستهلك الماكينات الآن النصف الخلفي من حزمة البطارية
الخطوة 5. ثبت اللوح بشكل عمودي على المساحة المفتوحة على حزمة البطارية
يجب أن تتدلى من الجزء الأمامي من حزمة البطارية قليلاً وستمتد إلى ما وراء كل جانب. تأكد من تثبيته بإحكام قبل المتابعة. يجب أن يكون الصف "A" أقرب إلى الماكينات.
الخطوة 6. قم بتوصيل متحكم Arduino بأعلى الماكينات
إذا قمت بتوصيل الماكينات بشكل صحيح ، فيجب أن تكون هناك مساحة مسطحة مصنوعة من خلال لمسها. قم بلصق لوحة Arduino على هذه المساحة المسطحة بحيث تكون موصلات USB و Power في Arduino مواجهة للخلف (بعيدًا عن اللوح). يجب أن تكون واجهة Arduino متداخلة بالكاد مع اللوح.
الخطوة 7. ضع العجلات على الماكينات
اضغط بقوة على العجلات على آلية الدوران المؤازرة. قد يتطلب هذا قدرًا كبيرًا من القوة ، حيث تم تصميم العجلات لتلائم بإحكام قدر الإمكان لتحقيق أفضل جر.
الخطوة 8. قم بتوصيل العجلة بأسفل لوح التجارب
إذا قلبت الهيكل ، يجب أن ترى القليل من اللوح يمتد إلى ما بعد حزمة البطارية. اربط العجلة بهذه القطعة الممتدة ، باستخدام الناهضين إذا لزم الأمر. تعمل العجلات كعجلة أمامية ، مما يسمح للروبوت بالدوران بسهولة في أي اتجاه.
إذا اشتريت مجموعة ، فربما تأتي العجلة مع عدد قليل من الناهضين التي يمكنك استخدامها لضمان وصول العجلة إلى الأرض. أنا
جزء 2 من 6: توصيل أسلاك الروبوت
الخطوة 1. قم بفصل اثنين من الرؤوس ثلاثية الأطراف
ستستخدمها لتوصيل الماكينات بلوحة التجارب. ادفع المسامير لأسفل عبر الرأس بحيث تخرج المسامير على مسافة متساوية من كلا الجانبين.
الخطوة 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 من 6: توصيل الكهرباء
الخطوة 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
سيسمح ذلك لـ Arduino بتسجيل زر الضغط.
جزء 4 من 6: تثبيت برنامج 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 من 6: برمجة الروبوت
الخطوة 1. ابدأ Arduino IDE بالنقر نقرًا مزدوجًا فوق ملف arduino.exe في مجلد IDE
سيتم الترحيب بك بمشروع فارغ.
الخطوة 2. الصق الكود التالي لجعل الروبوت الخاص بك يسير في اتجاه مستقيم
سوف يجعل الكود أدناه Arduino الخاص بك يتقدم باستمرار.
# تضمين // هذا يضيف مكتبة "Servo" إلى البرنامج // التالي ينشئ كائنين مؤازرين Servo leftMotor ؛ المؤازرة اليمنى إعداد باطل () {leftMotor.attach (12) ؛ // إذا قمت بتبديل أرقام الدبوس الخاصة بك عن طريق الخطأ ، فيمكنك تبديل الأرقام هنا rightMotor.attach (13) ؛ } حلقة فارغة () {leftMotor.write (180) ؛ // مع الدوران المستمر ، 180 يخبر المؤازرة بالتحرك بأقصى سرعة "للأمام". المحرك الصحيح. الكتابة (0) ؛ // إذا كان كلاهما عند 180 ، فسوف يدخل الروبوت في دائرة لأن الماكينات مقلوبة. "0" تخبره للتحرك بأقصى سرعة "للخلف". }
الخطوة 3. إنشاء وتحميل البرنامج
انقر فوق زر السهم الأيمن في الزاوية العلوية اليسرى لإنشاء البرنامج وتحميله إلى Arduino المتصل.
قد ترغب في رفع الروبوت عن السطح ، حيث سيستمر في المضي قدمًا بمجرد تحميل البرنامج
الخطوة 4. أضف وظيفة Kill Switch
أضف الكود التالي إلى قسم "void loop ()" من التعليمات البرمجية الخاصة بك لتمكين مفتاح Kill ، فوق وظائف "write ()".
if (digitalRead (2) == HIGH) // هذا يسجل عند الضغط على الزر على السن 2 من Arduino {while (1) {leftMotor.write (90) ؛ // "90" هو الوضع المحايد للمضاعفات ، والذي يخبرهم بالتوقف عن الانعطاف لليمين Motor.write (90) ؛ }}
الخطوة 5. تحميل واختبار الكود الخاص بك
مع إضافة رمز Kill Switch ، يمكنك تحميل الروبوت واختباره. يجب أن يستمر في التقدم للأمام حتى تضغط على المفتاح ، وعند هذه النقطة سيتوقف عن الحركة. يجب أن يبدو الكود الكامل كما يلي:
# تضمين // التالي ينشئ كائنين مؤازرين Servo 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) ، }
جزء 6 من 6: مثال
الخطوة 1. اتبع مثالا
سيستخدم الكود التالي المستشعر المتصل بالروبوت لجعله يتجه إلى اليسار كلما واجه عقبة. انظر التعليقات في الكود للحصول على تفاصيل حول ما يفعله كل جزء. الكود أدناه هو البرنامج بأكمله.
# تتضمن سيرفو leftMotor ؛ المؤازرة اليمنى const int serialPeriod = 250 ؛ // هذا يحد من الإخراج إلى وحدة التحكم مرة واحدة كل 1/4 ثانية بدون توقيع longSerialDelay = 0 ؛ كونست int loopPeriod = 20 ؛ // هذا يحدد عدد المرات التي يأخذ فيها المستشعر القراءة إلى 20 مللي ثانية ، وهو تردد 50 هرتز بدون إشارة طويلة timeLoopDelay = 0 ؛ // هذا يعين وظائف TRIG و ECHO للمسامير الموجودة على Arduino. قم بإجراء تعديلات على الأرقام هنا إذا قمت بالاتصال بشكل مختلف const int ultrasonic2TrigPin = 8 ؛ const int ultrasonic2EchoPin = 9 ؛ int ultrasonic2Distance ؛ int ultrasonic2Duration ؛ // هذا يحدد الحالتين المحتملتين للروبوت: القيادة للأمام أو الانعطاف لليسار # تعريف DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD؛ // 0 = دفع للأمام (افتراضي) ، 1 = إعداد الفراغ الأيسر () {Serial.begin (9600) ؛ // تكوينات دبوس المستشعر هذه pinMode (ultrasonic2TrigPin ، الإخراج) ؛ pinMode (ultrasonic2EchoPin ، INPUT) ؛ // هذا يعين المحركات لدبابيس Arduino leftMotor.attach (12) ؛ rightMotor.attach (13) ، } حلقة فارغة () {if (digitalRead (2) == HIGH) // هذا يكتشف مفتاح القفل {while (1) {leftMotor.write (90)؛ rightMotor.write (90) ؛ }} debugOutput () ؛ // هذا يطبع رسائل تصحيح الأخطاء إلى وحدة التحكم التسلسلية if (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 {// انعطف يسارًا ، تذكر أنه عند ضبط كلاهما على "180" ، سيتحول. rightMotor.write (180) ؛ leftMotor.write (180) ؛ } حالة = DRIVE_FORWARD ؛ }} void readUltrasonicSensors () {// هذا مخصص للموجات فوق الصوتية 2. قد تحتاج إلى تغيير هذه الأوامر إذا كنت تستخدم مستشعرًا مختلفًا. digitalWrite (ultrasonic2TrigPin ، عالية) ؛ تأخير ميكروثانية (10) ؛ // يحافظ على دبوس المثلثات مرتفعًا لمدة 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 = ملي () ، }}