فهرست مطالب:

OAREE - چاپ سه بعدی - جلوگیری از مانع ربات برای آموزش مهندسی (OAREE) با آردوینو: 5 مرحله (همراه با تصاویر)
OAREE - چاپ سه بعدی - جلوگیری از مانع ربات برای آموزش مهندسی (OAREE) با آردوینو: 5 مرحله (همراه با تصاویر)

تصویری: OAREE - چاپ سه بعدی - جلوگیری از مانع ربات برای آموزش مهندسی (OAREE) با آردوینو: 5 مرحله (همراه با تصاویر)

تصویری: OAREE - چاپ سه بعدی - جلوگیری از مانع ربات برای آموزش مهندسی (OAREE) با آردوینو: 5 مرحله (همراه با تصاویر)
تصویری: Part 1 - Walden Audiobook by Henry David Thoreau (Ch 01) 2024, ژوئن
Anonim
Image
Image
OAREE - پرینت سه بعدی - جلوگیری از روبات مانع برای آموزش مهندسی (OAREE) با آردوینو
OAREE - پرینت سه بعدی - جلوگیری از روبات مانع برای آموزش مهندسی (OAREE) با آردوینو
OAREE - پرینت سه بعدی - جلوگیری از روبات مانع برای آموزش مهندسی (OAREE) با آردوینو
OAREE - پرینت سه بعدی - جلوگیری از روبات مانع برای آموزش مهندسی (OAREE) با آردوینو

OAREE (مانع از ربات برای آموزش مهندسی)

طراحی: هدف از این دستورالعمل طراحی یک روبات OAR (جلوگیری از مانع مانع) ساده/جمع و جور ، قابل چاپ سه بعدی ، جمع آوری آسان ، استفاده از سرویس های چرخشی مداوم برای حرکت و تا حد امکان تعداد کمی قطعات خریداری شده بود. من معتقدم که در ایجاد این ربات عالی موفق شده ام و نام آن را OAREE (ربات اجتناب از موانع برای آموزش مهندسی) گذاشته ام. این ربات موانع را حس می کند ، می ایستد ، به چپ و راست نگاه می کند ، سپس در جهت بدون مانع می چرخد و به جلو ادامه می دهد.

سابقه و هدف: اینترنت دارای چندین مانع برای جلوگیری از روبات ها است ، اما اکثر آنها حجیم ، مونتاژ سخت و گران هستند. بسیاری از این روبات ها دارای کد آردوینو هستند ، اما یافتن یک نمونه کار خوب و کار شده دشوار بود. من همچنین می خواستم از سروهای چرخشی مداوم برای چرخ ها (به جای موتورهای DC) استفاده کنم ، که هنوز انجام نشده بود. بنابراین ، من مأموریتی را برای توسعه یک ربات جمع و جور و مخترع برای اشتراک گذاری با جهان آغاز کردم.

توسعه بیشتر: این ربات را می توان برای دقت بهتر پینگ ، سنسورهای IR برای قابلیت دنبال کردن خط ، صفحه LCD برای نمایش فاصله موانع و موارد دیگر ، توسعه داد.

تدارکات

  • 1x Arduino Uno -
  • 1x V5 Sensor Shield -
  • نگهدارنده باتری 1x 4xAA با روشن/خاموش -
  • 1x SG90 Servo -
  • 2 برابر سرویس چرخش مداوم -
  • کابل برق 1x 9V برای آردوینو (اختیاری) -
  • 1x سنسور اولتراسونیک HC -SR04 -
  • 4x سیم زن جهنده زن-زن-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
  • 2 عدد نوار لاستیکی
  • باتری 1x 9V (اختیاری)
  • 4 برابر باتری AA
  • 4 عدد پیچ کوچک (4 1/ 1/2 یا هر چیز مشابه)
  • درایور پیچ فیلیپس
  • چسب برای محکم کردن نوارهای لاستیکی به چرخ ها

مرحله 1: چاپ سه بعدی: بدنه ، چرخ ها ، تخته سنگ مرمر ، پیچ/مهره 6 میلی متری و پایه سنسور اولتراسونیک

چاپ سه بعدی: بدنه ، چرخ ها ، تخته سنگ مرمر ، پیچ و مهره 6 میلی متری و پایه سنسور اولتراسونیک
چاپ سه بعدی: بدنه ، چرخ ها ، تخته سنگ مرمر ، پیچ و مهره 6 میلی متری و پایه سنسور اولتراسونیک
چاپ سه بعدی: بدنه ، چرخ ها ، تخته سنگ مرمر ، پیچ و مهره 6 میلی متری و پایه سنسور اولتراسونیک
چاپ سه بعدی: بدنه ، چرخ ها ، تخته سنگ مرمر ، پیچ و مهره 6 میلی متری و پایه سنسور اولتراسونیک
چاپ سه بعدی: بدنه ، چرخ ها ، تخته سنگ مرمر ، پیچ و مهره 6 میلی متری و پایه سنسور اولتراسونیک
چاپ سه بعدی: بدنه ، چرخ ها ، تخته سنگ مرمر ، پیچ و مهره 6 میلی متری و پایه سنسور اولتراسونیک

5 قسمت برای چاپ سه بعدی وجود دارد.

  1. بدن
  2. چرخ ها
  3. تخته سنگ مرمر
  4. پیچ/مهره 6 میلی متری (اختیاری ، مهره/پیچ فلزی را می توان جایگزین کرد)
  5. کوه سنسور التراسونیک

همه فایل های مورد نیاز. STL در این دستورالعمل و همچنین فایل های Sketchup گنجانده شده است. پر کردن 40٪ توصیه می شود.

مرحله 2: آردوینو را برنامه ریزی کنید

Image
Image
مونتاژ روبات
مونتاژ روبات

ارسال کد به Arduino UNO: با استفاده از Arduino IDE ، کد (در فایل پیوست) را به ماژول آردوینو خود ارسال کنید. شما باید کتابخانه های servo.h و newping.h را با این طرح بارگیری و شامل کنید.

کد کاملاً توضیح داده شده است ، بنابراین می توانید ببینید هر فرمان چه می کند. در صورت تمایل می توانید فاصله سنسور اولتراسونیک را به مقدار بزرگتر یا کوچکتر تغییر دهید. این یک کد اولیه است و به منظور توسعه و توسعه بیشتر پروژه مورد استفاده قرار می گیرد.

// جلوگیری از روبات // [email protected]، [email protected] ، دانشگاه TN در Chattanooga ، مهندسی برق ، پاییز 2019 // مواد مورد نیاز: // 1) Arduiino UNO ، 2) Servo Sensor Shield v5.0 ، 3) HCSR04 سنسور اولراسونیک ، 4) FS90 Servo (برای سنسور اولتراسونیک) // 5 و 6) 2x SERVOS ROTATION CONTINUOUS برای چرخ ها // 7) 16 میلی متر سنگ مرمر برای محور چرخ کرچک عقب ، 8 و 9) 2 نوار لاستیکی برای چرخ ها // 10- 15) 1x (4xAA) نگهدارنده باتری با کلید روشن و خاموش ، 16 و 17) باتری 9 ولت با اتصال به برق Arduino UNO // چاپ سه بعدی: // 18) بدنه ROBOT ، 19 و 20) 2x چرخ ، 21) تخته سنگ مرمر ، 22) سنسور اولتراسونیک سوار ، و پیچ 6 میلی متری (فایلهای پیوست را ببینید) // -------------------------------------- ------------------------------------------------------ ----------------------------------------- #شامل // شامل کتابخانه سروو #شامل شود // شامل کتابخانه Newping // ----------------------------------------------- ------------------------------------------------------ -------------------------------------- #TRIGGER_PIN 1 را تعریف کنید 2 // ماشه آمریکا برای پین 12 در Arduino #تعریف ECHO_PIN 13 // US Echo به پین 13 در Arduino #تعریف MAX_DISTANCE 250 // فاصله تا پینگ (حداکثر 250) int فاصله = 100؛ // ---------------------------------------------------- ------------------------------------------------------ ------------------------------- سرو US_Servo ؛ // Servo Servo Servo Servo Left_Servo سنسور اولتراسونیک؛ // سروو سرو چپ چرخ راست_سروو؛ // سونار سرو راست چرخ NewPing (TRIGGER_PIN ، ECHO_PIN ، MAX_DISTANCE) ؛ // راه اندازی NewPing پین ها و حداکثر فاصله. // ---------------------------------------------------- ------------------------------------------------------ ------------------------------- void setup () // ورودی/خروجی ، کجا باید پیوست شود ، موقعیت/حرکت اولیه را تنظیم کنید {pinMode (12 ، OUTPUT) ؛ // پین راه اندازی به عنوان pinMode خروجی (13 ، INPUT) ؛ // پین اکو به عنوان ورودی US_Servo.attach (11) ؛ // US Servo روی پین 11 US_Servo.write (90) تنظیم شده است؛ // سرویس ایالات متحده به جلو نگاه می کند

Left_Servo.attach (9) ؛ // سروو چرخ چپ به پین 9

Left_Servo.write (90)؛ // LEFT WHEEL SERVO روی STOP تنظیم شده است

Right_Servo.attach (10) ؛ // سروو چرخ راست روی پین 10 تنظیم شده است

Right_Servo.write (90) ؛ // RIGHT WHEEL SERVO روی STOP delay (2000) تنظیم شده است. // منتظر فاصله 2 ثانیه ای باشید = readPing ()؛ // Ping Distance را در تأخیر موقعیت مستقیم به جلو دریافت کنید (100) ؛ // منتظر 100 ms moveForward () باشید. // ROBOT MOVES FORWARD} // ------------------------------------------ ------------------------------------------------------ ----------------------------------------- حلقه خالی () {int distanceRight = 0؛ // شروع فاصله ایالات متحده به راست در 0 int distanceLeft = 0؛ // شروع فاصله ایالات متحده به سمت چپ در 0 //US_Servo.write(90) ؛ // مرکز خدمات ایالات متحده // تأخیر (50)؛ // US_Servo.write (70) ؛ // کمی راست نگاه کنید // تأخیر (250)؛ // US_Servo.write (110) ؛ // کمی چپ نگاه کنید // تأخیر (250)؛ // US_Servo.write (90) ؛ // مرکز نگاه کنید

if (distance <= 20) // Robot MOVES FORWARD است {moveStop ()؛ // Robot STANPS at distance = distanceLeft) // تصمیم بگیرید که به کدام جهت بپیچید {turnRight ()؛ // سمت راست دارای بیشترین فاصله است ، ROBOT TURNS RIGHT برای 0.3 ثانیه تأخیر (500) ؛ // این تاخیر طول حرکت moveStop () را تعیین می کند؛ // Robot STOPS} else {turnLeft ()؛ // بزرگترین فاصله سمت چپ ، ROBOT TURNS به چپ برای 0.3 ثانیه تاخیر (500) ؛ // This Delay طول حرکت turnStop () را تعیین می کند؛ // Robot STOPS}} else {moveForward ()؛ // Robot MOVES FORWARD} distance = readPing ()؛ // ایالات متحده PING جدید را برای مسیر جدید سفر می خواند} // -------------------------------------- ------------------------------------------------------ --------------------------------------------- int lookRight () // سنسور اولتراسونیک LOOK RIGHT FUNCTION {US_Servo.write (30)؛ // سرووی ایالات متحده در راستای تاخیر زاویه حرکت می کند (500) ؛ int distance = readPing ()؛ // مقدار پینگ را برای تأخیر راست (100) تنظیم کنید ؛ US_Servo.write (90) ؛ // سرویس ایالات متحده از راه دور به مرکز حرکت می کند. // فاصله تنظیم شده است} // ------------------------------------------ ------------------------------------------------------ ------------------------------------- int lookLeft () // سنسور التراسونیک LOOK LEFT FUNCTION {US_Servo. نوشتن (150) ؛ // سرووی ایالات متحده از چپ به تاخیر زاویه حرکت می کند (500) ؛ int distance = readPing ()؛ // مقدار پینگ را برای تاخیر سمت چپ (100) تنظیم کنید. US_Servo.write (90) ؛ // سرویس ایالات متحده از راه دور به مرکز حرکت می کند. // فاصله تنظیم شده است} // ---------------------------------------------- ------------------------------------------------------ ------------------------------------- int readPing () // خواندن عملکرد پینگ برای سنسور اولتراسونیک. {تأخیر (100) ؛ // 100ms بین پینگ ها (حداقل زمان پینگ = 0.29 میلی ثانیه) int cm = sonar.ping_cm ()؛ // فاصله PING جمع آوری شده و در cm تنظیم می شود اگر (cm == 0) {cm = 250؛ } بازگشت cm؛ } // --------------------------------------------------- ------------------------------------------------------ -------------------------------- void moveStop () // ROBOT STOP {Left_Servo.write (90)؛ // LeftServo 180 جلو ، 0 معکوس Right_Servo.write (90) ؛ // RightServo 0 جلو ، 180 عقب} // ------------------------------------------ ------------------------------------------------------ ------------------------------------------ void moveForward () // ROBOT FORWARD {Left_Servo. نوشتن (180) ؛ // LeftServo 180 جلو ، 0 معکوس Right_Servo.write (0) ؛ // RightServo 0 جلو ، 180 عقب} // ------------------------------------------ ------------------------------------------------------ ---------------------------------------- void moveBackward () // ROBOT BACKWARD {Left_Servo. بنویسید (0) ؛ // LeftServo 180 جلو ، 0 معکوس Right_Servo.write (180) ؛ // RightServo 0 جلو ، 180 عقب} // ------------------------------------------ ------------------------------------------------------ ------------------------------------------ void turnRight () // ROBOT RIGHT {Left_Servo. بنویسید (180) ؛ // LeftServo 180 جلو ، 0 معکوس Right_Servo.write (90) ؛ // RightServo 0 جلو ، 180 عقب} // ------------------------------------------ ------------------------------------------------------ ------------------------------------------ void turnLeft () // ROBOT LEFT {Left_Servo. بنویسید (90) ؛ // LeftServo 180 جلو ، 0 معکوس Right_Servo.write (0) ؛ // RightServo 0 جلو ، 180 عقب} // ------------------------------------------ ------------------------------------------------------ --------------------------------------------

مرحله 3: مونتاژ ربات

Image
Image
مونتاژ روبات
مونتاژ روبات
مونتاژ روبات
مونتاژ روبات

اکنون وقت آن است که ربات خود را کنار هم قرار دهید. مراحل زیر ذکر شده است.

1) نوار دیسک گرد و نوارهای لاستیکی را به چرخ ها وصل کنید: همه سروها دارای سخت افزار و پیچ پلاستیکی هستند. دیسک های گرد را پیدا کنید و آنها را در دو سوراخ در قسمت صاف چرخ ها پیچ کنید. نوارهای لاستیکی در اطراف چرخ قرار می گیرند تا چسبندگی را ایجاد کنند. ممکن است بخواهید برای نگه داشتن نوارهای لاستیکی کمی چسب اضافه کنید.

2) ضمیمه کریستال مرمر: از دو پیچ کوچک برای اتصال کاستور مرمر به دو مثلث در عقب استفاده کنید. تخته سنگ مرمر جایگزین ساده ای برای چرخ عقب است و نقطه محوری عقب را فراهم می کند.

3) Servos را در شکاف ها قرار دهید (نیازی به پیچ نیست): FS90 Servo (برای سنسور اولتراسونیک) را در شکاف جلویی بدن قرار دهید. دو سرویس چرخشی پیوسته به شکاف چپ و راست می لغزند. شکافها به گونه ای طراحی شده اند که نیازی به پیچ برای ثابت نگه داشتن سرووها نیست. اطمینان حاصل کنید که سیم های سرو از شیارهای شکاف عبور می کنند به طوری که رو به پشت بدن هستند.

4) قرار دادن باتری 9 ولت (اختیاری): باتری 9 ولت + اتصال برق آردوینو را پشت سروو جلو قرار دهید.

5) مونتاژ سنسور التراسونیک: از دو پیچ کوچک برای اتصال یکی از اتصالات سروو پلاستیکی سفید موجود در پایین صفحه نصب سنسور اولتراسونیک استفاده کنید. در مرحله بعد ، از پیچ/مهره 6 میلی متری چاپ شده (یا جایگزین پیچ/مهره فلزی) برای اتصال قاب سنسور اولتراسونیک به صفحه نصب استفاده کنید. در نهایت ، سنسور را در کیس با پین ها رو به بالا قرار دهید و در پشت کیس محکم کنید.

6) جعبه باتری 4 برابر AA: قاب باتری AA را در قسمت بزرگ مستطیل شکل قرار دهید ، در حالی که کلید روشن/خاموش رو به عقب است.

7) Arduino Uno + V5 Sensor Shield: سپر را به Arduino وصل کرده و روی پایه های بالای قاب باتری قرار دهید. کانکتور برق باید رو به چپ باشد.

ربات شما ساخته شده است! چی چیز باقی مانده است؟ برنامه نویسی Arduino و اتصال Jumper Wires: Servos ، سنسور اولتراسونیک و منبع تغذیه.

مرحله 4: سیم های سنسور را وصل کنید

Image
Image
تمام شده!!! منبع تغذیه آردوینو 9V را وصل کنید ، باتری را روشن کنید و با OAREE از موانع جلوگیری کنید
تمام شده!!! منبع تغذیه آردوینو 9V را وصل کنید ، باتری را روشن کنید و با OAREE از موانع جلوگیری کنید

سیمهای سروو را به V5 Shield وصل کنید:

  1. سروو چرخش پیوسته چپ به پین 9 متصل می شود
  2. سروو چرخش مداوم راست به پین 10 متصل می شود
  3. Front FS90 Servo به پین 11 متصل می شود

پین های سنسور التراسونیک (از طریق سیم های 4 برابر زن به زن جهنده) را به V5 Shield وصل کنید:

  1. به پین 12 وصل کنید
  2. انعکاس به پین 13
  3. VCC به هر یک از پین هایی که با 'V' مشخص شده اند
  4. اتصال به هر یک از پین هایی که با 'G' مشخص شده اند

قاب باتری AA را به V5 Shield وصل کنید:

  1. سیم قرمز مثبت را به کانکتور VCC وصل کنید
  2. سیم منفی سیاه را به اتصال زمین متصل کنید

مرحله 5: تمام شد !!! منبع تغذیه آردوینو 9V را وصل کنید ، باتری را روشن کنید و با OAREE از موانع جلوگیری کنید

Image
Image
تمام شده!!! منبع تغذیه آردوینو 9V را وصل کنید ، باتری را روشن کنید و با OAREE از موانع جلوگیری کنید
تمام شده!!! منبع تغذیه آردوینو 9V را وصل کنید ، باتری را روشن کنید و با OAREE از موانع جلوگیری کنید

تمام شده!

1) منبع تغذیه 9V Arduino را وصل کنید (اختیاری)

2) بسته باتری را روشن کنید

3) با OAREE اجتناب از موانع را شروع کنید !!!

مطمئن هستم که پس از مشاهده یک مانع ، دوست جدید خود ، OAREE ، را دوست خواهید داشت ، عقب نشینی کرده و جهت را تغییر دهید. OAREE با اجسام بزرگی که سنسور التراسونیک می تواند از آنها جدا شود (مانند دیوارها) بهتر کار می کند. به سختی می تواند اجسام کوچک مانند پاهای صندلی را به دلیل سطح و گوشه های کوچک آنها بکوبد. لطفاً به اشتراک بگذارید ، بیشتر توسعه دهید و هرگونه اصلاح یا خطای مورد نیاز را به من اطلاع دهید. این یک تجربه یادگیری عالی بود و امیدوارم شما نیز مانند من از ساخت این پروژه لذت ببرید!

مسابقه رباتیک
مسابقه رباتیک
مسابقه رباتیک
مسابقه رباتیک

نفر دوم مسابقات رباتیک

توصیه شده: