|
به نظر می رسد که شما عضو سایت نیستید و یا وارد نشده اید, امکان ارسال مطلب و دانلود فایل و همچنین دسترسی به انجمن هایی که فقط اعضا ثبت نام شده امکان دسترسی به آن را دارند از امتیازات ثبت نام در سایت میباشد. لطفا از طریق این لینک برای ثبت نام اقدام نمایید. |
|
| جدیدترین موضوعات انجمنها | |
|
|
||||||||
![]() |
|
|
LinkBack | ابزارهای موضوع | نحوه نمایش |
|
|
#1 |
|
كاربر سايت
![]() |
سلام دوستان
من یک ربات مسیریاب ساختم اما در برنامه نویسی مشکل دارم 8تا پایه پورت adc به 8 تا گیرنده سنسورهام وصله و حالا فقط موندم چطور از سنسورها بخونم و کجا تو چه متغیری بریزم و بعد چطور از اطلاعات استفاده کنم ممنون میشم یک سمپل از برنامه ربات مسیرباب با زبان کدویژن قرار بدید |
|
|
|
|
|
#2 |
|
مدیر بخش
![]() |
معمولا از اين چيزا(برنامه آماده ي ربات) گير نمياد تو نت!!!
بهتره كه خودتون مقداري مطالعه بفرماييد 4تا مقاله بخونيد...ان شالله موفق ميشيد
__________________
مانده است تا برسیم و به رعشه بیفتد همه چیز. ![]() ویرایش توسط Artmis : 02-05-2011 در ساعت 06:45 PM. |
|
|
|
|
|
#3 | |||||||||
|
مدير ارشد
![]() تاریخ عضویت: Dec 2009 محل سکونت: اصفهان نوشتهها: 186
تشكرها: 75
265 بار تشكر شده در 112 پست
درجه: 12 [ ![]() ![]() ]سابقه: 0 / 292 ![]() |
باید اول مداری رو که برای خواندن سنسورها استفاده کردین و نحوه ی چیدمانش رو قرار بدین روی سایت (به صورت ضمیمه) تا در صورت صحیح بودن مدارها کمکتون کنیم. در غیر این صورت کاری از ما ساخته نیست.
__________________
_-_-_-_-_-_-_-_-_-_-_-_-_- ذکات علم ... --------------------------------- موفق باشین ... |
|||||||||
|
|
|
|
|
#4 |
|
كاربر سايت
![]() |
بنده با تمامی قسمت ها آشنایی دارم و جندین ربات هم ساخته ام اما با opAmp
این بار 8 تا سنسور رو مدارشو کاملا صحیح متصل کردم و از گیرنده ها به پورت adc پورت A آی سی Atmega32 متصل کردم و با درایور و اتصال و برنامه نویسی که چطور درایور کار میکنه آشنایی دارم اما نمیدونم چه برنامه ای بنویسم که از سنسورها از پورت adc بخونم و تو چه متغیری و چطور بریزم نحوه تشخیص سنسورهای چپ از راست چطوره باشه البته درخواست بنده یک هم شامل الگوریتم هم میشه ممنون میشم راهنمایی کنید. |
|
|
|
|
|
#5 |
|
مدیر بخش
![]() |
ميدونيم كه اي دي سي مبدل آنالوگ به ديجيتال هستش...پس ولتاژ جواب سنسور ها كه از كلكتور مياد دقيقا از اين پورت وارد ميكرو ميشه...شما ميتونيد مثلا ولتاژ 2 به پايين رو مشكي قرار بديد و 2تا 5 رو سفيد...
پس ابتدا 2متغيري رو براي هركدوم ار ولتاژ هايي كه از هر سنسور ميكرو ميگيره رو تعيين كنيد...ولتاژ ها رو داخل متغيير ها بريزيد...هر كدوم رو مقايسه كنيد كه از 2بالاتره يا پايين تر...نتيجه رو ميشه همون 0 و 1 در نظر بگيريد و توي اون يكي متغيير قرار بديد.. سپس از همون برنامه ها كه واسه همون چندين رباتتون نوشتين استفاده كنيد و ادامشو بنويسيد همين! من خودم تازه كار با adc رو ياد گرفتم و الآن فقط هرچي يادم بود رو بكار بردم...اگر اشتباه گفتم ممنون ميشم اصلاح كنيد و منو ببخشيد
__________________
مانده است تا برسیم و به رعشه بیفتد همه چیز. ![]() |
|
|
|
|
|
#6 | |||||||||
|
كاربر فعال
![]() تاریخ عضویت: Apr 2010 محل سکونت: Isfahan نوشتهها: 102
تشكرها: 91
54 بار تشكر شده در 27 پست
درجه: 9 [ ]سابقه: 0 / 202 ![]() |
اگه بیشتر مشکلتون خوندن adc هاست،تو قسمت پروزه های عملی با AVR این کار به وفور در هر مدلی انجام شده.
اما گه مشکل الگوریتم دارید تو بخش" آرایش سنسور برای ربات..."هست! |
|||||||||
|
|
|
| اين کاربران از siavash esteki به خاطر این مطلب مفید تشکر کرده اند |
|
|
#7 | |||||||||
|
مدير ارشد
![]() تاریخ عضویت: Dec 2009 محل سکونت: اصفهان نوشتهها: 186
تشكرها: 75
265 بار تشكر شده در 112 پست
درجه: 12 [ ![]() ![]() ]سابقه: 0 / 292 ![]() |
میگم مدارتو بزار چون می خوام 4 نفر دیگه هم یه چیزی یاد بگیرن!
بستگی داره که مدارتون چه جوری باشه ولتاژ بیشتر برای رنگ روشن رخ میده یا برای رنگ تیره مدارتون رو بزارین رو سایت تا خیلی حرفه ای تحلیلش کنیم همه یه چیزی یاد بگیرن اگه هم نزاشتی خودم میزارم به زودی...
__________________
_-_-_-_-_-_-_-_-_-_-_-_-_- ذکات علم ... --------------------------------- موفق باشین ... |
|||||||||
|
|
|
| 2 کاربر از Kooshan به خاطر این مطلب مفید تشکر کرده اند |
|
|
#8 | |||||||||
|
كاربر فعال
![]() تاریخ عضویت: Apr 2010 محل سکونت: Isfahan نوشتهها: 102
تشكرها: 91
54 بار تشكر شده در 27 پست
درجه: 9 [ ]سابقه: 0 / 202 ![]() |
نوشته اصلی توسط Kooshan
به زودی...؟
دیر شد.بذارین تا ماهم یاد بگیریم! |
|||||||||
|
|
|
|
|
#9 |
|
مدير ارشد
![]() |
دوست عزیز حالا چرا ترسیدی.
بابا اینجا اکثرا (تا اونجایی که من می شناسمشون)همه لاقل 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();
};
};
}
__________________
معشوق من چنان لطیف است که خود را به بودن نیالوده است...
|
|
|
|
| 4 کاربر از emami به خاطر این مطلب مفید تشکر کرده اند |
|
|
#10 | |||||||||
|
عضو جديد
![]() تاریخ عضویت: Jul 2011 نوشتهها: 10
تشكرها: 2
1 بار تشكر شده در 1 پست
درجه: 2 [ ]سابقه: 0 / 25 ![]() |
میشه توضیح بدید قسمت اصلی برنامه یعنی همون وایل چه کاری میکنه
|
|||||||||
|
|
|
![]() |
| علاقه مندی ها (Bookmarks) |
| برچسب ها |
| adc, از, استفاده, برنامه, درخواست, ربات, مسیریاب |
| ابزارهای موضوع | |
| نحوه نمایش | |
|