الکترونیک، رباتیک و مکانیک

آموزش به زبان بسیار ساده و روان (از صفر تا بینهایت)

الکترونیک، رباتیک و مکانیک

آموزش به زبان بسیار ساده و روان (از صفر تا بینهایت)

الکترونیک، رباتیک و مکانیک

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

نویسندگان
پیوندهای روزانه
طبقه بندی موضوعی
آخرین نظرات

چهارشنبه, ۲۵ آذر ۱۳۹۴، ۰۳:۴۰ ب.ظ

۱

در این قسمت به بررسی کلی زبان های برنامه نویسی میپردازیم.

از بین زبان های ارائه شده،زبان برنامه نویسی مناسب میکروکنترلر AVR و همچنین کامپیایلر مربوطه را انتخاب خواهیم کرد.

 

با ما در ادامه مطلب همراه باشید ...

مباحث قبلی در مورد اصول کلی میکروکنترلرها و البته با نگاهی ویژه به میکروکنترلر AVR بود.

اصول اگرچه بصورت کامل بیان نشد ولی خیلی با خودم کلنجار رفتم که بازم در مورد اصول میکرو توضیح بدم یا نه ؟!

که در پایان به این نتیجه رسیدم که توضیح مسائل اصولی و سخت افزاری دیگه،بیشتر جنبه تخصصی رو پیدا میکنه و شاید به درد همه هم نخوره و خلاصه اینکه هم حوصله شما رو سر میبره و هم منو !!!

برای مثال؛توضیح در مورد "منابع تولید پالس" اگرچه که بحث مهمی محسوب میشه ولی الان چون ذهنیت درستی نسبت بهش نداریم هرچی هم که توضیح داده بشه،آخرش میاین و میگید که " اصلا این پالس به چه دردی میخوره ؟؟؟ " (البته بلا نسبت شما !).

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

بهرحال قصد دارم که بحثو پیش ببرم و مطمئن باشید که باز هم در مورد مباحث اصولی و سخت افزاری هرجا که لازم شد مطلب قرار خواهم داد اما فعلا کافیه !!!

 

خلاصه دیگه دیگه ... cheeky


بحث اصلی و کلی امروز،انتخاب یه زبان برنامه نویسی برای میکروکنترلر AVR هست و بنده هم که مرامم توضیح دادن از بیس کاره،مجبور شدم از بیس در اینباره توضیح بدم !

 

از اینکه با زبان اینقدر ساده توضیح میدم عذرخواهی میکنم.(اساتید ببخشند !)

 

کامپیوتر وسیله ای است که ما بهش دستور میدیم و اون هم مجبوره که اجرا کنه ! cool

اما مگه کامپیوتر،هموطن ماست ؟ که زبون ما رو بفهمه ؟!

اصلا شما انگلیسی هم اگه بلد باشید و بهش با انگلیسی هم که دستور بدید بازهم نمیفهمه !

 

آهان !

داره تو ذهنتون یه سری سوال ردیف میشه ! نه ؟

قاعدتا با گفتار ما،کامپیوتر دستور نمیگیره ! درسته ؟ یعنی ما نمیشینیم باهاش درد و دل کنیم و اون هم سر برای ما تکون بده و ...

باید دستورات رو براش بنویسیم !!!

اما جالبتر از همه اینه که کامپیوتر تنها یه زبون بلده !

کلا زبان مادریش " زبان ماشین " بوده و هست.

 

خب اینکه دیگه اینقدر بحث کردن نداره ! با زبون خودش باهاش حرف میزنیم والسلام.

اما به عکس زیر یه نگاهی بندازید :

یه نگاه به کدهای داخل مستطیل بندازید!

چیزی ازش سر در میارید ؟ [خداییش جفنگه !!!]  نه ؟؟؟!!!

کل کدهایی که داخل مستطیل زرد رنگ هستند،تنها دارند یه عملیات ساده 2+2=4 رو انجام میدند !!!

در واقع ما چیزی ازش متوجه نشدیم.

خیلی جالب شد !  کامپیوتر زبان ما رو نمیفهمه و ما هم زبون اونو !!! (البته لازم بذکره که میشه زبون ماشین رو هم یاد گرفت اما ...)

حالا تکلیف چیه ؟؟؟

...

زبان ماشین : مجموعه دستورالعملهایی است که برای پردازنده قابل فهم است و وابسته به معماری CPU نیز میباشد.

چاره اش اینه که بیایم و یه مترجم استخدام کنیم که زبون ماشین حالیش باشه و ما با اون طرف باشیم !

اسم این جناب مترجم "کامپایلر(Compiler)" هست و کوچیک شما !

 

حالا میایم و به جای اینکه با یه زبان جفنگ و مزخرف (زبان ماشین) طرف بشیم،میایم یه زبان ساده و قابل فهم رو انتخاب میکنیم و مترجم (کامپایلر) مناسب رو هم انتخاب میکنیم و دستورات رو با این زبون جدیده مینویسیم !

 

اگه توجه کنید تو این بحثایی که تا حالا کردیم من از واژه "کامپیوتر" استفاده کردم.قبلا هم عرض شد که میکروکنترلر کامپیوتری کوچک است.

پس اون مواردی که اینجا برای کامپیوتر میگیم برای میکروکنترلر هم صادقه !

 

اگه یه نگاهی به تصویر اول همین پست بندازید،مجموعه ای از اسامی زبان های برنامه نویسی رو خواهید دید.

 

بین این همه زبان کدومشو انتخاب کنیم ؟؟؟

 

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

 

 

1.سطح پایین : بیشترین نزدیکی به زبان ماشین. مثل : اسمبلی

2.سطح میانی : نزدیکی متوسط به زبان ماشین.مثل : زبان سی

3.سطح بالا : نزدیکی کم به زبان ماشین.مثل : زبان بیسیک

 

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

 

تا اینجا داشتیم یه بحث کلی انجام میدادیم بر روی زبان های برنامه نویسی کامپیوتر.اما از اینجا به بعد تمرکز اصلیمون رو میزاریم روی زبان های برنامه نویسی میکروکنترلر AVR.

 

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

 

باید بگم که کامپایلرهای AVR با گذشت زمان داره تعدادشون بیشتر میشه.

 

اما معروفترین هاشون اینها هستند :

 

1.*Bascom AVR -- زبان بیسیک

2.*Codevision AVR -- زبان C

3.Atmel Studio -- زبان اسمبلی + ++C

4.Keil -- زبان C

5.IAR -- زبان ++C/C

6.MiKroC -- زبان C

7.WinAVR -- زبان C

 

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

در ایران هم 2 مورد اولی بیشتر از همه جا افتادند.اما با این حال دستتون بازه هر کدوم از اینا رو که خواستید انتخاب کنید !

 

در انتخاب کامپایلر و زبان باید یکم از زوایای دیگه هم بهشون نگاه کرد:

 

همونطور که گفتم در ایران بیشتر بسکام و کدویژن استفاده میشند.

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

 

اما بقیه مردم دنیا چه میکنند ؟

 

اون بندگان خدا چون تو کشورشون قانون کپی رایت وجود داره و خودشون هم سطح وجدان بالایی دارند میان و دقیق کامپایلرشون رو انتخاب میکنند و اون رو میخرند ، اونهم به چه قیمتایی !!!

اما اونجا هم همه نمیتونند پول بالای این کامپایلرها بدند.کاری که میکنند اینه که میان و از کامپایلر های رایگانی مثل :Atmel Studio,IAR,WinAVR,... استفاده میکنند.

 

پس برید خدا رو شکر کنید که دستمون بازه تو نصب نرم افزار !!! (مردم دنیا حسرت اینجور حال و حولای ما رو میخورند ! جدی میگم !!! surprise).

بعد هی بشینید حسرت اون ور آبو بخورید !

 

اما دو تا مسئله دیگه :

 

1.ما مجبوریم یه زبان رو انتخاب کنیم و در این وبلاگ با اون بحث رو پیش ببریم.

2.اگه کامپایلرهایی غیر از بسکام و کدویژن انتخاب کردید،انتظار چندانی برای پشتیبانی از طرف کاربران ایرانی نداشته باشید ! چون اکثرشون باهاشون کار نکردند.

 

خب،رسیدیم به بحث جنجالی انتخاب کامپایلر مناسب حال و اوضاع خودمون :

 

*قاعدتا جزو دو کامپایلر محبوب و معروف در ایران خواهد بود.

**حتما کدویژن خواهد بود !!!!!!!!!!!! (ههه ... laugh)

 

اما چرا کدویژن ؟

 

اصلی ترین دلیل انتخاب این زبان توسط بنده محبوبیت آن و همچنین استفاده از زبان برنامه نویسی C آن است.

 

ویژگی های زبان سی :

 

1.زبان برنامه نویسی سطح میانی است.

2.تاثیر گذارترین زبان برنامه نویسی جهان است.

3.زبانی کوچک و جمع و جور که کلمات کلیدی کمی دارد.

4.زبان برنامه نویسی سیستم است.

5.دارای قدرت و انعطاف بالاست که هیچ محدودیتی را برای برنامه نویس بوجود نمی آورد.

6. ...

 

در یک کلام بگم که با یادگیری این زبان،به 80 درصد زبان های برنامه نویسی دیگر موجود در جهان اشراف پیدا خواهید کرد.

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

 

پس زبان و کامپایلرمون رو انتخاب کردیم.

 

خودمم متوجه هستم که یه مقداری تو بعضی از قسمت ها تندروی کردم.

اما اگر راضی به خواندن رمانی طولانی تر از اینی که من نوشتم هستید،بهم خبر بدید !

پس تحقیقات تکمیلی دیگه رو خودتون انجام بدید یا در نظرات همین بخش اعلام کنید تا در حد توان راهنماییتون کنم !

 

امان از تعصب !!!  :

 

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

طرف بسکام کار میکنه،بهش میگی من کدویژن کار میکنم،شروع میکنه به بد و بیراه گفتن به کد ویژن ...

برعکسش هم هست ... !

 

بنظرتون حرف کی رو گوش بدیم ؟

ببینید ما هر کاری رو که با کدویژن میتونیم انجام بدیم،بدون کم و کاستی و هیچ مشکلی میتونیم با بسکام هم انجام بدیم (یا هر کامپایلر دیگری !).

پس در امر برنامه نویسی فرقی نداره از چه کامپایلری استفاده میکنیم !

 

بنده با کلی سند و دلیل و مدرک اثبات کردم که زبان C بهتره یادگیریش !

و کامپایلری هم که انتخاب کردیم Codevision شد.(علتش هم اینه که اگه پس فردا مشکلی تو برنامه نویسی براتون پیش اومد،لا اقل 4 تا هستند که بتونند مشکلتون رو حل کنند!،چون تو ایران کدویژن رو با زبان سی میشناسند و خیلی ها با این کامپایلر کار میکنند.)

 

پس در انتخاب کامپایلر،خودتون تحقیق کنید.

 

فلان دکتر گفته کامپایلر X خوبه و فلان پروفسور گفته کامپایلر Y خوبه و خالم میگه Z بده و ... (گرچه که خوب و بد هیچ معنایی اینجا نمیده !)

این حرفا مال اونروزا بود که مردم راه تحقیقشون،فقط حرف این و اون بود !

نا سلامتی شما میخواین پیشرفت کنید و ...!

 

در پایان بگم که :

انتخاب یک کامپایلر به معنای رد کردن دیگر کامپایلرها نیست.

اینجوری نیست که چون ما کدویژن رو انتخاب کردیم،دیگه بسکام بد شد !!! (آدم های حرفه ای دیدم که پروژه ملی با بسکام مینویسند !)

 

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

سوالات و نظرهای خود را با ما در میان بگذارید.

 پیروز باشید.


منبع : www.noise.blog.ir

نظرات  (۱)

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

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی