جمعه ۱۰ فروردین ۱۴۰۳ |  عضویت / ورود

Robi Alpha 1 ؛ نسخه اولیه از روبات روبی، محصول دیگری از آفتابگردان + آموزش مختصر بورد آردوینو


اگر یادتان باشد در سال ۹۲ در مطلب «چه شد که من به برنامه نویسی علاقه‌مند شدم؟» صحبت از یک روبات شد به نام Robi . آن بخش از مطلب را مرور کنیم:

شاید روز اول دانشگاه (در دوره کارشناسی) برای من یکی از بهترین روزها بود! وقتی از دانشگاه برگشتم، خواهرم گفت: خوب مهندس! چه خبر از روز اول دانشگاه؟ :)

گفتم: منصوره! همین روز اول بحث در مورد روبات و اینکه یک برنامه بنویسیم که روبات حرکت کنه و از اتاق بیرون بیاد، بود. احتمالاً تا روز آخر دانشگاه اگر خدا بخواد یه آپولو روی مریخ بنشونیم!!

حالا جریان این روبات چه بود؟

استاد عزیزی که داشتیم (و من واقعاً مدیون او هستم و امیدوارم هر کجا هست موفق باشد)، روز اول را با یک بازی شروع کرد:

https://img.aftab.cc/news/92/robot_program.png

ایشان چند مثال حل کردند و انتهای کلاس، چند تکلیف برای جلسه بعد دادند که یکی از سخت‌ترین‌های آن‌ها این بود: حالا سعی کنید دستورات را طوری بچینید که اگر روبات در یک اتاق ۳ در ۳ باشد و محلِ درب و محل روبات مشخص نباشد، روبات با آن دستورات بتواند درب خروجی را پیدا کند و خارج شود.

باور کنید من از بس روی تکالیف مربوط به این روبات کار کرده بودم، عاشق این روبات شده بودم! اصلاً دلم می‌خواست آن‌را Robi صدا کنم! کلی خیال‌پردازی در موردش کرده بودم.

 

من سال‌هاست که این Robi را در ذهن دارم که پیاده‌سازی کنم. اگر Robi پیاده‌سازی بشود، احتمالاً تدریس زبان‌های برنامه‌نویسی برای مدرسین این درس بسیار آسان‌تر و آن درس برای دانشجوها بسیار جذاب‌تر خواهد شد. اگر دانشجو بتواند چند خط کد بنویسد و به یک روبات بدهد و آن روبات با توجه به دستورات او حرکت کند تا به یک نقطه‌ای برسد، او تا عمر دارد آن لحظه شیرین را فراموش نخواهد کرد. ما تا امروز همیشه برنامه‌نویسی را با یک سری نوشتار روی تخته تدریس کرده‌ایم و همین، برای بسیاری از دانشجویان آن جذابیت لازم را ندارد و همه دنبال پاس کردن دروس برنامه‌نویسی هستند نه لذت بردن از آن و زندگی کردن با آن...

نسخه آلفا از Robi تولید شد!

ترم گذشته، «فرید منصوری» دانشجوی بااستعداد و بسیار فعال کارشناسی آی.تی دانشگاه جهاد دانشگاهی ساوه پروژه پایانی کارشناسی‌اش را با بنده داشت. به او پیشنهاد دادم اگر به برنامه‌نویسی سخت‌افزار علاقه دارد، تا حدی که می‌تواند روی این روبات کار کند و او پذیرفت.
بوردهای آر-دو-ای-نو (Arduino: تلفظ این کلمه ایتالیایی را اینجا بشنوید) و رَسبِری‌پای (Raspberry Pi) به او معرفی شد و خواسته شد که روباتی طراحی کند که دو دستور ساده را اجرا کند: حرکت به جلو و چرخش به راست.

پس از چند ماه مطالعه و خراب‌کردن‌ها و ساختن‌های زیاد، کارِ او یعنی یک نسخه آلفا از Robi آماده شده است:

https://img.aftab.cc/news/96/robi_alpha_1_pic1.jpg

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

https://img.aftab.cc/news/96/robi_alpha_1_pic2.jpg

 

ویدئوی ارائه روش ساخت

امروز آقای منصوری زحمت کشیدند و در نیم ساعت برای دانشجوهای دانشگاه یک ارائه خلاصه-مفید در مورد چیستیِ بورد آردوینو و برنامه‌نویسی میکروکنترولر این بورد و دیگر مواردی که برای ساخت چنین دستگاهی لازم است داشتند که برای خودِ من خیلی مفید بود و ابهاماتی که در مورد این بوردها داشتم را رفع کرد، برای شما هم قطعاً مفید خواهد بود، پیشنهاد می‌کنم حتماً این نیم ساعت را ببینید:

 لینک دانلود با فرمت mp4 و حجم ۳۸ مگابایت

 

بعد از ساخت دستگاه Hisss توسط یکی دیگر از دانشجوها، این دومین تولید سخت‌افزاری آفتابگردان به حساب می‌آید.

در نسخه‌های بعدی، روبی تا حد ممکن کوچک‌تر خواهد شد و امید فراوان دارم که إن شاء الله یک روز با هزینه‌ای اندک توسط مدرسین و دانشجویان تهیه و در تدریس و یادگیری دروس برنامه‌نویسی به کار گرفته خواهد شد.

موفق باشید؛
حمید رضا نیرومند


[ارسال شده در مورخه : پنجشنبه، 12 مرداد، 1396 توسط Hamid]
[ #روبات روبی]

نظرات طرح شده

نام: [ کاربر جدید ]
ایمیل:

نظر:


اجازه استفاده از تگهای HTML را ندارید


جمع عدد 5 با 9 را در كادر زیر وارد نمایید:
(این كار برای جلوگیری از فعالیت موتورهای اسپمر است)


* توجه: نظر شما بعد از بررسی، نمایش داده خواهد شد.

qwerty13                توسط qwerty13 در مورخه : جمعه، 13 مرداد، 1396(لینک نظر)
چیز خوبیه، ولی از بعضی جوانب جای کار داره.

بهتر نبود به جای آردوینوی uno از پرو مینی یا پرو میکرو استفاده میشد؟ uno بیخودی بزرگه
بحث گرونی طراحی برد هست (گرچه اگه تیراژ بالا بره به 10 تونم میتونه برسه) ولی روی برد سوراخدار خیلی منظم تر در میومد
برای شاسی ربات، میشد خیلی راحت و ارزون روی پلکسی طرح و برش زد (و بعد اپن سورس منتشر کرد)


[ ارسال جوابیه ]


مهراد                توسط مهراد در مورخه : جمعه، 13 مرداد، 1396(لینک نظر)
موفق باشی... امیدوارم دانشجوهاتون بدونن چه نعمتی در کنارشان هست


[ ارسال جوابیه ]


a_computing_engineer                توسط a_computing_engineer در مورخه : شنبه، 14 مرداد، 1396(لینک نظر)
با سلام.
Like برای Robi ...
و اگر اجازه بدهید تجربه ی شخصی خودم را هم در این زمینه به اشتراک بگذارم و آن اینکه Microcontroller ها همانگونه که در ابتدای ویدئوی ارائه ی این دانشجوی گرامی هم به آن اشاره شد، برای کاربردهایی مثل لوازم خانگی (ماشین لباسشویی) که قرار هست یک نرم افزار تعبیه شده ی ثابت را تا ابد اجرا کنند، مناسب هستند اما زمانیکه قرار هست نرم افزار سیستم مورد نظر ما Dynamically تغییر پیدا کند و از طرف دیگر ما قصد داشته باشیم که این سیستم را بصورت تجاری (و نه آزمایشی و با Arduino) ارائه دهیم، Single CHIP Microcomputers گزینه ی ما خواهد بود.
لطفا دوباره بخوانید! Micro-Controller (میکرو کنترلر) نه، Micro-Computer (میکرو کامپیوتر) !!!
یک Single-chip Microcomputer از لحاظ شکل ظاهری دقیقا شبیه یک میکروکنترلر است اما با کمال تعجب (به دلیل تقاضای کمتر بازار) حتی کمی ارزان تر از آن است (حدود چهار پنج تومان). و همانطور که از اسم شان پیداست، میکرو کنترلر، برای کنترل کردن وسایل مختلف با یک برنامه ی تعبیه شده ی ثابت است، اما یک میکرو کامپیوتر تک تراشه ای، دقیقا یک کامپیوتر کامل (بدون نیاز به سیستم عامل) است (به قیمت یک بیسکویت) و آماده ی اجرای هر برنامه ای است که به حافظه اش بارگذاری گردد (بصورت پویا و بدون نیاز به پروگرام کردن).
goo.gl/eQ6wUe
goo.gl/FS8HpZ
ایده ی بدی به نظر نمی رسد که پروژه ی دانشجوی بعدی تان، Robi با یک Single-chip Microcomputer باشد. موفق باشید.


[ ارسال جوابیه ]


imahwaz                توسط imahwaz در مورخه : سه شنبه، 31 مرداد، 1396(لینک نظر)
سلام، مسئله‌ای که اینجا مطرح شده این هست که یک مسیریاب ساخته شده!
ابهاماتی برای من مطرح شده (فیلم رو هنوز ندیدم و راستش فرصت دیدنش رو ندارم). کاش در مورد اون‌ها توی متن مینوشتید. مثلاً اینکه:

1. این مسیریاب چطور اطلاعات برنامه رو از کاربر دریافت میکنه؟

2. به چه شکلی پردازش میکنه؟!

3. من از Single-chip Microcomputer که دوستمون اشاره کردن اطلاعی ندارم، اما میتونم راه حل دیگه‌ای پیشنهاد بدم:
این پروژه در چند مرحله (و هر مرحله توسط یک دانشجو) کار بشه: مثلاً آماده شدن سخت‌افزار، نوشتن برنامه پردازش دستورات C (نوعی کامپایلر ساده) برای میکروکنترلر، مخابرات اطلاعات و برنامه‌ی واسط نرم‌افزاری ویندوزی (ویرایشگر) و ... . جدا شدن بخش‌ها می‌تونه باعث بشه از هر دانشجو انتظار کار باکیفیت‌تری داشت. استفاده از میکروکنترلرهایی مثل AVR یا ARM برای این نوع پروژه‌ای که توضیح دادم خیلی خوبه و خوشبختانه مستندات فارسی و گروه‌های فعال بسیاری در مورد این میکروها وجود داره. فقط دقت داشته باشید که یک نفر باید به همه این‌ها تسلط داشته باشه تا بتونه این چند نفر رو با هم هماهنگ کنه که در پایان کار نتیجه‌ی کار همه‌ی افراد با هم مچ بشه نه اینکه نرم‌افزار نوشته شده روی سخت‌افزار قابل پیاده‌سازی نباشه!

موفق باشید.


[ ارسال جوابیه ]