PDA

View Full Version : سوال: ربات



solimo
جمعه 16 مهر 1389, 23:34 عصر
سلام دوستان

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

جواب کافی و محکم و مستدل میخوام ، لطفا ! با توضیحات کامل !

ممنونم

Mahmood_M
شنبه 17 مهر 1389, 00:30 صبح
برنامه ریزی و کنترل رفتار رباتها معمولا با میکروکنترلرها انجام میشه ، میکروکنترلر یک آی سی خالی هست که می تونید دستورات مورد نظرتون رو درش بنویسید ، این آی سی برنامه ریزی شده در کنار سایر قطعات الکترونیکی در یک مدار اصلی قرار میگیره و به همراه ابزارهای مکانیکی مثل چرخ و بازو و ... یک ربات رو تشکیل میدن ...

ابتدا باید با قطعات الکترونیکی آشنا بشید و در کنار اون هم برنامه نویسی کار کنید ، بعد می تونید مداراتی شامل میکروکنترلرها ایجاد کنید و با اونها بیشتر آشنا بشید و در آخر هم با تجهیزات مکانیکی آشنا بشید ، بعد می تونید اقدام به ساخت ربات کنید ...

کامپایلر به صورت خاص نقش خاصی در ساخت ربات نداره ، باید برنامه ی مورد نظرتون برای میکروکنترلر رو بنویسید و بعد از کامپایل توسط یک کامپایلر که توانایی تولید کد برای میکروکنترل شما رو داشته باشه ، کدتون رو کامپایل کنید ، بعد به وسیله ی Programmer باید دستورات رو به میکروکنترلر انتقال بدید ، پروگرامر دستگاهیه شامل یک مدار و معمولا یک میکروکنترلر دیگه ! که کارش انتقال برنامه ی نوشته شده از کامپیوتر به میکروکنترلر هست ، پروگرامر توسط یک پورت USP یا هر پورت دیگه ای مثل پورت پرینتر به کامپیوتر وصل میشه و به عنوان یک سخت افزار خارجی می تونید باهاش ارتباط برقرار کنید ، معمولا کامپایلری که دستورات رو درونش می نویسید خودش نرم افزاری برای ارتباط با پروگرامر و انتقال دستورات داره ولی ممکنه پروگرامری که دارید خودش نرم افزار مخصوصی برای این کار داشته باشه ...

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

تصویر یک پروگرامر مربوط به میکرکنترلهای خانواده ی AVR
http://mahmoodn.persiangig.com/image/Programmer.jpg

میکروکنترلر ها انواع مختلفی دارند ، مثل خانواده ی AVR یا میکروکنترلر PIC یا ARM و ... ، برای کار با هر کدوم باید کامپایلر و پروگرامر مربوط به اون رو استفاده کنید که با جستجویی توی اینترنت موارد زیادی پیدا میشه ، زبان برنامه نویسی هم معمولا C یا Basic و یا در موارد خاص Assembly هست ...

موفق باشید ... !

solimo
شنبه 17 مهر 1389, 12:06 عصر
ممنون از راهنماییتون

ولی بخش اصلی سوال من مربوط به کامپایلر یا مفسر مورد استفاده است !
توضیحاتی در این زمینه میخواستم !
بذارید سوالمو جزئی تر بپرسم :
از کامپایلر استفاده میشه یا مفسر ؟؟
از چه نوعی (مدلی)؟؟
چی کار میکنه ؟؟
دلیل ؟؟

keivan mousavi
شنبه 17 مهر 1389, 14:20 عصر
از زبانهای کامپایلری استفاده میشود به این دلیل که اولاً حجم پایین تری رو در بر میگیرند به حدی که میتوان چند صد دستور را در درون یک تراشه جا داد دوماً سرعت بالاتری نسبت به زبانهای مفسر دارد همانطور که میدانید زبانهای کامپایلری یک بار کامپایل میشود و برای همیشه کد کامپایل شده مورد استفاده قرار میگیرد ولی زبانهای مفسری برنامه در هربار اجرا خط به خط کامپایل میشود سوماً زبانهای کامپایلری زبانهای سطح پایین و یا سطح میانی هستند این زبانها نیاز به داشتن سیستم عامل قدرتمند مانند ویندوز یا لینوکس را دارا نمیباشند شما میتونید برای خودتون یک سیستم عامل بنویسید و یا از سیستم عامل Dos استفاده کنید و چهارمین دلیل که به نظر من مهمترین دلیل میباشد زبانهای کامپایلری دسترسی مستقیم به ثباتها دارند که این مسئله در 90 درصد از زبانهای کامپایلری موجود نیست یعنی میتونم بگم فقط C#.NET هستش که این مسئله رو دارا میباشد حتی زبانهایی مانند دلفی و جاوا و... این کارا نمیتوانند انجام دهند
ولی با تمام این اوصاف این به آن معنی نیستش که شما نمیتوانید با زبانهای مفسری این کارا انجام دهید بلکه به این معنی هستش که این کار متحمل هزینه بیشتر میشود ولی باید گفت چون زبانهای مفسری زبانهای سطح بالا هستند به دلیل داشتن کیبوردهای بیشتر نسبت به زبانهای سطح پایین و وجود کامپوننت های موجود کار را با سرعت بیشتری جلو میبرد

Mahmood_M
شنبه 17 مهر 1389, 15:14 عصر
از کامپایلر استفاده میشه یا مفسر ؟؟
میکروکنترلر شبیه به یک CPU کوچک عمل میکنه که می تونه دستورات خاصی رو اجرا کنه ، دستورات باید توسط کامپایلرهای ویژه ی همون نوع میکروکنترلر به کدهای قابل فهم برای اون میکروکنترلر تبدیل بشن ، طبیعیه که مفسر نمی تونه کابردی داشته باشه ، مفسر وظیفه ی اجرای کدها رو بر عهده داره ، اگر قرار به استفاده از مفسر باشه باید درون میکروکنترلر مفسری برای یک زبان میانه قرار داده بشه ، مثلا برنامه های دات نت برای اجرا به یک نرم افزار مفسر واسط نیاز دارند تا کدهاشون به زبان ماشین ترجمه بشه ، اما اگر میکروکنترلر رو یک ماشین کوچک در نظر بگیریم ، این ماشین فقط می تونه کدهای نهایی قابل فهم خودش رو اجرا کنه پس کامپایلر باید کد ماشین تولید کنه و این کد نهایی به میکروکنترلر انتقال داده بشه ، حالا ممکنه کامپایلرهایی هم باشند یا ساخته بشن که کدهای مثلا دات نت رو به زبان ماشین مخصوص میکروکنترلر خاصی ترجمه کنن و کد نهایی رو تولید کنن ...
درواقع برنامه با هر زبانی که نوشته بشه ، در نهایت به کامپایلر و مترجمی نیاز هست که کدهای نوشته شده رو به کد ماشین مخصوص میکروکنترلر تبدیل کنه ...
معروف ترین زبانهایی که برای برنامه نویسی میکروکنترلر ها استفاده میشن ، C و BASIC هستند ولی محیطهای برنامه نویسی و کامپایلرها معمولا به صورت خاص عرضه میشن ، مثلا برای میکروکنترلر خانواده ی AVR و برای برنامه نویسی با زبان C برای این میکرو کامپایلر CodeVision مناسب هست یا WinAVR ، یک نسخه از CodeVision برای میکروی خانواده ی PIC و همچنین ARM هم وجود داره ، میکروهای ARM و AVR هر دو محصول یک شرکت ( ATmel ) هستند ، کامپایلر معروف زبان BASIC برای میکروی PIC هم PICBasic هست ...

فکر میکنم توضیحات کافی باشه ، اگر ابهامی وجود داره بگید تا توضیح بیشتری بدم ، موفق باشید ...

solimo
شنبه 17 مهر 1389, 22:07 عصر
دوستان واقعا ازتون ممنونم !

موفق باشید ...:قلب: