رباتیک و هوافضا

آموزش پروژه محور رسپبری پای – جلسه هفتم کنترل استپ موتور

به نام خدا

آموزش پروژه محور رسپبری پای – جلسه هفتم کنترل استپ موتور

controlling-stepper-motor-with-raspberry-pi

در این جلسه از آموزش پروژه محور رسپبری پای میخواهیم یک موتور پله ای ( استپر موتور ) را توسط برد رسپبری پای راه اندازی کنیم و سرعت آن را کنترل کنیم .

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

Unipolar-stepper-motor

 

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

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

بر روی برد رسپبری پای ولتاژ ۵ ولت ( پین ۲ و ۴ ) و ۳٫۳ ولت ( پین ۱ و ۱۷ ) برای اتصال به ماژول ها و سنسور ها وجود دارد . این پین ها به طور موازی با پاور پردازنده قرار دارند بنابراین کشیدن جریان زیاد از این پین ها بر روی پردازنده تاثیر میگذارد . از پین ۳٫۳ ولت میتونیم با خیال راحت ۱۰۰ میلی آمپر بکشیم . برد های رسپبری پای توانایی جریان دهی بیشتر از ۱۰۰ میلی آمپر را از ۵ ولت و ۳٫۳ ولت خود را ندارند ولی موتور ما جریان بیشتری خواهد کشید همچنین موتور ما ۹ ولت است و نمیتوانیم از ولتاژ هایی که رسپبری پای برای ما فراهم میکند استفاده کنیم . بنابریان نیاز به یک منبع تغذیه دوم داریم که ما در این جلسه از یک باتری ۹ ولت استفاده میکنیم . برای اینکه ببینید استپ موتور شما چند ولت است مدل آن را در اینترنت سرچ کنید . برای اینکه بتوانیم ولتاژ باتری را برای استپ موتور کنترل کنیم نیاز به یک مدار راه انداز داریم که دستورات را از برد رسپبری پای بگیرد .

بیشتر بخوانید...  آموزش پروژه محور رسپبری پای – جلسه دوم پیکربندی

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

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

سایر قطعاتی که نیاز داریم به شرح زیر است :

  • تعدادی سیم
  • سه عدد مقاومت ۲۲۰ اهم یا یک کیلو اهم
  • استپ موتور
  • دو عدد میکروسوئیچ
  • چهار عدد ترانزیستور ۲N2222
  • چهار عدد دیود ۱N4007
  • خازن ۱۰۰۰ میکرو فاراد
  • بردبورد

توضیحات مدار :

controlling-stepper-motor-with-raspberry-pi-2

 

استپ موتور ما ۲۰۰ گام دارد که ۳۶۰ درجه را تکمیل میکند یعنی هر گام ۱٫۸ درجه دارد . برای راه اندازی یک استپ موتور چهار مرحله ای نیاز داریم تا ۴ پالس منطقی به مدار راه انداز موتور بدهیم . در این موتور ، هر گام یک چرخش ۱٫۸ درجه ای ایجاد میکند بنابراین برای کامل شدن یک سیکل چرخش نیاز به ۲۰۰ پالس داریم . در نتیجه میتوان گفت ۲۰۰ تقسیم بر ۴ یعنی ۵۰ سیکل منطقی نیاز داریم تا موتور یک دور چرخش خود را کامل کند .

ما هر کدام از این چهار کویل ( همان سیم پیچ های موتور ) را توسط یک ترانزیستور NPN مدل ۲N2222 راه اندازی میکنیم . این ترانزیستور ها پالس منطقی را از رسپبری پای میگیرد و کویل مربوطه را راه اندازی می کند . چهار ترانزیستور ، چهار پالس منطقی را از برد رسپبری پای به کویل ها اعمال میکنند .

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

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

توضیح عملکرد برنامه :

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

چند دستور مهم برنامه را توضیح میدهیم .

ابتدا فایل GPIO را از کتابخانه فراخوانی میکنیم . تابع زیر ، پین های GPIO ( ورودی و خروجی ) رسپبری پای را فعال میکند . نام GPIO را به IO تغییر میدهیم .

import RPi.GPIO as IO

برای اشاره کردن به پین های رسپبری پای میتونیم از شماره پایه ان یا شماره GPIO آن استفاده کنیم .

IO.setmode (IO.BCM)

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

​IO.setup(5,IO.OUT) 
IO.setup(17,IO.OUT)
IO.setup(27,IO.OUT)
IO.setup(22,IO.OUT)

پین های GPIO26 و GPIO19 را به عنوان ورودی تعریف میکنیم . میکروسوئیچ های ما به همین پین ها وصل می شود .

IO.setup(19,IO.IN) 
IO.setup(26,IO.IN)

اگر شرط داخل پرانتز درست بود دستورات داخل حلقه یک بار اجرا میشوند . بنابراین اگر GPIO شماره ۲۶ ، low شود دستورات داخل حلقه یک بار اجرا میشوند و اگر این پین low نشود دستورات داخل حلقه اجرا نمیشود .

if(IO.input(26) == False):

دستور زیر ، حلقه را ۱۰۰ بار اجرا می کند . مقدار x از ۰ تا ۹۹ افزایش می یابد .

While 1 : این دستور برای حلقه بی نهایت استفاده می شود . با این دستور جملات داخل حلقه مدام اجرا می شوند .

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

کد های برنامه :
برای دانلود کد های برنامه بر روی لینک زیر کلیک کنید .

 

دانلود فایل
پایان جلسه هفتم
تا جلسه بعد خدا نگهدار

 

 

دیدگاه‌ها (0)

*
*