PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : سوال:پیاده‏سازی موتور چپ‏گرد راست‏گرد dc



medadnoki
22-03-2012, 16:05
سلام! من میخوام چهار تا موتور DC داشته باشم که به صورت چپ‏گرد راست‏گرد کار کنه.....
با avr.....
این طور که تا زمانی که مثلاً پورت a0.0 صفر است موتور راست‏گرد و وقتی یک شد موتور برای 4-3 ثانیه ایست کامل کرده و ربات اندازۀ 40 سانت چپ‏گرد حرکت کند.(عقب بیاید) سپس دو تا از موتورها چپ‏گرد حرکت کند و دو تای دیگر حرکت نکنند(میخواهم ربات 90 درجه بچرخد)...
بعد از چرخش ربات ، باز موتورها راست‏گرد حرکت کنند

میخوام برنامش رو با codevision بنویسم....
اگه میشه در مورد برنامه و مدارش یک مقدار راهنمای کنید...
"ممنون"

sadmonew
22-03-2012, 20:49
سلام مهندس
خوب براي راه اندازي موتورها ميتونيد از آي.سي L298 استفاده كنيد. كه براي چپگرد و راستگرد كردن موتورها گزينه مناسبي هستش. از نظر راه اندازي هم چيز خاصي نداره و راحته.
در مورد برنامه هم از تاخير (delay) استفاده كنيد و اگه ميخوايد سرعت موتورها رو هم تحت كنترل داشته باشيد از واحد PWM استفاده كنيد.

12qwaszx
23-03-2012, 13:32
برای کنترل موتور dc همان طور که گفتند بهتر است از pwm و آیسی درایور مثلا L298 (البته به میزان جریان کشی موتورها بستگی دارد) استفاده کنید
مثلا فرض کنیم 4 تا چرخ داریم ولی وضعیت چرخش 2 چرخ جلو و یا عقب مانند هم است
هر آیسی L298 دو ورودی دارد (سیگنال pwm می دهید) و 4 خروجی (به موتور dc وصل می شود یعنی برای موتور مربوطه ولتاژ dc می سازد) و 4 پایه فعال کردن هر خروجی ( پایه های in)
فرض کنیم برای درایو کردن هر دو موتور یک L298 استفاده شده است. (L298 برای تقویت جریان و فعال شدن موتور مفروض است) لذا یک L298 برای چرخ های جلو روبات و یک L298 برای چرخ های عقب روبات
مدار: با rotation جهت چرخش چرخ های جلو و عقب را مشخص می کنی
با pwm مقدار ولتاژ رسیده به موتور dc را کنترل می کنی.
مثلا:
آیسی اول: in1=0, in2=0, in3=0, in4=0 حالا pwm هر چه باشد ولتاژ رسیده به موتورهای جلو صفر خواهد شد. چون خروجی ها را غیر فعال کرده اید.
آیس دوم: in1=0, in2=1, in3=0, in4=1 و برای pwm هشت بیتی مثلا pwm=124 می دهید
نتیجه: موتور های عقب مثلا چپ گرد می چرخند و ولتاژ رسیده به موتورهای عقب برابر است با:

(124/256)*12=5.8125

برای اندازه گیری سرعت روبات و میزان حرکت کردنش هم باید از جابجایی روبات فهمید نه از اندازه گیری تعداد دور خوردن شفت موتور و ... پس هر وقت 40 سانت حرکت کرد شما دستور می دهید به پایه های in , pwm
به همین راحتی
فقط باید ببینید موتورهای روبات چقدر ولتاژ و جریان می خواهند تا آیسی درایور مربوطه را انتخاب کنید.
You can see links before reply

12qwaszx
23-03-2012, 13:47
برای 4 ثانیه توقف هم کافی است:
برای 4 ثانیه تمام پایه های In را صفر کن (البته درست است که موتور ولتاژ ورودی اش صفر است ولی روبات همچنان کمی جلو می رود مثل ماشین شاید موتور کار کند ولی پا روی کلاچ باشد! شاید پا روی کلاچ هم نباشد ولی چون سرعت داشته تا بایستد زمان می گیرد لذا برای فهمیدن توقف است بهتر است متوقف شدن چرخ ها را فهمید! مگر آنکه در آسمان حرکت کند! :mrgreen: در این صورت است بهتر است از پدیده داپلر استفاده کنی!)
به محض آنکه بخواهی 4 ثانیه بایستد یک تایمر را برای 4 ثانیه فعال کن و t=4 بگذار. هر یک ثانیه که به زیر برنامه تایمر رفت یک واحد از t کم کن. به محض آنکه t=0 شد تایمر را استاپ و دستورات جدید بر اساس جهت و سرعت به پایه های In و pwm صادر کن.

medadnoki
24-03-2012, 01:52
12qwaszx جان!
در مثالی که زدید ، چرا پایه‏های IN3 , IN4 به ترتیب به IN1 , IN2 متصل است؟

قسمت زیر هم متوجه نشدم:

برای اندازه گیری سرعت روبات و میزان حرکت کردنش هم باید از جابجایی روبات فهمید نه از اندازه گیری تعداد دور خوردن شفت موتور و ... پس هر وقت 40 سانت حرکت کرد شما دستور می دهید به پایه های in , pwm
و همچنین قسمت زیر:

در این صورت است بهتر است از پدیده داپلر استفاده کنی!

چه طور بفهمیم که موتور 90 درجه چرخیده یا نه!!!؟؟؟

12qwaszx
24-03-2012, 02:51
چون می خواستم دو موتور جلو یا دو موتور عقب، چپ گرد یا راست گرد یا استاپ بودنشان مانند هم باشد شما می توانید برای هر چهار موتور چهار کنترل مختلف بگذارید در این صورت برای کنترل
موتور اول= پایه های in 1 , in 2 مثلا از L298 اول
موتور دوم= پایه های in 3 , in 4 مثلا از L298 اول
موتور سوم= پایه های in 1 , in 2 مثلا از L298 دوم
موتور چهارم= پایه های in 3 , in 4 مثلا از L298 دوم
من می خواستم مثلا دو موتور جلو روبات جهت چرخش یکسان داشته باشند in1 , in3 بهم وصل کردم و دو موتور پشتی هم جهت چرخش یکسان داشته باشند in2 , in4 رو بهم وصل کردم
پدیده داپلر در رادار هواپیما استفاده می شود در این مورد شوخی کردم یعنی گفتم شاید روبات چهار چرخ شما چرخش استاپ شده باشد و در هوا برود! شوخی بود!
من در مورد سنسورهای روبات خیلی اطلاعی ندارم و این اطلاعات من در مورد راه اندازی موتور بود و دوستان بیشتر می توانند کمک کنند.
برای فهمیدن استاپ شدن روبات یا سرعت روبات می توانید از سنسورهای شفت انکودر یا مگنت (یک تگ مغناطیسی که باعث قطع و وصل شدن یک سوییچ ریز می شود و در خروجی تولید پالس میکند) و ... استفاده کنید
برای اندازه گیری شتاب سیستم از سنسور شتاب سنج استفاده کنید (Accelerometer) که انواع مختلفش موجود است.
برای چرخش فکر کنم باید از سنسور قطب نما یا ژیروسکوپ(Gyroscope) و ... استفاده کنید احتمالا دوستان بفهمند چون در این مورد سنسورهای فراوانی در بازار ایران است.
البته اگر روبات شما بازو داشت از سنسور flex برای سنجش میزان خم شدن دست یا هر چیز دیگری می توانستید استفاده کنید. (به ازای یک مقدار خم شدن مقدار مقاومت خروجی تغییر می کند)
در هر صورت در این سایت و سایت eca کسانی هستند که روبات کار کرده اند و اطلاعات دقیق تری دارند.

medadnoki
24-03-2012, 03:08
کسی میتونه راهنمایی کنه که در مسئله‏ای که دارم ، چه طور بفهمیم که موتور 90 درجه چرخیده یا نه!!!؟؟؟

12qwaszx
24-03-2012, 03:25
اگر میخواهی بفهمی که موتور 90 درجه چرخیده که ساده است کافی است موتور روی یک شفت انکودر باشد مثلا فرض کن شفت انکودر 60 تا سوراخ دارد هر وقت به اندازه 15 پالس گرفتی یعنی 90 درجه چرخیده! البته اگر تعداد سوراخ ها 60 تا باشد دقت اندازه گیری چرخش 6 درجه است و این دقت به کار شما بستگی دارد ممکن است دقت 45 درجه بخواهی که شفت انکودر شما 8 سوراخه می شود.
می توانی از سنسور مادون قرمز هم استفاده کنی. روی موتور نوار سفید و مشکی بگذاری بعد موقع چرخش موتور اتفاقی شبیه شفت انکودر می افتد.

safavism
24-03-2012, 17:01
با سلام خدمت دوستان
استفاده از pwm قدرت موتور کاهش نمیده؟

medadnoki
24-03-2012, 18:27
با سلام خدمت دوستان
استفاده از pwm قدرت موتور کاهش نمیده؟

منظورتون از قدرت چیه؟
شما وقتی از PWM استفاده میکنید در واقع دارید عرض پالس را کم یا زیاد میکنید.
اصلاً Pulse-width modulation) PWM) یعنی پالسی که میتوان که عرض آن را مدوله کرد یا تغییر داد.
تا آنجایی که من مطالعه کردم با PWM میشه سرعت موتور را تغییر داد و اسمی از قدرت موتور در کتاب‏ها در این ضمینه ندیدم.
البته باید این مطلب رو در نظر بگیریم که پالس PWM را باید در حالت phase correct استفاده کرد.(البته با نرم افزارcode vision)........من زیاد در مورد bascom اطلاع ندارم.

safavism
24-03-2012, 21:02
با سلام
اگه اشتباه نکنم زمان یک بودن اگه بیشتر باشه مقدار متوسط ولتاژبیشتر خواهد بود به عبارتی عرض پالس زمان یک بودن نسبت به زمانی که صفر هست بیشتر باشه ولتاژ بیشتری خواهیم داشت ولی اگه بلعکس باشه دامنه ولتاژ کمتری بدست میاریم مثلا اگه ولتاژ ما 4 ولت باشه و مدت زمان صفر و یک بودن با هم برابر باشه ولتاژ ما نصف خواهد شد .حالا اگه دور موتور با اعمال ولتاژ های متفاوت میتوان کم وزیاد کرد پس زمانیکه ولتاژ کمتری به موتور داده میشه فکر کنم قدرتش هم کم میشه .

medadnoki
25-03-2012, 13:47
اگه اشتباه نکنم زمان یک بودن اگه بیشتر باشه مقدار متوسط ولتاژبیشتر خواهد بود به عبارتی .......
نه مهندس جان کاملاً اشتباه میکنید! datasheet زیر رو بخون ، احتمالاً مشکلت حل میشه(به زبان فارسی هست)

سوال:
با پالس PWM میشه یک سرعت ثابت به ربات داد؟
من سرعت 0.1 متر بر ثانیه لازم دارم...

ali_h
25-03-2012, 19:44
استفاده از pwm قدرت موتور کاهش نمیده؟
دقیقاً قدرت موتور کاهش پیدا می کنه. شما با pwm در واقع توان مفیدی که به موتور می رسد را کاهش می دهید. بنابر این موقع شروع حرکت ربات باید با pwm بیشتری شروع کنید و بعد از رسیدن به مقدار مورد نیاز pwm رو کم کنید.



سوال:
با پالس PWM میشه یک سرعت ثابت به ربات داد؟
من سرعت 0.1 متر بر ثانیه لازم دارم...
تجربه نشون داده که pwm فقط در سطح صاف و بدون پستی و بلندی و تغییر جنس زمین و ... می تونه سرعت رو ثابت نگه داره. ولی تعیین کردن مقدار سرعت با pwm عملاً غیر ممکنه. چون ربات با همون سرعت چرخش چرخ ها حرکت نمی کنه.
امتحان این قضیه خیلی سادست، pwm رو روی یک عدد کوچک تنظیم کنید تا چرخ های ربات رو هوا بچرخند. بعد ربات رو بذارین زمین، می بینید که چرخ ها متوقف می شن. سرعت حرکت ربات به جنس زمین خییییییلی وابستست.

این اختلاف سرعت بین دو چرخ هم وجود داره. یعنی با pwm های برابر هیچ تضمینی وجود نداره که چرخ های راست و چپ همسرعت بچرخند. یعنی ربات صاف حرکت نمی کنه.

اگر از شفت انکدر یا تاکومتر یا ... استفاده کنید می تونید اصطلاحاً سیستمتون رو Closed Loop کنید و هم سرعت ربات رو تنظیم کنید و هم اطمینان حاصل کنید که ربات حتماً صاف حرکت می کنه.
در این صورت حتی می تونید از کنترلر PID استفاده کنید و سرعت حرکت هر چرخ رو به صورت دقیق تنظیم کنید.

اما خوب همه اینها وقت و هزینه لازم داره. باید تصمیم بگیرید که دقت حرکت توی کار این ربات چقدر مهمه. می صرفه که از این روش ها استفاده کنید یا نه.

medadnoki
25-03-2012, 22:18
ربات من یه ربات مین‏یاب برای پروژه نهایی کارشناسی هست...(با AVR)
وقت هم زیاد ندارم....
خرداد باید تحویل بدم....

این اختلاف سرعت بین دو چرخ هم وجود داره.
چه دلیلی داره که چرخ‏ها با هم سرعت برابر نداشته باشند؟ ربطی به مطالب قبلش نداشت ، به نظرم...
ولی از نظر اینکه سرعت موتور با سرعت چرخ برابر نیست و اینکه سرعت چرخ با جنس زمین مرتبط است حق با شماست...
فرض میکنیم چهار موتور از نظر پارامترهايي مثل گشتاور، ولتاژ و جريان كاري و .... دقيقا مشابه هم باشند.
اگه به عکس صفحه قبل(پست3) نگاه کنید متوجه میشید که ما به همۀ چرخ‏ها یک PWM دادیم.
پس چه طور سرعت یکسان ندارند؟!

اگر از شفت انکدر یا تاکومتر یا ... استفاده کنید می تونید اصطلاحاً سیستمتون رو closed loop کنید و هم سرعت ربات رو تنظیم کنید و هم اطمینان حاصل کنید که ربات حتماً صاف حرکت می کنه.

میشه در این مورد بیشتر توضیح بدید!
من ترجیحاً از موتور dc میخوام استفاده کنم...

ali_h
26-03-2012, 13:57
چه دلیلی داره که چرخ‏ها با هم سرعت برابر نداشته باشند؟ ربطی به مطالب قبلش نداشت ، به نظرم...

فرض میکنیم چهار موتور از نظر پارامترهايي مثل گشتاور، ولتاژ و جريان كاري و .... دقيقا مشابه هم باشند.

اگه به عکس صفحه قبل(پست3) نگاه کنید متوجه میشید که ما به همۀ چرخ‏ها یک PWM دادیم.
پس چه طور سرعت یکسان ندارند؟!

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


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


میشه در این مورد بیشتر توضیح بدید!
من ترجیحاً از موتور dc میخوام استفاده کنم...
از همون موتورهای dc می تونید استفاده کنید منتها روی آنها دستگاه های اندازه گیری سرعت نصب کنید (مثل تاکو، انکدر و ...) تا بتونید از خروجی اونها فیدبک بگیرید. یکی از ساده ترین راه ها اینه که یه برجستگی روی شفت موتور یا روی محل اتصال به چرخ ایجاد کنید و با یک اپتوکانتر تعداد دور بر ثانیه چرخ رو بشمارید. البته باز هم با این روش مشکل بکسباد احتمالی چرخ (به خصوص موقع شروع حرکت) رفع نمی شه.

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

در آخرین ربات مین یابی که ساختیم، بالای پیست دوربین نصب بود و روی ربات هم لکه های رنگی (مثل ربات فوتبالیست) بود. برنامه ای نوشتم که با پردازش تصویر در هر لحظه بردار حرکت ربات بدست می آمد. یعنی در هر لحظه هم سرعت ربات رو داشتیم و هم اینکه روی ربات به کدوم سمته و داره کدوم سمتی حرکت می کنه. با این روش یه حرکت حلزونی دقیق رو زمین اجرا کردیم و یه نقشه توپ با جزئیات کامل دادیم به داور :wink:
منظورم از این همه حرف زدن این بود که ما فیدبکمون رو از حرکت نهایی ربات گرفتیم. یعنی مشکل بکسوباد و یکسان نبودن موتور ها و ... همه حل شد.

medadnoki
26-03-2012, 18:05
به علت ساختار مکانیکی و اختلاف فیزیکی موتورها که نمی دونستم می خواین ازشون صرف نظر کنید (اگرچه تجربه من در ربات سازی نشون داده که نمی شه ازشون صرف نظر کرد)
میشه بیشتر توضیح بدید؟
ساختار مکانیکی و اختلاف فیزیکی یعنی چی؟

میشه schematic تاکو و انکدر را در Altium Designer بزارید و بگید تو کدوم کتابخونه هست؟
اگه میشه یه مدار کامل هم بزارید که در اون تاکو یا انکدراستفاده شده باشه.....
یک مقدار هم در مورد اینکه چه طور برنامش رو بنویسم راهنمای بفرمایید
آخه من تازه کارم و تا حالا تاکو و انکدر ندیدم!!!!!!!!!!
ببخشیدها....افتادید تو زحمت

ali_h
26-03-2012, 19:28
میشه بیشتر توضیح بدید؟
ساختار مکانیکی و اختلاف فیزیکی یعنی چی؟
یعنی هر دوتا موتوری که از یک کارخانه تولید می شن لزوماً در ولتاژ های ورودی یکسان سرعت یکسانی ندارند. مخصوصاً موتورهای ارزون قیمتی که در ساخت ربات کاربرد داره. ممکنه موقع تولید تعداد حلقه های سیم پیچ آرمیچر یکسان نباشه، شفت یک موتور کمی سفت از یه موتور دیگه باشه و این پارامتر هایی که دست ما نیست و موقع تولید به وجود اومده. البته این اختلاف ها خییییلی کوچیکه و در حرکت های کوتاه دیده نمی شه ولی در حرکت ربات مثلاً در طول 5 متر یا 10 متر به خوبی دیده می شه.


میشه schematic تاکو و انکدر را در Altium Designer بزارید و بگید تو کدوم کتابخونه هست؟
از اونجایی که گفتید آلتیوم و کتابخونه احتمالاً منظورتون از شماتیک ، فوت پرینت بوده. تاکو و انکدر فوت پرینت خاصی نداره.
تاکو و انکدر با روش های مختلف (خیلی از روش ها رو دوستان گفتند از اول بحث) سرعت موتور رو اندازه میگیرن. خروجی تاکومتر آنالوگه و خروجی شفت انکدر بصورت پالسه که باید در طول یک ثانیه اونها رو بشمارید تا سرعت موتور بدست بیاد. یعنی میشه شفت انکدر و تاکو رو به یک هدر دوتایی وصل کرد!


اگه میشه یه مدار کامل هم بزارید که در اون تاکو یا انکدراستفاده شده باشه.....
آخه من تازه کارم و تا حالا تاکو و انکدر ندیدم!!!!!!!!!!
به نظر من شما یکم راجع به Shaft Encoder تو اینترنت سرچ کنید و همچنین نحوه راه اندازی optocounter رو. بعد اگه سوالی داشتید بگید که اینجا حلش کنیم.
به هر حال پایان نامست دیگه، خودتون تحقیق کنید راجع بهش بهتره :0013:


یک مقدار هم در مورد اینکه چه طور برنامش رو بنویسم راهنمای بفرمایید
انشالا وقتی شما استارت کار نرم افزار رو زدید من و بقیه دوستان هستیم کمک می کنیم تا به نتیجه برسید.

medadnoki
26-03-2012, 21:25
ساختار مکانیکی و اختلاف فیزیکی
بله ، از این پارامتر‏ها صرف نظر میشه


از اونجایی که گفتید آلتیوم و کتابخونه احتمالاً منظورتون از شماتیک ، فوت پرینت بوده.
بله


تاکو و انکدر با روش های مختلف (خیلی از روش ها رو دوستان گفتند از اول بحث) سرعت موتور رو اندازه میگیرن.
نه ، اولین نفر شما در مورد تاکو و انکدر صحبت کردید...
فقط در صفحه اول یه مدار داریم که با پالس PWM سرعت رو کنترل میکنه
من در مورد مدار یه کم گیج شدمii998)ii998)ii998)ii998)...میشه راهنمایی کنید!!!!!!!!!!!!!!!!!!!!!!!!

انشالا وقتی شما استارت کار نرم افزار رو زدید من و بقیه دوستان هستیم کمک می کنیم تا به نتیجه برسید.
من برنامه رو با codevision شروع کردم...


به نظر من شما یکم راجع به Shaft Encoder تو اینترنت سرچ کنید و همچنین نحوه راه اندازی optocounter رو. بعد اگه سوالی داشتید بگید که اینجا حلش کنیم.
چشم:wink:

ali_h
26-03-2012, 21:58
نه ، اولین نفر شما در مورد تاکو و انکدر صحبت کردید...
مطمئنین؟


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


اگر میخواهی بفهمی که موتور 90 درجه چرخیده که ساده است کافی است موتور روی یک شفت انکودر باشد مثلا فرض کن شفت انکودر 60 تا سوراخ دارد هر وقت به اندازه 15 پالس گرفتی یعنی 90 درجه چرخیده! البته اگر تعداد سوراخ ها 60 تا باشد دقت اندازه گیری چرخش 6 درجه است و این دقت به کار شما بستگی دارد ممکن است دقت 45 درجه بخواهی که شفت انکودر شما 8 سوراخه می شود.
می توانی از سنسور مادون قرمز هم استفاده کنی. روی موتور نوار سفید و مشکی بگذاری بعد موقع چرخش موتور اتفاقی شبیه شفت انکودر می افتد.

:0013:

medadnoki
27-03-2012, 12:29
من در مورد مدار یه کم گیج شدمii998)ii998)ii998)ii998)...میشه راهنمایی کنید!!!!!!!!!!!!!!!!!!!!!!!!
الان من یه مدار دارم که در صفحه اول همین تاپیک در پست سوم هست که میتونم ازش استفاده کنم....
حالا من هدر دوتایی شفت انکودر رو کجا باید قرار بدم؟؟؟


خروجی تاکومتر آنالوگه و خروجی شفت انکدر بصورت پالسه که باید در طول یک ثانیه اونها رو بشمارید تا سرعت موتور بدست بیاد.
بعد باید عدد حاصل در 60 ضرب بشه؟

در ضمن من برنامه نویسی رو شروع کردم.........cry::
در مورد اندازه‏گیری سرعت راهنمایی کنید لطفاً
درواقع ما باید سرعت چهار چرخ را یکی کنیم ، اما چه طور؟

medadnoki
27-03-2012, 19:24
من یک مقدار تو اینترنت گشتم....
سایت کاملی که توضیح داده باشه Shaft Encoder چیه و چیکار میکنه پیدا نکردم ، بنابراین رفتم سراع wikipedia
یه چیزهایی فهمیدم ولی شاید کامل نباشه....
درباره نحوه راه اندازی optocounter که اصلا چیزی پیدا نکردمcry::
حالا یه سوال:
اینجا عکس یه Shaft Encoder هست....
چه طور روی PCB قرار میگیره؟
این که پایه نداره!!!!!!!!!
You can see links before reply

armstk
27-03-2012, 21:30
سلام
خیلی ساده هستش
کافیه که به دیود فرستنده مادون ولتاژ بدین بعد از فتو ترانزیستور پالس ها رو دریافت کنین
تعداد پالس ها بر دور هم بسته به نوع شفت انکودر متفاوت هستش و هر چقدر این پالس ها بیشتر بشه قیمتش شفت انکودر بیشتر میشه
از 16 پله شروع میشه و من تا 1200 پله رو دیدم که سوراخ هاش با چشم دیده نمیشه

ali_h
28-03-2012, 04:16
به نظر من اول مشخص کنین که چه دقتی برای شما لازمه؟
اصلاً می صرفه که شما خودتون رو تو این دردسر ها بندازین؟
من (به همراه بقیه اعضای تیم رباتیک) 2 تا خط یاب ، 4 تا مین یاب ، 1 ربات خدمات خانگی و 1 فوتبالیست small size ناتمام ساختیم و فقط در یکی از مین یاب ها که زمین شیب و تغییر جنس داشت از یک نوع انکدر استفاده کردیم. در بقیشون اصلا نیازی به این دردسر ها نبوده. حالا شما هم به نظر میاد به این همه سختی احتیاجی نداشته باشید.
فعلاً همون pwm رو به صورت ساده پیاده سازی کنید وقتی اون رو به راحتی انجام دادین اگر مشکل کنترلی داشتید بیاید سراغ بحث انکدر و ...

medadnoki
28-03-2012, 11:40
فعلاً همون pwm رو به صورت ساده پیاده سازی کنید وقتی اون رو به راحتی انجام دادین اگر مشکل کنترلی داشتید بیاید سراغ بحث انکدر و ...
آخه من که دیگه زیاد وقت ندارم......تا اواسط خرداد نهایت باید دفاع کنم.
با PWM چه طور سرعت ثابت به موتور بدم(0.1m/s)...تا حالا هر چی برنامه من دیدم با PWM سرعت موتور رو با دو تا کلید کم و زیاد میکرد(یکی زیاد ، یکی کم)


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


کافیه که به دیود فرستنده مادون ولتاژ بدین بعد از فتو ترانزیستور پالس ها رو دریافت کنین
متوجه نشدم....عزیز

medadnoki
30-03-2012, 02:12
یعنی هیچ کسی بلد نیست؟؟؟:sa::sa::sa::sa:

ali_h
30-03-2012, 15:33
آخه من که دیگه زیاد وقت ندارم......تا اواسط خرداد نهایت باید دفاع کنم.
با PWM چه طور سرعت ثابت به موتور بدم(0.1m/s)...تا حالا هر چی برنامه من دیدم با PWM سرعت موتور رو با دو تا کلید کم و زیاد میکرد(یکی زیاد ، یکی کم)


چهطور براتون باید بگم؟
ربات من فقط سطح صاف رو میره با چهار چرخ.....منظور از دقت معیار خاصی داره؟؟؟
درباره optocounter هم فقط همین رو تونستم پیدا کنم علاوه بر این که نویز گیر هست ، جدا کننده مدار آنالوگ از دیجیتال هم هست.


متوجه نشدم....عزیز

گفتم که با pwm نمی شه سرعت موتور رو روی یک سرعت خاص تنظیم کرد. صرفاً می شه اون رو کم و زیاد کرد. این سرعت بسته به شرایط بسیار تغییر می کنه.

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

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

هم انکدر و هم اپتوکانتر اینجا توضیح داده شدن :
Wheel Encoder - The Lab Book Pages (You can see links before reply)

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