پروژه
۰

برنامه نویسی ربات چگونه است؟

برنامه نویسی ربات چگونه است؟

در صورتیکه بخش های قبلی پروژه را مطالعه نکرده اید حتما به بخش اول (چگونه یک ربات بسازیم؟) مراجعه کنید و از ابتدا پروژه را مطالعه کنید.

بخش دهم – برنامه نویسی ربات

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

آموزش برنامه نویسی ربات در یک بخش نمی گنجد و زمان زیادی لازم دارد ولی در این بخش سعی کردیم به شما کمک کنیم تا بتوانید برنامه نویسی را شروع کنید. ما در بخش مثال عملی از زبان برنامه نویسی Processing برای برنامه نویسی میکروکنترلر Arduino (که در بخش های قبلی انتخاب شده بود)، استفاده خواهیم کرد.

از چه زبان برنامه نویسی استفاده کنیم؟

انتخاب نوع زبان برنامه نویسی

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

  • زبان Assembly : بسیار نزدیک به زبان ماشین است، به همین دلیل استفاده از آن بسیار خسته کننده است. زبان Assembly زمانی کاربرد دارد که نتوان با استفاده از زبان های سطح بالا کد خاصی را نوشت و البته دقت و سرعت بالاتری نسبت به زبان های سطح بالا نیز دارد. معمولاً برای برنامه نویسی در سطح CPU کاربرد دارد.
  • زبان Basic : یکی از اولین زبان های برنامه نویسی که به طور گسترده استفاده می شد و البته هنوز هم در برخی از میکروکنترلرها (Basic Micro، BasicX، Parallax) برای ساخت ربات های آموزشی استفاده می شود.
  • زبان های C/C++ : C یکی از محبوب ترین زبان های برنامه نویسی است و یک زبان سطح بالا می باشد که برای برنامه نویسی سطوح پایین سیستم (مثلا در سطح سیستم عامل یا نرم افزار) مناسب است.
  • زبان Java : زبان Java جدیدتر از C می باشد و به دلیل اینکه برنامه های جاوا در داخل سیستم عامل مجازی ماشین مجازی اجرا می شوند از امنیت بالایی برخوردارند. برخی از شرکتها مانند Parallax میکروکنترلرهای خود را به گونه ای می سازد که با زبان Java قابل کدنویسی هستند.
  • زبان #NET/C. : زبان اختصاصی مایکروسافت می باشد که از آن برای توسعه برنامه های کاربردی خود در Visual Studio استفاده می کند. Netduino  و FEZ Rhino نمونه هایی از کاربرد آن می باشد.
  • زبان Processing (Arduino) : نوعی از زبان ++C است که البته برنامه نویسی با آن نسبت به زبان ++C ساده تر شده است.
  • زبان Python : یکی از محبوب ترین زبان های برنامه نویسی می باشد. یک زبان سطح بالا است و یادگیری آن بسیار ساده می باشد.
  • در بخش چهارم، میکروکنترلر را بر اساس ویژگی هایی که گفته شد، انتخاب کردیم. معمولاً، هر میکروکنترلر به یک زبان خاصی برنامه نویسی می شود. به طور مثال :
  • میکروکنترلر آردوینو ( Arduino ) : که از نرم افزار آردوینو استفاده می کند و با استفاده از زبان Processing قابل برنامه نویسی است.
  • میکروکنترلر Basic Stamp : که از زبان PBasic استفاده می کند.
  • میکروکنترلر Basic Atom : که از زبان Basic Micro استفاده می کند.
  • میکروکنترلر Javelin Stamp از شرکت Parallax : که از زبان Java استفاده می کند.

اگر میکروکنترلری که انتخاب کرده اید از یک شرکت معروف باشد، احتمالاً کتاب آموزشی آن هم موجود است و شما می توانید طبق آن یاد بگیرید و برنامه نویسی کنید. ولی اگر میکروکنترلر انتخاب شده مربوط به یک شرکت کوچک باشد، باید دقت کنید که میکروکنترلر باید به چه زبانی نوشته شود که البته اغلب اوقات زبان C می باشد و همچنین چه نرم افزارهای برنامه نویسی برای آن وجود دارد که می توان از روی شرکت سازنده تراشه آن، این مسأله را فهمید.

برنامه نویسی میکروکنترلر

برنامه نویسی میکروکنترلر

معمولاً اولین برنامه ای که برنامه نویسان می نویسند “Hello World”  است. این یکی از ساده ترین برنامه هایی است که می توان در رایانه ساخته و برای چاپ متن به عنوان مثال “Hello World”  در مانیتور رایانه یا صفحه LCD در نظر گرفت. در میکروکنترلر برای نوشتن یک برنامه مبتدی می توان یک چراغ چشمک زن ساده طراحی کرد بدین صورت که یک چراغ LED را به یک پین ورودی/خروجی متصل کرده و با تنظیم کردن پین ورودی/خروجی با کلید ON و Off ، چراغ چشمک خواهد زد. گرچه روشن کردن یک LED کار بسیار ساده ای می باشد ولی به حل برنامه های پیچیده کمک می کند. فرضاً می توان از آن برای روشن کردن multi-segment LED ها، نمایش متن و اعداد، کار با رله ها و موارد دیگر استفاده کرد.

گام اول : اطمینان حاصل کنید که تمام مؤلفه های مورد نیاز برای برنامه نویسی میکروکنترلر را در اختیار دارید. اکثر میکروکنترلرها باید از طریق پلاگین USB به یک کامپیوتر متصل شوند. اگر میکروکنترلر اتصال USB یا DB9 نداشت، در این صورت به یک USB جداگانه متصل به آداپتور سریال نیاز است تا به طور صحیح وصل شود. خوشبختانه اکثر میکروکنترلرها از طریق درگاه RS-232 یا از طریق USB قابل برنامه نویسی هستند و دارای یک پورت USB روی بردشان هستند که نه تنها برای برقراری ارتباط دو طرفه بلکه برای تأمین برق میکروکنترلر به کار می رود.

گام دوم : میکروکنترلر را به رایانه وصل کنید و بررسی کنید که کدام پورت COM به آن متصل است. رایانه، همه میکروکنترلرها را نمی شناسد و باید دفترچه راهنمای ( manual ) میکروکنترلر را مطالعه کنید تا متوجه شوید چگونه میکروکنترلر توسط رایانه شناخته می شود. اغلب اوقات باید درایور مخصوص هر سیستم عامل را دانلود کنید تا رایانه بتواند با میکروکنترلر ارتباط برقرار کند و اصطلاحاً آن را بشناسد.

گام سوم : همیشه ابتدا نمونه کدهایی که دیگر کاربران نوشته اند را در اینترنت پیدا کنید و از روی آن بنویسید البته بیشتر تولید کنندگان نیز کد یا شبه کد مربوطه را ارائه می دهند و در مورد عملکرد محصول شان توضیح می دهند. البته ممکن است که نمونه کد مربوطه به زبان مورد نظر شما نوشته نشده باشد، بهر حال شما می توانید در اینترنت جستجو کنید تا ببینید دیگر کاربران کد مربوطه را نوشته اند یا خیر.

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

  • دفترچه راهنمای کاربر را بررسی کنید.
  • forum یا انجمن سازنده میکروکنترلر را بررسی کنید.
  • برای پیدا کردن نمونه کدها ، اینترنت را بررسی کنید.
  • برای درک نحوه کد نویسی ، دفترچه راهنما ( manual ) را بخوانید.

نکات کلیدی

  1. کدها را به صورت بخش بخش و خوانا بنویسید و در یک فایل مشخص روی کامپیوتر ذخیره کنید تا به راحتی قابل دسترس باشد.
  2. هر بخش را با توضیحات یا comment گذاری شرح دهید: با comment گذاری به راحتی می توان فهمید که هر خط کد چه کاری انجام می دهد. هر چقدر که در برنامه نویسی پیشرفته تر شوید، می توانید به جای comment گذاری برای هر خط کد برای مجموعه ای از کدها comment بگذارید.
  3. نسخه های مختلف کد را ذخیره کنید و بر روی همان فایل کپی نکنید: زیرا اگر روزی متوجه شوید که 200+ خط کد شما کامپایل نمی شود، دیگر نیازی نیست که کدها را خط به خط چک کنید و در عوض می توانید به نسخه ذخیره شده قبلی برگردید و در صورت لزوم آن را تغییر دهید. کد ، فضای زیادی از حافظه را اشغال نمی کند، پس می توانید با خیال آسوده چندین نسخه کد را ذخیره کنید.
  4. هنگام debug کردن کدها ، ربات را روی زمین یا میز قرار ندهید تا ربات از لبه میز پرت نشود یا بر روی زمین وارونه نشود و اگر دیدید که ربات در حال نابودی خودش است آن را از برق بکشید.
  5. اگر کدی درست کار نمی کند، برق را خاموش کنید زیرا هیچ اشکالی خود به خود رفع نمی شود و اگر ربات را از برق خارج نکنید ممکن است بخشی از آن خراب شود.
  6. یادگیری توابع و درک عملکرد آنها کمی مشکل است ولی اگر در برنامه ای یک قطعه کد دائما در حال تکرار باشد بهتر است که از توابع استفاده کرد تا برنامه ، ساده تر و بهینه شود.

مثال عملی

برنامه نویسی آردوینو

همانطور که می دانید ما میکروکنترلر Arduino را به عنوان ( مغز ربات ) خود انتخاب کرده ایم. برای شروع، می توانید به آموزش های Arduino 5 Minute مراجعه کنید. این آموزش ها به شما کمک می کنند تا عملکرد اصلی زبان برنامه نویسی Arduino را بشناسید و درک کنید. پس از پایان این آموزش ها، به مثال زیر توجه کنید.

سنسور فاصله سنج

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

خوشبختانه برای برنامه نویسی سنسور فاصله در نرم افزار آردوینو نمونه کد آماده وجود دارد که آدرس آنFile -> Examples -> Analog -> AnalogInOutSerial می باشد و همچنین برای حرکت سروو موتور ( چرخش و بالا و پایین رفتن ) نیز نمونه کد آماده وجود دارد و آدرس آن File -> Examples ->  Servo -> Sweep می باشد. در زیر کدهای این بخش نوشته شده است.

سروو موتور

توجه داشته باشید که نوشته های پس از علامت ( // ) به معنای توضیحات یا comment است و شامل کدها نمی شوند:

برنامه نویسی میکروکنترلر آردوینو

برنامه نویسی کنترلر موتور

برنامه نویسی کنترلر موتور

کد نویسی این بخش کمی سخت تر است، زیرا هیچ نمونه کدی مخصوص آردوینو در دسترس نیست. کنترلر به پین Tx (سریال) آردوینو متصل شده و قبل از هر اقدامی منتظر یک “بایت شروع” است.

  • 0x80 (بایت شروع)
  • 0x00 (فقط مخصوص این کنترلر موتور می باشد، اگر مقداری غیر از بایت شروع به کنترلر برسد، هیچ اقدامی نمی کند).
  • سیگنال هر موتور را به یک پین دیجیتال در آردوینو وصل کنید. (موتورها را مستقیماً به آردوینو وصل نکنید زیرا هنگام آپلود کدها در آردوینو ، مشکل پیدا می کنند).
  • سرعت موتورها از (0 تا 127 هگزا دسیمال است).

برای پیاده سازی این قسمت برنامه ای به صورت زیر نوشتیم :

برنامه نویسی کنترلر

بنابراین قرار دادن تمام کدها در کنار هم سبب می شود که ربات حرکت کند. پروژه ساخت ربات تانک به پایان رسید و امیدوارم که لذت برده باشید!

مقالات مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.
You need to agree with the terms to proceed

پر بازدید ترین مقالات