احوالات دانشجویان در مواقع مختلف


در طول ترم :
 
احوالات یک دانشجوی ایرانی در طول سال (آخر خنده) ، www.irannaz.com

سه روز مانده به امتحان :
 
احوالات یک دانشجوی ایرانی در طول سال (آخر خنده) ، www.irannaz.com

دو روز مانده به امتحان :
 
احوالات یک دانشجوی ایرانی در طول سال (آخر خنده) ، www.irannaz.com

شب امتحان :
 
احوالات یک دانشجوی ایرانی در طول سال (آخر خنده) ، www.irannaz.com

یک ساعت مانده به امتحان :
 
احوالات یک دانشجوی ایرانی در طول سال (آخر خنده) ، www.irannaz.com

سر جلسه امتحان :
 
احوالات یک دانشجوی ایرانی در طول سال (آخر خنده) ، www.irannaz.com

هنگام خروج از جلسه :
 
احوالات یک دانشجوی ایرانی در طول سال (آخر خنده) ، www.irannaz.com

یک هفته بعد از امتحان :

احوالات یک دانشجوی ایرانی در طول سال (آخر خنده) ، www.irannaz.com

اینم یک پروژه روبات

می تونین این فایل را از لینک زیر دانلود کنید


دانلود

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



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


قطعات مورد نیاز

توضیحات مدار

تغذیه روبات

مسیر روبات

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

نقشه مدار

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

فیلم مربوط به دو روبات نمونه

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

همچنین ببینید



دراین پروژه با نحوه عملکرد روبات دنبال کننده مسیر آشنا می شوید.

قطعات مورد نیاز

3 عدد سنسور مادون قرمز CNY70

1 عدد میکروکنترلر PIC 16F84A

3 عدد پتانسیومتر 10K

2 عدد خازن22 پیکو فاراد

2 عدد آیسی LM358

6 عدد مقاومت 220 اهم

5 عدد مقاومت 5 مگا اهم

3 عدد خازن 0.1 الکترولیت

1 عدد کریستال 4 مگا هرتز

1 عدد 1مقاومت 4.7 کیلو اهم

1 عدد منبع تغذیه 6 لتی

1 عدد رگولاتور 7805

2 موتور 7 تا 9 ولت dc

1 عدد آیسی ULN2803

2 عدد دیود1N5817

1 عدد کلید کشویی سه حالته

2عدد کانکتور مخابراتی 7 پین


سنسور CNY70

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

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

img/daneshnameh_up/e/ed/cny70.jpg



img/daneshnameh_up/c/c0/hamz.gif

میکروکنترلر میکرو">PIC 16F84A

این میکرو کنترلر از ساده ترین انواع میکروکنترلر از لحاظ برنامه نویسی است .اما فوق العاده قدرتمند می باشد.زبان برنامه نویسی این میکروکنترلرغالبا زبان برنامه نویسی سی(C)زبان برنامه نویسی بیسیک(BASIC)
زبان برنامه نویسی پاسکال (PASCAL) میباشد.که شما می توانید با تهیه کمپایلر هر کدام از این زبانها،با برنامه ای که به آن تسلط دارید.، اقدام به برنامه نویسی آن کنید.
برای کار با این میکروکنترلر احتیاج به پروگرامر خانواده گروه میکرو">PIC دارید.،به همراه کمپایلر زبان برنامه نویسی که به آن علاقه دارید.

img/daneshnameh_up/9/93/PIC16F84a.gif



آیسی LM358

آیسی ULN2803

این آیسی حاوی دو عدد آپ امپ(DUAL AP-AMP)است.،این آپ امپ ها جهت مقایسه ولتاژ های ایجاد شده از سنسورها به کار می رود.پایه 4 آن منفی ،پایه 8 آن مثبت،پایه 2 و6ورودی منفی پایه 3و5 ورودی مثبت،وپایه های 1و7 خروجی است.این آیسی اختلاف ولتاژهای منفی ومثبت ورودی را در خروجی آشکار می کند.
آیسی ULN2803 حاوی بافر NOT است پایه 9 آن تغذیه منفی و پایه 18 آن تغذیه مثبت است.جریان خروجی آن در حدود 500 میلی آمپر است.این آیسی بیشتر برای درایو کردن موتور پله ای(STEPPER MOTOR) مورد استفاده قرار می گیرد

img/daneshnameh_up/a/af/lm358.jpg


img/daneshnameh_up/2/2a/280333.gif




رگولاتور 7805

کریستال

رگولاتور LM7805 یک تنظیم کننده ولتاژ است.زمانیکه ولتاژ پایه ورودی آن در حدود 2 تا 2.5 ولت بیشتر از 5 ولت باشد.،ولتاژ تنظیم شده 5 ولت را در خروجی ایجاد می کند.
کریستال جهت تولید پالس برای میکروکنترلر مورد استفاده قرار می گیرد.در شکل زیر کریستال 10 مگاهرتز را مشاهده می کنید.

img/daneshnameh_up/5/52/7805.jpg


img/daneshnameh_up/1/13/S8841136560.jpg





توضیحات مدار

در شکل زیر نحوه اتصال سنسور CNY70 به آیسی LM358 را مشاهده می کنید.سمتی از این سنسور که نوشته دارد پایه بالا یی و پایینی مربوط به LED فرستنده و دو پایه قسمتی که نوشته ندارد.،مربوط به گیرنده است.پایه بالایی قسمتی که نوشته دارد.،به تغذیه 5 ولت و پایه زیر این پایه را با یک مقاومت 220 اهم به منفی وصل کنید.قسمتی از این سنسور که نوشته ندارد.پایه بالایی را به تغذیه 5 ولت و پایه پایینی را با یک مقاومت 5 مگا اهم به منفی وصل کنید.از اشتراک مقاومت 5 مگا اهم با پایه پایینی قسمت گیرنده سنسور به ورودی مثبت آیسی LM358 که پایه 3 می باشد وصل کنید.
یک سر پتانسیومتر 10K را به مثبت 5 ولت ویک سر دیگر آن را به منفی منبع تغذیه یا باطری وصل کنید.سر دیگر پتانسیومتر را به ورودی منفی آیسیLM358 که پایه 2 می باشد.، وصل کنید.پایه 4 آیسی LM358 را به منفی ،پایه 8 آیسی LM358 را به مثبت منبع تغذیه وصل کنید.،پایه 1 آیسی LM358 را توسط مقاومت 220 اهم به ورودی پایه های میکروکنترلر وصل کنید.این کار را برای هر سه سنسور CNY70 انجام دهید.

img/daneshnameh_up/9/97/esquemaCNY70.gif



همانطور که در نقشه نگاه می کنید.پایه های خروجی آیسی LM358 توسط مقاومتهای 220 اهم به پایه های RB3,RB1,RB2 میکروکنترلر وصل می شوند.میکروکنترلر بر اساس HIGH یا LOW شدن این پایه ها تصمیم گیری می کند.،وپایه های RB6 یا RB7 را که به یک سر موتور وصل هستند. را HIHG یا LOW می کند.دیود در خروجی آیسی ULN2803 نقش محافظتی را دارد.خازنهای دو سر موتور نیز جهت از بین بردن نویز وکارکرد بهتر موتور مورد استفاده قرار می گیرند.البته در عمل یکی از خروجی هاآیسی LM358 از پایه 7 این آیسی گرفته شده است.پایه 5 میکروکنترلر را حتما به تغذیه منفی وصل کنید.
با تنظیم پتانسیومترها می توانید.،فاصله وحساسیت سنسورها را تعیین کنید.قبل از اینکه سنسورها را در زیر ماشین روباتی خود بگذارید.از سالم بودن وعملکرد صحیح سنسورها مطمئن شوید.قبل از هر کاری مدار خود را بر روی برد بورد پیاده سازی کنید.وخرجی دو عدد آیسی LM358
را که پایه های 1 و7 و1 می باشندرا توسط مقاومتهای 220 اهم به صورت مجزا به سه LED وصل کنید.زمانیکه کاغذ سفید رنگ را به قسمت بالایی این سنسورها نزدیک می کنید.،LED مربوط به هر سنسور روشن می شود.شما می توانی با تنظیم پتانسیومترها شدت نور LED ها و میزان فاصله پاسخگویی سنسورها را تعیین کنید.زمانیکه از عملکرد صحیح سنسورها وتنظیم آنها مطمئن شدید سه خروجی آیسی LM358 را به ورودیهای RB3,RB2,RB1 از میکروکنترلر وصل کنید.تصمیم گیری میکروکنترلر بر اساس HIGH یا LOW شدن این پایه های میکروکنترلر می باشد.،خروجیهای RB6,RB7 میکروکنترلر را قبل از اتصال به پایه های 1و2 ورودی آیسی ULN2803 به دو عدد LED وصل کنید وپس از مطمئن شدن از عملکرد صحیح برنامه ای که در میکروکنترلر توسط پرگرامر LOAD شده است آترا به ورودی 1و2 آیسی وصل کنید.،سپس خروجی 18 آیسی ULN2803 را به سر یک موتور وسر دیگر موتور را به مثبت منبع تغذیه وصل کنید.در واقع میکروکنترلر منفی یک سر موتور را می دهد.،خروجی 17 آیسی ULN2803 را به یک سر موتور دیگر وصل کنید.،وسر دیگر این موتور را به مثبت منبع تغذیه وصل کنید.

تغذیه روبات

برای تغذیه مدار از 6 عدد باطری 1.2 ولت آمپر بالا استفاده کنید.قبل از اتصال باطری به روبات عمل تغذیه را توسط منبع تغذیه DC انجام دهید.،واز سیمهای سوسماری بلند جهت اتصال مثبت ومنفی منبع تغذیه به روبات استفاده کنید.
در این مدار بهتر است.،از رگولاتور 7805 استفاده کنید.،تغذیه مثبت کل مدار به غیر از موتورها از رگولاتور 7805 می باشد.،اگر تغذیه موتورها را از رگولاتور 7805 بگیرید.موتورها آمپر لازم را جهت حرکت کردن نخواهند داشت.

مسیر روبات


برای درست کردن مسیری که روبات بتواند در آن صحیح حرکت کند و مسیر را درست تشخیص دهد.،حداقل از دو عدد مقوای مشکی استفاده کنید .،وجاده خود را که ورق سفید رنگ براق است.،
را بر روی آن بچسبانید.
جاده شما نباید دارای پیچهای 90 درجه باشد.،واندازه ورق سفید که جاده شما می باشد حدودا 2.5 سانتی متر باشد.سنسورها را طوری کنار یکدیگر قرار دهید.،که فاصله اولین سنسور با آخرین سنسور حدود 4.5 سانتی متر باشد.سنسور وسطی در جاده سفید رنگی که بر روی مقوای مشکی درست کرده اید.،قرار می گیرد.ما دامی که این سنسور برروی این خط سفید باشد.دو موتور همزمان حرکت می کنند.زمانیکه این سنسور به همراه یکی از سنسورهای کناری یا یکی از سنسورهای کناری به طور مجزا بر روی خط سفید قرار می گیرد.،یکی از موتورها خاموش می شود.،وموتور دیگر روشن می شود.،تا اینکه روبات بتواند.،مسیر صحیح خود را پیدا کند.و دو موتور بتوانند به طور همزمان حرکت کنند.اگر شما این موارد را رعایت کنید.،مطمئن باشید که روبات شما صحیح عمل خواهد کرد. سعی کنید برای اولین تست جاده شما به صورت بیضی باشد.اندازه جاده شما می بایست متناسب با اندازه روبات شما باشد.
جاده شما می تواند مشکی نیز باشد.،فقط نحوه برنامه نویسی میکروکنترلر متفاوت خواهد بود.




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




img/daneshnameh_up/0/04/ChiBots01MarCourse.jpg





نقشه مدار


img/daneshnameh_up/a/ad/shematic_infra_robotic_circ.jpg


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

برنامه میکروکنترلر در این پروژه به زبان بیسک است.
همانطور که در برنامه مشاهده می کنید.،سه عدد متغییر m,l,r در اول برنامه معرفی شده اند.،این سه متغییر در خطوط بعدی برنامه توسط پورتهای،portb.1,portb.2 ,portb.3 بارگذاری می شوند.،high یا low شدن این پورتها به صورت مستقیم وابسته به سنسورهای CNY70 است.،در صورت HIGH شدن سنسور وسطی دو موتور HIGH می شوند.،وحرکت خواهند داشت.HIGH یا LOW شدن هر کدام از موتورها سمت راست یا چپ یا هر دو موتور در برنامه کاملا مشخص شده است.


  1:  
  2:  m var byte
  3:  l var byte
  4:  r var byte
  5:  m=portb.2
  6:  l=portb.1
  7:  r=portb.3
  8:  if m=1 and l=0 and r=0 then
  9:                             high portb.6
 10:                             high portb.7
 11:  endif
 12:  if r=0 and l=1 and (m=0 or m=1) then
 13:                                      high portb.7
 14:                                      low portb.6
 15:  endif
 16:  if l=0 and r=1 and (m=0 or m=1) then
 17:                                      high portb.6
 18:                                      low portb.7
 19:  endif



نحوه کار با میکروکنترلر


برای کار با میکروکنترلر احتیاج به دو مرحله دارید.اول کمپایل کردن برنامه ای که به طور مثال با زبان بیسیک نوشته شده.دوم پروگرام کردن آیسی،‌برای کمپایل کردن میتوانید.ورژن 2.32 این کمپایلر را در خط زیر دانلود کنید.
برای دانلود برنامه کمپایلر بیسیک اینجا را کلیک کنید.
پس از اینکه این فایل فشرده را باز کردید.به مراحلی که راجب نصب گفته شده دقت کنید.تا این برنامه درست نصب شود.
شما می توانید برنامه تان را در محیط edit داس (dos) یا در محیط word یا notpad ویندوز وارد کنید.پس از وارد کردن برنامه بهتره آنرا در محلی که برنامه کمپایلر را نصب کردید وفایل pbp.exe در آن وجود دارد.با پسوندbas ذخیره کنید.pbp مخفف میکرو">pic basic pro compiler است.برای کمپایل کردن برنامه پیشنهاد

ساخت روبات


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

به نا م آنکه جان را فکرت آموخت

سر ارادت ما وآستان حضــرت دوست
که هر چه بر سر ما میرود ارادت اوسـت
نظیر دوست ندیدم اگر چه ازمه ومهر
نهادم آینه ها در مقابـــل رخ دوســت
صبا زحال دل تنگ ما چه شرح دهــــد
که چون شکنج ورقهای غنچه تو برتوست

اساتــید مـحترم ودوستــان دانــشجو ســلام

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

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

به هر حال این گروه تشکیل شده و امید است دوستان دانشجو ی علا قه مند در این صحنه وارد شوند و با پشتکار از موقعیت بدست آمده بهره داری لازم رابکنند در گروههای بـــرق و مکانیک برای شروع کار به حد کافی ابزار کار و انرژی هست که کارها را به پیش ببرد.

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

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

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

در قسمت نرم افزار هم تمامی حالات کاری سیستم و عملکرد مناسب بــرای بـرنــامـه نـویـسی هــر حــالــت تــو ضــیح داده خــواهــد شــــد.

امیــدواریم ایــن توضیحــات مـختصر در مـقدمه کــافی و مــفید بــاشــد.

ساخت این وسیله هر چند در نگاه اول سخت می نمود ولی مــشکلات یــکی پس از دیگری برداشته شد واین راه روشنی اسـت که به هر حال شروع شـــــده وادامه آن همت دوستان عزیز دانــشجو را چشم انتظار است.

معرفی میکروکنترلر 89c51

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

خانواده8x51خانواده ای متنوع با انواع و اقسام قابلیتها ست. 8051 دارای حافظهROMو8751دارایEPROMاست حافظه89C51ازنوع فلاش می باشد. 89c51 حدود4kbyte حافظه فلاش دارد.حافظه فلاش حافظهای است که به صورت یکباره ان رامیتوان پاک کرد(با پالس الکتریکی با ولتاژ 12+ولت)ودوباره ان را ازابتدا برنامه ریزی کرد. سازنده ادعا می کند تا چندین مرتبه امکان پاک کردن ونوشتن وجود دارد. نوع 20پایه همین میکروکنترلر با امکاناتی محدودتر وجود دارد که با نام892051در بازار موجود است که 2 kbyteحافظه فلاش دارد.

از لحاظ ساختمان داخلی میکروکنترلرهای خانواده8X51 دارای قسمتهای زیر است:

• واحد اصلی یا CPU

• حافظه RAM داخلی 128byte (تا 512byte در بعضی میکروکنترلرها)

• حافظه برنامه داخلی ROM یا EPROM یاEEPROM تا 8Kbyte

• چهار پورت8 بیتی ورودی-خروجی چند کاره

• سه تایمر16 بیتی که به صورت شمارنده هم قابل استفاده است

• پورت سریال

• دو عدد پایه برای وقفه های خارجی و سه عدد وقفه داخلی

• اوسیلاتور داخلی که کریستال در بیرون وصل می گردد

• قابلیت فضای خارجی برنامه تاbyte 64k

• فضای حافظه داده خارجی تاbyte 64k

• فضای ادرس دهی بیتی وقابلیت کار بر روی بیتهای مجزا

• رجیسترهای کنترلی و چهار بانک رجیستری مجزا

• واحد کنترل باسهای داده و ادرس

به شکل 2 توجه کنید.

دراین مدار از چهار پایه پورت P1 برای دریافت ورودی ها استفاده کرده ایم .سنسور1به پایه P1.0 و به ترتیب تا سنسور 4 که به پایه P1.3 وصل شده اند .از پورتP0 برای چرخاندن چرخ سمت چپ و از پورت P2 برای چرخاندن چرخ سمت راست استفاده شده است. درپورت P0 از مقاومت PULL UP باید استفاده شود اما در پورت P2 الزامی به این کار نمی باشد.

بیت P0.4 وP2.4 که با نام STEP معرفی شده است در ساختمان مربوط به مدار راه انداز موتور پله ای به کار رفته است و می تواند در حالتهای مختلف 1 یا0 باشد ولی در هر دو صورت موتور حرکت خود را خواهد داشت. درمدار از قابلیت RESET هم استفاده شده است هر بار که مشکتی در کار بروز کند با RESETکردن مدار مشکل را رفع کرد. کریستال مورد استفاده دراین مدارMHZ 12 می باشد.

حافظه:

ساختمان RAM داخلی:

بانک رجیستری حاوی8 byte از R0 تا R7 است . در برنامه های کاربردی با مقداردهیPSW یا توسط استفاده از دستور USINGمی توان شماره با نک رجیستری را تعیین کرد.

معمولاازبانک های رجیستری برای وقفه هااستفاده می شود .فرض کنید در حال استفاده از بانک صفر است اگر وقفه رخ دهد که دران R0 تا R7 به کار رفته باشند ممکن است مقادیر R0 تا را دستکاری کرده و در برگشت برنامه دچار خطا گردد. بنابر این دروقفه از بانک دیگری نام میبرند تا عملیات رادر R7 ان بانک انجام دهد. فضای ادرس پذیر غیر مستقیم در بعضی ای سی ها مثل 8052 وجود دارد که گاهی 128byte وبرای بعضی دیگر از ای سی ها تا256byte نیز هست.

حافظه برنامه:

حافظه برنامه در89C51 ازنوع فلاش و4kbyte است برنامه ای که قرار است اجرا شود به صورت کدهای ماشین در این قسمت از حافظه بار میشود وقابل اجرا است .

حافظه برنامه حافظه ای قابل گسترش است زیرا 8X51 قابلیت اجرای برنامه های خارجی را دارد و میتواند تا 64kbyte حافظه را ادرس د هی کند.در قسمت حافظه برنامه خارجی میتوان بلوک هایی از حافظه دیتای خارجی را هم جا داد با اتصال پایه هایRD وWR به ان حافظه داده میتوان نوشت یا خواند ارتباط دهی نرم افزاری این قسمت ها با دستور …و…MOVE X صورت می گیرد .

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

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

Cseg at 1000H
DB …,…,

اعداد ثابتی رااز ادرس 1000Hبه بعد درحافظه برنامه (کد)قرار میدهد.

ثبات ها :

ثبات های ویژه: ثبات هایی هستند که اسامی انها ذکر میشود از ادرس 80H تا FFH در حافظه RAM داخلی قرار دارند که هر یک کار خاصی را انجام میدهد.

• P0 پورت شماره صفر قابل ادرس دهی بیتی وبایتی

• SP ثبات نشانگر پشته (بایتی)

• DPL قسمت کم ارزش ثبات دو بایتی نشانگرادرس داده

• DPH قسمت پر ارزش ثبات دو بایتی نشانگرادرس داده

• PCON ثبات کنترل توان –پرتوان –استراحت –نیمه توان

• TCON کنترل تایمرها دارای قابلیت ادرس دهی بیتی

• TMOD حالت تایمرها

• TL0 بایت کم ارزش ثبات تایمر صفر

• TL1بایت کم ارزش ثبات تایمر یک

• THO بایت پرارزش ثبات تایمر صفر

• TH1 بایت پرارزش ثبات تایمر یک

• P1 پورت شماره یک قابل ادرس دهی بیت به بیت

• SCON ثبات کنترل پورت سریال قابل ادرس دهی بیت به بیت

• SBUF بافر و ثبات اطلاعاتی پورت سریال

• P2 پورت شماره دو

• IE ثبات فعال کننده وقفه قابل ادرس دهی بیتی

• P3 پورت شماره سه قابل ادرس دهی بیت به بیت

• IP ثبات تقدم وقفه ها – اولویت وقفه ها –ادرس دهی بیتی

• T2CON کنترل تایمر دوم در 8X52

• RCAP2L کنترل وثبات شکار ومقایسه در52 و53

• RCAP2Hکنترل وثبات شکار ومقایسه در52 و53

• T2Lبایت کم ارزش ثبات تایمر دو

• T2Hبایت پر ارزش ثبات تایمر دو

• PSW پرچمهایCPU شامل CARY و صفر و توازن و…

• Aیا ACC ثبات انباره اصلی

• B ثبات انباره کمکی

بعضی از دستورات بجای خواندن از پایه ای سی از لچ میخوانند این دستورات دستوراتی هستند که ابتدا خوانده میشودسپس تغییر مییابدواحتمالا دوباره در لچ نوشته می شود. عبارتند از:

ANL,ORL,XRL,JBC,CPL,INC,DEC,DJNZ

همچنین سه دستور زیر کل پورت را به صورت بایتی میخوانند بعدبیت مورد نظررا تغییر میدهند ودوباره به صورت بایتی درلچ می نویسند

MOV Px.y,c

CLR Px.y

SETB Px.y

برای خواندن از پینهای P1 باید مراحل زیر طی شود:

در ابتدای برنامه MOV P1,#FFH ;

خواندن از MOV A,P1 ; P1

ماسک کردن بیتهای غیرضروریANL A,#0000\\\\ ;

بررسی سیستم روبات مسیریابی :

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

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

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

راه حل چیست؟

راه حل اول :

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

نور لامپهای فلورسنت در اصل درطیف نزدیک به نورماورابنفش قراردارد که با ماده فسفرسانس میزانی ازان را به نور مرئی تبدیل می کنند با این وجود لامپهای فلورسنت نور قرمز یا مادون قرمز ندارند.درصد نور مادون قرمزتولیدی توسط این لامپها بسیارناچیزاست درعوض لامپهای رشته ای به میزان زیادی نورمادون قرمز ونورقرمزدارندونور ماورابنفش تولیدی توسط لامپهای رشته ای بسیار ناچیز و قابل صرفنظراست روی این اصل ما درسیستمی که قرار است مسیر سیاه رادرزمینه سفید تشخیص دهد از لامپهای مادون قرمز استفاده می کنیم دیودهایLED وجود دارند که در طیف مادون قرمز کار می کنند این دیودها نور مادون قرمز غیرمرئی تولید می کنند .

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

راه حل دوم:

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

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

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

نحوه تشخیص مسیر چگونه است ؟

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

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

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

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

ازسه عدد سنسور در یک ردیف و از سنسور چهارم در پشت سر انها استفاده شده است .



سنسورشماره دو سنسور اصلی وبقیه سنسورها پشتیبان ان هستند.

برای اشکارسازی مسیر ازیک مقایسه کننده معمولی (Lm339)استفاده شده است این IC درخود چهار مقایسه کننده را جای داده است.یک مقایسه کننده همواره ولتاژ بین دو پایه ورودی خود را مقایسه می کند اگرورودی ناوارونساز ولتاژی بزرگتر از ورودی دیگر داشته باشد،خروجی را به اشباع درv+می برد واگر ولتاژ در ورودی وارونسازبزرگترازورودی ناوارونساز باشد خروجی را به سطح صفر ولت میکشاند.

Lm339 دارای خروجی کلکتور باز است بنابراین در خروجی ان از یک مقاومت Pull up استفاده شده است ،برای راحتی کار،همواره میتوان با مشاهده LEDهای معمولیکه درخروجی مقایسه کننده ها که درخروجی مقایسه کننده ها متصل شده است به عملکرد سنسورهاپی برد LED یک تاLED چهارلامپهای LED معمولی هستند وروی روبات به صورت نمایشی قرارمیگیرند در اصل می توان انها را خروجی مدار نامید واز روی انها،برنامه نرم افزاری را نوشت و اصلاح کرد.

خروجی ها به ترتیب به پایه های P1.0 تا1.3 P از پورت یک وارد می شوند.توجه کنید که وقتی میخواهید پورت یک رابه صورت ورودی استفاده کنید در ابتدای برنامه ترانزیستورهای خروجی را از کار بیاندازید.این کار با نوشتن FFH در پورت P1 در ابتدای برنامه ،صورت میگیرد.

اگراین کار رانکنید وترانزیستورهای خروجی روشن باقی بمانند سطح خروجی را به صفرولت میکشانندوP1همواره OOH یا صفر را دریافت خواهد کرد. دستوری که باعث خواندن ورودی از پین می گردد P1و A MOV است بعضی از دستورات هستند که بجای خواندن از پین از latch ها می خوانند که دربهکار بردن انها باید دقت شود.

مقاومت داخلی سنسورهای مادون قرمز تابعی از نور برخورد کننده به انها است درنورهای ضعیف یا یک اتاق تاریک مقاومت سنسورهایی که ما استفاده کردهایم بالاتر از 100 k است. این مقاومت وقتی که سنسورها را در معرض نوربا شدت معمولی قرار دهیم تا  1 k هم کاهش پیدا می کند.

وقتی استوانه ای حاوی سنسور و LED مادون قرمز را جلوی یک جسم سیاه رنگ می گیریم مقاومتی حدود 50 k  وزمانی که جلوی یک جسم سفید رنگ قرار میدهیم مقاومتیحدود 20 k  رانشان میدهد .پتانسیو مترهای ورودی را طوری تنظیم می کنیم که وقتی جسم سیاه را داریم در خروجی +5 ولت برقرار باشد ووقتی جسم سفیدی را در مقابل استوانه های فلزی قرار دارد صفر ولت درخروجی داشته باشیم.



به شکل بالا نگاه کنید .چهار عدد سنسور داریم که وضعیت خط سیاه را نشان میدهند از لحاظ اماری برای چهار عدد سنسور ما می توانیم شانزده حالت حداکثر تصور کنیم که سنسور روی خط سیاه یا روی زمینه سفید فرض شود .

در زیر لیست این شانزده حالت را می توانید ببینید.

1- هیچ کدام از سنسورها روی خط سیاه قرار ندارند و همگی صفررا نشان میدهند.

2- فقط سنسور شماره 1روی خط سیاه قرار دارد.

3- فقط سنسور شماره 2روی خط سیاه قرار دارد

4- فقط سنسور شماره3 روی خط سیاه قرار دارد.

5- فقط سنسور شماره 4 روی خط سیاه قرار دارد.

6- فقط سنسور شماره 2و1روی خط سیاه قرار دارد.

7- سنسورهای 3و2 روی خط سیاه قرار دارد.

8- سنسورهای 4 و3 روی خط سیاه قرار دارد.

9- سنسورهای 4 و1 روی خط سیاه قرار دارد.

10- سنسورهای 3 و1 روی خط سیاه قرار دارد.

11- سنسورهای 4 و2 روی خط سیاه قرار دارد.

12- سنسورهای 3 و2 و1روی خط سیاه قرار دارد.

13- سنسورهای 4 و3 و2 روی خط سیاه قرار دارد.

14- سنسورهای 4 و1و2روی خط سیاه قرار دارد.

15- سنسورهای 4 و1و3 روی خط سیاه قرار دارد.

16- سنسورهای4 و3 و2 و1همگی روی خط سیاه قرار دارند.

شرایط حرکت روبات

حالت اول: روبات هنوز مسیر را پیدا نکرده

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

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

حالت دوم :گردش به راست

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

1- فقط سنسور شماره 3 مسیر سیاه را نشان دهد.

2- فقط سنسورهای شماره 3 و4 مسیر سیاه را نشان دهند.

3- فقط سنسورهای شماره 2و3 و4 مسیر سیاه را نشان دهند.

حالت سوم:گردش به چپ

عملیات گردش به چپ زمانی رخ میدهد که یکی از حالتهای زیر رخ داده باشد.

1- فقط سنسور شماره 1 مسیر سیاه را نشان دهد.

2- فقط سنسورهای شماره 1و4 مسیر سیاه را نشان دهند.

3- فقط سنسورهای شماره 1و2و4 مسیر سیاه را نشان دهند.

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

حالت چهارم:حرکت مستقیم به جلو

برای زمانی رخ می دهد که سنسورها دارای وضعیت زیر باشند.

1-زمانی که سنسور شماره 2 مسیر سیاه را نشان دهد.

2- زمانی که سنسورهای شماره 1و2 مسیر سیاه را نشان دهد.

3- زمانی که سنسورهای شماره 2 و3 مسیر سیاه را نشان دهد.

4- زمانی که سنسورهای شماره 2و4 مسیر سیاه را نشان دهد.

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

حالت پنجم:حرکت به جلو و راست

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

1- سنسورهای 1 و3 مسیر سیاه را نشان دهند.

2- سنسورهای 1 و2 و3 مسیر سیاه را نشان دهند.

3- سنسورهای 1 و3 و4 مسیر سیاه را نشان دهند.

4- سنسورهای 1 و3 و3 و4 مسیر سیاه را نشان دهند.

در حالت پنجم یکباربه چرخ راست و چپ با هم دستور جلو گرد صادر شود و بعد از ان یک مهلت چند ثانیه ای به چرخ سمت چپ دستور جلو گرد صادر می شود.

حالت ششم :حرکت به سمت عقب و گردش به راست وچپ

این حرکت زمانی رخ می دهد که فقط سنسور شماره 4 مسیر سیاه را نشان دهد .

وقتی فقط سنسور شماره 4 فعال است و مسیر سیاه را نشان می دهد باید روبات به سمت عقب برگردد اگر بعد از چند حرکت 1و 4 فعال شدند به سمت چپ گردش کند و اگر 3 و4 فعال شدند به سمت راست گردش کند.

سنسورها از پورت P1 وارد می شوند پس:



با چهار عدد بیت می توان شانزده حالت منطقی را ترسیم کرد.(عدد مربوطه در P1)



روش راه اندازی موتور پله ای

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







زیر برنامه زیر برای مرحله موجود کد مربوطه را قرار میدهد.



برنامه های اسمبلی

زیر برنامه Encoder

این زیر برنامه برای هر مرحله که در R7 قرار دارد کدی عددی صادر می کند ودر R4 قرار میدهد.

کلا 8 مرحله وجود دارد و 8 عدد کد.

Org 0500H  
Encoder:  
   
  Nop ;
Label 1: cjne R7,#1H, label 2 ;
  Move R4 , # 9H ;
  Ljmp encoder – end ;
   
Label 2: cjne R7,#2H, label 3 ;
  Move R4 , # 8H ;
  Ljmp encoder – end ;
   
Label 3: cjne R7,#3H, label 4 ;
  Move R4 , # 0c H ;
  Ljmp encoder – end ;
   
Label 4: cjne R7,#4H, label 5 ;
  Move R4 , # 4 H ;
  Ljmp encoder – end ;
   
Label 5: cjne R7,#5H, label 6 ;
  Move R4 , #6 H ;
  Ljmp encoder – end ;
   
Label 6: cjne R7,#6H, label 7 ;
  Move R4 , #2 H ;
  Ljmp encoder – end ;
   
Label 7: cjne R7,#7H, label 8 ;
  Move R4 , #3 H ;
  Ljmp encoder – end ;
   
Label 8: Move R4 , #2 H ;
  encoder – end :Ret
  Ljmp encoder – end ;

زیر برنامه ای برای جلو رفتن موتور سمت راست

org 0600H    
Right _go _ front    
     
  Cnje R6,#8 , not –equal 8  
  Move R6,#1 ; R6=8
  Ljmp encoder- call 0  
     
not – equal 8 : jc les-than 8  
  Move R6,#1 ; R6>8
  Ljmp encoder- call 0  
     
Les-than 8: inc R6 ; R6<8
     
Encoder call 0: mov R7,R6  
  Lcall encoder  
  Mov P2 ,R4  
  Ret  

زیر برنامه برای حرکت چرخ راست به سمت عقب.

- چرخ سمت راست به p2 وصل است.

org 0700H    
Right _go _ Back    
     
  Cnje R6,#8 , not –equa 1  
  Move R6,#8 ; ;R=1
  Ljmp encoder- call 2  
     
not – equal 1: jc les-than1 ;R6<1
  Dec R6 ;R6>1
  Ljmp encoder- cal l2  
     
Les-than 1: mov R6,#8 ;R6<8
     
Encoder call 2: mov R7,R6  
  Lcall encoder  
  Mov P2 ,R4  
  Ret  

زیربرنامه ای برای حرکت دادن چرخ سمت چپ به جلو:

R5=8مرحله موتور را نشان میدهد.

org 0800H    
Right _go _ Front    
     
  Cnje R5,#8 , not –equa8  
  Move R5,#1  
  Ljmp encoder- call 3  
     
not – equal 8: jc les-8 ;R5 <8
  Mov R5, # 1 ;R5>8
  Ljmp encoder- cal 3  
     
Les-8: Inc R5  
     
Encoder call 3: mov R7,R6  
  Lcall encoder  
  Mov P0 ,R4  
  Ret  

موتور سمت چپ به P0وصل است.

زیر برنامه ای برای عقب رفتن موتور سمت چپ:

org 0900H    
Right _go _ Back    
     
  Cnje R5,#1 , not –equa1  
  Move R5,#8 ;R5=1
  Ljmp encoder- call 4  
     
not – equal 8: jc les-1 ;R5 <1
  Dec R5 ;R5>1
  Ljmp encoder- cal 4  
     
Les-than 1: mov R5,# 8 ;R5<1
     
Encoder call 4: mov R7,R5  
  Lcall encoder  
  Mov P0 ,R4  
  Ret  

زیر برنامه تاخیر کوتاه 4msec

org 0A00H  
  nop
  nop
  nop
  nop

زیر برنامه تاخیر متوسط 100msec

deley100m:  
  mov R0 ,# 50
  mov Tmod, # 0001 0001 b
timer-set: mov Tho ,# 07 H
  mov Tho ,# D0 H
  set b Tro
  clr Tfo
loop : jnb Tfo,loop
  clr Tfo
  dec R0
  cjne R0,# 1, timer- set
  ret

زیر برنامه تاخیر بلند 2sec

org 0b00H  
   
deley 2s: mov R3,# 20
again2: call deley 100 m
  dec R3
  cjne R3 , 1H , again 2
  ret

زیر برنامه تاخیر 10sec

deley 10s: mov R3,# 100
again2: 1 call deley 100 m
  dec R3
  cjne R3 , 1 , again 10
  ret

برنامه استارت:

org 0000H  
  ljmp start 1
   
  org 1000H
start 1: mov P1, # FFH
  mov sp , #
  1 call deley 2s
start : mov A,P1
  Anl A, # 1111 0000 b

برنامه اصلی

main:  
  mov P1,# FFH
  call deley 0
  mov A,P1
Anl A, # 0000 1111 b
  Mov R1,A
State 1: cjne R1 ,# 0, state2
  L call find-line
  Ljmp start
   
State 2: cjne R1 ,# 1, state 3
  L call go-left
  Ljmp start
   
State 3: cjne R1 ,# 2, state4
  L call go-front
  Ljmp start
   
State 4: cjne R1 ,# 4, state5
  L call go-right
  Ljmp start
   
State 5: cjne R1 ,# 8, state6
  L call go-back
  Ljmp start
   
State 6: cjne R1 ,# 3, state7
  L call go-front
  Ljmp start
   
State 7: cjne R1 ,# 6, state8
  L call find-front
  Ljmp start
   
State 8: cjne R1 ,# 0CH, state9
  L call go-right
  Ljmp start
   
State 9: cjne R1 ,# 9, state10
  L call go-left
  Ljmp start
   
State 10: cjne R1 ,# 5, state11
  L call go-front-one-right
  Ljmp start
   
State 11: cjne R1 ,# 0AH, state12
  L call go-front
  Ljmp start
   
State 12: cjne R1 ,# 7, state13
  L call go-front-one-right
  Ljmp start
   
State 13: cjne R1 ,# 0EH, state14
  L call go-right
  Ljmp start
   
State 14: cjne R1 ,# 0bh, state15
  L call go-left
  Ljmp start
   
State 15: cjne R1 ,# 0DH, state16
  L call one-front-one-right
  Ljmp start
   
State 16: one-front-one-right
  Ljmp start
   

زیر برنامه های اصلی

1-حرکت روبات به سمت جلو

go-front:

l call right-go- front
l call left-go- front
l call deley 100m
ret

2-حرکت روبات به سمت عقب

go-back:

l call right-go- front
l call left-go- front
l call deley 100m
ret

3-چرخش روبات به سمت راست

go-right:

l call left-go- front
l call deley 100m
ret

4-چرخش روبات به سمت چپ

go-left:

l call right-go- front
l call deley 100m
ret

5-عملیات چرخیدن به دورخود از چپ

rotate-left

l call right-go-front
l call left-go- back
l call deley 100m
ret

6-حرکت یکی جلو – یکی راست

one-front-go- right:

l call right-go-front
l call left-go-front
l call deley 100m
l call left-go-front
l call deley 100m
ret

موتورهای پله ای:

معرفی:

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

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

مدار راه انداز موتور پله ای با ای سی به شماره uln 2003:

این ا ی سی یک بافر not کننده با ترانزیستور خروجی کلکتور باز است. اگر بخواهیم همین مدار را با ترازیستور طراحی کنیم استفاده از یک دیود هم الزامی است.

سه نوع کنترل بر روی موتور پله ای می توان داشت فرض می گیریم موتور پله ای ازنوع چهار قطبی باشد:

1- تر تیب چهار مرحله ای معمولی پله کامل



2- تر تیب چهار مرحله ای پله نصفه یا نیم پله



3- تر تیب هشت مرحله ای پله کامل موجی



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

در مورد موتور پله ای که بکار برده شده است سیم پیچهای A وB وC وD و همچنین خروجیهای Com همگی توسط سیمهای رنگی مشخص شده اند خروجیهای Com با رنگ سبز از موتور خارج شده اند.

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



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

مدارات الکتریکی :

مدارات الکتریکی مورد نیاز در با استفاده از نرم افزار EWB طراحی شده اند.

• نرم افزار شماره 1

• نرم افزار شماره 2




 

تکنولوژی متالوسرامیک چیست


تکنولوژی متالوسرامیک چیزی بود که سال های پیش توسط دانشمندان هوافضای شوروی کشف گردید.این تکنولوژی پس از فروپاشی شوروی به دنیای صنعت و اتومبیل معرفی شد.شاید اساس کلی این تکنولوژی از بین بردن اصطکاک و استهلاک در جهت بالا بردن راندمان مکانیکی دستگاه های صنعتی و جلوگیری از اتلاف نیرو باشد ولی این تکنولوژی چگونه عمل می کند؟

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

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

آیا می توان اصطکاک موجود در دیواره ها سیلندرهارا بدون از دست رفتن تراکم موتور از بین برد؟

آیا میتوان بدون لق کردن چرخ دنده ها ،اصطکاک موجود دربین آنها را به حداقل رساند؟بله!

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

چندی پیش کمپانی یاماها در یکی از محصولات خود،برای ساخت سیلندرهای موتور به جای چدن از سرامیک استفاده کرد که نتیجه آن بسیار رضایت بخش بود ولی سرامیک ماده ای بسیار گران بها است و فراگیر شدن آن نیاز به گذشت زمان و ارائه راهکارهای جدید برای تولید ارزان تر آن دارد.

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

تا کنون در بسیاری از موارد دیده شده که فلزات و سطوحی که در حال کارکرد اصطکاک زیادی را باعث می شوند،با لایه ای از سرامیک پوشیده شده اند ولی این شیوه را نمی توان با تکنولوژی متالوسرامیک یکسان دانست.

اگر چنانچه بخواهیم سطوح پر اصطکاک را بپوشانیم به سه مشکل عمده بر می خوریم:

_این لایه سرامیکی بسیار گران است

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

باز و بسته کردن یک دستگاه غول پیکر که به عنوان مثال در خط تولید اتومبیل فعال است حداقل به 3 یا 4 روز زمان نیاز دارد که این کار مساوی است با خواباندن یا خاموش کردن خط تولید و خلاصه هزاران یا حتی میلیون ها $ زیان مالی.

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

متالوسرامیک چیست و نسبت به سرامیک چه برتری هایی دارد؟

برای درک تکنولوژی متالوسرامیک باید با دنیای نانوتکنولوژی وارد شویم.

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

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

سیلند اتومبیل نیز چنین وضعیتی دارد یعنی در نگاه اول بقدری صاف و صیقلی است که همانند آیینه تصویر را انعکاس می دهد ولی این سطح نیز پر است از نقاط بر جسته ، فرورفته و نوک تیز.دمای قسمت نوک تیز این برآمدگی ها گاها به 1000 در جه سانتیگراد میرسد. اگر چه دمای کارکرد روغن ممکن است بین 90 تا 150 درجه ساتیگراد باشد ولی اگر بخواهیم بصورت نقطه ای به این قضیه نگاه کنیم ،همین نقطه های داغ و کوچک به مرور زمان باعث خراب شدن روغن می شوند.

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

لایه متالو سرامیک با لایه سرامیک معمولی تفاوت بسیار دارد.چرا که سرامیک معمولی همانند رنگ روی سطوح کشیده میشود در حالی که ذرات متالوسرامیک با ابعاد نانو ،بصورت اتم به اتم با مولکول های فلز پیوند میخورند و تقریبا بصورت مادام العمر بر روی سطوح باقی می مانند.سرامیک معمولی از سختی بالایی بر خوردار است ولی ترد و شکننده است در حالی که متالوسرامیک علاوه بر داشتن سختی بالا به هیچ عنوان شکننده نیست.سختی متالوسرامیک 10 برابر فولاد است در حالی که اصطکاک آن 10 برابر کمتر از آیینه است!به زبان ساده ،در صورت استفاده از این تکنولوژی تمامی سطوح موتور که دارای اصطکاک و استهلاک هستندبا لایه ایبسیار نازک ،فوق العاده مستحکم و صیقلی پوشیده می شوند.حال تاثیر این تکنولوژی را بر روی موتور و دستگاه های صنعتی را بررسی می کنیم:

همانطور که ذکر شد تمامی سطوح مستهلک و دارای اصطکاک همانند دیواره سیلندرها با لایه ای از متالوسرامیک پوشیده می شوند.این امر باعث پر شدن خطوط میکروسکوپی سیلندر و افزایش کمپرس موتور می شود. بر اثر از بین رفتن اصطکاک سیلندرها ،راندمان مکانیکی موتور افزایش و اتلاف انرژی کاهش پیدا می کند. در این حالت موتور راحت تر کار کرده و سریع تر دور بر می دارد.لرزش و صدای اضافی موتور به حداقل می رسد.استهلاک قطعاتی چون رینگ و پیستون ،سیلندرها و میل بادامک تا ده ها بار و شاید از همه مهمتر مصرف سوخت از 10 تا 25 درصد(بسته به شرایط کارکرد موتور) کاهش می یابد.

در کل می توان مزایای این تکنولوژی را این چنین بر شمرد:

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

یکی دیگر از مزایای این تکنولوژی تعمیر دستگاه های صنعتی و موتور اتومبیل بدون نیاز به باز کردن قطعات است .در مواردی پون خط افتادگی بر روی سیلندر موتور باید قطعات موتور را باز کرده و با تراشیدن سیلندر و استفاده از رینگ و پیستون بزرگ تر این مشکل را بر طرف کرد که این امر با اتلاف زمان و هزینه همراه است ولی اگر از تکنولوژی متالوسرامیک استفاده کنید ،می توانید بدون باز کردن موتور و تنها با افزودن این ماده به روغن موتور خطوط سیلندر را پر کرده و شرایط کارکرد موتور را به حالت عادی باز گردانید.استفاده از این محصول به تمامی کسانی که دارای اتومبیل یا دستگاه های صنعتی هستند پیشنهاد می شود.حال که مبحث کاهش مصرف سوخت و آلودگی هوا از یک سو و مسئله تقویت موتور از سوی دیگر مورد توجه قرار گرفته است بیایید از این محصول استفاده کنیم.تکنولوژی متالوسرامیک محصول شرکت *زادو* از سوی شرکت های معتبری چون مرسدس بنز،ولوو و جنرال موتورز تایید شده است