ايران ويج

نسخه‌ی کامل: بچه های KUT
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام.

این تاپیک برای بچه های رباتیک KUT درست شده که با خودم کلاس دارن .
تمامی فایل ها، جزوه ی کلاسی، پروژه ها و تمرین ها و... در این قسمت قرار میگیره.
هر سوالی هم که دارین همینجا میتونید بپرسین.

مباحث دوره:
1.آموزش کدنویسی میکروکنترلر AVR در CodeVision
2.آموزش شبیه سازی مدار در Proteus
3.آموزش طراحی مدار در Altium
4.پیاده سازی پروژه های عملی با برد پیشرفته آموزشی
5.آموزش و ساخت ربات مسیریاب


برنامه های مورد نیاز (دانلود و آموزش نصب):
1.دانلود کامپایلر کدویژن Codevision AVR
-لینک موقت دانلود کدویژن (کلیک کنید)
پسورد: soft98.ir
توجه: لینک اصلی بزودی اضافه میشه*

2.آموزش نصب و کرک کدویژن[attachment=14146]

3.دانلود شبیه ساز پروتئوس Proteus
-لینک موقت دانلود پروتئوس (کلیک کنید)
پسورد : www.p30download.com
توجه: لینک اصلی بزودی اضافه میشه*

4.آموزش نصب و کرک پروتئوس[attachment=14147]

5.دانلود نرم افزار آلتیوم Altium Designer
6.آموزش نصب و کرک آلتیوم دیزاینر
7.کتابخانه کامل قطعات ( 25 هزار لایبرری ) آلتیوم Altium Designer Library
8.کتابخانه های کاربردی آلتیوم برای دوره خودم ( مخصوص بچه های KUT )
9.دانلود نرم افزار فریتزینگ Fritzing
10.دانلود کامپایلر کِیل Keil
11.آموزش نصب و کرک کامپایلر کِیل Keil
12.دانلود کامپایلر اتمل استودیو Atmel Studio
13.دانلود کامپایلر بسکام Bascom AVR
14.دانلود کامپایلر MPlab


جزوه های کلاسی: ( در حال ویرایش )
*توجه: این جزوه ها صرفا نُت برداری های کلاسی میباشد، به علت محدودیت های موجود امکان ارائه جزوه کامل از دوره نمی باشد.
ریرا درکلاس، اسلاید های گوناگونی ارائه می شود که نمی توان تمام مطالب و موارد را به صورت کتبی ثبت نمود **
**در ضمن از خانم همدانی و خانم غضروبی بابت نوشتن جزوه ها تشکر میکنم.

0.جزوه دوره گذشته ( 2 اردیبهشت 97 تا 25 مهر 97 )

1.جلسه اول 13 آبان 97[attachment=14149]
2.جلسه دوم 20 آبان 97[attachment=14150]
3.جلسه سوم 22 آبان 97[attachment=14151]
4.جلسه چهارم 23 آبان 97[attachment=14152]
5.جلسه پنجم 27 آبان 97[attachment=14153]
6.جلسه ششم 29 آبان 97[attachment=14154]
7.جلسه هفتم 6 آذر 97[attachment=14155]
8.جلسه هشتم 13 آذر 97[attachment=14171]
9.جلسه نهم 18 آذر 97
10.جلسه دهم 25 آذر 97
11.جلسه یازدهم 27 آذر 97
* جلسه اول تا جلسه یازدهم (13 آبان تا 27 آذر)
12.

پروژه های کلاسی:
0.پروژه شماره صفر: حداقل ها برای راه اندازی میکروکنترلر
1.پروژه شماره یک: چراغ چشمک زن ( 1 بیتی )
2.پروژه شماره دو: چراغ چشمک زن ( 2 بیتی )
3.پروژه شماره سه: رقص نور 8 بیتی
4.پروژه شماره چهار: کلید و ال ای دی
5.

منابع:
1.دیتاشیت میکروکنترلر ATMega32 ( منبع اصلی )[attachment=14127]

2.آموزش سریع میکروکنترلر AVR ( منبع مفید )[attachment=14130]

3.آموزش کار با میکروکنترلر های AVR به همراه آموزش زیان C تحت نرم افزار CodeVision ( منبع مفید )[attachment=14128]

4.جزوه AVR آریامکاترونیک پاسارگاد ( منبع مفید )[attachment=14129]

5.کتاب 53 پروژه کاربردی با میکروکنترلر AVR ( منبع مفید )[attachment=14131]

6.آموزش نرم افزار پروتئوس ( منبع مفید )[attachment=14133]

7.خلاصه فارسی دیتاشیت میکروکنترلر ATMega32 ( منبع کمکی )[attachment=14132]

8.آموزش آلتیوم Altium Designer ( منبع کمکی )[attachment=14134][attachment=14135][attachment=14136]


موفق باشید
پروژه شماره صفر: حداقل های لازم برای روشن شدن میکروکنترلر

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

کد این پروژه:

کد:
#include <mega32.h>

void main(void)
{
   while(1)
   {
       
   }
}

شبیه ساز:
[attachment=14116]

سورس کدویژن و فایل شبیه ساز پروتئوس پیوست شد.
موفق باشید
سلام.
این فایل های pdf مربوط به دوستان دوره قبلی هستش که رمز رو سر کلاس بهشون دادم.
محتوایت این پوشه PDF شماتیک قسمت اصلی و سنسور های ربات مسیریاب هستش که سر کلاس توضیح دادم و گفتن چیکار کنید.
موفق باشید.
پروژه شماره یک: چراغ چشمک زن ( 1 بیتی )

در این پروژه یک عدد LED متصل به پایه PA0 را هر یک ثانیه خاموش و روشن میکنیم ( با فرکانس 0.5 هرتز ).

سورس کدویژن:

کد:
#include <mega32.h>
#include <delay.h>

void main(void)
{
DDRA=0x01;
while(1)
{
   PORTA=0x01;  
   delay_ms(1000);      
   PORTA=0x00;
   delay_ms(1000);
}
}

شبیه ساز:
[attachment=14123]

موفق باشید
پروژه شماره دو: چراغ چشمک زن ( 2 بیتی )

این پروژه هم بسادگی پروژه قبلی هستش فقط در اینجا 2تا ال ای دی داریم که به پین های PA0 , PA1 متصل شده اند.

در مرحله اول ال ای دی متصل به PA0 روشن و  ال ای دی متصل به PA1 خاموش هستش و 1 ثانیه همین حالت حفظ میشه.
در مرحله دوم ال ای دی متصل به PA0 خاموش و  ال ای دی متصل به PA1 روشن میشه و 1 ثانیه این حالت حفظ میشه.
و این چرخه بی نهایت بار تکرار میشه.


سورس کدویژن:

کد:
#include <mega32.h>
#include <delay.h>

void main(void)
{
   DDRA=0x03;
   while(1)
   {
       PORTA=0x01;
       delay_ms(1000);  
       PORTA=0x02;
       delay_ms(1000);
   }
}



شبیه ساز:
[attachment=14126]


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

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

برنامه اول ( ورژن 1 ) پروژه شماره 3:
این برنامه در هر مرحله فقط 1 ال ای دی روشن میشه و بقیه ال ای دی ها خاموش هستند.

سورس کدویژن:
کد:
#include <mega32.h>
#include <delay.h>

void main(void)
{
DDRA=0xff;
while(1)
{
   PORTA=0x01;
   delay_ms(500);  
   PORTA=0x02;
   delay_ms(500);
   PORTA=0x04;
   delay_ms(500);
   PORTA=0x08;
   delay_ms(500);
   PORTA=0x10;
   delay_ms(500);
   PORTA=0x20;
   delay_ms(500);
   PORTA=0x40;
   delay_ms(500);
   PORTA=0x80;
   delay_ms(500);
}                              
}


تصویر شبیه ساز:
[attachment=14145]

دانلود ورژن 1 پروژه شماره 3:[attachment=14144]

برنامه اول ( ورژن 2 ) پروژه شماره 3:
این برنامه همون برنامه قبلی هستش با این تفاوت که از دستور define، حلقه شمارشی for و عملگر شیف به چپ برای خلاصه نویسی و ساده سازی برنامه استفاده شده.
در این برنامه یک ثابت به اسم arshavir برای تاخیر در نظر گرفته شده که با تغییر مقدار اون، سرعت برنامه (سرعت خاموش و روشن شدن ال ای دی ها) تغییر میکنه.

سورس کدویژن:
کد:
#include <mega32.h>
#include <delay.h>

#define arshavir 50

char i;

void main(void)
{
DDRA=0xff;
while(1)
{  
   for(i=0;i<=7;i++)
   {
       PORTA=1<<i;
       delay_ms(arshavir);
   }    
}                              
}

تصویر شبیه ساز:
[attachment=14145]

دانلود ورژن 2 پروژه شماره 3:[attachment=14148]
پروژه شماره چهار: کلید و ال ای دی

در این پروژه به کمک یه کلید ( Push Button ) میخواهیم یک LED را روشن خاموش کنیم.

در این پروژه نحوه خواندن یک پین به صورت ورودی ( از لحاظ 0 و 1 بودن پین) یا به عبارتی فشرده شدن یا رها شدن کلید را یاد میگیریم و همینطور با مفاهیم Pull-down و Pull-up آشنا میشویم.

برنامه اول ( ورژن 1 ) پروژه شماره 4:
در ورژن اول برنامه با فشرده شدن کلید، ال ای دی روشن میشود و با رها شدن کلید ال ای دی خاموش میگردد.

سورس کدویژن:
کد:
#include <mega32.h>

void main(void)
{
DDRA=0x01;
DDRD=0x00;
while (1)
   {
       if(PIND.0==1)
       {
           PORTA.0=1;    
       }            
       else
       {
           PORTA.0=0;
       }
   }
}


تصویر شبیه ساز:
[attachment=14169]

دانلود ورژن 1 پروژه شماره 4: [attachment=14170]



ورژن 2 پروژه شماره 4:

در ورژن دوم برنامه با فشرده شدن کلید، ال ای دی 5 ثانیه روشن میماند و بعد از 5 ثانیه خاموش میشود.
در این برنامه از یک متغیر به اسم Hojat استفاده شده است که توضیحات آن که چرا از متغیر برای این امر استفاده شده است در جزوه کلاس با توضیحات و راه کار های مختلف بحث شده است.

سورس کدویژن:
کد:
#include <mega32.h>
#include <delay.h>

#define LED PORTA.0
#define SW PIND.0

char Hojat;

void main(void)
{
DDRA=0x01;
DDRD=0x00;
while (1)
   {
       if(SW==1)
       {
           LED=1;
           if(Hojat == 0)Hojat=1;
       }            
       else
       {        
           if(Hojat==1)
           {
               delay_ms(5000);      
               LED=0;        
               Hojat=0;
           }
       }
   }
}

تصویر شبیه ساز:
[attachment=14169]

دانلود ورژن 2 پروژه شماره 4: [attachment=14172]


ورژن 3 پروژه شماره 4:

ورژن سوم درواقع از لحاظ عملکرد تفاوتی با ورژن اول ندارد، اما آن فرمی که در ورژن شماره 1 برای بررسی کردن وضعیت کلید استفاده شده است:

کد:
if(PIND.0==1)
}
.
.
.
{

فقط مخصوص به کامپایلر کدویژن بوده و در کامپایلر های دگیر اعتباری ندارد.

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

( توضیحات بیشتر در جزوه کلاسی موجود میباشد).

کد:
 if(PIND && 0x01 == 0x01)
}
.
.
.
{

سورس کدویژن:
کد:
#include <mega32.h>
#include <delay.h>

#define LED PORTA.0
#define SW PIND.0

void main(void)
{
DDRA=0x01;
DDRD=0x00;
while (1)
   {
       if(PIND && 0x01 == 0x01)
       {
           LED=1;  
       }            
       else
       {  
           LED=0;
       }
   }
}

تصویر شبیه ساز:
[attachment=14169]

دانلود ورژن 3 پروژه شماره 4: [attachment=14173]