فهرست مطالب:

گرفتن خودکار با استفاده از سنسور لیزری و دستورات صوتی: 5 مرحله (همراه با تصاویر)
گرفتن خودکار با استفاده از سنسور لیزری و دستورات صوتی: 5 مرحله (همراه با تصاویر)

تصویری: گرفتن خودکار با استفاده از سنسور لیزری و دستورات صوتی: 5 مرحله (همراه با تصاویر)

تصویری: گرفتن خودکار با استفاده از سنسور لیزری و دستورات صوتی: 5 مرحله (همراه با تصاویر)
تصویری: تکچرخ 2024, نوامبر
Anonim
Image
Image
لیست قطعات
لیست قطعات

گرفتن اشیاء که به نظر ما ساده و طبیعی است در واقع یک کار پیچیده است. انسان از حس بینایی برای تعیین فاصله از جسمی که می خواهد بگیرد ، استفاده می کند. هنگامی که دست در مجاورت شیئی است که در حال چنگ زدن است به طور خودکار باز می شود و سپس به سرعت بسته می شود تا شی را به خوبی بگیرد. من در این پروژه کوچک از این تکنیک به صورت ساده استفاده کرده ام ، اما به جای دوربین از سنسور لیزری برای تخمین فاصله جسم از گیرنده و دستورات صوتی برای کنترل استفاده کردم.

مرحله 1: لیست قطعات

لیست قطعات
لیست قطعات

در این پروژه کوچک فقط به چند قسمت از موارد زیر نیاز خواهید داشت. من به عنوان کنترل کننده از Arduino mega 2560 استفاده کردم اما شما همچنین می توانید از UNO یا هر Arduino دیگر استفاده کنید. به عنوان سنسور فاصله از سنسور لیزری VL53L0X استفاده کردم که دقت خوبی دارد (حدود چند میلی متر) و برد آن تا 2 متر است. در این پروژه می توانید برای آزمایش هرگونه گیربکس و سروو استفاده کنید ، اما باید آن را از منبع تغذیه جداگانه ای تغذیه کنید ، به عنوان مثال: منبع تغذیه 5 ولت یا باتری LiPo (7.4 ولت یا 11.1 ولت) از طریق مبدل گام به گام که ولتاژ را کاهش می دهد. تا 5 ولت

قطعات مورد نیاز در این پروژه:

  • VL53L0X Laser ToF Sensor x1
  • سرو دیجیتال x1
  • آردوینو مگا 2560 در 1
  • روبات گیر فلزی x1
  • تخته نان x1
  • دکمه فشاری لمسی x1
  • بلوتوث HC-06
  • مقاومت 10k x1
  • منبع تغذیه 5 ولت/2 آمپر

نسخه توسعه یافته:

  1. ماژول سنسور مانیتور کنونی CJMCU-219 x1
  2. WS2812 RGB LED Board Driver Development x1

مرحله 2: اتصال قطعات الکترونیکی

اتصال قطعات الکترونیکی
اتصال قطعات الکترونیکی
اتصال قطعات الکترونیکی
اتصال قطعات الکترونیکی
اتصال قطعات الکترونیکی
اتصال قطعات الکترونیکی

شکل اول تمام اتصالات لازم را نشان می دهد. در عکسهای زیر می توانید مراحل بعدی اتصال ماژول های جداگانه را مشاهده کنید. در ابتدا ، دکمه فشاری به پین 2 آردوینو و سپس سروو به پین 3 و در نهایت سنسور فاصله لیزری VL53L0X از طریق گذرگاه I2C (SDA ، SCL) متصل شد.

اتصالات ماژول های الکترونیکی به شرح زیر است:

سنسور لیزری VL53L0X -> آردوینو مگا 2560

  • SDA - SDA
  • SCL - SCL
  • VCC - 5 ولت
  • GND - GND

سروو -> آردوینو مگا 2560

سیگنال (سیم نارنجی) - 3

سروو -> منبع تغذیه 5 ولت/2 آمپر

  • GND (سیم قهوه ای) - GND
  • VCC (سیم قرمز) - 5 ولت

دکمه فشار -> آردوینو مگا 2560

  • پین 1 - 3.3 یا 5 ولت
  • پین 2 - 2 (و از طریق مقاومت 10k به زمین)

بلوتوث (HC -06) -> Arduino Mega 2560

  • TXD - TX1 (19)
  • RXD - RX1 (18)
  • VCC - 5 ولت
  • GND - GND

مرحله 3: Arduino Mega Code

آردوینو مگا کد
آردوینو مگا کد

من نمونه برنامه های آردوینو زیر را که در GitHub من موجود است آماده کرده ام:

  • VL53L0X_gripper_control
  • Voice_VL53L0X_gripper_control

اولین برنامه با نام "VL53L0X_gripper_control" وظیفه گرفتن خودکار شیئی را که توسط سنسور لیزری VL53L0X شناسایی شده است ، انجام می دهد. قبل از تدوین و بارگذاری نمونه برنامه ، مطمئن شوید که "Arduino Mega 2560" را به عنوان پلتفرم مورد نظر انتخاب کرده اید (Arduino IDE -> Tools -> Board -> Arduino Mega یا Mega 2560). برنامه آردوینو در حلقه اصلی - "حلقه خالی ()" بررسی می کند که آیا خوانش جدید از سنسور لیزر به دست آمده است (عملکرد readRangeContinuousMillimeters ()). اگر فاصله خوانده شده از حسگر "distance_mm" بیشتر از مقدار "THRESHOLD_CLOSING_DISTANCE_FAR" یا کمتر از "THRESHOLD_CLOSING_DISTANCE_NEAR" باشد ، سروو بسته می شود. در موارد دیگر ، شروع به باز شدن می کند. در قسمت بعدی برنامه ، در عملکرد "digitalRead (gripperOpenButtonPin)" ، حالت دکمه به طور مداوم کنترل می شود و اگر فشار داده شود ، گریپر با وجود بسته بودن آن به دلیل مجاورت شی باز می شود. (distance_mm کمتر از THRESHOLD_CLOSING_DISTANCE_NEAR است).

برنامه دوم "Voice_VL53L0X_gripper_control" به شما امکان می دهد با استفاده از دستورات صوتی گریپر را کنترل کنید. دستورات صوتی توسط BT Voice Control for Arduino از Google Play پردازش می شود و از طریق بلوتوث به Arduino ارسال می شود. برنامه آردوینو در حلقه اصلی - "void loop ()" بررسی می کند که آیا فرمان جدید (کاراکتر) از برنامه Android از طریق بلوتوث ارسال شده است. در صورت وجود هرگونه کاراکتر ورودی از سریال بلوتوث ، برنامه داده های سریال را بخوانید تا با پایان آموزش صوتی "#" مواجه شود. سپس اجرای تابع "void processInput ()" را آغاز می کند و بسته به فرمان صوتی ، یک تابع کنترلی خاص فراخوانی می شود.

مرحله 4: آزمایش گرفتن خودکار

تست گرفتن خودکار
تست گرفتن خودکار
تست گرفتن خودکار
تست گرفتن خودکار

ویدئوی "مرحله 1" آزمایش های روبات گیر را بر اساس برنامه قسمت قبل "Arduino Mega Code" نشان می دهد. این ویدئو نشان می دهد که چگونه وقتی شیء به آن نزدیک می شود به طور خودکار باز می شود و سپس در صورت دسترسی به گیرنده ، آن را می گیرد. وقتی بطری را به جلو و عقب حرکت می دهم که باعث واکنش سریع و تغییر کنترل گیرنده می شود ، بازخورد سنسور فاصله لیزری که در اینجا استفاده می شود به وضوح قابل مشاهده است.

مرحله 5: گرفتن خودکار با صدای فعال شده

Image
Image
چالش Epilog 9
چالش Epilog 9

در مرحله بعدی توسعه این پروژه ، کنترل صدا را به آن اضافه کردم. به لطف فرمان صوتی ، می توانم بسته شدن ، باز شدن و سرعت گریپر را کنترل کنم. کنترل صدا در این مورد هنگام باز کردن گریپر که شی را نگه می دارد بسیار مفید است. این دکمه را جایگزین می کند و امکان کنترل آسان گریپر قرار داده شده بر روی ربات تلفن همراه را فراهم می کند.

اگر از این پروژه خوشتان آمد رای دادن را فراموش نکنید و در نظر بنویسید که دوست دارید در پست بعدی به عنوان پیشرفت بیشتر این پروژه چه چیزی را ببینید:) سایر پروژه های من در زمینه رباتیک را بررسی کنید ، فقط به این آدرس سر بزنید:

  • فیس بوک
  • یوتیوب
  • وب سایت من

توصیه شده: