به نظر می رسد که شما عضو سایت نیستید و یا وارد نشده اید, امکان ارسال مطلب و دانلود فایل و همچنین دسترسی به انجمن هایی که فقط اعضا ثبت نام شده امکان دسترسی به آن را دارند از امتیازات ثبت نام در سایت میباشد.

لطفا از طریق این لینک برای ثبت نام اقدام نمایید.

    
You have (1) Unread PM; Click The Icon To Read It You have a new PM
جدیدترین موضوعات انجمنها


بازگشت   متارو > ربات ها > تعقيب خط > مقالات آموزشی

درخواست برنامه ربات مسیریاب با استفاده از adc

مقالات آموزشی

پاسخ
 
LinkBack ابزارهای موضوع نحوه نمایش
قدیمی 01-19-2011, 10:16 AM   #1
پیش فرض درخواست برنامه ربات مسیریاب با استفاده از adc

سلام دوستان
من یک ربات مسیریاب ساختم اما در برنامه نویسی مشکل دارم
8تا پایه پورت adc به 8 تا گیرنده سنسورهام وصله و حالا فقط موندم چطور از سنسورها بخونم و کجا تو چه متغیری بریزم و بعد چطور از اطلاعات استفاده کنم
ممنون میشم یک سمپل از برنامه ربات مسیرباب با زبان کدویژن قرار بدید
alime آنلاین نیست.   پاسخ با نقل قول
قدیمی 02-05-2011, 02:44 AM   #2
Thumbs down پاسخ : درخواست برنامه ربات مسیریاب با استفاده از adc

معمولا از اين چيزا(برنامه آماده ي ربات) گير نمياد تو نت!!!
بهتره كه خودتون مقداري مطالعه بفرماييد 4تا مقاله بخونيد...ان شالله موفق ميشيد
__________________
مانده است تا برسیم و به رعشه بیفتد همه چیز.

ویرایش توسط Artmis : 02-05-2011 در ساعت 06:45 PM.
Artmis آنلاین نیست.   پاسخ با نقل قول
قدیمی 02-05-2011, 03:30 AM   #3
Exclamation پاسخ : درخواست برنامه ربات مسیریاب با استفاده از adc

باید اول مداری رو که برای خواندن سنسورها استفاده کردین و نحوه ی چیدمانش رو قرار بدین روی سایت (به صورت ضمیمه) تا در صورت صحیح بودن مدارها کمکتون کنیم. در غیر این صورت کاری از ما ساخته نیست.
__________________
_-_-_-_-_-_-_-_-_-_-_-_-_-
ذکات علم ...
---------------------------------
موفق باشین ...
Kooshan آنلاین نیست.   پاسخ با نقل قول
قدیمی 02-05-2011, 01:08 PM   #4
پیش فرض پاسخ : درخواست برنامه ربات مسیریاب با استفاده از adc

بنده با تمامی قسمت ها آشنایی دارم و جندین ربات هم ساخته ام اما با opAmp
این بار 8 تا سنسور رو مدارشو کاملا صحیح متصل کردم و از گیرنده ها به پورت adc پورت A آی سی Atmega32 متصل کردم و با درایور و اتصال و برنامه نویسی که چطور درایور کار میکنه آشنایی دارم اما نمیدونم چه برنامه ای بنویسم که از سنسورها از پورت adc بخونم و تو چه متغیری و چطور بریزم نحوه تشخیص سنسورهای چپ از راست چطوره باشه البته درخواست بنده یک هم شامل الگوریتم هم میشه
ممنون میشم راهنمایی کنید.
alime آنلاین نیست.   پاسخ با نقل قول
قدیمی 02-05-2011, 06:54 PM   #5
Cool پاسخ : درخواست برنامه ربات مسیریاب با استفاده از adc

ميدونيم كه اي دي سي مبدل آنالوگ به ديجيتال هستش...پس ولتاژ جواب سنسور ها كه از كلكتور مياد دقيقا از اين پورت وارد ميكرو ميشه...شما ميتونيد مثلا ولتاژ 2 به پايين رو مشكي قرار بديد و 2تا 5 رو سفيد...
پس ابتدا 2متغيري رو براي هركدوم ار ولتاژ هايي كه از هر سنسور ميكرو ميگيره رو تعيين كنيد...ولتاژ ها رو داخل متغيير ها بريزيد...هر كدوم رو مقايسه كنيد كه از 2بالاتره يا پايين تر...نتيجه رو ميشه همون 0 و 1 در نظر بگيريد و توي اون يكي متغيير قرار بديد..
سپس از همون برنامه ها كه واسه همون چندين رباتتون نوشتين استفاده كنيد و ادامشو بنويسيد
همين!


من خودم تازه كار با adc رو ياد گرفتم و الآن فقط هرچي يادم بود رو بكار بردم...اگر اشتباه گفتم ممنون ميشم اصلاح كنيد و منو ببخشيد
__________________
مانده است تا برسیم و به رعشه بیفتد همه چیز.
Artmis آنلاین نیست.   پاسخ با نقل قول
قدیمی 02-05-2011, 08:27 PM   #6
پیش فرض پاسخ : درخواست برنامه ربات مسیریاب با استفاده از adc

اگه بیشتر مشکلتون خوندن adc هاست،تو قسمت ‍‍‍پروزه های عملی با AVR این کار به وفور در هر مدلی انجام شده.
اما گه مشکل الگوریتم دارید تو بخش" آرایش سنسور برای ربات..."هست!
siavash esteki آنلاین نیست.   پاسخ با نقل قول
اين کاربران از siavash esteki به خاطر این مطلب مفید تشکر کرده اند
قدیمی 02-06-2011, 01:28 AM   #7
Exclamation پاسخ : درخواست برنامه ربات مسیریاب با استفاده از adc

میگم مدارتو بزار چون می خوام 4 نفر دیگه هم یه چیزی یاد بگیرن!
بستگی داره که مدارتون چه جوری باشه ولتاژ بیشتر برای رنگ روشن رخ میده یا برای رنگ تیره
مدارتون رو بزارین رو سایت تا خیلی حرفه ای تحلیلش کنیم همه یه چیزی یاد بگیرن اگه هم نزاشتی خودم میزارم به زودی...
__________________
_-_-_-_-_-_-_-_-_-_-_-_-_-
ذکات علم ...
---------------------------------
موفق باشین ...
Kooshan آنلاین نیست.   پاسخ با نقل قول
2 کاربر از Kooshan به خاطر این مطلب مفید تشکر کرده اند
قدیمی 02-18-2011, 10:01 PM   #8
Red face پاسخ : درخواست برنامه ربات مسیریاب با استفاده از adc

نوشته اصلی توسط Kooshan نمایش پست ها
میگم مدارتو بزار چون می خوام 4 نفر دیگه هم یه چیزی یاد بگیرن!
بستگی داره که مدارتون چه جوری باشه ولتاژ بیشتر برای رنگ روشن رخ میده یا برای رنگ تیره
مدارتون رو بزارین رو سایت تا خیلی حرفه ای تحلیلش کنیم همه یه چیزی یاد بگیرن اگه هم نزاشتی خودم میزارم به زودی...
به زودی...؟
دیر شد.بذارین تا ماهم یاد بگیریم!
siavash esteki آنلاین نیست.   پاسخ با نقل قول
قدیمی 02-18-2011, 11:59 PM   #9
پیش فرض پاسخ : درخواست برنامه ربات مسیریاب با استفاده از adc

دوست عزیز حالا چرا ترسیدی.
بابا اینجا اکثرا (تا اونجایی که من می شناسمشون)همه لاقل 10 مدل ربات تعقیب خط ساختن.
خداوند انشاله این مشکل ما ایرانی ها را حل کند و ما را به OPENSOURCE ی نزدیک تر...
حالا من برات یه برنامه میزارم با امکان کالیبره ی خود کار(البته کاملا الکییه و فقط واسه این که شما به نحوه ی استفادش آشنا بشی،اینکه گفتم الکی نه اینکه کار نکنه ها...خودم تستش کردم،تو مسیری که خودشو قطع نکنه یا انحراف زیاد نداشته باشه(مسیر ساده) رباتو راه میندازه وبا تلو تلو خوردن میبره جلو...)


کد:
/*****************************************************
Company : metaro
Chip type               : ATmega16
Program type            : Application
AVR Core Clock frequency: 1.000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*****************************************************/

#include <mega16.h>
#include <delay.h>
#define ADC_VREF_TYPE 0x60

// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}

eeprom int cmpf,cmpr,cmpl;
int blackf,blackr,blackl;
int whitef,whiter,whitel;
unsigned char pwm;

void main(void)
{

// 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=0x3C;
DDRC=0x00;

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

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


// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC Auto Trigger Source: None
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x83;
//Calibration......
//dar in robot 2 ta LED roye payehaye D.0 , D1 vojod darad.
if(!PIND.2)
    {
    PORTD.0=1;
    while(PIND.3);
    delay_ms(10);
    blackf=read_adc(0);
    blackr=read_adc(1);
    blackl=read_adc(3);
    while(!PIND.3);
    delay_ms(100);
    PORTD.0=0;
    PORTD.1=1;
    while(PIND.3);
    delay_ms(10);
    whitef=read_adc(0);
    whiter=read_adc(1);
    whitel=read_adc(3);
    while(!PIND.3);
    delay_ms(100);
    PORTD.1=0;
    delay_ms(500);
    PORTD.0=1;
    PORTD.1=1;
    delay_ms(500);
    PORTD.0=0;
    PORTD.1=0;
    delay_ms(500);
    PORTD.0=1;
    PORTD.1=1;
    delay_ms(500);
    PORTD.0=0;
    PORTD.1=0;
    cmpf=(blackf+whitef)/2;
    cmpr=(blackr+whiter)/2;
    cmpl=(blackl+whitel)/2;

    }
while (1)
      {

      if(read_adc(1)>cmpr)
        {
        left();
        while(read_adc(0)>cmpf);
        }
      else  if(read_adc(3)>cmpl)
           {
        right();
        while(read_adc(0)>cmpf);
        }
      else
        {
        front();
        };



      };
}
__________________
معشوق من چنان لطیف است که خود را به بودن نیالوده است...
emami آنلاین نیست.   پاسخ با نقل قول
4 کاربر از emami به خاطر این مطلب مفید تشکر کرده اند
قدیمی 08-10-2011, 11:42 PM   #10
پیش فرض پاسخ : درخواست برنامه ربات مسیریاب با استفاده از adc

میشه توضیح بدید قسمت اصلی برنامه یعنی همون وایل چه کاری میکنه
secretman آنلاین نیست.   پاسخ با نقل قول
پاسخ

علاقه مندی ها (Bookmarks)

برچسب ها
adc, از, استفاده, برنامه, درخواست, ربات, مسیریاب

« موضوع قبلی | موضوع بعدی »
ابزارهای موضوع
نحوه نمایش

انتخاب سریع یک انجمن


اکنون ساعت 01:14 PM برپایه ساعت جهانی (GMT - گرینویچ) +4.5 می باشد.


تمامي حقوق مادي و معنوي اين مجموعه متعلق به شركت ربات گستران آپادانا مي‌باشد Persian Skin By : Vbskin