PDA

View Full Version : شروع برنامه نویسی میکروکنترلرها ...



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

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

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

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

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

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

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

.:KeihanCPU:.
سه شنبه 21 مهر 1388, 20:41 عصر
با توجه به اینکه شما با خانواده C برنامه نویسی کردید بهتره برنامه CodeVision رو دانلود کنید
و با زبانی بسیار نزدیک به C به برنامه نویسی میکرو کنترلرها بپردازید

blue_lotus
سه شنبه 21 مهر 1388, 21:54 عصر
سلام

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

farzadsw
چهارشنبه 22 مهر 1388, 15:30 عصر
سلام

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

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

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

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

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

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

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

mike
جمعه 28 خرداد 1389, 12:35 عصر
سلام
راستش من سوالی که دارم اینه که برایه برنامه نویسی میکرو تا چه حدی باید با سخت افزار و الکترونیک آشنا بود؟

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

با تشکر

farzadsw
جمعه 28 خرداد 1389, 17:11 عصر
سلام
راستش من سوالی که دارم اینه که برایه برنامه نویسی میکرو تا چه حدی باید با سخت افزار و الکترونیک آشنا بود؟

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

با تشکر

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

***niloofar
دوشنبه 14 تیر 1389, 03:40 صبح
با سلام به همگی


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

farzadsw
دوشنبه 14 تیر 1389, 16:01 عصر
اگه منظورتون فریم ورک .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
جمعه 26 خرداد 1391, 20:11 عصر
من می خوام یک برنامه ساده برای اندازه گیری دمای محیط بنویسم ، به طور کلی چه وسائلی برای این کار لازمه ؟avrcodevision رو دارم اما چون تاحالا اینطوری برنامه نویسی نکردم نیاز به راهنمایی دارم ! ممنون میشم راهنمایی کنید .

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

soroushp
شنبه 27 خرداد 1391, 12:59 عصر
میشه یک کتاب جامع معرفی کنید - من گرایشم نرم افزاره

farzadsw
دوشنبه 29 خرداد 1391, 16:46 عصر
من خودم کتابی در این زمینه استفاده نکردم که بخوام معرفی کنم ولی کتاب آقای سپاسیار (http://barnamenevis.org/showthread.php?166278-%DA%86%D9%86%D8%AF-%DA%A9%D8%AA%D8%A7%D8%A8-%D9%85%DB%8C%DA%A9%D8%B1%D9%88-AVR-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C)مثال دماسنج رو داره.

++Hichkas
سه شنبه 06 تیر 1391, 01:03 صبح
بسم رب المهدی(عج)
نرم افزار پرتئوس رو هم نصب کن هرچی کد نوشتی با کدویژن باهاش شبیه سازی کن تا ببینی در محیط واقعی هم کار میده یا نه
در مورد کتاب هم یه سری به www.Techno-Electro.com (http://www.Techno-Electro.com) بزن حتما یه PDF پیدا می کنی من ازاش برای آز ریز یه کتاب AVR پیدا کردم ولی نتونستم براتون آپلودش کنم