# برنامه نویسی میکروکنترلر (MicroController) ها و MicroProcessor ها > برنامه نویسی سیستم های Embeded > مباحث عمومی کار با سخت افزارها، سنسورها و لوازم جانبی >  شروع برنامه نویسی میکروکنترلرها ...

## Mahmood_M

با سلام ...
بنده قصد دارم برنامه نویسی میکروکنترلرها و ساخت ربات رو شروع کنم ...
از دوستانی که تجربه دارن خواهش میکنم بگن که چه زبان برنامه نویسی و چه IDE ای برای این کار مناسبه ...
به اطلاعات زیر نیاز دارم :
1. نام زبان برنامه نویسی
2. IDE مناسب برای برنامه نویسی
3. معرفی منبعی برای آشنایی با MicroController ها ( از نظر سخت افزاری ) و آشنایی با مدارها
4. نحوه تهیه سخت افزارهای مورد نیاز ( نام سخت افزار و مشخصات دیگر ... )
5. نکته مهمی که دنبالش هستم اینه که دوستان توضیح مختصری در مورد کلیات کار به صورت عام ( که درکش ساده باشه ) بدن ...

نکته آخر : بنده با زبانهای دلفی و ++C آشنایی دارم ، فکر میکنم زبان ++C زبان مناسبی باشه ، درسته ؟

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

موفق و پیروز باشید ...

----------


## farzadsw

0. نوع میکروی پیشنهادی برای شروع : avr
1 . cیا basic 
2.  codevision برای c و bascom برای basic
3. سوالتو اینجا بپرس: https://barnamenevis.org/showthread.php?t=125197
4. یدونه برد بورد(bread board) یدونه میکروی atmega 32  یه پروگرمر (در مورد پروگرمر قبلا بحث شده)  یه آداپتور (7 ولت به بالا) یدونه lm7805 ، سیم ، مقاومت 470 اهم و led
بقیه لوازم برای شروع کار ضروری نیست مثل سنسور اینفرارد ، lcd کاراکتری ، موتور و...
5. میکرو کنترلر یه کامپیوتر خیلی کوچیک (و البته نه چندان سریع) هست که با امکانات جانبی که داخلش هست میتونه وسایل دیگه رو کنترل کنه. مثلا اطلاعات سنسور رو بخونه و دور موتور رو تنظیم کنه و... .

----------


## farid_mov2006

> 0. نوع میکروی پیشنهادی برای شروع : avr
> 1 . cیا basic 
> 2.  codevision برای c و bascom برای basic
> 3. سوالتو اینجا بپرس: https://barnamenevis.org/showthread.php?t=125197
> 4. یدونه برد بورد(bread board) یدونه میکروی atmega 32  یه پروگرمر (در مورد پروگرمر قبلا بحث شده)  یه آداپتور (7 ولت به بالا) یدونه lm7805 ، سیم ، مقاومت 470 اهم و led
> بقیه لوازم برای شروع کار ضروری نیست مثل سنسور اینفرارد ، lcd کاراکتری ، موتور و...
> 5. میکرو کنترلر یه کامپیوتر خیلی کوچیک (و البته نه چندان سریع) هست که با امکانات جانبی که داخلش هست میتونه وسایل دیگه رو کنترل کنه. مثلا اطلاعات سنسور رو بخونه و دور موتور رو تنظیم کنه و... .


با سی پلاس پلاس نمیشه این کارو انجام داد{حتما باید سی یا پاسکال باشه}

----------


## .:KeihanCPU:.

با توجه به اینکه شما با خانواده C برنامه نویسی کردید بهتره برنامه CodeVision رو دانلود کنید
و با زبانی بسیار نزدیک به C به برنامه نویسی میکرو کنترلرها بپردازید

----------


## blue_lotus

سلام

من در ضمینه میکرو فعالیتی نداشتم تا حالا، اما یکی از آشنایان که امسال از طریق دانشگاه پیام نور شرکت کرده بود. با C++‎ کد میزدن و سیستم عاملی که باهاش می نوشتن اوبونتو بود که ظاهرا بهترین گزینه برای فعالیت و کد نویسی اینطور کارها لینوکس هست که با gcc کد هاتون رو کمپایل کنید.

----------


## farzadsw

> سلام
> 
> من در ضمینه میکرو فعالیتی نداشتم تا حالا، اما یکی از آشنایان که امسال از طریق دانشگاه پیام نور شرکت کرده بود. با C++‎‎ کد میزدن و سیستم عاملی که باهاش می نوشتن اوبونتو بود که ظاهرا بهترین گزینه برای فعالیت و کد نویسی اینطور کارها لینوکس هست که با gcc کد هاتون رو کمپایل کنید.


با C++‎ نمیشه برای میکرو های 8 بیتی برنامه نوشت (کامپایلرش نیست) ولی برای میکرو های 32بیتی arm میشه.
gcc یکی از بهترین کامپایلر هایی هست که باهاش میشه برای تقریبا تمامی میکرو ها برنامه نوشت(با کانفیگ های مختلفش) . اما این کامپایلر ها رو برای ویندوز هم پورت کردند مثل winavr , winarm . 
برای کارهای پیشرفته مثل نصب سیتم عامل روی میکرو بهترین (و شاید تنها) راه استفاده از لینوکس هست(حالا هر توزیعی)

----------


## elecom1

با سلام
میکروکنترلر یک تراشه می باشد که تجهیزات لازم جهت پردازش اطلاعات دیجیتال را یکجا در خود دارا می باشد. (cpu ، ram, romو...) در میکروکنترلر موجود می باشد.
کاری که شما باید انجام بدهی این است ، که اطلاعات دیجیتال(صفر و یک) را از طریق پورت ورودی به میکروکنترلر بدهی و با برنامه نویسی که از قبل انجام دادی ، میکرو کار بخصوصی را بر روی اطلاعات ورودی انجام می دهد. به همین دلیل برای دادن اطلاعات ورودی به وسیله ورودی از قبیل (صفحه کلید،اطلاعات خروجی تجهیزات دیجیتالی دیگر و ...) نیاز پیدا خواهی کرد. برای مثال در خصوص ربات اطلاعات دیجیتالی خروجی سنسور ها را می توانی به عنوان ورودی به میکرو بدهی ، و میکرو این اطلاعات را پردازش کند. با پردازش اطلاعات ورودی ، می توانی خروجی مورد نظر خودت را داشته باشی. موارد ذیل می تواند جز تجهیزات خروجی متصل به پورت خروجی میکرو باشد.
- چراغ led
- صفحه نمایش lcd
- موتور
-...

اینکه میکرو اطلاعات ورودی را بخواند و پردازش کند و خروجی را راه اندازی کند ، باید آنرا برنامه ریزی بفرمایید.
کارخانه سازنده هر میکرو ، روشی را برای برنامه ریزی آن میکرو ارائه می کند. برای مثال شما می توانید با زبان اسمبلی در یک محیط نرم افزاری میکرو را برنامه ریزی program کنی.

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

----------


## kernel

با winavr میتونی ++C هم برای AVR کامپایل کنی ، البته این کار به ندرت انجام میشه . چون مسائلی که به صورت objective تحلیل می شه رو سخت افزارهای با کارایی بالاتر انجام می دن ( ARM - AVR32 - AMD )  چون معمولا به حافظه Ram بیشتری برای اجرا نیاز دارند .
به دوستان خوبم پیشنهاد می کنم به دنیای AMD  Embedded هم سری بزنن .  تو iranopen 2009  با تیم dribbler از آلمان که صحبت کرده بودم میکروهای AMD رو خیلی به بقیه ترجیح میدادند. 

در ضمن intel هم با تکنولوژی جدید 45nm  به جمع حرفه ای embedded پیوسته.

----------


## mike

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

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

 با تشکر

----------


## farzadsw

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


برای برنامه نویسی میکرو همینقدر اطلاعات کافیه . ولی برای ساخت یه وسیله به اطلاعات دیگه هم (بسته به اون وسیله) نیاز دارید .مثلا اگه الان بهتون بگن یه برنامه بنویس تا هر وقت دما بیشتر از 25 درجه شد ، فن رو روشن کنه و هر 5 دقیقه یه بار هم اندازه دما رو به کامپیوتر بفرسته ، میتونید این کار رو انجام بدید ولی برای سخت افزارش باید با نحوه استفاده از سنسور و ارتباط با کامپیوتر آشنا باشید.
خلاصه اینکه یه پروژه برای خودتون تعریف کنید و مواردی که لازم دارید رو مطالعه کنید.

----------


## ***niloofar

با سلام به همگی

اگه کسی اطلاعات دقیق راجع به اینکه میشه میکرو  
    avrرو با سي شارپ برنامه نویسی کرد یا نه بهم بگه واقعا سر در گم هستم
اگه میشه یه مقدار توضیح بدین 
منتظر جواب هستم

----------


## farzadsw

اگه منظورتون فریم ورک .net و C#‎.net هست ، این پلتفورم :
1. روی سیستم عامل ویندوز (و لینوکس) قابل اجراست 
2. در نتیجه میکرو ی مورد نظر باید قابلیت اجرای ویندوز (CE ) رو داشته باشه 
3. درنتیجه میکروی مورد نظر باید دارای باس حافظه خارجی برای اتصال حافظه با حجم نسبتا بالا(64 مگ و بیشتر) و واحد MMU رو داشته باشه
4. در نتیجه در بین میکرو های موجود در ایران ، ARM9 و ARM Cortex-A8 باید استفاده بشه . این میکرو ها رو باید بر روی یک برد نسبتا پیچیده استفاده کرد 
5. درنتیجه یا باید یک برد آماده خریداری کرد ( به مبلغ 200/000 تومان و با بشتر) و با اینکه *چند نفر* با تجربه در رشته الکترونیک و طراحی مدار ، براش بورد طراحی کنن و بعد سفارش بدن و نهایتا مونتاژ کنن.

بنابر این همونطور که تو شماره های 4و5 گفتم ، با میکرو کنترلر های ARM9 و جدیدتر از اون میشه این کار رو کرد . 
برای میکرو کنترلر های ساده تر مثل AVR ، نحوه برنامه نویسی به این صورت هست که یک برنامه در محیط یک کامپایلر نوشته میشه ، بعداز کامپایل و بدست آمدن فایل .hex ، این فایل بر روی حافظه میکرو کنترلر پروگرم میشه . یعنی از سیستم عاملها و به طبع اون از فریم ورک خاصی نمیتونید استفاده کنید . نزدیک ترین چیزی که به C#‎ هست و میتونید برای avr از اوناستفاده کنید، همون زبان C هست !

----------


## soroushp

من می خوام یک برنامه ساده برای اندازه گیری دمای محیط بنویسم ، به طور کلی چه وسائلی برای این کار لازمه ؟avrcodevision رو دارم اما چون تاحالا اینطوری برنامه نویسی نکردم نیاز به راهنمایی دارم ! ممنون میشم راهنمایی کنید .

----------


## farzadsw

من توصیه می کنم یک کتاب آموزش AVR در محیط کدویژن ( کاغذی یا الکترونیکی) تهیه کنید ، اینطوری هم نحوه برنامه نویسی رو یاد می گیرید و هم مثال دماسنج تو اکثر این کتابها (با توضیح کامل) عنوان شده.

----------


## soroushp

میشه یک کتاب جامع معرفی کنید - من گرایشم نرم افزاره

----------


## farzadsw

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

----------


## ++Hichkas

بسم رب المهدی(عج)
نرم افزار پرتئوس رو هم نصب کن هرچی کد نوشتی با کدویژن باهاش شبیه سازی کن تا ببینی در محیط واقعی هم کار میده یا نه
در مورد کتاب هم یه سری به www.Techno-Electro.com بزن حتما یه PDF پیدا می کنی من ازاش برای آز ریز یه کتاب AVR پیدا کردم ولی نتونستم براتون آپلودش کنم

----------

