آیا می خواهید نحوه ساخت ربات خود را بیاموزید؟ انواع مختلفی از روبات ها وجود دارد که می توانید به تنهایی آنها را بسازید. اکثر مردم می خواهند یک ربات را مشاهده کنند که وظایف ساده حرکت از نقطه A به نقطه B را انجام می دهد. شما می توانید یک روبات را کاملاً از اجزای آنالوگ بسازید یا از ابتدا یک کیت استارت بخرید! ساخت ربات شخصی شما راهی عالی برای آموزش الکترونیک و برنامه نویسی کامپیوتر است.
مراحل
قسمت 1 از 6: مونتاژ ربات
مرحله 1. اجزای خود را جمع آوری کنید
برای ساختن یک ربات اساسی ، به چند جزء ساده نیاز دارید. شما می توانید بیشتر یا نه همه این قطعات را در فروشگاه سرگرمی لوازم الکترونیکی محلی خود یا چند خرده فروشی آنلاین پیدا کنید. برخی از کیت های اساسی ممکن است همه این اجزا را نیز شامل شوند. این ربات نیازی به لحیم کاری ندارد:
- Arduino Uno (یا میکروکنترلر دیگر)
- 2 سروو چرخش مداوم
- 2 چرخ مناسب سروو
- 1 غلتک کاستور
- 1 تخته نان کوچک بدون لحیم (به دنبال یک تخته نان باشید که در هر طرف دو خط مثبت و منفی داشته باشد)
- 1 سنسور فاصله (با کابل اتصال چهار پین)
- 1 سوئیچ مینی دکمه
- 1 مقاومت 10 کیلو وات
- 1 کابل USB A تا B
- 1 مجموعه سربرگ جدا شده
- 1 نگهدارنده باتری 6 x AA با جک برق 9V DC
- 1 بسته سیم جامپر یا سیم قلاب 22 سنج
- نوار قوی دو طرفه یا چسب حرارتی
مرحله 2. بسته باتری را بچرخانید تا پشت تخت به سمت بالا باشد
شما بدن ربات را با استفاده از بسته باتری به عنوان پایه می سازید.
مرحله 3. دو سروو را در انتهای بسته باتری تراز کنید
این باید به این معنا باشد که سیم باتری از سرو خارج می شود و سرویس ها باید به پایین برخورد کنند و مکانیسم های چرخشی هر کدام باید به طرف طرف بسته باتری باشد. سرویس ها باید به درستی تراز شوند تا چرخ ها مستقیماً حرکت کنند. سیم های سرویس ها باید از پشت باتری خارج شوند.
مرحله 4. سروها را با نوار یا چسب خود بچسبانید
اطمینان حاصل کنید که آنها به طور کامل به بسته باتری وصل شده اند. پشت سرویس ها باید هم سطح با پشت باتری قرار بگیرند.
سرووها باید نصف پشت باتری را بگیرند
مرحله 5. تخته نان را عمود بر فضای باز بسته باتری بچسبانید
باید کمی از جلوی باتری آویزان شود و از هر طرف فراتر رود. قبل از ادامه کار ، مطمئن شوید که محکم محکم شده است. ردیف "A" باید نزدیک به سروها باشد.
مرحله 6. میکروکنترلر آردوینو را به بالای سرویس ها وصل کنید
اگر سروها را به درستی وصل کرده اید ، باید یک فضای مسطح ایجاد شود که توسط آنها لمس می شود. برد آردوینو را روی این فضای مسطح بچسبانید تا کانکتورهای USB و Power آردوینو رو به پشت (دور از تخته نان) باشد. جلوی آردوینو باید به سختی روی تخته نان همپوشانی داشته باشد.
مرحله 7. چرخ ها را روی سروها قرار دهید
چرخها را محکم روی مکانیزم چرخشی سروو فشار دهید. این ممکن است به نیروی قابل توجهی نیاز داشته باشد ، زیرا چرخ ها طوری طراحی شده اند که تا حد امکان برای بهترین کشش مناسب باشند.
مرحله 8. کاستور را به پایین تخته نان متصل کنید
اگر شاسی را برعکس کنید ، باید کمی تخته نان را ببینید که از باتری عبور می کند. در صورت لزوم کاستور را به این قطعه گسترش یافته وصل کنید. کاستور به عنوان چرخ جلو عمل می کند و به ربات اجازه می دهد به راحتی در هر جهتی بچرخد.
اگر کیتی خریداری کرده اید ، ممکن است کاستور با چند دستگاه بلند کننده همراه باشد که می توانید از آنها برای اطمینان از رسیدن کاستور به زمین استفاده کنید. من
قسمت 2 از 6: سیم کشی ربات
مرحله 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 از 6: سیم کشی برق
مرحله 1. روبات را به طرف دیگر بچرخانید تا بتوانید باتری های موجود در بسته را ببینید
جهت را طوری تنظیم کنید که کابل بسته باتری در پایین به سمت چپ بیرون بیاید.
مرحله 2. یک سیم قرمز را از سمت چپ در پایین به فنر دوم وصل کنید
اطمینان حاصل کنید که بسته باتری به درستی جهت گیری شده است.
مرحله 3. یک سیم سیاه را به آخرین فنر در پایین سمت راست وصل کنید
این دو کابل به ارائه ولتاژ مناسب به آردوینو کمک می کند.
مرحله 4. سیمهای قرمز و مشکی را به پینهای قرمز و آبی سمت راست در پشت تخته نان وصل کنید
کابل مشکی باید در پین 30 به پین ریل آبی متصل شود. کابل قرمز باید در پین 30 به پین ریل قرمز متصل شود.
مرحله 5. یک سیم مشکی از پایه GND در آردوینو به ریل آبی عقب متصل کنید
آن را در پین 28 روی ریل آبی وصل کنید.
مرحله 6. یک سیم سیاه از ریل آبی عقب به ریل آبی جلو در پین 29 برای هر کدام وصل کنید
ریل های قرمز را به هم وصل نکنید ، زیرا احتمالاً به آردوینو آسیب می رسانید.
مرحله 7. یک سیم قرمز را از ریل قرمز جلو در پین 30 به پین 5 ولت در آردوینو وصل کنید
این امر به آردوینو قدرت می بخشد.
مرحله 8. کلید فشاری را در فاصله بین ردیف های پین 24-26 وارد کنید
این سوئیچ به شما امکان می دهد ربات را بدون نیاز به قطع برق خاموش کنید.
مرحله 9. یک سیم قرمز از H24 را به ریل قرمز در پین بعدی موجود در سمت راست سنسور وصل کنید
با این کار دکمه روشن می شود.
مرحله 10. از مقاومت برای اتصال H26 به ریل آبی استفاده کنید
آن را مستقیماً در کنار سیم مشکی که چند مرحله پیش وصل کرده اید ، وصل کنید.
مرحله 11. یک سیم سفید از G26 را به پین 2 در آردوینو وصل کنید
این به Arduino اجازه می دهد تا دکمه فشار را ثبت کند.
قسمت 4 از 6: نصب نرم افزار Arduino
مرحله 1. IDE آردوینو را بارگیری و استخراج کنید
این محیط توسعه Arduino است و به شما امکان می دهد دستورالعمل هایی را برنامه ریزی کنید که می توانید در میکروکنترلر Arduino خود بارگذاری کنید. می توانید آن را به صورت رایگان از arduino.cc/fa/main/software بارگیری کنید. فایل بارگیری شده را با دوبار کلیک کردن از حالت فشرده خارج کرده و پوشه را به مکانی آسان برای دسترسی منتقل کنید. شما در واقع برنامه را نصب نخواهید کرد. در عوض ، فقط با دوبار کلیک روی arduino.exe آن را از پوشه استخراج شده اجرا کنید.
مرحله 2. بسته باتری را به آردوینو وصل کنید
جک عقب باتری را به کانکتور آردوینو وصل کنید تا به آن نیرو دهد.
مرحله 3. Arduino را از طریق USB به رایانه خود وصل کنید
ویندوز به احتمال زیاد دستگاه را تشخیص نمی دهد.
مرحله 4. فشار دهید
⊞ Win+R و تایپ کنید devmgmt.msc.
با این کار Device Manager راه اندازی می شود.
مرحله 5. روی "دستگاه ناشناس" در بخش "سایر دستگاهها" راست کلیک کرده و "Update Driver Software" را انتخاب کنید
" اگر این گزینه را نمی بینید ، روی "Properties" کلیک کنید ، برگه "Driver" را انتخاب کنید و سپس "Update Driver" را کلیک کنید.
مرحله 6. گزینه "Browse my computer for software drivers" را انتخاب کنید
" این به شما امکان می دهد درایور همراه با Arduino IDE را انتخاب کنید.
مرحله 7. روی "مرور" کلیک کنید و سپس به پوشه ای که قبلاً استخراج کرده اید بروید
داخل آن یک پوشه "drivers" پیدا خواهید کرد.
مرحله 8. پوشه "drivers" را انتخاب کرده و روی "OK" کلیک کنید
" در صورت هشدار در مورد نرم افزار ناشناخته ، تأیید کنید که می خواهید ادامه دهید.
قسمت 5 از 6: برنامه نویسی ربات
مرحله 1. Arduino IDE را با دوبار کلیک روی فایل arduino.exe در پوشه IDE شروع کنید
با یک پروژه خالی از شما استقبال می شود.
مرحله 2. کد زیر را بچسبانید تا ربات شما مستقیماً حرکت کند
کد زیر باعث می شود آردوینو شما به طور مداوم به جلو حرکت کند.
#include // این کتابخانه "Servo" را به برنامه اضافه می کند // موارد زیر دو سروو شی ایجاد می کند Servo leftMotor؛ سروو راست موتور؛ void setup () {leftMotor.attach (12)؛ // اگر به طور تصادفی شماره های پین را برای سرویس های خود تغییر داده اید ، می توانید اعداد را در اینجا با rightMotor.attach (13) عوض کنید. } void loop () {leftMotor.write (180)؛ // با چرخش مداوم ، 180 به سروو می گوید که با سرعت کامل "به جلو" حرکت کند. rightMotor نوشتن (0) ؛ // اگر هر دوی اینها در 180 باشند ، ربات به صورت دایره ای حرکت می کند زیرا سرووها چرخانده می شوند. "0" ، به آن می گوید که با سرعت تمام "عقب" حرکت کند. }
مرحله 3. برنامه را بسازید و بارگذاری کنید
روی دکمه پیکان سمت راست در گوشه بالا سمت چپ کلیک کنید تا برنامه را در Arduino متصل شده بارگذاری کرده و بارگذاری کنید.
ممکن است بخواهید ربات را از سطح زمین بلند کنید ، زیرا هنگامی که برنامه بارگذاری شد ، به حرکت خود ادامه می دهد
مرحله 4. قابلیت kill kill را اضافه کنید
کد زیر را به بخش "void loop ()" کد خود اضافه کنید تا سوئیچ kill در بالای توابع "write ()" فعال شود.
if (digitalRead (2) == HIGH) // این زمانی ثبت می شود که دکمه روی پین 2 آردوینو فشار داده شود {while (1) {leftMotor.write (90)؛ // "90" برای سروها موقعیت خنثی است ، که به آنها می گوید از چرخش به سمت راست متوقف نشوید. Motor.write (90)؛ }}
مرحله 5. کد خود را بارگذاری و آزمایش کنید
با افزودن کد kill kill می توانید ربات را بارگذاری و آزمایش کنید. تا زمانی که سوئیچ را فشار ندهید باید به جلو حرکت کند ، در این هنگام حرکت آن متوقف می شود. کد کامل باید به این شکل باشد:
#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)؛ }
قسمت 6 از 6: مثال
مرحله 1. یک مثال را دنبال کنید
کد زیر از سنسور متصل به ربات برای چرخاندن آن به چپ در مواقع مواجه شدن با مانعی استفاده می کند. برای اطلاع از جزئیات کار هر قسمت به نظرات موجود در کد مراجعه کنید. کد زیر کل برنامه است.
#شامل سروو سمت چپ موتور ؛ سروو راست موتور؛ const int serialPeriod = 250؛ // این امر خروجی کنسول را به یک بار در هر 1/4 ثانیه بدون امضای طولانی مدت محدود می کندSerialDelay = 0؛ const int loopPeriod = 20؛ // این تنظیم می کند که سنسور هر چند وقت یک بار خوانده شده را به 20ms می رساند ، که فرکانس 50Hz بدون امضای طولانی مدت است 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) // این سوئیچ kill را تشخیص می دهد {while (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 در صورتی که مانعی وجود نداشته باشد برای برخی از سونوگرافی ها منفی خواهد بود {// drive rightMotor.write (180)؛ leftMotor.write (0)؛ } else // اگر شیئی در مقابل ما باشد {state = TURN_LEFT؛ }} else if (state == TURN_LEFT) // اگر مانعی تشخیص داده شد ، به چپ بپیچید {unsigned long timeToTurnLeft = 500؛ // برای چرخش 90 درجه حدود 0.5 ثانیه طول می کشد. اگر اندازه چرخ های شما متفاوت از نمونه turnStartTime = millis () باشد ، ممکن است نیاز به تنظیم آن داشته باشید. // صرفه جویی در زمانی که ما شروع به چرخاندن کردیم در حالی که ((millis ()-turnStartTime) <timeToTurnLeft) // در این حلقه بمانید تا زمانی که timeToTurnLeft سپری شود {// به چپ بپیچید ، به یاد داشته باشید که وقتی هر دو روی "180" تنظیم می شوند ، تبدیل می شود به rightMotor.write (180)؛ leftMotor.write (180)؛ } state = DRIVE_FORWARD؛ }} void readUltrasonicSensors () {// این برای اولتراسونیک 2 است. اگر از سنسور دیگری استفاده می کنید ممکن است نیاز به تغییر این دستورات داشته باشید. digitalWrite (ultrasonic2TrigPin ، HIGH) ؛ تاخیر میکروثانیه (10)؛ // پین ماشه را حداقل 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 = میلی ثانیه ()؛ }}