ممنون من توی هر دو زبان کار کردم . تو جفتشون به قول شما یک پایه رو میگیرم ! مثلا :
Bascom :
getadc
و توی کدویژن میگیم :
read_adc
یعنی هر دو مثل همند . پس با توجه به اینکه شما میگی تست کردی ، پس حتما جواب میده . لطف کردی مرتضی جان .
ممنون من توی هر دو زبان کار کردم . تو جفتشون به قول شما یک پایه رو میگیرم ! مثلا :
Bascom :
getadc
و توی کدویژن میگیم :
read_adc
یعنی هر دو مثل همند . پس با توجه به اینکه شما میگی تست کردی ، پس حتما جواب میده . لطف کردی مرتضی جان .
ببخشيد تو پي سي بي چه جوري بايد پيش بيني كنم ؟ من كه مدار و باياسشو ندارم ؟ به كجا وصل كنم اين سنسور رو و... ؟!
برنامه هم واسم بزاريد
سلام با مراما . خب اگه نميگيد عجله داري و صبر داشته باش و ... برنامم رو ميزارم . فقط نخنديد و بياين يواش يواش كاملش كنيم . هر كي بخنده ميشم
مدارشم كه فك ميكنم قبلا برتون گذاشتم . البته حالت هاش رو بيشتر ميكنمکد:$regfile = "M16DEF.DAT" : $crystal = 8000000 Config Portb = Input : Config Portd = Output Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 64 Dim A As Word , B As Word Config Adc = Single , Prescaler = Auto A = 0 : B = 0 Set Pind.1 Reset Pind.0 Set Pind.2 Reset Pind.3 Main : If B = 8 Goto Mostaghim If B = 4 Goto Rast If B= 16 Goto Chap If B= 28 Goto Mostaghim If B = 107 Goto Mostaghim If B = 119 Goto Mostaghim If B = 62 Goto Mostaghim If B= 24 Goto Mostaghim If B = 12 Goto Mostaghim If B = 112 Goto Chap If B = 7 Goto Rast Mostaghim : Set Pind.1 Reset Pind.0 Set Pind.2 Reset Pind.3 A = 1024 : B = 1024 : Waitms 100 Pwm1a = A : Pwm1b = B Goto Main Chap : Toggle Portd.0 Toggle Portd.1 Goto Main Rast : Toggle Portd.2 Toggle Portd.3 Goto Main End
فقط مونده توضيحات شما رو اون قسمتي كه خودتون ميدونيد و اشكالات اين برنامه
ویرایش توسط Elec_l0vE : 30-03-2010 در ساعت 23:08
ما كه نفهميديم شما بالاخره تو ليگ مسيرياب ساده شركت مي كني يا مسيرياب پيشرفته(سنسور سنجش شيب در مسير ياب پيشرفته مورد نياز است )
منظور من اين بود كه يه سوكتي مثلاً IDC 10 براش طراحي كني كه به يكي از پورت هاي آزاد ميكروت وصل بشه تا اگه خواستي يه موقع رو روباتت پيادش كني با مشكل زيادي مواجه نشي :D
در مورد سنسور شيب سنج به لينك زير سر يزن:
http://roboeq.com/modules.php?op=mod...iewlink&cid=67
سادگی نهایت کمال است
یه مدتی میشه که نیستم... ولی به زودی بر می گردم...
ولي تو همين مسير ياب ساده هم شيب وجود داشت . واسه همين ميخام برم سنسور جيوه رو فردا از باازار تهيه كنم و انو به مدارم اضافه كنم . فقط در مورد شماتيك و نحوه اتصالش توضيح ميدين كه من به مدارم اضاف كنم . يكي اگه ميشه توضيح بده
يه سوال ديگه : ميخام واسش تشخيص مانع هم پيش بيني كنم . چه جور ميتونم اونو از روي مانع 1 سانتي كه مسير از روش رد شده عبور بدم .اگه شاخ غول شكوندن هست كه بي خيالش بشم .بد بيراه بهم نگيد
تو برنامت که جایی مقادیر a و b رو مقدار ندادی که بعد اومدی مقایسشون کردی . بعد هم من نفهمیدم این چه جور مقایسه ای ، یکم در مورد برنامت بیشتر توضیح بده . در ضمن بعد از اینکه ربات روی خط مستقیم قرار گرفت شما pwm رو حد نهایت می زارید . اما جایی نمی بینم که به حالت عادی برگرده !
اره درست ميگي خب اولش همون حداكثر سرعت بزارم ؟
منظورتون از حالت عادي چقدر بايد باشه ؟
ايا در هنگام دور زدن pwm بايد تغيير كنه ؟ اگه برنامه پيشنهاديتون روب زاريد ممنون ميشم
نه ، رباتت رو بسازه و سرعت های مختلف رو بررسی کن . ببین سرعت نرمالت چیه ؟ ، بعد این سرعت نرمال در همه حالت ها به غیر از سنسور وسط ارجعیت داره . یعنی وقتی سنسور وسط روی خط میاد سرعت زیاد تر میشه و به محضی که از روی خط خارج شد سرعت کم میشه تا ربات مسیر رو راحت تر بره . در هنگام دور زدن هم دقیقا همین حالت پیش میاد و خود به خود سرعت پایین میاد ، چون سنسور وسط روی خط نیست .
بله در مورد سنسور جيوه و باياسش هم توضيح ميديد . طرز كار و مدارش
اخه من شماتيكم تموم شده ميخام يه سنسور جيوه هم واسه تشخيص شيب به مدار اضافه كنم
اگه منظورت منم که من باهاش کار نکردم . اما فکر کنم خودت سنسور رو بتونی درست کنی . یعنی مثلا یک دماسنج جیوه ای بگیری جیوه هاشو توی یک لوله خودکار بزاری و دو تا سیم از دو سمت بزاری هر موقع که ربات شیب شد . می تونی بفهمی . خیلی آسونه !
در ضمن بگم من سنسور جیوه ندیدم ، این فقط یک ایده است و عملیه !
ویرایش توسط hjsoft : 31-03-2010 در ساعت 16:02
1-الان دو سنسور پايين سنسور وسط رو دادم به adc ميكرو .و دو تا سيم ديگه هم دادم به lm 324 براي تشخيص مسير ... حالا مراحل انجام كار براي تشخيص رنگ سبز يا هر رنگ ديگه اي چي هست ؟
پایه های avcc یا aref رو هم وصل کن . بعد باز بگو تا توضیح بدم .
پایه های AVcc و AGND و Aref باید طبق دیتا شیت وصل بشن! حتما برای وصل کردن صحیح این پایه ها به دیتا شیت مراجعه کن.
یه خبر خوش!؟ من دارم برنامه ی حرکت مستقیم رو برات می نویسم. تا شب انشالله بختت باز میشه.
.
با سلام
در عمليات ADC تو ميكروكنترلرهاي AVR به طور كلي 3 تا ولتاژ مرجع وجود داره كه شما موقع پيكربندي يكيشو بايد انتخاب كني :
1- ولتاژ روي پايه Aref به عنوان ولتاژ رجع انتخاب شود
2- ولتاژ پايه AVcc به عنوان ولتاژ مرجع انتخاب مي شود
3- ولتاژ مرجع ثابت داخلي به ميزان 2.56V انتخاب مي شود
پركاربردترين حالت حالت 1 ميباشد
البته اين بيت ها تحت عنوان REFS0:1 تو رجيستر كنترلي ADMUX موجودن كه بايد طبق ديتا شيت عددهي كني
البته يه روش آسون تر استفاده از ويزارد كامپايلرت هست .
سادگی نهایت کمال است
یه مدتی میشه که نیستم... ولی به زودی بر می گردم...
با تشکر از دوست بسیار خوبم جناب genius باید بگم که در کامپایلر بسکام کاربر هیچ وقت با رجیسترها و مقادیر موجود در اونها درگیر نیست! و نحوه ی پیکره بندی adc در بسکام بسیار ساده هست و از این بابت مهناز به مشکلی بر نمی خوره.
بنظر منم استفاده از روش اول بهتره.
.
راستی یادتون نره که برای pwm باید کریستال بزارید !!! دوستان باید بگن برای یک سرعت خوب و مناسب چه کریستالی باید گذاشت . من خودم پیشنهاد دارم که از 8 مگ استفاده کنید ...
من برنامه ی ابتدایی رو نوشتم از همتون خواهش می کنم که برنامه و فایل شبیه سازی رو دانلود کنید و اگه مشکلی هست بگید.
برنامه درست کار می کنه ولی نمی دونم چرا وقتی pwm رو کم می کنم در rpm موتورها تاثیری نداره! در حالیکه در اسیلوسکوپ تاثیر داره!
هم سورس برنامه هم فایل هگز و هم فایل پروتیوس در پوشه ای که دانلود می کنید وجود داره.
لطفا دانلود کنید
ویرایش توسط morteza_rk : 01-04-2010 در ساعت 21:07
.
من avcc و avref رو به +5 وصل كردم براي استفاده از adc .....حالا بگيد كه براي اضافه كردن اون دو سنسور در مد adc چه كنم ؟
اقا مرتضي تغيير pwm همين بود كه ميگفتيد ؟ يعني در دور زدن مقادر رجيستر رو كم و زياد كنم ؟
اين قسمت از برنامه رو هم نفهميدم.ميشه توضيح بديد
$hwstack = 32
$swstack = 10
$framesize = 40
مرتضی جان ، پرت d رو خروجی نکردی ، خروجیش کن درست میشه . تست کردم ....