شما به این موارد نیاز خواهید داشت:
- HC-SR04 – این حسگر اولتراسونیک را با قیمت 2 دلار از eBay.com.au دریافت کنید .
- سروو موتور SG90 – ما شاهد فروش این سروو با قیمت حدود 4 دلار در ebay بوده ایم.
- محافظ درایو موتور - می توانید این برد توسعه را با قیمت 5 دلار به صورت آنلاین تهیه کنید.
اگر تازه وارد APC هستید، ما در چند ماه گذشته این Masterclass را صرف بررسی نحوه استفاده از میکروکنترلر ارزان قیمت Arduino در دنیای واقعی کرده ایم. این کنترلرهای کوچک 8 بیتی قدرت تراشه Core i5 را ندارند، اما اتصال آنها با دستگاههای «دنیای واقعی» مانند حسگرهای اولتراسونیک موتورها و نمایشگرهای دما/رطوبت بسیار آسانتر است.
در پروژه آخر ما با ساختن اولین ربات خودران خود به نام رولی گام بزرگی در پیچیدگی برداشتیم. بهجای یک کیت، ما آن را از ابتدا طراحی و ساختیم تا نشان دهیم چگونه میتوانید چندین مؤلفه را با هم ترکیب کنید تا یک دستگاه پیچیدهتر بسازید - و شاید حتی به شما الهام بخشد که خودتان در آن شکافی داشته باشید.
در این بخش دوم پروژه، برخی از تئوریهای مربوط به عملکرد ربات را بررسی خواهیم کرد.
تئوری و عیب یابی
در حالی که ربات ما به راحتی میتواند آنچه را که در داخل کنترلر آردوینو اتفاق میافتد کنار هم قرار دهد، بیشتر در پشت چند کتابخانه کد درخشان که توسط جامعه آردوینو در دسترس است پنهان شده است. اگرچه واقعاً نیازی به دانستن چیزهای زیادی ندارید، اما همیشه ارزش درک کمی از تئوری پشت دستگاههای اصلی مورد استفاده ما و نحوه کار و تعامل آنها با کتابخانههای نرمافزار را دارد.
سنسور اولتراسونیک HC-SR04
حسگر کوچک اولتراسونیک HC-SR04 شبیه یک جفت چشم به نظر می رسد، اما چیزی که شما دارید فرستنده و گیرنده اولتراسونیک است که فرستنده پالس هایی را با فرکانس 40 کیلوهرتز ارسال می کند و گیرنده منتظر است که پژواک بازگردد، مشابه روشی که خفاش ها در مسیر حرکت می کنند. تاریک
با توجه به الکترونیک روی سنسور که از مهرهها و پیچهای ارسال آن پالسها مراقبت میکند، آردوینو فقط باید پالس را شروع کند و زمان بازگشت اکو را اندازهگیری کند. با کمال تعجب این سنسور 2 دلاری تا 3 میلی متر دقیق است و در محدوده 4.5 متری کار می کند. سنسور دارای چهار پایه است - دو پایه برای برق و دو پایه برای کنترل. عملکرد بسیار ساده است - آردوینو پین "ماشه" را به سمت بالا می کشد تا به سنسور اجازه ارسال یک پالس "محدوده" بدهد.
پین اکو در همان زمان بالا می رود و تا زمانی که سنسور پژواک را از یک جسم جلوی سنسور دریافت کند بالا می ماند. مدت زمانی که پین اکو زیاد است متناسب با فاصله تا هر شیء جلویی است و کد کتابخانه به سادگی آن تأخیر زمانی را به فاصله بر حسب سانتی متر تبدیل می کند.
سروو موتور SG90
چیزی که HC-SR04 را مفیدتر می کند، لنگر انداختن آن بر روی یک موتور سروو کنترل دیجیتال است. سروو موتورها یک موتور دنده سه سیم هستند که معمولاً از یک قوس 180 درجه عبور نمی کنند اما می توانند با دقت معقولی در داخل آن قوس بر اساس داده های ارسال شده به سروو روی پین داده قرار گیرند. این سرووها معمولاً در هلیکوپترهای RC برای کنترل عملکرد روتور استفاده میشوند، اما ما از آن به عنوان «گردن» برای حسگر اولتراسونیک خود استفاده میکنیم.
دوباره کار سخت کدنویسی توسط کتابخانه داخلی سروو انجام می شود و تنها کاری که باید انجام دهیم این است که به موتور سروو موقعیت درجه ای را که می خواهیم بگوییم و به آنجا حرکت می کند. با این حال، این عارضه در هماهنگی سنسور اولتراسونیک و موتور سروو ایجاد می شود تا بتوانیم چیزی شبیه به یک نقشه فاصله در مقابل ربات خود ایجاد کنیم.
کاری که کد ما انجام می دهد این است که سروو موتور را چند درجه به موقعیت جدید خود منتقل می کند و 90 میلی ثانیه صبر می کند تا سروو موتور به آن موقعیت برسد و سنسور 70 میلی ثانیه دیگر صبر می کند تا پژواک به عقب برگردد و سروو با همان درجه قوس دوباره به تریگرهای موقعیت جدید خود حرکت می کند. اندازه دیگری و به همین ترتیب تا زمانی که به انتهای قوس خود برسد، سروو را به ابتدا میچرخاند و دوباره این کار را انجام میدهد. به این ترتیب ما نه تنها میدانیم که دقیقاً چه چیزی در جلوی ربات است، بلکه میدانیم چه چیزی در سمت چپ و راست قرار دارد. .
اگر یکی از سروو موتورهای ارزان قیمت مدل SG90 را انتخاب کرده اید، آن را با بازوی روتور متصل نکنید. اینها سروو موتورهای پایه پلاستیکی نایلونی هستند – آنها به اندازه کافی قوی هستند تا بتوانند حسگر اولتراسونیک ما را بچرخانند، اما اگر شروع به تلاش برای فشار دادن به چیزها کنید، برداشتن این چرخ دنده ها کار زیادی نمی برد.
سپر محرک موتور
در حالی که کنترلکننده آردوینو میتواند با سروو موتورهای LED و حسگرهای اولتراسونیک ارتباط برقرار کند، چیزی که نمیتواند انجام دهد کنترل مستقیم موتورهای DC استاندارد است. این موتورها اساساً موتورهای "گنگ" هستند - آنها فقط دو کانکتور برای برق دارند. شما قدرت چرخش موتور را اعمال می کنید. اضافه کردن قدرت بیشتر موتور سریعتر می چرخد. برق را عوض کنید و موتور در جهت مخالف می چرخد. این در مورد آن است. مشکل این است که این موتورهای DC می توانند به طور قابل توجهی بیشتر از خروجی های آردوینو جریان دریافت کنند، به ویژه زمانی که موتور متوقف می شود (یعنی از چرخش به عنوان مثال در برابر دیوار جلوگیری می کند).