نمایش نتایج 1 تا 29 از 29

نام تاپیک: کمک برای برنامه نویسی ربات مسیریاب

  1. #1

    کمک برای برنامه نویسی ربات مسیریاب

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

  2. #2
    http://robotic.farsitools.com/

    www.iranled.com

    اگر عضو سایت www.cloob.com هستید در آنجا یک کلوب با نام کلوب رباتیک وجود دارد که شاید دوستان بیشتر راهنماییتان نمایند. اگر عضو نیستید برای پیام بدهید که دعوتتان کنم (البته اگر مایلید)

  3. #3
    من یه برنامه نویس میکرو یم در مسابقات روبوتیک بابل 2 دوره قبل مقام 4 روم
    دارم اگه می خای اطلاعات بده در مورد تعداد سنسورها و ... تا برنامه رو برات بفرستم

  4. #4
    کاربر تازه وارد آواتار mhmmdshirazi
    تاریخ عضویت
    مهر 1387
    محل زندگی
    tehran
    سن
    30
    پست
    80

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    انقدر خودتونو اذیت نکنید من یه برنامه که با codevision به زبان c نوشته شده می زارم سبزوار سوم شد.
    #include <mega16.h>
    #include <delay.h>
    // Alphanumeric LCD Module functions
    #asm
    .equ __lcd_port=0x15 ;PORTC
    #endasm
    #include <lcd.h>

    // Declare your global variables here
    bit bk,j;
    void motor(float p1,float p2)
    {
    if(p1>=0)OCR1AL=(int)p1;else OCR1AL=-(int)p1;
    if(p2>=0)OCR1BL=(int)p2;else OCR1BL=-(int)p2;
    if(p1>0)
    {
    PORTD.0=1;
    PORTD.1=0;
    }else
    {
    PORTD.0=0;
    PORTD.1=1;
    }
    if(p2>0)
    {
    PORTD.2=1;
    PORTD.3=0;
    }else
    {
    PORTD.2=0;
    PORTD.3=1;
    }
    }
    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port A initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P
    PORTA=0xFF;
    DDRA=0x00;

    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P
    PORTB=0xFF;
    DDRB=0x00;

    // Port C initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTC=0x00;
    DDRC=0x00;

    // Port D initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTD=0x00;
    DDRD=0xFF;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=FFh
    // OC0 output: Disconnected
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: 31.250 kHz
    // Mode: Fast PWM top=00FFh
    // OC1A output: Non-Inv.
    // OC1B output: Non-Inv.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer 1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0xA1;
    TCCR1B=0x0C;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer 2 Stopped
    // Mode: Normal top=FFh
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    MCUCR=0x00;
    MCUCSR=0x00;

    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;

    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;

    // LCD module initialization
    lcd_init(16);

    while (1)
    {
    if(PINA.6==1) j=1.275; else j=1;
    lcd_gotoxy(0,0);
    lcd_putchar(PINB.4+'0');
    lcd_putchar(PINB.3+'0');
    lcd_putchar(PINB.2+'0');
    lcd_putchar(PINB.1+'0');
    lcd_putchar(PINB.0+'0');
    lcd_putchar(PINA.5+'0');
    lcd_putchar(PINA.4+'0');
    lcd_putchar(PINA.3+'0');
    lcd_putchar(PINA.2+'0');
    lcd_putchar(PINA.1+'0');
    lcd_putchar(PINA.0+'0');
    lcd_gotoxy(11,0);
    if(bk)lcd_putsf("Black");else lcd_putsf("White");
    if((PINA.5==1&&PINA.4+PINA.3+PINA.2+PINA.1+PINA.0> =4&&PINB.4+PINB.3+PINB.2+PINB.1+PINB.0==0&&!bk)||
    (PINA.5==0&&PINA.4+PINA.3+PINA.2+PINA.1+PINA.0<=1& &PINB.4+PINB.3+PINB.2+PINB.1+PINB.0==5&&bk))
    {
    motor(200*j,-200*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 60 ");
    delay_ms(300);
    continue;
    }
    if((PINA.5==1&&PINA.4+PINA.3+PINA.2+PINA.1+PINA.0= =0&&PINB.4+PINB.3+PINB.2+PINB.1+PINB.0>=4&&!bk)||
    (PINA.5==0&&PINA.4+PINA.3+PINA.2+PINA.1+PINA.0==5& &PINB.4+PINB.3+PINB.2+PINB.1+PINB.0<=1&&bk))
    {
    motor(-200*j,200*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 60 ");
    delay_ms(300);
    continue;
    }
    if((PINA.5==1&&!bk)||(PINA.5==0&&bk))//MOSTAGHIM
    {
    motor(200*j,200*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Straight");
    delay_ms(10);
    continue;
    }
    if(PINA.4+PINA.3+PINA.2+PINA.1+PINA.0>=2&&PINB.4+P INB.3+PINB.2+PINB.1+PINB.0>=2)bk=1;else bk=0;
    if((PINB.4==1&&!bk)||(PINB.4==0&&bk))
    {
    motor(200*j,-200*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 5 ");
    }
    if((PINB.3==1&&!bk)||(PINB.3==0&&bk))
    {
    motor(200*j,-80*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 4 ");
    }
    if((PINB.2==1&&!bk)||(PINB.2==0&&bk))
    {
    motor(200*j,-30*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 3 ");
    }
    if((PINB.1==1&&!bk)||(PINB.1==0&&bk))
    {
    motor(200*j,0*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 2 ");
    }
    if((PINB.0==1&&!bk)||(PINB.0==0&&bk))
    {
    motor(200*j,30*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 1 ");
    }
    if((PINA.0==1&&!bk)||(PINB.0==0&&bk))
    {
    motor(200*j,-200*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 5 ");
    }
    if((PINA.1==1&&!bk)||(PINB.1==0&&bk))
    {
    motor(200*j,-80*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 4 ");
    }
    if((PINA.2==1&&!bk)||(PINB.2==0&&bk))
    {
    motor(200*j,-30*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 3 ");
    }
    if((PINB.3==1&&!bk)||(PINB.3==0&&bk))
    {
    motor(200*j,0*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 2 ");
    }
    if((PINB.4==1&&!bk)||(PINB.4==0&&bk))
    {
    motor(200*j,30*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 1 ");
    }
    };
    }

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

  5. #5
    کاربر جدید آواتار Big bang
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    اصفهان
    پست
    1

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    سلام ميخواستم ببينم امكانش هست چیدمان سنسورهایتان را به من بگویيد
    آخرین ویرایش به وسیله whitehat : دوشنبه 31 فروردین 1388 در 17:22 عصر دلیل: لطفا فارسی بنویسید

  6. #6
    کاربر جدید
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران-جمهوری
    پست
    2

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    دارم پروژه تحویل میدم وقتم هم تموم شده با 5 سنسور و دو موتور ربات مسیریاب دارم میسازم
    همه چیز ردیفه فقط:

    دستور خواندن سنسور از پایه های میکرو از پورت سی ( PC) از 0 تا 4 رو میخوام .
    تو کد ویژن هم نوشتم

  7. #7

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    همون برنامه ای گذاشتن این کار رو میکنه ولی با 10 تا سنسور (5تا پورت Aو 5تا پورت B) . این قسمتش برای خوندن سنسور ها و تصمیم گیری برای حرکته:




    if((PINA.5==1&&PINA.4+PINA.3+PINA.2+PINA.1+PINA.0> =4&&PINB.4+PINB.3+PINB.2+PINB.1+PINB.0==0&&!bk)||
    (PINA.5==0&&PINA.4+PINA.3+PINA.2+PINA.1+PINA.0<=1& &PINB.4+PINB.3+PINB.2+PINB.1+PINB.0==5&&bk))
    {
    motor(200*j,-200*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 60 ");
    delay_ms(300);
    continue;
    }
    if((PINA.5==1&&PINA.4+PINA.3+PINA.2+PINA.1+PINA.0= =0&&PINB.4+PINB.3+PINB.2+PINB.1+PINB.0>=4&&!bk)||
    (PINA.5==0&&PINA.4+PINA.3+PINA.2+PINA.1+PINA.0==5& &PINB.4+PINB.3+PINB.2+PINB.1+PINB.0<=1&&bk))
    {
    motor(-200*j,200*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 60 ");
    delay_ms(300);
    continue;
    }
    if((PINA.5==1&&!bk)||(PINA.5==0&&bk))//MOSTAGHIM
    {
    motor(200*j,200*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Straight");
    delay_ms(10);
    continue;
    }
    if(PINA.4+PINA.3+PINA.2+PINA.1+PINA.0>=2&&PINB.4+P INB.3+PINB.2+PINB.1+PINB.0>=2)bk=1;else bk=0;
    if((PINB.4==1&&!bk)||(PINB.4==0&&bk))
    {
    motor(200*j,-200*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 5 ");
    }
    if((PINB.3==1&&!bk)||(PINB.3==0&&bk))
    {
    motor(200*j,-80*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 4 ");
    }
    if((PINB.2==1&&!bk)||(PINB.2==0&&bk))
    {
    motor(200*j,-30*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 3 ");
    }
    if((PINB.1==1&&!bk)||(PINB.1==0&&bk))
    {
    motor(200*j,0*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 2 ");
    }
    if((PINB.0==1&&!bk)||(PINB.0==0&&bk))
    {
    motor(200*j,30*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 1 ");
    }
    if((PINA.0==1&&!bk)||(PINB.0==0&&bk))
    {
    motor(200*j,-200*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 5 ");
    }
    if((PINA.1==1&&!bk)||(PINB.1==0&&bk))
    {
    motor(200*j,-80*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 4 ");
    }
    if((PINA.2==1&&!bk)||(PINB.2==0&&bk))
    {
    motor(200*j,-30*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 3 ");
    }
    if((PINB.3==1&&!bk)||(PINB.3==0&&bk))
    {
    motor(200*j,0*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 2 ");
    }
    if((PINB.4==1&&!bk)||(PINB.4==0&&bk))
    {
    motor(200*j,30*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 1 ");
    }






    مثلا PINC.4 پایه پنجم از پورت c رو میخونه (0 یا 1)

  8. #8

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    با سلام
    اگر امکان داره نحوی قرار گیری سنسور ها رو هم قرار بدهید

    و در مورد if(PINA.4+PINA.3+PINA.2+PINA.1+PINA.0>=2&&PINB.4+P INB.3+PINB.2+PINB.1+PINB.0>=2)bk=1;else bk=0;


    و همچنین OCR1AL=-(int)p1;


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

  9. #9
    کاربر دائمی آواتار khafan_bat
    تاریخ عضویت
    دی 1387
    محل زندگی
    منظومه ی شمسی-کره زمین-قاره ی آسیا-ایران-گیلان-لاهیجان
    سن
    34
    پست
    111

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    مهندس همینطوری که نمیشه . . .

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

    با توجه به شکل فیزیک و مشخصات الکترونیکی و مکانیکی روباتت چه الگوریتمی میخوای پیاده کنی ؟ سرعتی ؟ دقتی ؟ قدرتی ؟ ( که اینها هم تابع نوع قرار گیری سنسور ها و موتور ها هستند )

    از همه مهمتر . . . با چه زبانی و در چه محیطی میخوای برنامه بنویسی ؟؟؟

    بگو تا در برنامه نویسی کمکت کنم.

  10. #10

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    سلام

    من برنامه را خوندم تقریبا همشو متوجه شدم الا مقدار دادهی رجیستر هاint) p1 و جالب بود ببینم برای این برنامه که شما نوشتید نحوی قرارگیری سنسور ها دایره ای یا شکل دیگری هست .

    ضمن این که برنامه اگر porta.6 رو هم نمی دونم کجا و چی هست که سرعت رو کوم و زیاد می کنه


    من یک 6-7 ماهی بیشتر نیست که روباتیک کار می کنم و مین یاب اتو ماتیک کار کردم و فعلا روی مسیر یاب ها مطالعه می کنم ممنون می شوم در مورد این سوال ها کمکم کنی .....



    با تشکر

  11. #11

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

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




    دوست عزيز سلام. من يه برنامه براي ربات 12 سنسوره مي خوام كه به صورت زير سنسورا قرار گرفتن.لطفا كمكم كنين
    ستاره ها سنسورا هستن.
    *--------------*----------------*
    ---------------*-----------------
    ------------*-----*--------------
    ---------*----------*------------
    ------*----------------*---------
    ----*--------------------*-------

  12. #12

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    دوستان من یک ربات مسیریاب ساختم بامیکروکنترل mega8l وبادوسنسورفرستنده ودو سنسورگیرنده حالا برای برنامه اش ماندم هرکاری می کنم راه نمی افته کلیه مدارالکتریکی چندبارچک کردم همش درسته اگرکسی میتونه برای برنامه اش کمکم کنه

  13. #13

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

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


    http://www.up.egyup.com/images/42333840064606464668.jpg

  14. #14

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    سنسورها را با چه واسطه ای به میکرو وصل کردی؟ adc یا op amp؟

  15. #15
    کاربر دائمی آواتار HjSoft
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    مشهد
    پست
    1,160

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

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

  16. #16

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    سلام دوست عزیز من تو سایت کلوپ ثبت نام کردم ولی کلوپ رباتیکو پیدا نکردم ! میشه راهنمایی کنید .

  17. #17

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    سلام دوست عزیز من یک تازه کارم و تا حالا این دومین رباتم بوده که می سازم که یک ربات 8 سنسوره مسیریاب است که من در برنامه نویسی اش کمی(خیلی بیشتر از کمی) مشکل دارم و خواستم ازشما فرد باتجربه کمک بگیرم اگه می شه (خواهشا ترو خدا )برایم برنامه اش را بنوسید .

    پیام مدیر بخش : در خواست های خصوصی رو تنها از طریق پیام خصوصی پیگیری کنید .
    آخرین ویرایش به وسیله farzadsw : جمعه 09 اردیبهشت 1390 در 12:52 عصر

  18. #18

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    با سلام خدمت دوست عزیز
    من یک ربات مسیر یاب با 15 سنسور مانند شکل درست کرده ام و مسیر مورد نظر هم در عکس هست اگه میشه در نوشتن برنامه ی آن به من کمک کنید (دو موتور با درایور lm298اتصال به پورتd و سنسورها را با opamp به پورت c,bوصل کرده ام ) atmega32
    خیلی ممنون می شم اگه کمکم کنید email:amd.coms@gmail.com
    Name:  untitled.JPG
Views: 5599
Size:  15.4 کیلوبایت

  19. #19

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    نقل قول نوشته شده توسط mhmmdshirazi مشاهده تاپیک
    انقدر خودتونو اذیت نکنید من یه برنامه که با codevision به زبان c نوشته شده می زارم سبزوار سوم شد.
    #include <mega16.h>
    #include <delay.h>
    // Alphanumeric LCD Module functions
    #asm
    .equ __lcd_port=0x15 ;PORTC
    #endasm
    #include <lcd.h>

    // Declare your global variables here
    bit bk,j;
    void motor(float p1,float p2)
    {
    if(p1>=0)OCR1AL=(int)p1;else OCR1AL=-(int)p1;
    if(p2>=0)OCR1BL=(int)p2;else OCR1BL=-(int)p2;
    if(p1>0)
    {
    PORTD.0=1;
    PORTD.1=0;
    }else
    {
    PORTD.0=0;
    PORTD.1=1;
    }
    if(p2>0)
    {
    PORTD.2=1;
    PORTD.3=0;
    }else
    {
    PORTD.2=0;
    PORTD.3=1;
    }
    }
    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port A initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P
    PORTA=0xFF;
    DDRA=0x00;

    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P
    PORTB=0xFF;
    DDRB=0x00;

    // Port C initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTC=0x00;
    DDRC=0x00;

    // Port D initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTD=0x00;
    DDRD=0xFF;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=FFh
    // OC0 output: Disconnected
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: 31.250 kHz
    // Mode: Fast PWM top=00FFh
    // OC1A output: Non-Inv.
    // OC1B output: Non-Inv.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer 1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0xA1;
    TCCR1B=0x0C;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer 2 Stopped
    // Mode: Normal top=FFh
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    MCUCR=0x00;
    MCUCSR=0x00;

    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;

    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;

    // LCD module initialization
    lcd_init(16);

    while (1)
    {
    if(PINA.6==1) j=1.275; else j=1;
    lcd_gotoxy(0,0);
    lcd_putchar(PINB.4+'0');
    lcd_putchar(PINB.3+'0');
    lcd_putchar(PINB.2+'0');
    lcd_putchar(PINB.1+'0');
    lcd_putchar(PINB.0+'0');
    lcd_putchar(PINA.5+'0');
    lcd_putchar(PINA.4+'0');
    lcd_putchar(PINA.3+'0');
    lcd_putchar(PINA.2+'0');
    lcd_putchar(PINA.1+'0');
    lcd_putchar(PINA.0+'0');
    lcd_gotoxy(11,0);
    if(bk)lcd_putsf("Black");else lcd_putsf("White");
    if((PINA.5==1&&PINA.4+PINA.3+PINA.2+PINA.1+PINA.0> =4&&PINB.4+PINB.3+PINB.2+PINB.1+PINB.0==0&&!bk)||
    (PINA.5==0&&PINA.4+PINA.3+PINA.2+PINA.1+PINA.0<=1& &PINB.4+PINB.3+PINB.2+PINB.1+PINB.0==5&&bk))
    {
    motor(200*j,-200*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 60 ");
    delay_ms(300);
    continue;
    }
    if((PINA.5==1&&PINA.4+PINA.3+PINA.2+PINA.1+PINA.0= =0&&PINB.4+PINB.3+PINB.2+PINB.1+PINB.0>=4&&!bk)||
    (PINA.5==0&&PINA.4+PINA.3+PINA.2+PINA.1+PINA.0==5& &PINB.4+PINB.3+PINB.2+PINB.1+PINB.0<=1&&bk))
    {
    motor(-200*j,200*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 60 ");
    delay_ms(300);
    continue;
    }
    if((PINA.5==1&&!bk)||(PINA.5==0&&bk))//MOSTAGHIM
    {
    motor(200*j,200*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Straight");
    delay_ms(10);
    continue;
    }
    if(PINA.4+PINA.3+PINA.2+PINA.1+PINA.0>=2&&PINB.4+P INB.3+PINB.2+PINB.1+PINB.0>=2)bk=1;else bk=0;
    if((PINB.4==1&&!bk)||(PINB.4==0&&bk))
    {
    motor(200*j,-200*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 5 ");
    }
    if((PINB.3==1&&!bk)||(PINB.3==0&&bk))
    {
    motor(200*j,-80*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 4 ");
    }
    if((PINB.2==1&&!bk)||(PINB.2==0&&bk))
    {
    motor(200*j,-30*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 3 ");
    }
    if((PINB.1==1&&!bk)||(PINB.1==0&&bk))
    {
    motor(200*j,0*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 2 ");
    }
    if((PINB.0==1&&!bk)||(PINB.0==0&&bk))
    {
    motor(200*j,30*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Left 1 ");
    }
    if((PINA.0==1&&!bk)||(PINB.0==0&&bk))
    {
    motor(200*j,-200*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 5 ");
    }
    if((PINA.1==1&&!bk)||(PINB.1==0&&bk))
    {
    motor(200*j,-80*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 4 ");
    }
    if((PINA.2==1&&!bk)||(PINB.2==0&&bk))
    {
    motor(200*j,-30*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 3 ");
    }
    if((PINB.3==1&&!bk)||(PINB.3==0&&bk))
    {
    motor(200*j,0*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 2 ");
    }
    if((PINB.4==1&&!bk)||(PINB.4==0&&bk))
    {
    motor(200*j,30*j);
    lcd_gotoxy(0,1);
    lcd_putsf("Right 1 ");
    }
    };
    }

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

  20. جمعه 01 اردیبهشت 1391, 18:28 عصر

    دلیل
    فاقد محتوای فنی؛ لطفا قوانین فعالیت در سایت را مطالعه نمایید.

  21. #20

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    سلام. یه سوال:
    تو بعضی از آموزش ها میگن اگه از 2 موتور 6 ولت استفاده می کنیم باید به L298 , ولتاژ 12 ولت بدیم تو بعضی ا میگن نه 6 ولت کافیه. بالاخره کدوم درسته؟ :(

  22. #21

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

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

    سلام خسته نباشی!ربات تعقیب خط با 8 سنسور cny70با دو موتور.ممنون

  23. #22

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    من ربات مسیر یاب با 5 سنسور نوشتم مدارش هم با پروتئوس شبیه سازی کردم

    یکی از دوستان که کد برنامه ربات مسیر یاب رو در پست های اولیه گزاشت کد های مربوط به lcd توش بود

    حالا یه سوال: برای چی باید برای این ربات ها lcd قرار داد؟؟؟؟

  24. #23

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    مهمترین مساله الگوریتم. بهترین الگوریتمی که من می شناسم PID cotroller هستش.

    http://www.pololu.com/docs/0J21/all#1
    http://www.societyofrobots.com/membe...xport/html/350

  25. #24

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    سلام بخشید میشه برنام ای که برای amd.coms فرستادین برای منم بفرستین لطفا .خیلی خیلی هم ممنون
    x,lona@yahoo.com

  26. #25

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    ببخشید ایمیلم x.lona@yaho.com است ممنون

  27. #26

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

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

    من ی برنامه برای یک ربات مسیر یاب 5 سنسوره با استفاده از کدویزن که با استفاده روش pwm برای موتور ها سرعت رو کاهش بده و lcd هم نداره....
    به طور کلی ربات من دارای ی چیدمانی بصورت عکس هایی که برات میفرستم هست....




    همونطور که در عکس ها دیده میشه من از پورت A میکرو بعنوان ورودی اطلاعات از سنسورها و از پورتD بعنوان خروجی میکرو به درایو وصل کردم ...


    برنامه میخوام بصورتی باشه که وقتی سنسور وسط رو خط بود دو موتور بچرخند
    اگر سنسور راست یا چپ سنسور وسطی روی خط آمد موتور سمت چپ یا راست با سرعت کمتری موتور مربوطه به گردش در آید و اگر انتهایی ترین سنسور ها بر روی خط امد اون موتوری که باید بچرخه با سرعت بیشتری بچرخد تا ربات سریع به مسیر برگردد (منظورم اینکه با PWM این کار انجام بشه ) در کل سرعت موتور ها در هر حالت قرار گیری به طور معمول ب یک نسبت کاهش داشته باشه....


    اگر منظورم رو متوجه نشدین بزار ساده تر بگم وقتی سنسور وسط روی خط بود مثلا موتور ربات 2 دور بر ثانیه حرکت کنه وقتی یک از سنسورهایکناری روی خط رفت موتور مربوطه 1.5دور بر ثانیه بچرخه و اگر انتهایی ترین سنسور روی خط رفت موتور 2.5 دور بر ثانیه بچرخه( این یک مثال بودا) .....

    خواهش میکنم یکی برنامه اش رو باتوضیح برام بزاره......(پاس شدن درس این ترمم بشدت بهش بستگی داره )



    با تشکر از وقتی که میزارین .....

    Name:  17072015489.jpg
Views: 6080
Size:  91.9 کیلوبایتName:  17072015488.jpg
Views: 5951
Size:  88.7 کیلوبایت

  28. #27

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

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

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

    sadegh_1990@mailfa.org

  29. #28

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    سلام ببخشید میشه به من کمک کنین و بگین به زبان cو بسکام برای مسیر های به شکل زیر چطوری باید دستور بدم و برنامشو بنویسم
    http://uupload.ir/files/xlb_untitled.png

  30. #29

    نقل قول: کمک برای برنامه نویسی ربات مسیریاب

    سلام روز بخیر
    من میخوام یه پروژه ی AVR با بسکام درس کنم میشه راهنماییم کنین

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •