درایور موتور دی سی MD10
۱۰ مرداد ۱۳۹۹درایور موتور دی سی PMD30
۱۰ مرداد ۱۳۹۹درایور موتور دی سی و استپر MDC20
برای قیمت تماس بگیرید
یک درایور با قابلیت کنترل حرکت و راه اندازی دو موتور عدد دی سی یا یک موتور پله ای، محصولی پلتفرم مناسب جهت استفاده در انواع ربات ها، مکانیزم ها و دستگاه های اتوماسیون.
درایور MDC20 یک کنترلر موتور DC و Stepper با قابلیت های فراوان است. به کمک درایور MDC20 قادر خواهید بود بدون هیچ سخت افزار واسط، مستقیما از طریق کامپیوتر و تنها از طربق یک کابل USB، شبکه ای متشکل از موتورهای DC و Stepper را در نرم افزارهای معروفی هم چون VISUAL STUDIO ، LABVIEW و MATLAB کنترل و هدایت کنید.
قابلیت های سخت افزاری درایور موتور دی سی و استپر MDC20
۱- درایو و کنترل دو موتور DC و یا یک موتور پله ای
۲- ولتاژ کاری ۵٫۵ تا ۳۶ ولت
۳- قابلیت جریان دهی ۵ آمپر در هر کانال خروجی
۴- محافظت در برابر جابه جا زدن ورودی تغذیه
۵- محافظت در برابر دمای بیش از حد
۶- محافظت در برابر اتصال کوتاه در خروجی خروجی تا ۵ ثانیه
۷- محافظت در برابر جریان بیش از ۱۰ آمپر(با استفاده از فیوز در ورودی تغذیه)
۸- دو ورودی انکودر ۳۲ بیتی (حداکثر فرکانس پالس ورودی ۲ کیلو هرتز)
۹- دارای پروتکل های ارتباطی زیر:
-
-
- USB: استفاده جهت ارتباط بواسط کامپیوتر از طریق نرم افزارهای مختلف همانند MATLAB و C# و …
- UART: استفاده جهت ارتباط با بوردهای واسط دیگر همانند آردوینو، موشن کنترلر و …
-
۱۰- قابلیت تنظیم نرخ ارسال اطلاعات از ۳۰۰ تا ۵۷۶۰۰ بیت در ثانیه
۱۱- قابلیت شبکه شدن درایور و امکان کنترل تمامی آنها از طریق یک کابل USB (کاهش سرعت انتقال اطلاعات با افزایش تعداد بردها به صورت شبکه)
۱۲- دارای یک خروجی ۵ ولت ۱ آمپر برای راه اندازی مدارات متصل به درایور و یا تغذیه فن در صورت نیاز
قابلیت های نرم افزاری درایور موتور دی سی و استپر MDC20
۱- قابلیت اتصال به نرم افزارهایی هم چون VISUAL STUDIO ، LABVIEW و MATLAB به کاربر امکان انجام پردازش های چندگانه در نرم افزار هدف را می دهد. به عنوان مثال به کمک درایور MDC20 می توانید ربات های متحرکی ساخته و پردازش های هوشمند را در نرم افزار متلب انجام داده و دستورات حرکتی را برای موتورها ارسال کنید.
۲- درایور MDC20 با دارا بودن دو ورودی انکودر قادر به کنترل حلقه بسته دو موتور DC بوده و به کمک آن می توانید الگوریتم های کنترلی خود را در نرم افزاری هم چون MATLAB پیاده سازی کنید.
۳- امکان تنظیم شتاب موتورها برای جلوگیری از سرعت گرفتن ناگهانی و یا توقف سریع
۴- دارای رابط کاربری مخصوص برای تست و راه اندازی درایور.
۵- دارای نمونه مثال های راه اندازی به زبان های برنامه نویسی مختلف در بلاگ آموزشی شرکت.
برخی از موارد کاربرد درایور موتور دی سی و استپر MDC20
++ رباتیک:
ساخت ربات های موبایل و چند درجه آزادی به بالا
++ سیستم های اتوماسیون:
کنترل دقیق حرکات و درایور موتورهای جریان بالا
++ سیستم های CNC:
کنترل موتورهای دی سی انکودر دار(کنترل حلقه بسته با فیدبک از موقعیت) و کنترل موتورهای پله ای
++ پرینترهای سه بعدی
++ کنترل روشنایی
++ کنترل شیرهای مغناطیسی
++ سیستمهای کنترل تردد
++ ویلچرهای برقی
++ نوار نقاله
++ درب های اتوماتیک
++ تجهیزات پمپاژ
++ ساخت تجهیزات آزمایشگاهی
همانند پیادهسازی انواع کنترلرها و پاندولهای معکوس و …
۱- درایور MDC20
درایور و کنترل کننده حرکت MDC20 یک درایور با قابلیت کنترل حرکت و درایو دو موتور دی سی یا یک موتور پله ای محصولی پلتفرم، تولیدی شرکت دانش بنیان ربات سازان مستقر در دانشگاه فردوسی مشهد است. این درایور با قابلیت های فراوان پاسخگوی نیاز قشر عظیمی از کاربران می باشد.
۱-۲- ویژگی های کلیدی درایور MDC20
از ویژگی های منحصر به فردی که درایور MDC20 را از سایر محصولات موجود در بازار متمایز می کند می توان به موارد زیر اشاره کرد:
- درایور MDC20 یک درایور پلتفرم با قابلیت اتصال به نرم افزارهایی همچون MATLAB، VISUAL STUDIO، LABVIEW و… می باشد و می توان با اتصال فقط یک کابل USB آن را راه اندازی و کنترل کرد.
- درایو دو دسته از مهمترین موتورهای پرکاربرد به طوری که با در اختیار داشتن این درایور قادر خواهید بود دو موتور DC و یا یک موتور پله ای را هدایت و کنترل کنید.
امکان شبکه کردن درایور و کنترل تمامی آنها فقط با یک کابل USB (کاهش سرعت انتقال اطلاعات با افزایش تعداد بردها). - پشتیبانی و وجود آموزش های گام به گام در سایت شرکت و بلاگ آموزشی ربات سازان
۱-۳- مشخصات درایور MDC20
- درایو و کنترل دو موتور DC یا یک موتور پله ای با ولتاژ بین ۵.۵ تا ۳۶ ولت و با جریان دهی دائمی ۵ آمپر و جریان دهی لحظه ای ۱۰ آمپر برای هر کانال خروجی (توان نامی ۱۸۰ وات برای هر کانال خروجی).
- محافظت در برابر جابجا زدن تغذیه بورد (Reverse Voltage Protection)، اتصال کوتاه در خروجی موتورها به مدت ۵ ثانیه، جریان کشی بیش از10 آمپر با قرار دادن فیوزدر ورودی تغذیه، دمای بیش از حد، قطع ناگهانی VCC و یا زمین.
- قابلیت اتصال مستقیم به کامپیوتر با استفاده از پورت USB.
- ارسال و دریافت فرمان ها با سرعت ۳۰۰ تا ۵۷۶۰۰ بیت در ثانیه.
- قابلیت شبکه شدن چند داریور به صورت همزمان و کنترل تمامی آنها فقط با یک کابل USB.
- توان مصرفی فوق العاده پایین در حالت استراحت (Standby).
- دارای دو ورودی ۳۲ بیتی شمارنده ی انکودر (Encoder Input) در دو مد کاری ساده و پیشرفته (quadrature)
- دارای پروتکل های USB و UART برای ارتباط با دیگر اجزای سیستم و کامپیوتر.
- قابلیت تنظیم شتاب موتورها برای جلوگیری از سرعت گرفتن سریع و امکان توقف نرم.
- قابلیت پیاده سازی الگوریتم های کنترل موتور(موقعیت، سرعت و شتاب) در نرم افزار هدف.
- محافظت موتورها در مقابل تغییر ناگهانی جهت موتورها و افزایش طول عمر آنها.
- دارای کدهای راه اندازی نمونه به زبان های برنامه نویسی مختلف از جمله زبان برنامه نویسی C++ , C# و همچنین نرم افزار MATLAB در بلاگ آموزشی شرکت.
- دارای یک خروجی 5 ولت یک آمپر برای راه اندازی مدارات متصل به درایور و همچنین تغذیه فن در صورت نیاز.
بخش های مختلف درایور MDC20 در شکل ۱ به نمایش درآمده که به شرح زیر است:
۱) درگاه USB
۲) سوئیچ های تنظیم مد – به کمک سوئیج ها مد عملیاتی درایور تنظیم می گردد
۳) جعبه فیوز درایور
۴) ورودی تغذیه
۵) کلید ریست
۶) LED وضعیت فعال، ارسال اطلاعات و دریافت اطلاعات از درگاه USB
۷) سوکت پروتکل UART / RX-TX-GND
۸) سوکت انکودر ۲
۹) سوکت انکودر ۱
۱۰) LED پاور درایور
۱۱) خروجی 5 ولت
۱۲) خروجی موتور ۱
۱۳) خروجی موتور ۲
۲- آماده به کار کردن درایور MDC20
برای ارتباط با درایور بایستی ابتدا اقدام به نصب درایورهای مورد نیاز نموده و سپس توسط کابل USB یا درگاه UART به روش زیر با آن ارتباط برقرار نمایید.
۲-۱- نصب درایور و نرم افزارهای مورد نیاز
برای ارتباط با درایور MDC20 باید درایور FTDI را بر روی سیستم خود نصب کنید پس از نصب درایورهای مورد نیاز در صورت اتصال درایور از طریق پورت USB به کامپیوتر درایور شناسایی شده و سپس تنظیمات درگاه شناخته شده از جمله نرخ ارسال اطلاعات را در کامپیوتر منطبق با درایور انجام دهید. (برای دریافت راهنمای نصب درایور FTDI و کسب اطلاعات راجع به تنظیمات پورت USB در ویندوز به این مطلب آموزشی مراجعه فرمایید).
۲-۲- ارتباط با درایور از دو درگاه USB و UART
از درگاه USB زمانی استفاده می شود که قصد دارید درایور را به وسیله ی کامپیوتر کنترل و هدایت کنید. چنانچه بخواهید از طریق یک بورد کنترلی دیگر، این درایور را کنترل کنید یا چندین درایور را با یکدیگر شبکه کنید از طریق درگاه UART می توانید این کار را انجام دهید.
۲-۳- نحوه ی روشن کردن درایور
درایور MDC20 را می توانید با ولتاژی از ۵.۵ تا ۳.۶ ولت راه اندازی کنید. مطابق شکل ۱ از طریق درگاه ورودی توان می توانید درایور را تغذیه کنید. سپس در صورتی که تغذیه بورد را درست متصل کرده باشید چراغ Power’s LED که مطابق شکل ۱ در قسمت میانی بورد قرار دارد روشن خواهد شد.
توجه: در صورتی که تغذیه ی بورد را جابجا وصل کنید ( VCC و GND را جابجا متصل کنید)، درایور MDC20 مجهز به مدار محافظت در برابر جابجا زدن ولتاژ ورودی بوده و از صدمه دیدن بورد جلوگیری می کند.
۳- کنترل MDC20 در حالت درایو دو موتور DC
در این قسمت قصد داریم راه اندازی دو موتور DC توسط درایور MDC20 را آموزش دهیم. ابتدا بایستی تنظیمات اولیه درایور که در ادامه شرح داده شده است را انجام دهید.
۳-۱- انجام تنظیمات اولیه – DC
برای این منظور تغذیه درایور را وصل کرده و کابل USB را متصل نمایید. سوئیچ های ۱ و ۲ به هنگام شبکه کردن چند بورد با یکدیگر مورد استفاده قرار می گیرند و در حالتی که می خواهید تنها یک بورد را از طریق پورت USB کنترل کنید باید همواره در حالت ON قرار داشته باشند. مطابق شکل زیر سوئیچ های ۱ و ۲ و ۴ را در حالت ON و سوئیچ ۳ را در حالت OFF قرار دهید. جدول زیر چهار مد عملیاتی درایور 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 می باشد بنابراین در این نوع از پروتکل ها اطلاعات به صورت سریال در بسته های ۸ بیتی منتقل می شوند (در ارتباط سریال علاوه بر داده ها معمولا یک یا دو بیت توقف (Stop Bit) و یک بیت Parity به همراه داه ها منتقل می گردند). بنابراین در قالب دستورات فوق هر یک از رشته ها باید اعدادی در مبنای ۱۶ (هگزادسیمال) که حداکثر ۸ بیت را اشغال می کنند، باشند.
به عنوان مثال عدد ۵۰ در مبنای ۱۶ به صورت 0X32 نمایش داده می شود که فرم باینری آن به صورت زیر می باشد:
0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
---|
حال به توضیح قالب دستورات فوق می پردازیم. از آنجایی که هر بورد MDC20 می تواند یک آدرس از ۰ تا ۹۹ داشته باشد باید آدرس بورد (Board Address) مورد نظر خود را قبل از کار با آن تنظیم کنید.
توجه: آدرس بورد پیش فرض کارخانه صفر میباشد.
در درایور MDC20 نرخ ارسال اطلاعات (Baud Rate) می تواند از ۳۰۰ تا ۵۷۶۰۰ بیت در ثانیه تنظیم گردد. برای این منظور متناظر با نرخ ارسال اطلاعات مورد نظر رشته مربوطه طبق جدول زیر باید بعد از آدرس بورد ارسال گردد.
رشته ارسالی (هگزا دسیمال) | 0x00 | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 |
---|---|---|---|---|---|---|
نرخ ارسال اطلاعات (bps) | 300 | 600 | 1200 | 2400 | 4800 | 9600 |
رشته ارسالی (هگزا دسیمال) | 0x06 | 0x07 | 0x08 | 0x09 | 0x0A |
---|---|---|---|---|---|
نرخ ارسال اطلاعات (bps) | 14400 | 19200 | 38400 | 56000 | 57600 |
توجه: نرخ ارسال اطلاعات پیش فرض کارخانه ۹۶۰۰ می باشد. همچنین در صورتی که رشته ارسالی یکی از ۱۱ حالت فوق را شامل نشود نرخ ارسال اطلاعات همان ۹۶۰۰ تنظیم میگردد.
آخرین رشته ارسالی مربوط به تنظیمات مد کاری موتور DC، مد انکودر (Encoder Mode) می باشد در صورت ارسال 0X00 مد انکودر در حالت شمارش ساده (معمولی) قرار می گیرد، این مد زمانی کاربرد دارد که شما انکودری در اختیار دارید که تنها یک پالس خروجی دارد و این گونه از انکودرها را می توانید به راحتی خودتان بسازید (به بخش مقالات آموزشی در سایت شرکت به این نشانی مراجعه کنید). این مد عملیاتی در مواردی خاص بسته به کاربرد کارایی نداشته که برای حل این مشکل باید از انکودری استفاده نمایید که دو پالس خروجی با اختلاف فاز ۹۰ درجه تولید نماید (quadrature encoder). در صورت استفاده از این گونه از انکودرها باید مد انکودر را 0X01 تنظیم نمایید.
توجه: مد عملیاتی انکودر پیش فرض کارخانه مد شمارش معمولی می باشد.
به عنوان مثال فرض کنید می خواهید آدرس بورد را ۲۰، نرخ ارسال اطلاعات را ۳۸۴۰۰ و مد انکودر را در حالت شمارش ترکیبی (quadrature) قرار دهید. بنابراین باید رشته زیر را ارسال نمایید:
0X14 0X08 0X01
رشته فوق باید از چپ به راست ارسال گردد. توجه کنید که 0X14 در واقع همان معادل مبنای ۱۶ عدد ۲۰ می باشد. دقت شود که عبارت 0X در ابتدای هر رشته بیان کننده عدد در مبنای ۱۶ بوده که تنها یک نماد می باشد و نباید ارسال گردد.
توجه: آدرس بورد، نرخ ارسال اطلاعات و مد انکودر بعد از تنظیم آنها در حافظه ی EEPROM درایور قرار می گیرند، بدین معنا که با قطع تغذیه ی بورد MDC20 دیگر به مقادیر پیش فرض کارخانه برنمی گردند.
توجه: در صورتی که مطابق جدول ۱ سوئیچ های ۳ و ۴ را در حالت OFF قرار داده و دکمه ریست را به مدت یک ثانیه فشار دهید آدرس بورد، نرخ ارسال اطلاعات و مد انکودر به ترتیب به مقادیر ۰ ، ۵ و ۰ که همان تنظیمات پیش فرض کارخانه می باشند، برگردانده می شوند.
۳-۲- قرار دادن درایور در حالت کنترل دو موتور دی سی
بعد از انجام تنظیمات اولیه مطابق جدول ۱ سوئیچ های ۳ و ۴ را در حالت ON قرار داده و دکمه ریست را به مدت یک ثانیه فشار دهید تا وارد مد کنترل موتور 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 |
در جدول فوق مقادیر ستون اول (آدرس دستور) هگزادسیمال (مبنای ۱۶) می باشند. دلیل استفاده از مبنای ۱۶ به ماهیت ارسال اطلاعات به صورت سریال برمی گردد (برای کسب اطلاعات بیشتر راجع به پروتکل سریال به بخش مقالات آموزشی در سایت شرکت به این نشانی مراجعه کنید).
۳-۴- تنظیم سرعت موتورها
قالب دستورات برای تنظیم سرعت موتورها به صورت زیر می باشد.
MOTOR’S SPEED | INSTRUCTION | Board Address |
---|
از آنجایی که هر بورد MDC20 می تواند یک آدرس از ۰ تا ۹۹ داشته باشد، اولین قدم برای شروع ارتباط با درایور ارسال آدرس بورد (Board Address) برای آن در ابتدای هر دستور عملیاتی می باشد. در واقع با ارسال آدرس بورد در ابتدای دستورات در صورت شبکه بودن درایورها، آن دایوری به دستورات عمل خواهد کرد که آدرسش با آدرس ارسالی یکسان باشد.
برای تعیین جهت هر یک از موتورها مطابق جدول ۳ دو عدد به نام آدرس دستور (INSTRUCTION) وجود دارد به طوری که اعداد 0X64 و 0X66 برای تعیین جهت موتور یک به ترتیب در جهت ساعت گرد و پادساعت گرد و اعداد 0X65 و 0X67 برای تعیین جهت موتور دو به ترتیب در جهت ساعت گرد و پاد ساعت گرد می باشند.
بعد از ارسال آدرس بورد (Board Address) و آدرس دستور (INSTRUCTION) درایور مورد نظر منتظر دریافت سرعت موتور می ماند. سرعت هر یک از موتورها در درایور MDC20 یک سرعت نسبی است که می تواند یک عدد از 0 تا 255 باشد (0X00 تا 0XFF). عدد 0 متناظر با سرعت صفر و عدد 255 متناظر با ماکزیمم سرعت موتور در جهت مورد نظر می باشد.
به عنوان مثال فرض کنید که می خواهید که موتور یک بوردی با آدرس 10 با حداکثر سرعت در جهت ساعت گرد شروع به حرکت کند، رشته ای که باید ارسال کنید مطابق زیر میباشد.
0X0A 0X64 0XFF
با ارسال رشته ی فوق از چپ به راست برای درایور یا شبکه ای از درایورهای MDC20 موتور یک بوردی که آدرس آن ۱۰ می باشد با سرعت ۲۵۵ شروع به حرکت می کند (برای مشاهده نمونه کدهای راه اندازی به زبانهای C# و MATLAB به بخش مقالات آموزشی در سایت شرکت به این نشانی مراجعه نمایید).
۳-۵- تنظیم شتاب موتورها
شتات موتورها پارامتری از لختی موتورها می باشد. در تنظیم شتاب دیگر نیازی به تنظیم شتاب جداگانه ی هر یک از موتورها نیست و شتاب هر دو موتور در یک بورد MDC20 به طور همزمان مساوی تنظیم می شود. شتاب دار بودن حرکت موتورها باعث افزایش طول عمر محسوس موتورها و درایور می شود چرا که از تغییر ناگهانی جریان در موتورها جلوگیری کرده و در دراز مدت باعث افزایش طول عمر موتورها می شود.
همچنین شتاب دار بودن حرکت موتورها علاوه بر افزایش طول عمر موتورها و درایور در مواردی می تواند مفید واقع شود. به عنوان مثال در برخی از کاربردها می خواهیم موتور از سرعت صفر کم کم شروع به حرکت کرده و تدریجا به حداکثر سرعت خود برسد(Soft Start) و یا برعکس می خواهیم موتور کم کم و تدریجا متوقف شود(Soft Stop). میزان شتاب موتورها میتواند بین 0 تا 255 متغییر باشد به طوری که موتورها در شتاب 0X00 دارای حداکثر شتاب (کمترین لختی) و در شتاب 0XFF دارای حداقل شتاب (بیشترین لختی) می باشند. قالب دستورات مربوط به تنظیم شتاب موتورها به صورت زیر می باشد.
Acceleration | 0X68 (Instruction) | Board Address |
---|
به عنوان مثال فرض کنید قصد داریم موتور یک، درایوری با آدرس ۱۶ در جهت ساعت گرد با سرعت ۴۰ و موتور دو همان درایور درجهت پاد ساعت گرد با حداکثر سرعت و شتاب ۳ شروع به حرکت کنند. برای این منظور باید رشته زیر را ارسال کنیم.
0X10 0X68 0X03 0X10 0X64 0X28 0X10 0X66 0XFF
در رشته ی فوق سه بایت اول (0X10 0X68 0X03) مربوط به تنظیم شتاب موتورها به میزان سه می باشند. هم چنین سه بایت دوم و سوم به ترتیب برای تنظیم سرعت موتور اول در جهت ساعت گرد به میزان 40 (0X28) و سرعت موتور دوم در جهت پاد ساعت گرد به میزان 255 (0XFF) می باشند.
توجه: شتاب پیش فرض بورد 0X00 می باشد (حداکثر شتاب یا کمترین لختی).
۳-۶- دریافت مقادیر انکودرها
با مراجعه به جدول دستورات در حالت کنترل موتور DC (جدول3) مشاهده می کنید که با ارسال آدرس های 0X69 تا 0X6E می توانید مقادیر مربوط به انکودرها را دریافت نمایید به طوری که آدرس های 0X69 تا 0X6C برای دریافت میزان پالس های انکودر در مد معمولی و آدرس های 0X6D و 0X6E برای دریافت میزان پالس های انکودر در مد Quadrature میباشند.
شمارش پالس ها در درایور MDC20 در صورتی که مد انکودر در حالت Quadrature قرار گیرد (0X01) با دقت یک برابر انجام می شود. به عنوان مثال در صورتی که انکودری در اختیار دارید که دقت نامی آن ۵۰۰ پالس می باشد، درایور MDC20 به ازای چرخش یک دور شقف موتوری که انکودر به آن متصل است مقدار ۵۰۰ را برمی گرداند.
در درایور MDC20 برای هر انکودر حافظه ای ۳۲ بیتی در نظر گرفته شده است که می تواند در دو جهت متفاوت به شمارش پالس های انکودر بپردازد این عدد می تواند بین 2147483648 تا 2147483648- باشد. در واقع بری چرخش در جهت ساعت گرد این عدد افزایشی (Incremental) و برای چرخش در جهت پاد ساعت گرد این عدد کاهشی (Decremented) میباشد.
توضیح اینکه در صورتی که موتور در جهت ساعت گرد بچرخد مقدار انکودر به ازای هر پالس یک واحد افزایش و درصوتی که موتور در جهت پاد ساعت گرد بچرخد مقدار انکودر به ازای هر پالس یک واحد کاهش می یابد. شکل موج خروجی کانال های یک انکودر Quadrature به صورت زیر می باشد.
در صورتی که مد انکودر 0X01 تنظیم گردد، شکل موج پالس هایی که به MDC20 اعمال خواهند شد به صورت شکل بالا می باشد که در آن کانال های A و B به میزان ۹۰ درجه با یکدیگر اختلاف فاز دارند و از روی همین اختلاف فاز درایور جهت را تشخیص داده و اقدام به شمارش افزایشی یا کاهشی می نماید (برای کسب اطلاعات بیشتر راجع به انکودر Quadrature به بخش مقالات آموزشی در سایت شرکت به این نشانی مراجعه نمایید).
قالب دستورات برای دریافت مقادیر انکودرها به صورت زیر می باشد.
Instruction | Board Address |
---|
مطابق جدول ۳ آدرس دستور (Instruction) برای خواندن مقدار انکودر هر یک از موتورها در دو مد کاری معمولی و quadrature از 0X69 تا 0X6E می باشد.
برای مثال اگر مد انکودر خود را در حالت 0X01 (مد Quadrature) تنظیم کرده اید با ارسال رشته زیر می توانید مقدار انکودر موتور یک بوردی با آدرس ۳ را در حالت شمارش Quadrature دریافت نمایید.
0X03 0X6D
در سایر دستورات خواندنی در جدول دستورات ۳ از قبیل خواندن سرعت، شتاب، مدل بورد و… روال کار دقیقا مشابه میباشد. در واقع سه مرحله ی پشت سر هم از قبیل:
۱- ارسال آدرس بورد
۲- ارسال آدرس دستور
۳- خواندن جواب ارسالی از درایور
باید در تمامی دستورات خواندنی انجام پذیرند.
۴- کنترل MDC20 در حالت درایو یک موتورپله ای
در این بخش به بیان نحوه کنترل یک موتور پله ای با درایور MDC20 می پردازیم. همانند راه اندازی موتور DC بایستی ابتدا تنظیمات اولیه مربوطه را انجام دهیم.
۴-۱- کنترل MDC20 – انجام تنظیمات اولیه – Stepper
برای انجام تنظیمات مربوط به مد کاری موتور پله ای مشابه قسمت تنظیمات در مد کاری موتور DC عمل کنید با این تفاوت که چون کنترل موتورهای پله ای به صورت حلقه باز انجام می شود دیگر نیازی به استفاده از انکودر در آنها نمی باشد و رشته ی مربوط به مد انکودر را می توانید هر یک از مقادیر 0X00 و یا 0X01 تنظیم کنید. رشته های مربوط به آدرس بورد و نرخ ارسال اطلاعات نیز مشابه مد کاری موتور DC می باشند.
۴-۲- کنترل MDC20 – قرار دادن درایور در حالت درایو یک موتور پله ای
مطابق جدول ۱ برای ورود به مد کاری موتور پله ای سوئیچ های ۱ و ۲ و ۳ را در حالت ON و سوئیچ ۴ را در حالت OFF قرار دهید. سپس دکمه ریست را به مدت یک ثانیه فشار دهید تا وارد مد کاری موتور پله ای شوید.
موتورهای پله ای برخلاف موتورهای دی سی که دو رشته سیم از آنها خارج می شود شامل ۴، ۵، ۶ و یا ۸ رشته سیم خروجی می باشند که دلیل آن به ساختار موتورهای پلهای برمیگردد (برای کسب اطلاعات راجع به ساختار موتورهای پله ای به بخش مقالات آموزشی در سایت شرکت به این نشانی مراجعه کنید). به طور خلاصه موتورهای پله ای به دو دسته ی مهم تک قطبی و دوقطبی تقسیم می شوند که نحوه ی راه اندازی در هر کدام متفاوت است.
توضیحات | تعداد بایت دریافتی | تعداد بایت ارسالی | نام دستور | آدرس دستور (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 |
۴-۳- تنظیم نحوه ی راه اندازی موتور پله ای
همان طور که می دانیم موتورهای پله ای به دو دسته تک قطبی و دو قطبی تقسیم می شوند که نحوه ی راه اندازی در هرکدام متفاوت است. همچنین راه اندازی موتورهای تک قطبی نیز شامل سه روش راه اندازی موجی، راه اندازی کامل و راه اندازی نیم پله می باشد. بنابراین اولین قدم در راه اندازی موتور پله ای تنظیم نحوه ی راه اندازی آن می باشد.
قالب دستورات برای تنظیم نحوه ی راه اندازی موتور پله ای به صورت زیر می باشد:
Mode of Drive | 0XCB (Instruction) | Board Address |
---|
در قالب فوق رشته ی of Drive Mode به صورت جدول زیر روش راه اندازی موتور پله ای را مشخص می کند:
0X04 | 0X03 | 0X02 | 0X01 |
---|---|---|---|
Half Step Drive | Full Step Drive | Wave Drive | Bipolar Drive |
به عنوان مثال برای تنظیم نحوه ی راه اندازی موتور پله ای با آدرس ۹۹ به صورت دوقطبی باید رشته زیر را ارسال نمایید:
0X63 0XCB 0X01
نکته: در درایور نحوه ی راه اندازی پیش فرض موتور پله ای، راه اندازی دوقطبی میباشد.
۴-۴- راه اندازی موتورهای پله ای دو قطبی
در استاتور موتورهای پله ای دوقطبی دو سیم پیچ مجزا وجود دارد که انتهای هر یک از آنها به صورت دو رشته سیم از آن بیرون آمده است. راه اندازی این گونه از موتورها کمی دشوارتر از موتورهای پله ای تک قطبی است چرا که در موتورهای پله ای دوقطبی مجبوریم جهت جریان عبوری از سیم پیچ ها را تغییر دهیم. توجه کنید که هر یک از موتورهای پله ای ۵، ۶ و یا ۸ سیمه را می توان با آرایش دوقطبی راه اندازی کرد. فرض کنید سیم پیچ های یک موتور پله ای دوقطبی را به صورت زیر در نظر بگیریم:
برای راه اندازی موتور پله ای دوقطبی مطابق جدول ۵ باید ابتدا نحوه ی راه اندازی را به صورت دوقطبی تنظیم کنید. سپس سرهای A و B را به خروجی موتوریک (بر روی درایور مشخص شده است) و سرهای C و D را به خروجی موتور دو متصل کنید.
پس از تنظیم نحوه ی راه اندازی موتور پله ای بایستی سرعت چرخش موتور پله ای را مشخص کنید. برای این کار مطابق جدول ۴ قالب دستورات برای تنظیم سرعت موتور پلهای به صورت زیر میباشد:
Stepper’s Speed | 0XCC (Instruction) | Board Address |
---|
در قالب فوق بایت Stepper’s Speed که سرعت چرخش موتور پله ای را مشخص می کند می تواند از صفر (0X00) تا 255 (0XFF) تنظیم گردد به طوری که عدد صفر معادل سرعت صفر بوده و با افزایش آن سرعت موتور پله ای افزایش می یابد. به عنوان مثال برای تنظیم سرعت موتور پله ای با آدرس ۵۰ به میزان ۵ باید رشته زیر را ارسال نمایید:
0X32 0XCC 0X05
نکته: در موتورهای پله ای با افزایش سرعت موتور گشتاور آن کاهش می یابد به طوری که با افزایش سرعت از یک میزان مشخصی شفت موتور دیگر قادر به دنبال کردن آن سرعت نبوده و پدیده رزونانس اتفاق می افتد. سرعت پیش فرض موتور پله ای ۲۵۲ می باشد.
پس از تنظیم سرعت می توانید با استفاده از قالب زیر دستورات حرکتی را برای موتور پله ای مورد نظر ارسال کنید:
Stepper’s Step | 0XC9/0XCA (Instruction) | Board Address |
---|
در قالب دستورات فوق 0XC9 برای چرخش در جهت ساعت گرد و 0XCA برای چرخش در جهت پاد ساعت گرد می باشد. هم چنین بایت Stepper’s Step تعداد پله را مشخص می کند که می تواند از صفر تا ۲۵۵ پله تنظیم گردد.
به عنوان مثال چنانچه قصد دارید موتور پله ای با آدرس ۵۰ به صورت دوقطبی با سرعت ۵ در جهت ساعت گرد ۱۰۰ پله حرکت کند باید رشته زیر را ارسال کنید:
0X32 0XCB 0X01 0X32 0XCC 0X05 0X32 0XC9 0XC8
رشته ی فوق باید به ترتیب از سمت چپ ارسال گردد. توضیح اینکه سه بایت اول نحوه ی راه اندازی موتور پله ای با آدرس ۵۰ را در حالت دوقطبی تنظیم می کند، هم چنین سه بایت دوم سرعت چرخش موتور پله ای را ۵ قرار می دهد و در نهایت سه بایت سوم باعث چرخش موتور پله ای به میزان ۱۰۰ پله در جهت ساعت گرد میگردد.
۴-۵- راه اندازی موتورهای پله ای تک قطبی
موتورهای پلهای تک قطبی را میتوان به سه روش زیر راه اندازی کرد:
۱- راه اندازی موجی (Wave Drive)
۲- راه اندازی کامل (Full Drive)
۳- راه اندازی نیم پله (Half Drive)
برای راه اندازی موتورهای پله ای تک قطبی به لحاظ نرم افزاری تنها کافیست مطابق جدول ۵ نحوه ی راه اندازی موتور پله ای را یکی از سه روش فوق تنظیم کنیم.
ولی نحوه ی اتصال موتور پلهای تک قطبی به درایور به سادگی موتور پله ای دوقطبی نبوده و باید از نحوه ی اتصالات سیم پیچهای موتور پله ای مطلع باشیم که برای کسب اطلاعات راجع به نحوه ی اتصالات در سیم پیچ های موتور پله ای به بخش مقالات آموزشی در سایت شرکت به این نشانی مراجعه نمایید. سایر مراحل از قبیل تنظیم سرعت و دستورات حرکتی مشابه راه اندازی موتورهای پله ای دو قطبی میباشد.
۵- نحوه شبکه کردن درایور MDC20
در این بخش نحوه شبکه کردن چندین درایور را شرح خواهیم داد. در برخی اوقات ممکن است شما شبکه ای از موتورها داشته باشید و نیازمند کنترل همزمان آنها توسط چندین درایور هستید. به منظور حذف یک Main Controller درایورهای MDC20 قابلیت اتصال شبکه ای را دارند تا بواسط یک خط فرمان بتوانید هر کدام را جداگانه کنترل نمایید. این شبکه در سه حالت مختلف ممکن است رخ دهد که در ادامه به توضیح تنظیمات آن در هر حالت پرداخته شده است.
۵-۱-a- شبکه کردن سه یا چند موتور DC
چنانچه بخواهید بیش از دو موتور DC را تنها از طریق یک درگاه USB یا UART کنترل و هدایت کنید باید از درایورهای MDC20 به صورت شبکه استفاده کنید.
برای این منظور ابتدا باید تنظیمات درایورهای MDC20 را به طور جداگانه مشابه قسمت انجام تنظیمات در مد کاری موتور دی سی (قسمت ۳-۱) انجام دهید. دقت کنید که در این مرحله باید به هر یک از بوردهای MDC20 آدرسی متفاوت اختصاص دهید ( در صورت مشابه بودن آدرسها عملکرد مطلوب حاصل نخواهد شد).
پس از انجام تنظیمات باید تمامی بوردهای MDC20 را از طریق درگاه UART با یکدیگر شبکه کنید که برای این منظور باید تمامی پایه های RX در بوردهای MDC20 را به یکدیگر و تمامی پایه های TX را نیز به یکدیگر متصل کنید.
نکته: در صورتی که درایورهای MDC20 را از طریق منابع متفاوت تغذیه می کنید باید زمین (GND) تمامی بوردها را به منظور عملکرد صحیح به یکدیگر متصل کنید.
پس از شبکه کردن بوردهای MDC20 با یکدیگر چنانچه می خواهید تمامی آنها را از طریق یک درگاه USB و به وسیله کامپیوتر کنترل کنید، ابتدا مطابق جدول ۱ مد کاری تمامی درایورهای MDC20 را در حالت DC قرار دهید. سپس سوئیچهای ۱ و ۲ درایوری که می خواهید از طریق آن به وسیله درگاه USB به کامپیوتر متصل شوید را در حالت ON قرار داده و سوئیچهای ۱ و ۲ سایر درایورها را از حالت ON خارج کنید. پس از انجام مراحل فوق دکمه ریست را در تک تک بوردها به مدت یک ثانیه فشار دهید تا هر کدام از بوردها وارد مد عملیاتی DC شوند (در صورتی که تغذیه بوردها را خاموش و سپس روشن کنید نیز این کار انجام می شود). اکنون می توانید این شبکه از بوردها را از طریق درگاه USB کنترل کنید.
چنانچه می خواهید این شبکه از درایورهای MDC20 را از طریق درگاه UART و به وسیله یک بورد کنترلی دیگر کنترل کنید لازم است که سوئیچ های ۱ و ۲ در تمامی بوردها را از حالت ON خارج کنید.
۵-۱-b- شبکه کردن دو یا چند موتور پلهای
چنانچه می خواهید بیش از یک موتور پله ای را از طریق یک درگاه USB و یا UART کنترل کنید باید مشابه قمست قبل عمل کنید تنها با این تفاوت که مد عملیاتی بوردها باید در حالت کنترل موتور پلهای قرار گیرند.
۵-۱-c- شبکه ای از موتورهای DC و پله ای
با ترکیب دو مرحله ی قبل میتوانید شبکه ای از موتورهای DC و پله ای را از طریق یک درگاه USB و یا UART کنترل و هدایت کنید.
رابط کاربری گرافیکی درایور MDC20
درایور MDC20 دارای یک رابط کاربری گرافیکی (GUI) است. در این نرم افزار دو زبانه کارکرد در حالت موتور DC و استپر وجود دارد. شما می توانید آخرین نسخه از این رابط کاربری را از نسخه زیر دانلود نمایید. همچنین برای فراگیری نحوه کار با این رابط کاربری می توانید به این آدرس مراجعه فرمایید.
برای استفاده هر چه بهتر از این درایور می توانید به مقالات آموزشی زیر در بلاگ آموزشی شرکت مراجعه نمایید.
- آموزش نحوهی راهاندازی درایور MDC20 با نرمافزار متلب
- پیادهسازی کنترل PID بر روی درایور MDC20 به صورت بلادرنگ (Real-Time) در محیط سیمولینک
- GUI درایور MDC20 در نرمافزار متلب
- کنترل PID در نرم افزار LabVIEW با کمک درایور MDC20
- راه اندازی درایور MDC20 با استفاده از نرم افزار لب ویو (Labview)
- راهاندازی درایور MDC20 با آردوینو
- عملیات از راه دور در نرم افزار متلب توسط درایور MDC20 به کمک کنترلر PID
- رابط گرافیکی درایور MDC20
- درایور MDC20 | مناسب برای کنترل حلقه بسته
- آموزش نحوه راهاندازی درایور MDC20 با نرم افزار Hercules
- پیادهسازی کنترلر PID در نرم افزار MATLAB به کمک درایور MDC20
- نصب نرمافزارهای مورد نیاز برای درایور MDC20
- راهاندازی استپر موتور با درایور MDC20 در نرمافزار متلب
مثالهای نمونه راه اندازی و کاربردی
با توجه به استفاده گسترده درایور MDC20 در فرآیندهای صنعتی و آزمایشگاهی تیم فنی مهندسی ربات سازان اقدام به تهیه و آموزش نمونه مثال های کاربردی کرده است. سعی شده است برای پوشش تمامی کاربران از گرایش های مختلف، نمونه مثالها (در قالب آموزش های متنی و تصویری) با زبان های مختلف برنامه نویسی اعم از C# و MATLAB تهیه شود. مطالب آموزشی همگی در بلاگ آموزشی این شرکت منتشر خواهند شد و برای دسترسی آسان تر در آدرس قرار داده شده جمع آوری شده اند.
شرایط گارانتی محصولات شرکت ربات سازان
این محصول دارای ۸ ماه گارانتی میباشد. چنانچه محصول تحت شرایط کار نامی خود به مشکل بخورد شرکت بدون دریافت هزینه اشکالات احتمالی را برطرف خواهد کرد.
شرایط ابطال گارانتی:
۱- آسیب دیدن در اثر جریان بیش از حد که باعث ذوب شدن مسیرهای برد مدار چاپی محصول خواهد شد. درایور دارای یک جریان دهی دائمی و یک جریان دهی لحظهای میباشد. هرگز نباید جریانی که به صورت پیوسته از درایور عبور میکند از جریان دهی دائمی آن بیشتر شود. حتما قبل از تغذیه درایور یک عدد فیوز قرار دهید. جریان فیوز نباید بیشتر از جریان دهی دائمی درایور باشد.
۲- آسیب دیدن در اثر شرایطی که اتصال کوتاه در خروجی درایور رخ دهد. اگر سیمهای موتور دارای پارگی باشند و به یکدیگر متصل شوند اتصال کوتاه در خروجی موتور درایور رخ میدهد که باعث آسیب رسیدن به درایور خواهد شد.
۳- آسیب دیدن تحت شرایطی که یکی از خروجیهای موتور درایور به زمین یا تغذیه اتصال یابد.
۴- آسیب دیدن در اثر استفاده از درایور در محیطهای مرطوب و یا پر از گرد و غبار و پلیسههای رسانا. استفاده از درایور در محیطهای مرطوب میتواند منجر به نفوذ رطوبت به داخل درایور گردد. این رطوبت میتواند در قطعاتی که فاصله پایههای آن بسیار نزدیک به هم میباشد رسانایی ایجاد کرده و منجر به صدمه رساندن به درایور شود. همچنین نفوذ گرد و غبار به تشدید این شرایط کمک خواهد کرد. استفاده از درایور در دستگاههای ماشین کاری فلزات میتواند منجر به نفوذ پلیسه به داخل درایور و ایجاد اتصال کوتاه در بین پایههای قطعات گردد. در چنین شرایطی باید حتما درایور داخل یک قاب دیگر که مقاوم در برابر رطوبت و نفوذ گرد و غبار و پلیسه هست قرار گیرد.
۵- در صورتیکه درایور به هر دلیلی به مشکل خورده است و مشتری اقدام به باز کردن قاب درایور و دستکاری سخت افزاری آن نماید.
۶- چنانچه مشتری اقدام به سوراخکاری قسمتی از بدنه و یا هیت سینک نماید و درایور دچار آسیب شود. دلیل صدمه دیدن درایور تحت این شرایط میتواند ناشی از نفوذ پلیسه به داخل درایور و یا خراب شدن قطعات در اثر ارتعاش ناشی از سوراخکاری باشد.
۷- آسیب دیدن درایور در اثر اضافه ولتاژ ایجاد شده به هنگام کاهش سرعت با نرخ بالا. چنانچه باری که به شفت موتور متصل کردهاید دارای ممان اینرسی بالایی باشد به هنگام ترمزگیری شدید توان مکانیکی موجود در ممان دوار به سمت درایور جاری شده و باعث افزایش ولتاژ در لاین خط تغذیه میشود. اگر سطح ولتاژ به حدی افزایش یابد که بیشتر از حد تحمل درایور گردد میتواند منجر به آسیب رساندن به درایور شود. در صورتیکه باری با ممان اینرسی بالا دارید و ناچار هستید با نرخ بالا عمل کاهش سرعت را انجام دهید حتما باید از مقاومت ترمزی مناسب استفاده کنید. اگر امکان استفاده از مقاومت ترمزی وجود ندارد باید کاهش سرعت را با نرخی انجام دهید که هرگز اضافه ولتاژ ایجاد شده بیشتر از حد تحمل درایور نگردد. برخی از درایورهای شرکت ربات سازان دارای یک ولوم تنظیم شتاب میباشند که با استفاده از این ولوم میتوانید شیب افزایش و یا کاهش سرعت را تنظیم نمایید.
۸- آسیب رسیدن به درایور در اثر جابهجا زدن پلاریته تغذیه درایور. به هنگام اتصال تغذیه همواره به پلاریته آن دقت نمایید.
۹- آسیب رسیدن به درایور در اثر وصل کردن تغذیه به خروجی موتور!
۱۰- آسیب رسیدن به درایور در اثر وصل کردن آن به تغذیهای با ولتاژی بیشتر از ولتاژ نامی درایور.
محصولات مرتبط
-
درایور MD5
برای قیمت تماس بگیرید -
درایور موتور دی سی TMC100
۲۱,۷۵۰,۰۰۰ تومان
نقد و بررسیها
هنوز بررسیای ثبت نشده است.