آیا می خواهید نحوه ساخت ربات خود را بیاموزید؟ انواع مختلفی از روبات ها وجود دارد که می توانید خودتان آنها را بسازید. اکثر مردم می خواهند ببینند که یک ربات کار آسانی را برای حرکت از نقطه A به B انجام می دهد. شما می توانید یک ربات را کاملاً از اجزای آنالوگ بسازید یا یک کیت استارت بخرید. ساخت ربات خود یک راه عالی برای یادگیری الکترونیک و برنامه نویسی کامپیوتر است.
گام
قسمت 1 از 5: مونتاژ ربات
مرحله 1. اجزای خود را جمع آوری کنید
برای ساخت یک ربات اساسی ، به چند جزء ساده نیاز دارید. شما می توانید بیشتر یا همه این اجزا را در فروشگاه سرگرمی لوازم الکترونیکی محلی خود یا در برخی خرده فروشان آنلاین پیدا کنید. برخی از کیت ها شامل همه این اجزا می شوند. این ربات نیازی به لحیم کاری ندارد:
- Arduino Uno (یا میکروکنترلر دیگر)
- 2 سرو 360 درجه
- 2 چرخ سروو مطابقت دارد
- 1 چرخ رایگان
- 1 تخته آزمایش (تخته نان یا تخته پروژه) که لحیم نشده است (به دنبال یک تخته تست باشید که دو ردیف مثبت و منفی در هر طرف داشته باشد)
- 1 سنسور مجاورت (با کابل اتصال چهار پین)
- سوئیچ 1 دکمه فشاری
- 1 مقاومت 10 کیلو وات
- 1 کابل USB A تا B
- 1 مجموعه سربرگ های شکستنی
- 1 نگهدارنده باتری 6 x AA با سوکت برق 9 ولت DC
- 1 بسته 22 عددی کابل بلوز یا تک کابل
- عایق به جلو و عقب (دو نوار) یا تفنگ چسب دار
مرحله 2. محفظه باتری را طوری بچرخانید که پشت تخت آن رو به بالا باشد
شما بدنه روبات را با استفاده از محفظه باتری به عنوان پایه می سازید.
مرحله 3. دو سرو را که در انتهای محفظه باتری قرار دارند ، در یک جهت قرار دهید
این پایان انتهایی است که کابل از باتری خارج می شود. سروها باید قسمت پایینی را لمس کنند و مکانیزم چرخش هر سرو باید از طرف قسمت محفظه باتری به سمت بیرون باشد. مهم است که این سرووها به درستی چیده شوند تا چرخها راست باشند. کابل های سروو باید از قسمت پشتی باتری خارج شوند.
مرحله 4. سروها را با عایق یا چسب خود بچسبانید
مطمئن شوید که سروو محکم به قسمت باتری وصل شده است. پشت سروو باید با قسمت پشتی باتری تراز شود.
در حال حاضر ، سروها باید نیمی از فضای پشت باتری را اشغال کنند
مرحله 5. صفحه آزمایش را عمود بر فضای باقی مانده در محفظه باتری بچسبانید
این صفحه آزمایش کمی در قسمت جلویی محفظه باتری آویزان شده و به هر دو طرف گسترش می یابد. قبل از ادامه کار از محکم بودن صفحه تست اطمینان حاصل کنید. ردیف "A" باید نزدیک به سروو باشد.
مرحله 6. میکروکنترلر آردوینو را به بالای سروو وصل کنید
اگر سروو را به درستی وصل کنید ، باید قسمت مسطحی از دو سروو با یکدیگر تماس داشته باشد. برد آردوینو را به این نقطه مسطح بچسبانید تا کانکتورهای برق USB و آردوینو رو به پایین باشد (دور از برد آزمایش). جلوی آردوینو با تخته آزمایش همپوشانی دارد.
مرحله 7. چرخ ها را روی سروها نصب کنید
چرخها را محکم روی مکانیزم سروو چرخشی فشار دهید. این ممکن است به نیروی قابل توجهی نیاز داشته باشد زیرا چرخ ها دارای سوراخ هایی هستند که دقیقا با شکل نوک سروو مطابقت دارند.
مرحله 8. چرخ رایگان را در پایین تخته آزمایش نصب کنید
اگر روبات را زیر و رو کنید ، یک تخته آزمایش کوچک مشاهده می کنید که از قسمت باتری آویزان شده است. چرخ آزاد را به این قسمت آویزان وصل کنید. در صورت نیاز از گوه استفاده کنید. چرخ رایگان به عنوان چرخ جلو عمل می کند که به ربات اجازه می دهد به راحتی در هر جهتی بچرخد.
اگر یک کیت خریداری کرده اید ، ممکن است چرخ رایگان دارای گوه هایی باشد که می توانید از آنها برای اطمینان از آزاد بودن چرخ در لمس زمین استفاده کنید
قسمت 2 از 5: سیم کشی ربات
مرحله 1. دو سربرگ 3 پینی را برش دهید
از این دستگاه برای اتصال سروو به صفحه آزمایش استفاده خواهید کرد. سنجاق ها را از طریق هدرها به پایین فشار دهید ، به طوری که از هر دو طرف مساوی بیرون بیایند.
مرحله 2. دو سربرگ را در پین های 1-3 و 6-8 در ردیف E روی تخته آزمایش قرار دهید
مطمئن شوید که آنها محکم یا محکم وارد شده اند.
مرحله 3. سیم های سروو را با هدر و سیم سیاه در سمت چپ (پایه های 1 و 6) وصل کنید
با این کار سروو با برد آزمایش متصل می شود. اطمینان حاصل کنید که سرووی چپ به هدر سمت چپ و سروو راست به هدر راست متصل است.
مرحله 4. سیم بلوز قرمز را از پایه های C2 و C7 به پین ریل قرمز وصل کنید (مثبت)
مطمئن شوید که از ریل قرمز پشت تخته آزمایش (نزدیک به بقیه بدنه روبات) استفاده می کنید.
مرحله 5. سیم بلوز مشکی را از پایه های B1 و B6 به پایه ریل آبی (زمین) وصل کنید
اطمینان حاصل کنید که از ریل آبی در پشت تخته آزمایش استفاده می کنید. کابل را به پین قرمز راه آهن وصل نکنید.
مرحله 6. سیمهای بلوز سفید را از پایه های 12 و 13 در آردوینو به A3 و A8 وصل کنید
این به آردوینو اجازه می دهد سروو را کنترل کرده و چرخ را بچرخاند.
مرحله 7. سنسور را به جلوی صفحه آزمایش وصل کنید
سنسور روی ریل قدرت خارجی روی صفحه آزمایش نصب نشده است ، بلکه روی دو ردیف اول پین با حروف (J) نصب شده است. مطمئن شوید که آن را درست در وسط با تعداد مساوی پین خالی در هر طرف قرار دهید.
مرحله 8. سیم بلوز مشکی را از پایه I14 به اولین پایه آبی رنگ در سمت چپ سنسور وصل کنید
با این کار سنسور زمین می خورد.
مرحله 9. سیم بلوز قرمز را از پایه I17 به اولین پایه قرمز در سمت راست سنسور وصل کنید
این باعث می شود که قدرت سنسور تامین شود.
مرحله 10. سیمهای بلوز سفید را از پین I15 به پین 9 در آردوینو و از I16 به پین 8 وصل کنید
این اطلاعات را از سنسور به میکروکنترلر ارائه می دهد.
قسمت 3 از 5: نصب کابل برق
مرحله 1. روبات را بچرخانید تا بتوانید محفظه باتری را در داخل ببینید
قسمت باتری را طوری تنظیم کنید که کابل از پایین سمت چپ خارج شود.
مرحله 2. سیم قرمز را با فنر دوم از سمت چپ در پایین وصل کنید
اطمینان حاصل کنید که محفظه باتری به درستی تراز شده یا در جهت صحیح قرار دارد.
مرحله 3. سیم سیاه را با آخرین فنر در پایین سمت راست وصل کنید
این دو سیم به ارائه ولتاژ مناسب به آردوینو کمک می کند.
مرحله 4. سیمهای قرمز و مشکی را به پایه های قرمز و آبی که در سمت راست پشت تخته آزمایش قرار دارند وصل کنید
سیم سیاه باید به پین ریل آبی در پین 30 برود. سیم قرمز باید به پین ریل قرمز در پین 30 برود.
مرحله 5. سیم سیاه را از پایه GND در آردوینو به پشت ریل آبی وصل کنید
سیم را به پین 28 روی ریل آبی وصل کنید.
مرحله 6. سیم سیاه را از پشت ریل آبی به قسمت جلو ریل آبی در پین 29 برای هر دو ریل وصل کنید
ریل قرمز را وصل نکنید زیرا ممکن است به آردوینو آسیب برسانید.
مرحله 7. سیم قرمز را از جلوی ریل قرمز روی پین 30 به پین 5 ولت در آردوینو وصل کنید
این کار به آردوینو قدرت می بخشد.
مرحله 8. کلید فشاری را در فاصله بین پین های 24-26 قرار دهید
این سوئیچ به شما امکان می دهد ربات را بدون نیاز به قطع برق خاموش کنید.
مرحله 9. سیم قرمز از H24 را به ریل قرمز در پین خالی بعدی در سمت راست سنسور وصل کنید
با این کار قدرت دکمه تامین می شود.
مرحله 10. از یک مقاومت برای اتصال H26 به ریل آبی استفاده کنید
آن را مستقیماً در کنار سیم مشکی که در مراحل قبل وصل کرده اید ، به پین وصل کنید.
مرحله 11. سیم سفید را از G26 به پین 2 در آردوینو وصل کنید
این به آردوینو اجازه می دهد تا دکمه های فشاری را تشخیص دهد.
قسمت 4 از 5: نصب نرم افزار آردوینو
مرحله 1. Arduino IDE را بارگیری و استخراج کنید
در اینجا Arduino توسعه یافته است و به شما امکان می دهد دستورالعمل هایی را برنامه ریزی کنید که می توانید در میکروکنترلر Arduino خود بارگذاری کنید. می توانید آن را به صورت رایگان از arduino.cc/fa/main/software بارگیری کنید. فایل بارگیری شده را با دوبار کلیک روی فایل و انتقال پوشه ای که در آن قرار دارد به محلی با دسترسی آسان باز کنید. شما در واقع برنامه را نصب نمی کنید ، بلکه فقط آن را از پوشه ای که با دوبار کلیک بر روی arduino.exe استخراج شده است ، اجرا می کنید.
مرحله 2. قسمت باتری را به آردوینو وصل کنید
سوکت پشتی باتری را به کانکتور آردوینو وصل کنید تا شارژ شود.
مرحله 3. Arduino را از طریق USB به رایانه خود وارد کنید
به احتمال زیاد ، ویندوز دستگاه را تشخیص نمی دهد.
مرحله 4. فشار دهید
Win+R و تایپ کنید devmgmt.msc.
این دستور Device Manager را باز می کند.
مرحله 5. بر روی دستگاه ناشناس در قسمت Other devices راست کلیک کرده و Update Driver Software را انتخاب کنید
اگر این گزینه را نمی بینید ، روی Properties کلیک کنید ، برگه Driver را انتخاب کنید و سپس روی Update Driver کلیک کنید.
مرحله 6. Browse my computer for software drivers را انتخاب کنید
این به شما امکان می دهد درایورهای داخلی همراه با Arduino IDE را انتخاب کنید.
مرحله 7. روی مرور کلیک کنید ، سپس پوشه ای را که قبلاً استخراج کرده اید باز کنید
پوشه driver را در آن خواهید یافت.
مرحله 8. پوشه drivers را انتخاب کرده و روی OK کلیک کنید
در صورت هشدار در مورد نرم افزار ناشناخته ، تأیید کنید که می خواهید ادامه دهید.
قسمت 5 از 5: برنامه نویسی روبات ها
مرحله 1. Arduino IDE را با دوبار کلیک روی فایل arduino.exe در پوشه IDE باز کنید
با یک پروژه خالی از شما استقبال می شود.
مرحله 2. کد زیر را بچسبانید یا بچسبانید تا ربات شما پیشرفته شود
کد زیر آردوینو شما را سرپا نگه می دارد.
#include // این کتابخانه "Servo" را به برنامه اضافه می کند // دستور زیر دو سروو شی ایجاد می کند Servo leftMotor؛ سروو راست موتور؛ void setup () {leftMotor.attach (12)؛ // اگر به طور تصادفی شماره پین ها را با سروو خود عوض کردید ، می توانید اعداد را در اینجا راستMotor.attach (13) عوض کنید. } void loop () {leftMotor.write (180)؛ // با چرخش 360 درجه (چرخش پیوسته) ، شماره 180 به سروو دستور می دهد تا با سرعت کامل "جلو" حرکت کند. rightMotor.write (0)؛ // اگر هر دو مقدار 180 باشند ، ربات در یک دایره می چرخد زیرا سروو برعکس است. "0" به ربات می گوید که "با سرعت کامل" به عقب حرکت کند. }
مرحله 3. برنامه را ایجاد و بارگذاری کنید
برای ایجاد و بارگذاری برنامه در Arduino متصل ، روی دکمه پیکان سمت راست در گوشه بالا سمت چپ کلیک کنید.
ممکن است بخواهید ربات را از روی سطح بردارید زیرا روبات بعد از بارگذاری برنامه به جلو حرکت می کند
مرحله 4. تابع stop stop (kill switch) را اضافه کنید
کد زیر را به بخش "void loop ()" کد خود اضافه کنید تا عملکرد توقف توقف در بالای عملکرد "write ()" اضافه شود.
if (digitalRead (2) == HIGH) // این فرمان زمانی اجرا می شود که دکمه روی پین 2 Arduino فشار داده شود {در حالی که (1) {leftMotor.write (90) ؛ // "90" موقعیت خنثی برای سروو است که به سروو می گوید از چرخش به سمت راست متوقف شود Motor.write (90)؛ }}
مرحله 5. کد خود را بارگذاری و بررسی کنید
با کد توقف توقف قبلاً اضافه شده ، می توانید کد را بارگذاری کرده و روبات را آزمایش کنید. ربات باید به جلو ادامه دهد تا زمانی که دکمه توقف را فشار دهید که باعث توقف ربات می شود. کد کامل به این شکل است:
#include // دستور زیر دو شیء سروو Servo leftMotor ایجاد می کند. سروو راست موتور؛ void setup () {leftMotor.attach (12)؛ rightMotor.attach (13)؛ } void loop () {if (digitalRead (2) == HIGH) {while (1) {leftMotor.write (90)؛ rightMotor.write (90)؛ }} leftMotor.write (180)؛ rightMotor.write (0)؛ }
مثال
کد زیر از سنسورهای نصب شده بر روی ربات برای چرخاندن چپ به هر زمان که روبات با مانعی برخورد می کند ، استفاده می کند. برای اطلاع از نحوه استفاده از هر قسمت ، به نظرات موجود در کد توجه کنید. کد زیر کل برنامه است.
#شامل سروو سمت چپ موتور ؛ سروو راست موتور؛ const int serialPeriod = 250؛ // این کد تأخیر زمانی خروجی کنسول را در هر 1/4 ثانیه (250 میلی ثانیه) بدون امضای طولانی مدت می دهدSerialDelay = 0؛ const int loopPeriod = 20؛ // این کد فرکانس خواندن سنسور را روی 20 میلی ثانیه تنظیم می کند ، که 50 هرتز بدون امضای طولانی مدت است LoopDelay = 0؛ // این کد توابع TRIG و ECHO را به پین های آردوینو اختصاص می دهد. اگر اعداد را به گونه ای دیگر به هم متصل می کنید const int ultrasonic2TrigPin = 8 را در اینجا تنظیم کنید. const int ultrasonic2EchoPin = 9؛ int ultrasonic2Distance؛ int ultrasonic2Duration؛ // این کد دو حالت احتمالی روبات را تعریف می کند: به جلو ادامه دهید یا به چپ بپیچید #تعریف DRIVE_FORWARD 0 #تعریف TURN_LEFT 1 int حالت = DRIVE_FORWARD؛ // 0 = ادامه رو به جلو (پیش فرض) ، 1 = گردش به چپ void setup () {Serial.begin (9600) ؛ // این سنسور تنظیمات pinMode (ultrasonic2TrigPin، OUTPUT) را تعیین می کند. pinMode (ultrasonic2EchoPin ، INPUT) ؛ // این موتور را به پین های Arduino leftMotor.attach (12) اختصاص می دهد ؛ rightMotor.attach (13)؛ } void loop () {if (digitalRead (2) == HIGH) // این کد "" stop "را تشخیص می دهد {در حالی که (1) {leftMotor.write (90)؛ rightMotor.write (90)؛ }} debugOutput ()؛ // این کد پیام های اشکال زدایی را در کنسول سریال if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors () چاپ می کند. // این کد به سنسور دستور می دهد داده ها را در مورد فاصله اندازه گیری stateMachine () بخواند و ذخیره کند. timeLoopDelay = میلی ثانیه ()؛ }} void stateMachine () {if (state == DRIVE_FORWARD) // اگر هیچ مانعی تشخیص داده نشود {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // اگر هیچ چیزی در مقابل روبات نباشد ultrasonicDistance در صورت عدم وجود هیچ مانعی {// برای پیشبرد rightMotor.write (180) برای برخی از سونوگرافی ها منفی خواهد بود. leftMotor.write (0)؛ } else // اگر شیئی در مقابل ما باشد {state = TURN_LEFT؛ }} else if (state == TURN_LEFT) // اگر مانعی تشخیص داده شد ، به چپ بپیچید {unsigned long timeToTurnLeft = 500؛ // حدود 0.5 ثانیه طول می کشد تا 90 درجه بچرخد. در صورتی که اندازه چرخ های شما از نظر اندازه در مثال طولانی turnStartTime = millis () بدون علامت متفاوت باشد ، ممکن است نیاز به تنظیم این مقدار داشته باشید. // هنگامی که ربات شروع به چرخاندن می کند شرایط را حفظ کنید ((millis ()-turnStartTime) <timeToTurnLeft) // این چرخه را تا زمان گذراندن زمان TimeToTurnLeft (500) نگه دارید {// به چپ ، به یاد داشته باشید که هر دو "180" باشند ، ربات می چرخد rightMotor.write (180)؛ leftMotor.write (180)؛ } state = DRIVE_FORWARD؛ }} void readUltrasonicSensors () {// این برای اولتراسونیک 2 است. اگر از سنسور دیگری استفاده می کنید ، ممکن است لازم باشد این دستور را تغییر دهید. digitalWrite (ultrasonic2TrigPin ، HIGH) ؛ تاخیر میکروثانیه (10)؛ // پین TRIG را حداقل برای 10 میکرو ثانیه digitalWrite (ultrasonic2TrigPin، LOW) بالا بکشید ؛ ultrasonic2Duration = pulseIn (ultrasonic2EchoPin، HIGH)؛ ultrasonic2Distance = (ultrasonic2Duration/2)/29 ؛ } // موارد زیر برای اشکال زدایی خطاها در کنسول است. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:")؛ Serial.print (ultrasonic2Distance) ؛ Serial.print ("cm") ؛ Serial.println ()؛ timeSerialDelay = میلی ثانیه ()؛ }}