کنترلر موتور DC و پله ای | MDC20


درایور MDC20شما می توانید درایور MDC20 را از فروشگاه های معتبر زیر تهیه نمایید:

خرید درایور MDC20 از ربو ایکیو
خرید درایور MDC20 از آفتاب رایانه
خرید درایور MDC20 از مانا موتور

درایور MDC20 یک کنترلر موتور DC و Stepper با قابلیت های فراوان است. به کمک درایور MDC20 قادر خواهید بود بدون هیچ سخت افزار واسط، مستقیما از طریق کامپیوتر و تنها از طربق یک کابل USB، شبکه ای متشکل از موتورهای DC و Stepper را در نرم افزارهای معروفی هم چون VISUAL STUDIO ، LABVIEW و MATLAB کنترل و هدایت کنید.

قابلیت های سخت افزاری:

1- درایو و کنترل دو موتور DC و یا یک موتور پله ای

2- ولتاژ کاری 5.5 تا 36 ولت

3- قابلیت جریان دهی 5 آمپر در هر کانال خروجی

4- محافظت در برابر جابه جا زدن ورودی تغذیه

5- محافظت در برابر دمای بیش از حد

6- محافظت در برابر اتصال کوتاه در خروجی خروجی تا 5 ثانیه

7- محافظت در برابر جریان بیش از 10 آمپر(با استفاده از فیوز در ورودی تغذیه)

8- دو ورودی انکودر 32 بیتی (حداکثر فرکانس پالس ورودی 5 کیلو هرتز)

9- دارای پروتکل های ارتباطی زیر :

USB : استفاده جهت ارتباط بواسط کامپیوتر از طریق نرم افزارهای مختلف همانند MATLAB و C# و …

UART : استفاده جهت ارتباط با بوردهای واسط دیگر همانند آردوینو، موشن کنترلر و …

10- قابلیت تنظیم نرخ ارسال اطلاعات از 300 تا 57600 بیت در ثانیه

11- قابلیت شبکه شدن درایور و امکان کنترل تمامی آنها از طریق یک کابل USB(کاهش سرعت انتقال اطلاعات با افزایش تعداد بردها به صورت شبکه)

12- دارای یک خروجی 5 ولت 1 آمپر برای راه اندازی مدارات متصل به درایور و یا تغذیه فن در صورت نیاز

قابلیت های نرم افزاری:

1- قابلیت اتصال به نرم افزارهایی هم چون VISUAL STUDIO ، LABVIEW و  MATLAB به کاربر امکان انجام پردازش های چندگانه در نرم افزار هدف را می دهد. به عنوان مثال به کمک درایور MDC20 می توانید ربات های متحرکی ساخته و پردازش های هوشمند را در نرم افزار متلب انجام داده و دستورات حرکتی را برای موتورها ارسال کنید.

2- درایور MDC20 با دارا بودن دو ورودی انکودر قادر به کنترل حلقه بسته دو موتور DC بوده و به کمک آن می توانید الگوریتم های کنترلی خود را در نرم افزاری هم چون MATLAB پیاده سازی کنید.

3- امکان تنظیم شتاب موتورها برای جلوگیری از سرعت گرفتن ناگهانی و یا توقف سریع

4- دارای رابط کاربری مخصوص برای تست و راه اندازی درایور.

5- دارای نمونه مثال های  راه اندازی به زبان های برنامه نویسی مختلف در بلاگ آموزشی شرکت.

برخی از موارد کاربرد:

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

++ سیستم های اتوماسیون :
کنترل دقیق حرکات و درایور موتورهای جریان بالا

++ سیستم های CNC :
کنترل موتورهای دی سی انکودر دار(کنترل حلقه بسته با فیدبک از موقعیت) و کنترل موتورهای پله ای

++ پرینترهای سه بعدی

++ کنترل روشنایی

++ کنترل شیرهای مغناطیسی

++ سیستمهای کنترل تردد

++ ویلچرهای برقی

++ نوار نقاله

++ درب های اتوماتیک

++ تجهیزات پمپاژ

++ ساخت تجهیزات آزمایشگاهی همانند پیاده سازی انواع کنترلرها و پاندول های معکوس و …

1-  معرفی
ویژگی های کلیدیمشخصات درایور

2- آماده به کار کردن درایور
نصب درایور ارتباطی | درگاه ارتباطیروشن کردن درایور

3- راه اندازی در حالت کنترل دو موتور DC
تنظیمات اولیه | تنظیم مودجدول دستوراتتنظیم سرعت موتورهاتنظیم شتاب موتورهادریافت مقادیر انکودرها

4- راه اندازی در حالت کنترل یک موتور پله ­ای
تنظیمات اولیه | تنظیم مودجدول دستوراتتنظیم مود راه اندازیراه­ اندازی موتور دوقطبیراه اندازی موتور تک قطبی

5- نحوه­ ی شبکه کردن
شبکه­ کردن سه یا چند موتور DCشبکه­ کردن دو یا چند موتور پله ­ایشبکه ­ای از موتورهای DC و پله­ ای

6-  نکات مورد توجه در درایور

  1-1 درایور MDC20 

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

  2-1 ویژگی های کلیدی درایور MDC20

از ویژگی های منحصر به فردی که درایور MDC20 را از سایر محصولات موجود در بازار متمایز می کند می ­توان به موارد زیر اشاره کرد:

–  درایور MDC20 یک درایور پلتفرم با قابلیت اتصال به نرم ­افزارهایی هم­چون MATLAB، VISUAL STUDIO، LABVIEW و… می باشد و می توان با اتصال فقط یک کابل USB آن را راه ­اندازی و کنترل کرد.

–  درایو دو دسته از مهم­ترین موتورهای پرکاربرد به طوری که با در اختیار داشتن این درایور قادر خواهید بود دو موتور DC و یا یک موتور پله ­ای را هدایت و کنترل کنید.
–  امکان شبکه کردن  درایور و کنترل تمامی آن­ها فقط  با یک کابل USB(کاهش سرعت انتقال اطلاعات با افزایش تعداد بردها).

–  پشتیبانی و وجود آموزش­ های گام به گام در سایت شرکت و بلاگ آموزشی ربات سازان

 

  3-1 مشخصات درایور MDC20

–  درایو و کنترل دو موتور DC یا یک موتور پله­ ای با ولتاژ بین 5.5  تا 36  ولت  و با جریان دهی دائمی 5  آمپر  و جریان دهی لحظه ­ای 10  آمپر برای هر کانال خروجی (توان نامی 180  وات برای هر کانال خروجی).

–  محافظت در برابر جابجا زدن تغذیه بورد (Reverse Voltage Protection) ، اتصال کوتاه در خروجی موتورها به مدت 5 ثانیه، جریان کشی بیش از10 آمپر با قرار دادن فیوزدر ورودی تغذیه ،  دمای بیش از حد، قطع ناگهانی VCC  و یا زمین.

– قابلیت اتصال مستقیم به کامپیوتر با استفاده از پورت USB.

– ارسال و دریافت فرمان ­ها با سرعت 300 تا 57600 بیت در ثانیه.

– قابلیت شبکه شدن چند داریور به صورت همزمان و کنترل تمامی آن­ها فقط با یک کابل USB.

– توان مصرفی فوق العاده پایین در حالت استراحت (Standby).

– دارای دو ورودی  32 بیتی شمارنده ­ی انکودر (Encoder Input)  در دو مد کاری ساده و پیشرفته (quadrature)

– دارای پروتکل ­های  USB و UART برای ارتباط با دیگر اجزای سیستم و کامپیوتر.

– قابلیت تنظیم شتاب موتورها برای جلوگیری از سرعت گرفتن سریع و امکان توقف نرم.

– قابلیت پیاده سازی الگوریتم ­های کنترل موتور(موقعیت، سرعت و شتاب) در نرم افزار هدف.

– محافظت موتورها در مقابل تغییر ناگهانی جهت موتورها و افزایش طول عمر آنها.
–  دارای کدهای راه ­اندازی نمونه به زبان ­های برنامه نویسی مختلف از جمله زبان برنامه نویسی C++ , C#  و همچنین نرم افزار MATLAB در بلاگ آموزشی شرکت.
– دارای یک خروجی 5 ولت یک آمپر برای راه ­اندازی مدارات متصل به درایور و همچنین تغذیه فن در صورت نیاز.

———-

ورودی و خروجی های درایور MDC20

بخش های مختلف درایور MDC20 در شکل 1 به نمایش درآمده که به شرح زیر است:

1) درگاه USB

2) سوئیچ های تنظیم مد – به کمک سوئیج ها مد عملیاتی درایور تنظیم می گردد

3) جعبه فیوز درایور

4) ورودی تغذیه

5) کلید ریست

6) LED وضعیت فعال، ارسال اطلاعات و دریافت اطلاعات از درگاه USB

7) سوکت پروتکل UART / RX-TX-GND

8) سوکت انکودر 2

9) سوکت انکودر 1

10) LED پاور درایور

11) خروجی 5 ولت

12) خروجی موتور 1

13) خروجی موتور 2

  2 آماده به کار کردن درایور

 برای ارتباط با درایور بایستی ابتدا اقدام به نصب درایورهای مورد نیاز نموده و سپس توسط کابل USB یا درگاه UART به روش زیر با آن ارتباط برقرار نمایید.

  1-2 نصب درایور و نرم افزارهای مورد نیاز

 برای ارتباط با درایور MDC20 باید درایور FTDI را بر روی سیستم خود نصب کنید پس از نصب درایورهای مورد نیاز در صورت اتصال درایور از طریق پورت USB به کامپیوتر درایور شناسایی شده و سپس تنظیمات درگاه شناخته شده از جمله نرخ ارسال اطلاعات را در کامپیوتر منطبق با درایور انجام دهید. (برای دریافت راهنمای نصب درایور FTDI و کسب اطلاعات راجع به تنظیمات پورت USB در ویندوز به این مطلب آموزشی مراجعه فرمایید).

  2-2 ارتباط با درایور از دو درگاه USB و UART

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

 

 3-2  نحوه ­ی روشن کردن درایور 

درایور MDC20 را می­ توانید با ولتاژی از 5.5 تا 36 ولت راه اندازی کنید. مطابق شکل 1 از طریق درگاه ورودی توان می ­توانید  درایور را تغذیه کنید.  سپس در صورتی که تغذیه بورد را درست متصل کرده باشید چراغ Power’s LED که مطابق شکل1 در قسمت میانی بورد قرار دارد روشن خواهد شد.

توجه: در صورتی که تغذیه ­ی بورد را جابجا وصل کنید ( VCC و GND را جابجا متصل کنید)، درایور MDC20 مجهز به مدار محافظت در برابر جابجا زدن ولتاژ ورودی بوده و از صدمه دیدن بورد جلوگیری می­ کند.

 

  3 کنترل MDC20 در حالت درایو دو موتور DC

در این قسمت قصد داریم راه اندازی دو موتور DC توسط درایور MDC20 را آموزش دهیم. ابتدا بایستی تنظیمات اولیه درایور که در ادامه شرح داده شده است را انجام دهید.

  1-3 انجام تنظیمات اولیه – DC

برای این منظور تغذیه درایور را وصل کرده و کابل USB را متصل نمایید. سوئیچ های 1 و 2 به هنگام شبکه کردن چند بورد با یکدیگر مورد استفاده قرار می گیرند و در حالتی که می خواهید تنها یک بورد را از طریق پورت USB کنترل کنید باید همواره در حالت ON قرار داشته باشند. مطابق شکل زیر سوئیچ های 1 و 2 و 4  را در حالت ON و سوئیچ 3 را در حالت OFF قرار دهید. جدول زیر چهار مد عملیاتی درایور MDC20 را نشان می­ دهد.

شکل2: حالت سوئیچ ها برای ورود به مد تنظیمات

شکل2: حالت سوئیچ ها برای ورود به مد تنظیمات

جدول1: مودهای عملیاتی درایور MDC20
Operating Mode DIP Switch 4 DIP Switch 3
DC Mode ON ON
Stepper Mode OFF ON
Setting Mode ON OFF
Factory Reset Mode OFF OFF

بعد از قرار دادن درایور در حالت مود انجام تنظیمات (Setting Mode) دکمه ریست که دقیقا در پشت سوئیچ­ ها قرار دارد را به مدت یک ثانیه فشار دهید تا درایور وارد مد تنظیمات ­شود. قالب دستورات ارسالی برای درایور در این حالت از چپ به راست به صورت زیر می ­باشد:

Encoder Mode Baud Rate Board Address

از آنجایی که نحوه­ ی ارتباط با درایور MDC20 از طریق پروتکل­ های ارتباطی USB و UART می­ باشد بنابراین در این نوع از پروتکل­ ها اطلاعات به صورت سریال در بسته ­های 8 بیتی منتقل می­ شوند(در ارتباط سریال علاوه بر داده­ ها معمولا یک یا دو بیت توقف(Stop Bit) و یک بیت Parity به همراه داه ­ها منتقل می ­گردند).  بنابراین در قالب دستورات فوق هر یک از رشته ­ها باید اعدادی در مبنای 16 (هگزادسیمال) که حداکثر 8 بیت را اشغال می­ کنند، باشند.

به عنوان مثال عدد 50 در مبنای 16 به صورت 0X32 نمایش داده می ­شود که فرم باینری آن به صورت زیر می­ باشد:

0 1 0 0 1 1 0 0

حال به توضیح قالب دستورات فوق می ­پردازیم. از آنجایی که هر بورد  MDC20 می­­ تواند یک آدرس از 0 تا 99 داشته باشد باید آدرس بورد(Board Address) مورد نظر خود را قبل از کار با آن تنظیم کنید.

توجه: آدرس بورد پیش فرض کارخانه  صفر می باشد.

در درایور MDC20 نرخ ارسال اطلاعات(Baud Rate) می­ تواند از 300 تا 57600 بیت در ثانیه تنظیم گردد. برای این منظور متناظر با نرخ ارسال اطلاعات مورد نظر رشته مربوطه طبق جدول زیر باید بعد از آدرس بورد ارسال گردد.

جدول2: رشته متناظر با نرخ ارسال اطلاعات
رشته ارسالی (هگزا دسیمال) 0x00 0x01 0x02 0x03 0x04 0x05
نرخ ارسال اطلاعات (bps) 300 600 1200 2400 4800 9600
ادامه جدول 2
رشته ارسالی (هگزا دسیمال) 0x06 0x07 0x08 0x09 0x0A
نرخ ارسال اطلاعات (bps) 14400 19200 38400 56000 57600

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

آخرین رشته ارسالی مربوط به تنظیمات مد کاری موتور DC، مد انکودر(Encoder Mode) می­ باشد در صورت ارسال 0X00  مد انکودر در حالت شمارش ساده (معمولی) قرار می­ گیرد، این مد زمانی کاربرد دارد که شما انکودری در اختیار دارید که تنها یک پالس خروجی دارد و این گونه از انکودرها را می ­توانید به راحتی خودتان بسازید(به بخش مقالات آموزشی در سایت شرکت به این نشانی مراجعه کنید).  این مد عملیاتی در مواردی خاص بسته به کاربرد کارایی نداشته که برای حل این مشکل باید از انکودری استفاده نمایید که دو پالس خروجی با اختلاف فاز 90 درجه تولید نماید (quadrature encoder). در صورت استفاده از این گونه از انکودرها باید مد انکودر را 0X01 تنظیم نمایید.

توجه: مد عملیاتی انکودر پیش فرض کارخانه مد شمارش معمولی می ­باشد.

به عنوان مثال فرض کنید می ­خواهید آدرس بورد را 20،  نرخ ارسال اطلاعات را 38400 و مد انکودر را در حالت  شمارش ترکیبی(quadrature)  قرار دهید. بنابراین باید رشته زیر را ارسال نمایید:

0X14   0X08    0X01

رشته فوق  باید از چپ به راست ارسال گردد. توجه کنید که 0X14 در واقع همان معادل مبنای 16 عدد 20 می ­باشد. دقت شود که عبارت 0X در ابتدای هر رشته بیان کننده عدد در مبنای 16 بوده که تنها یک نماد می­ باشد و نباید ارسال گردد.

توجه: آدرس بورد، نرخ ارسال اطلاعات و مد انکودر بعد از تنظیم آن­ها در حافظه­ ی EEPROM درایور قرار می ­گیرند،  بدین  معنا  که با قطع تغذیه ­ی بورد MDC20 دیگر به مقادیر پیش فرض کارخانه برنمی ­گردند.

توجه: در صورتی که مطابق جدول1 سوئیچ­ های 3 و 4 را در حالت OFF قرار داده و دکمه ریست را به مدت یک ثانیه فشار دهید آدرس بورد، نرخ ارسال اطلاعات و مد انکودر به ترتیب به مقادیر 0 ، 5 و 0 که همان تنظیمات پیش فرض کارخانه می ­باشند، برگردانده می ­شوند.

 

  2-3 قرار دادن درایور در حالت کنترل دو موتور دی سی

بعد از انجام تنظیمات اولیه مطابق جدول 1 سوئیچ­ های 3 و 4 را در حالت ON قرار داده و دکمه ریست را به مدت یک ثانیه فشار دهید تا وارد مد کنترل موتور DC شوید.

توجه: به طور کلی پس از هر بار تغییر مد عملیاتی برای ورود به آن مد باید دکمه ریست را به مدت یک ثانیه فشار دهید.

  3-3 جدول دستورات

جدول3: جدول دستورات در حالت درایور دو یا یک موتور DC
توضیحات تعداد بایت دریافتی تعداد بایت ارسالی نام دستور آدرس دستور (Instruction)
دستور تنظیم سرعت موتور یک در جهت ساعت گرد – – 3 تنظیم سرعت موتور یک 0x64
دستور تنظیم سرعت موتور دو در جهت ساعت گرد – – 3 تنظیم سرعت موتور دو 0x65
دستور تنظیم سرعت موتور یک در جهت پاد ساعت گرد – – 3 تنظیم سرعت موتور یک 0x66
دستور تنظیم سرعت موتور دو در جهت پاد ساعت گرد – – 3 تنظیم سرعت موتور دو 0x67
– – – – 2 تنظیم شتاب موتورها 0x68
در حالتی که مد انکودر 0X00 باشد استفاده می گردد 4 2 دریافت مقدار انکودر کانال 1 موتور یک 0x69
در حالتی که مد انکودر 0X00 باشد استفاده می گردد 4 2 دریافت مقدار انکودر کانال 2 موتور یک 0x6A
در حالتی که مد انکودر 0X00 باشد استفاده می گردد 4 2 دریافت مقدار انکودر کانال 1 موتور دو 0x6B
در حالتی که مد انکودر 0X00 باشد استفاده می گردد 4 2 دریافت مقدار انکودر کانال 2 موتور دو 0x6C
در حالتی که مد انکودر 0X01 باشد استفاده می گردد 4 2 دریافت مقدار انکودر موتور یک در مد quadrature 0x6D
در حالتی که مد انکودر 0X01 باشد استفاده می گردد 4 2 دریافت مقدار انکودر موتور یک در مد quadrature 0x6E
دریافت سرعت موتور اول 1 2 دریافت سرعت موتور اول 0x6F
دریافت سرعت موتور دوم 1 2 دریافت سرعت موتور دوم 0x70
دریافت شتاب موتورها 1 2 دریافت شتاب موتورها 0x71
ریست کردن مقدار انکودرها – – 2 مقدار شمارنده صفر خواهد شد 0x72
مقدار ID درایور ارسال می گردد 1 2 دریافت آدرس بورد 0x73
دریافت مدل بورد (MDC20) – – 2 دریافت مدل بورد 0x74
مقادیر 0 یا 1 از سوی بورد ارسال می گردند 1 2 دریافت مد انکودر 0x75
نرخ ارسال اطلاعات از سوی بورد ارسال می گردد 1 2 دریافت baud rate 0x76
دریافت نسخه نرم افزار بورد – – 2 دریافت نسخه نرم افزار بورد 0x77

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

  4-3 تنظیم سرعت موتورها

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

MOTOR’S SPEED INSTRUCTION Board Address

از آنجایی که هر بورد MDC20 می ­تواند یک آدرس از 0 تا 99 داشته باشد، اولین قدم برای شروع ارتباط با درایور ارسال آدرس بورد (Board Address) برای آن در ابتدای هر دستور عملیاتی می­ باشد. در واقع با ارسال آدرس بورد در ابتدای دستورات در صورت شبکه بودن درایورها، آن دایوری به دستورات عمل خواهد کرد که آدرسش با آدرس ارسالی یکسان باشد.

برای تعیین جهت هر یک از موتورها مطابق جدول 3 دو عدد به نام آدرس دستور (INSTRUCTION) وجود دارد به طوری که اعداد 0X64 و 0X66 برای تعیین جهت موتور یک به ترتیب در جهت­ ساعت گرد و پادساعت گرد و اعداد 0X65 و 0X67 برای تعیین جهت موتور دو به ترتیب در جهت ساعت گرد و پاد ساعت گرد می ­باشند.

بعد از ارسال آدرس بورد (Board Address) و آدرس دستور (INSTRUCTION) درایور مورد نظر منتظر دریافت سرعت  موتور می ­ماند. سرعت هر یک از موتورها در درایور MDC20 یک سرعت نسبی است که می ­تواند یک عدد از 0 تا 255 باشد (0X00 تا 0XFF). عدد 0 متناظر با سرعت صفر و عدد 255 متناظر با ماکزیمم سرعت موتور در جهت مورد نظر می ­باشد.

به عنوان مثال فرض کنید که می ­خواهید که موتور یک بوردی با آدرس 10 با حداکثر سرعت در جهت ساعت گرد شروع به حرکت کند، رشته ­ای که باید ارسال کنید مطابق زیر می­ باشد.

0X0A 0X64 0XFF

با ارسال رشته­ ی فوق از چپ به راست برای درایور یا شبکه ­ای از درایورهای MDC20 موتور یک بوردی که آدرس آن 10 می­ باشد با سرعت 255 شروع به حرکت می ­کند (برای مشاهده نمونه کدهای راه اندازی به زبان­های C# و MATLAB به بخش مقالات آموزشی در سایت شرکت به این نشانی مراجعه نمایید).

  5-3 تنظیم شتاب موتورها

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

هم­چنین شتاب دار بودن حرکت موتورها علاوه بر افزایش طول عمر موتورها و درایور در مواردی می ­تواند مفید واقع شود. به عنوان مثال در برخی از کاربردها می ­خواهیم موتور از سرعت صفر کم کم شروع به حرکت کرده و تدریجا به حداکثر سرعت خود برسد(Soft Start)  و یا برعکس می­ خواهیم موتور کم کم و تدریجا متوقف شود(Soft Stop). میزان شتاب موتورها می­ تواند بین 0 تا 255 متغییر باشد به طوری که موتورها در شتاب 0X00 دارای حداکثر شتاب (کمترین لختی) و در شتاب 0XFF دارای حداقل شتاب (بیشترین لختی) می­ باشند. قالب دستورات مربوط به تنظیم شتاب موتورها به صورت زیر می­ باشد.

Acceleration 0X68 (Instruction) Board Address

به عنوان مثال فرض کنید قصد داریم موتور یک، درایوری با آدرس 16 در جهت ساعت گرد با سرعت 40 و موتور دو همان درایور درجهت پاد ساعت گرد با حداکثر سرعت و شتاب 3 شروع به حرکت کنند. برای این منظور باید رشته زیر را ارسال کنیم.

0X10   0X68   0X03   0X10   0X64   0X28   0X10   0X66   0XFF

در رشته­ ی فوق سه بایت اول (0X10  0X68  0X03) مربوط به تنظیم شتاب موتورها به میزان سه می ­باشند. هم چنین سه بایت دوم و سوم به ترتیب برای تنظیم سرعت موتور اول در جهت ساعت گرد به میزان 40 (0X28)  و سرعت موتور دوم در جهت پاد ساعت گرد به میزان 255 (0XFF) می­ باشند.

توجه: شتاب پیش فرض بورد 0X00 می ­باشد (حداکثر شتاب یا کمترین لختی).

  6-3 دریافت مقادیر انکودرها

با مراجعه به جدول دستورات در حالت کنترل موتور DC (جدول3) مشاهده می­ کنید که با ارسال آدرس­ های 0X69 تا 0X6E می­ توانید مقادیر مربوط به انکودرها را دریافت نمایید به طوری که آدرس­ های 0X69 تا 0X6C برای دریافت میزان پالس ­های انکودر در مد معمولی و آدرس ­های 0X6D و 0X6E برای دریافت میزان پالس­ های انکودر در مد Quadrature می ­باشند.

شمارش پالس ­ها در درایور MDC20 در صورتی که مد انکودر در حالت Quadrature قرار گیرد (0X01) با دقت یک برابر انجام می­ شود. به عنوان مثال در صورتی که انکودری در اختیار دارید که دقت نامی آن 500 پالس می ­باشد، درایور MDC20 به ازای چرخش یک دور شقف موتوری که انکودر به آن متصل است مقدار 500 را برمی ­گرداند.

 در درایور MDC20 برای هر انکودر حافظه­ ای 32 بیتی در نظر گرفته شده است که می­ تواند در دو جهت  متفاوت به شمارش  پالس­ های  انکودر بپردازد این عدد می ­تواند بین 2147483648 تا 2147483648- باشد. در واقع بری چرخش در جهت ساعت گرد این عدد افزایشی (Incremental) و برای چرخش در جهت پاد ساعت گرد این عدد کاهشی (Decremented)  می­ باشد.

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

شکل3: شکل موج خروجی کانال های یک انکودر Quadrature

شکل3: شکل موج خروجی کانال های یک انکودر Quadrature

در صورتی که مد انکودر 0X01 تنظیم گردد، شکل موج پالس­ هایی که به MDC20 اعمال خواهند شد به صورت شکل بالا می­ باشد که در آن کانال­ های A و B به میزان 90 درجه با یکدیگر اختلاف فاز دارند و از روی همین اختلاف فاز درایور جهت را تشخیص داده و اقدام به شمارش افزایشی یا کاهشی می­ نماید (برای کسب اطلاعات بیشتر راجع به انکودر Quadrature به بخش مقالات آموزشی در سایت شرکت به این نشانی مراجعه نمایید).

قالب دستورات برای دریافت مقادیر انکودرها به صورت زیر می ­باشد.

Instruction Board Address

مطابق جدول 3 آدرس دستور (Instruction) برای خواندن مقدار انکودر هر یک از موتورها در دو مد کاری معمولی و quadrature از 0X69 تا 0X6E می­ باشد.

برای مثال اگر مد انکودر خود را در حالت 0X01 (مد Quadrature) تنظیم کرده­ اید با ارسال رشته زیر می­ توانید مقدار انکودر موتور یک  بوردی با آدرس 3  را در حالت شمارش Quadrature دریافت نمایید.

0X03 0X6D

در سایر دستورات خواندنی در جدول دستورات 3 از قبیل خواندن سرعت، شتاب، مدل بورد و… روال کار دقیقا مشابه می­ باشد. در واقع سه مرحله­ ی پشت سر هم از قبیل:

1-  ارسال آدرس بورد

2-  ارسال آدرس دستور

3-  خواندن جواب ارسالی از درایور

باید در تمامی دستورات خواندنی انجام پذیرند.

  4 کنترل MDC20 در حالت درایو یک موتورپله ای

در این بخش به بیان نحوه کنترل یک موتور پله ای با درایور MDC20 می پردازیم. همانند راه اندازی موتور DC بایستی ابتدا تنظیمات اولیه مربوطه را انجام دهیم.

  1-4 کنترل MDC20 – انجام تنظیمات اولیه – Stepper

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

 

  2-4 کنترل MDC20 – قرار دادن درایور در حالت درایو یک موتور پله ای

مطابق جدول 1 برای ورود به مد کاری موتور پله­ ای سوئیچ ­های 1 و 2 و 3 را در حالت ON و سوئیچ 4 را در حالت OFF قرار دهید. سپس دکمه ریست را به مدت یک ثانیه فشار دهید تا وارد مد کاری موتور پله­ ای شوید.

موتورهای پله ­ای برخلاف موتورهای دی سی که دو رشته سیم از آن­ها خارج می ­شود شامل 4، 5، 6  و یا 8 رشته سیم خروجی می­ باشند که دلیل آن به ساختار موتورهای پله ­ای برمی ­گردد(برای کسب اطلاعات راجع به ساختار موتورهای پله ­ای به بخش مقالات آموزشی در سایت شرکت به این نشانی مراجعه کنید). به طور خلاصه موتورهای پله ­ای به دو دسته ­ی مهم تک قطبی و دوقطبی تقسیم می­ شوند که نحوه­ ی راه اندازی در هر کدام متفاوت است.

جدول4: جدول دستورات در مد عملیاتی موتور پله ای
توضیحات تعداد بایت دریافتی تعداد بایت ارسالی نام دستور آدرس دستور (Instruction)
چرخش در جهت ساعت گرد – – 3 چرخش در جهت ساعت گرد 0XC9
چرخش در جهت پاد ساعت گرد – – 3 چرخش در جهت پاد ساعت گرد 0XCA
راه ­اندازی دوقطبی، موجی، کامل و یا نیم پله – – 3 تنظیم نحوه ی راه اندازی موتور پله ای 0XCB
فاصله زمانی بین هر دو پله ی متوالی بر حسب میکروثانیه – – 3 تنظیم سرعت چرخش موتور پله ای 0XCC
دریافت آدرس بورد 1 2 دریافت آدرس بورد 0XCD
تنظیم آدرس بورد – – 3 تنظیم آدرس بورد 0XCE
دریافت مدل بورد – – 2 دریافت مدل بورد 0XCF
Bipolar, wave, full or half drive – – 2 دریافت نحوه ی راه اندازی موتور پله ای 0XD0
دریافت فاصله زمانی بین هر دو پله¬ متوالی بر حسب میکروثانیه 1 2 دریافت سرعت موتور پله ای 0XD1
دریافت نسخه نرم افزار بورد – – 2 دریافت نسخه نرم افزار بورد 0XD2

 

  3-4  تنظیم نحوه­ ی راه ­اندازی موتور پله ­ای

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

 قالب دستورات برای تنظیم نحوه ­ی راه ­اندازی موتور پله­ ای به صورت زیر می­ باشد:

Mode of Drive 0XCB (Instruction) Board Address

در قالب فوق رشته ی of Drive Mode به صورت جدول زیر روش راه اندازی موتور پله ای را مشخص می کند:

جدول5: دستوارت تنظیم نحوه ی راه اندازی موتور پله ای
0X04 0X03 0X02 0X01
Half Step Drive Full Step Drive Wave Drive Bipolar Drive

به عنوان مثال برای تنظیم نحوه ­ی راه­ اندازی موتور پله­ ای با آدرس 99 به صورت دوقطبی باید رشته زیر را ارسال نمایید:

0X63   0XCB   0X01

نکته: در درایور نحوه­ ی راه­ اندازی پیش فرض موتور پله­ ای، راه اندازی دوقطبی می­ باشد.

 

  4-4  راه اندازی موتورهای پله ای دو قطبی

در استاتور موتورهای پله­ ای دوقطبی دو سیم پیچ مجزا وجود دارد که انتهای هر یک از آن­ها به صورت دو رشته سیم از آن بیرون آمده است. راه­ اندازی این گونه از موتورها کمی دشوارتر از موتورهای پله­ ای تک قطبی است چرا که در موتورهای پله­ ای دوقطبی مجبوریم جهت جریان عبوری از سیم­ پیچ­ ها را تغییر دهیم. توجه کنید که هر یک از موتورهای پله ­ای 5 ، 6  و یا 8 سیمه را می ­توان با آرایش دوقطبی راه­ اندازی کرد. فرض کنید سیم ­پیچ ­های یک موتور پله­ ای دوقطبی را به صورت زیر در نظر بگیریم:

شکل4: ساختار موتور پله ای دوقطبی

شکل4: ساختار موتور پله ای دوقطبی

برای راه­ اندازی موتور پله­ ای دوقطبی مطابق جدول 5 باید ابتدا نحوه­ ی راه­ اندازی را به صورت دوقطبی تنظیم کنید. سپس سرهای A و B را به خروجی موتوریک (بر روی درایور مشخص شده است) و سرهای C و D را به خروجی موتور دو متصل کنید.

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

Stepper’s Speed 0XCC (Instruction) Board Address

در قالب فوق بایت Stepper’s Speed که سرعت چرخش موتور پله ای را مشخص می کند می ­تواند از صفر(0X00) تا 255 (0XFF)  تنظیم گردد به طوری که عدد صفر معادل سرعت صفر بوده و با افزایش آن سرعت موتور پله ای افزایش می یابد. به عنوان مثال برای تنظیم سرعت موتور پله ­ای با آدرس 50 به میزان 5  باید رشته زیر را ارسال نمایید:

0X32   0XCC   0X05

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

پس از تنظیم سرعت می ­توانید با استفاده از قالب زیر دستورات حرکتی را برای موتور پله ­ای مورد نظر ارسال کنید:

Stepper’s Step 0XC9/0XCA (Instruction) Board Address

در قالب دستورات فوق 0XC9 برای چرخش در جهت ساعت گرد و 0XCA برای چرخش در جهت پاد ساعت گرد می­ باشد. هم چنین بایت Stepper’s Step تعداد پله را مشخص می­ کند که می ­تواند از صفر تا 255 پله تنظیم گردد.

به عنوان مثال چنانچه قصد دارید موتور پله­ ای با آدرس 50  به صورت دوقطبی با سرعت 5  در جهت ساعت گرد 100 پله حرکت کند باید رشته زیر را ارسال کنید:

0X32   0XCB   0X01   0X32   0XCC   0X05   0X32   0XC9   0XC8

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

  5-4  راه اندازی موتورهای پله ای تک قطبی

موتورهای پله ­ای تک قطبی را می ­توان به سه روش زیر راه اندازی کرد:

1- راه­ اندازی موجی (Wave Drive)

2-  راه ­اندازی کامل (Full Drive)

3-  راه اندازی نیم پله (Half Drive)

برای راه­ اندازی موتورهای پله ­ای تک قطبی به لحاظ نرم­ افزاری تنها کافیست مطابق جدول 5 نحوه ­ی راه اندازی موتور پله­ ای را یکی از سه روش­ فوق تنظیم کنیم.

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

 

  5  نحوه شبکه کردن درایور MDC20

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

  1-5 شبکه کردن سه یا چند موتور DC

چنانچه بخواهید بیش از دو موتور DC را تنها از طریق یک درگاه USB یا UART کنترل و هدایت کنید باید از درایورهای MDC20 به صورت شبکه استفاده کنید.

برای این منظور ابتدا باید تنظیمات درایورهای MDC20 را به طور جداگانه مشابه قسمت انجام تنظیمات در مد کاری موتور دی سی (قسمت 3-1) انجام دهید. دقت کنید که در این مرحله باید به هر یک از بوردهای MDC20 آدرسی متفاوت اختصاص دهید( در صورت مشابه بودن آدرس­ ها عملکرد مطلوب حاصل نخواهد شد).

پس از انجام تنظیمات باید تمامی بوردهای MDC20 را از طریق درگاه UART با یکدیگر شبکه کنید که برای این منظور باید تمامی پایه ­های RX در بوردهای MDC20 را به یکدیگر و تمامی پایه­ های TX را نیز به یکدیگر متصل کنید.

نکته: در صورتی که درایورهای MDC20 را از طریق منابع  متفاوت تغذیه می­ کنید باید زمین (GND) تمامی بوردها را به منظور عملکرد صحیح به یکدیگر متصل کنید.

پس از شبکه کردن بوردهای MDC20 با یکدیگر چنانچه می­ خواهید تمامی آنها را از طریق یک درگاه USB و به وسیله کامپیوتر کنترل کنید، ابتدا مطابق جدول 1 مد کاری تمامی درایورهای MDC20 را در حالت DC قرار دهید. سپس سوئیچ­های 1 و 2 درایوری که می ­خواهید از طریق آن به وسیله درگاه USB به کامپیوتر متصل شوید را در حالت ON قرار داده و سوئیچ­های 1 و 2 سایر درایورها را از حالت ON خارج کنید. پس از انجام مراحل فوق دکمه ریست را در تک تک بوردها به مدت یک ثانیه فشار دهید تا هر کدام از بوردها وارد مد عملیاتی DC شوند (در صورتی که تغذیه بوردها را خاموش و سپس روشن کنید نیز این کار انجام می­ شود). اکنون می­ توانید این شبکه از بوردها را از طریق درگاه USB کنترل کنید.

چنانچه می­ خواهید این شبکه از درایورهای MDC20 را از طریق درگاه UART و به وسیله یک بورد کنترلی دیگر کنترل کنید لازم است که سوئیچ­ های 1 و 2 در تمامی بوردها را از حالت ON خارج کنید.

  1-5 شبکه کردن دو یا چند موتور پله ای

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

  1-5 شبکه ای از موتورهای DC و پله ای

با ترکیب دو مرحله­ ی قبل می ­توانید شبکه ­ای از موتورهای DC و پله­ ای را از طریق یک درگاه USB و یا  UART کنترل و هدایت کنید.

GUI درایور MDDC20

+ رابط کاربری گرافیکی درایور

درایور MDC20  دارای یک رابط کاربری گرافیکی (GUI) است. در این نرم افزار دو زبانه کارکرد در حالت موتور DC و استپر وجود دارد. شما می توانید آخرین نسخه از این رابط کاربری را از نسخه زیر دانلود نمایید. همچنین برای فراگیری نحوه کار با این رابط کاربری می توانید به این آدرس مراجعه فرمایید.
رابط گرافیکی درایور موتور MDC20

راهنمای درایور MDC20

+ دفترچه راهنمای کاربری درایور

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

کاربردهای درایور MDC20

+ مثال های نمونه راه اندازی و کاربردی

با توجه به استفاده گسترده درایور MDC20 در فرآیندهای صنعتی و آزمایشگاهی تیم فنی مهندسی ربات سازان اقدام به تهیه و آموزش نمونه مثال های کاربردی کرده است. سعی شده است برای پوشش تمامی کاربران از گرایش های مختلف، نمونه مثالها (در قالب آموزش های متنی و تصویری) با زبان های مختلف برنامه نویسی اعم از C# و MATLAB تهیه شود. مطالب آموزشی همگی در بلاگ آموزشی این شرکت منتشر خواهند شد و برای دسترسی آسان تر در آدرس قرار داده شده جمع آوری شده اند.

نمونه مثال های کاربردی درایور موتور MDC20

Back to Top