ربات سازان: طراح و تولیدکننده موتورهای الکتریکیربات سازان: طراح و تولیدکننده موتورهای الکتریکیربات سازان: طراح و تولیدکننده موتورهای الکتریکیربات سازان: طراح و تولیدکننده موتورهای الکتریکی
  • صفحه نخست
  • محصولات
    • درایورهای موتور DC
    • درایورهای موتور Stepper
    • کنتـــرلرها
    • عملگر خطی | سروو جک
    • الکتروموتور و دینام
    • ربـــات‌ها
  • مقالات آموزشی
    • مستندات آموزشی محصولات
      • مستندات آموزشی درایور PMD90
      • مستندات آموزشی درایور MD10/AMD10
      • مستندات آموزشی درایور PMD60A
      • مستندات آموزشی درایور MSD02
      • مستندات آموزشی مولد پالس
      • مستندات آموزشی درایور PMD30
      • مستندات آموزشی درایور MDC20
      • مستندات آموزشی سرو درایور MHD4830
      • مستندات آموزشی درایورهای استپر پنج فاز
      • مستندات آموزشی درایور MD5
      • مستندات آموزشی ربات روهان
    • موتورهای الکتریکی و کاربردهای آن
      • موتورهای الکتریکی DC
      • موتورهای الکتریکی AC
      • موتورهای الکتریکی Stepper
      • سایر موتورهای الکتریکی
    • مقالات آموزشی الکترونیک
    • آموزش میکروکنترلر
      • آموزش میکروکنترلرهای AVR
      • آموزش میکروکنترلرهای ARM سری LPC
      • آموزش میکروکنترلرهای ARM سری STM
    • آموزش کاربردی آردوینو
    • رباتیک و معرفی ربات‌های کاربردی
    • آموزش مفاهیم پایه در مکانیک
    • آموزش مفاهیم پایه در کنترل
    • آموزش برنامه‌نویسی
    • ایده‌های ربات سازان جهت جذب سرمایه گذار
    • سایر مقالات آموزشی
  • تماس با شرکت
✕

GUI درایور MDC20 در نرم‌افزار متلب

  • صفحه نخست
  • بلاگ ربات سازان
  • برنامه‌نویسی
  • GUI درایور MDC20 در نرم‌افزار متلب
آموزش GUI متلب: ساخت اتوران رابط گرافیکی (قسمت ۴)
آموزش GUI متلب: ساخت اتوران رابط گرافیکی (قسمت ۴)
۱۴ شهریور ۱۳۹۸
پیاده‌سازی کنترل PID بر روی درایور MDC20 به صورت بلادرنگ (Real-Time) در محیط سیمولینک
پیاده‌سازی کنترل PID بر روی درایور MDC20 به صورت بلادرنگ (Real-Time) در محیط سیمولینک
۱۴ شهریور ۱۳۹۸

GUI درایور MDC20 در نرم‌افزار متلب

۱۴ شهریور ۱۳۹۸
blank
دسته‌بندی‌ها
  • برنامه‌نویسی
  • محصولات
برچسب‌ها
  • مستندات آموزشی درایور MDC20
کنترل MDC20 توسط GUI متلب

کنترل MDC20 توسط GUI متلب

GUI در نرم افزار متلب

در این مقاله با جزئیات پنجره گرافیکی مربوط به درایور MDC20 آشنا خواهید شد. همانطور که در شکل ۱ مشاهده می‌شود. در قسمت Setting این نرم افزار ورودی PORT با استفاده از Pop up menu ایجاد شده است. این ورودی PORT، به معنی مشخص کردن پورتیست که لپتاپ را به درایور MDC20 متصل کرده است.
در قسمت Setting این نرم افزار ورودی PORT با استفاده از Pop up menu ایجاد شده است.

شکل ۱

برای فهمیدن نام پورت، به Device Manager ویندوز مراجعه کنید. سپس در قسمت Port نام پورت های متصل شده را نوشته است (در صورت اشکال با ما تماس بگیرید). کد نوشته شده زیر نحوه‌ی استفاده از Pop up menu را نشان می‌دهد:

delete(instrfind)
a1 = get( handles.PORT,'value');
if (a1==2);
    p = 'COM1';
elseif (a1==3);
    p = 'COM2';
elseif (a1==4);
    p = 'COM3';
elseif (a1==5);
    p = 'COM4';
elseif (a1==6);
    p = 'COM5';
elseif (a1==7);
    p = 'COM6';
elseif (a1==8);
    p = 'COM7';
elseif (a1==9);
    p = 'COM8';
elseif (a1==10);
    p = 'COM9';    
elseif (a1==11);
    p = 'COM10';
elseif (a1==12);
    p = 'COM11';
elseif (a1==13);
    p = 'COM12';
elseif (a1==14);
    p = 'COM13';
elseif (a1==15);
    p = 'COM14';
elseif (a1==16);
    p = 'COM15';    
end
 
s=serial(p);
set(s,'BaudRate',9600);
fopen(s);

 

سپس با استفاده از Edit Text نسبت چرخ دنده موتور را (در صورت وجود گیربکس) می‌گیریم که کدهای آن به صورت زیر است:

 

ratio1=str2num(get(handles.ratio,'string'));

همچنین تعداد پالس های Encoder متصل به موتور را مانند این کد وارد می‌کنیم:

pulse1=str2num(get(handles.pul,'string'));

 

مورد استفاده تعداد پالس و نسبت چرخدنده برای محاسبه دقیق میزان چرخش موتور است، به صورتی که در ابتدا تعداد پالسی که موتور می‌چرخد را از Encoder می‌گیرد سپس برای تبدیل این تعداد پالس به درجه آن را در [360/(encoder puls*Gear rate)] ضرب می‌کند. همپنین به دلیل وجود موتور گیربکس دار این نسبت را در 1/24  ضرب می‌کند. که کد نهایی آن به صورت زیر در می‌آید:

 

Ab=pulse1*ratio1;
yp = (fscanf(s,'%e',14))*360/Ab;

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

r = str2num(get(handles.ref,'string'));

که از Refrence برای محاسبه خطا استفاده می‌شود.

 error = r-yp;

 

برای قرار دادن توضیحات برای راهنمایی بیشتر در GUI تعدادی push button جلوی بعضی از آیکون‌ها قرار گرفته است که با استفاده از آن‌ها توضیحاتی در static text به نام more information چاپ می‌شود.

 

function encod_Callback(hObject, eventdata, handles)
% hObject    handle to encod (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
h= {'Enter the number of encoders pulse.'};
set(handles.show,'string',h);

 

دکمه Run و تعدادی slider در نرم افزار GUI

شکل ۲

در صفحه دوم این GUI (شکل ۲) دکمه Run و تعدادی slider را داریم. دلیل قرار دادن این Slider‌ ها، برای تغییر دستی راحت‌تر ضریب‌های Kp، Kd و Ki می‌باشد. برای تغییر دقت اسلایدر‌ها، یک عدد Edit Text برای هر یک قرار داده شده است که می‌توان ماکسیمم میزان اسلایدر را تعیین نمود. در کادر زرد رنگ هم میزان عدد معین شده برای ضرایب نشان داده می‌شود. کد‌های آن به صورت زیر می‌باشد. برای نمایش میزان تغییرات در کادر زرد رنگ، کد زیر را بعد از call back آن اسلایدر، می‌نویسیم:

 

function slider1_Callback(hObject, eventdata, handles)
% hObject    handle to slider1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
b1 = get(handles.slider1,'value');
k1 = str2num(get(handles.intkp,'string'));
Kp = k1*b1;
set(handles.Kp,'string',num2str(Kp));

 

و برای استفاده از این ضرایب در محاسبه خطا، کد زیر را بعد از call back دکمه ران می‌نویسیم:

 

b1 = get(handles.slider1,'value');
k1 = str2num(get(handles.intkp,'string'));
Kp = k1*b1;

 

شکل ۳- کنترل دستی موتور در صفحه سوم GUI

شکل ۳

 

در صفحه سوم از این GUI  (شکل ۳) می‌خواهیم موتور را به صورت دستی کنترل کنیم. در ابتدا به دلیل توانایی کنترل دو موتور، دو عدد Check box برای فعال کردن موتور یک و موتور دو قرار گرفته است. که برای فعال‌شدن هر یک، از دستور if استفاده شده است. سپس اسلایدری قرار گرفته تا بتوان با استفاده از آن سرعت موتور را کنترل کرد. همچنین توسط یک عدد Edit Text بازه‌ی سرعت موتور، تعیین می‌شود. بعد از آن دو عدد radio button قرار داده شده است که توسط آن چرخش ساعتگرد و یا پاد ساعتگرد موتور مشخص می‌شود. در آن میان هم یک عدد اسلایدر برای تعیین میزان شتاب شروع، استفاده شده است.

 

o1= get(handles.checkbox3,'value');
o2= get(handles.checkbox4,'value');
o3= get(handles.checkbox5,'value');
o4= get(handles.checkbox6,'value');
if (o1==1 || o2==1) & (o3==1 || o4==1)
    a3= get(handles.slider4,'value');
    a4= round(a3*255);
    d1= dec2hex(a4);
    a5= get(handles.radiobutton3,'value');
    if a5==1
        c1='64'
    else
        c1='66'
    end
    
    M1CW = hex2dec({'00' , c1 , d1});
    fwrite (s , M1CW);
    
     a7= get(handles.slider5,'value');
     a9= round(a7*255);
     d2= dec2hex(a9);
     a10= get(handles.radiobutton5,'value');
     if a10==1
         c2='65';
     else
         c2='67';
     end
     M2CCW = hex2dec ({'00' , c2 , d2});
     fwrite(s,M2CCW);
end
 
 
if o1==1 || o2==1
    a3= get(handles.slider4,'value');
    a2= str2num(get(handles.edit15,'string'));
    a4= round(a3*a2);
    d1= dec2hex(a4);
    a5= get(handles.radiobutton3,'value');
    if a5==1
        c1='64'
    else
        c1='66'
    end
    
    M1CW = hex2dec({'00' , c1 , d1});
    fwrite (s , M1CW);
 
    
elseif o3==1 || o4==1
     a7= get(handles.slider5,'value');
     a8= str2num(get(handles.edit17,'string'));
     a9= round(a7*a8);
     d2= dec2hex(a9);
     a10= get(handles.radiobutton5,'value');
     if a10==1
         c2='65';
     else
         c2='67';
     end
     M2CCW = hex2dec ({'00' , c2 , d2});
     fwrite(s,M2CCW);
     
end

a6= get(handles.slider6,'value');
d3= dec2hex(round(a6*255));
Acceleration = hex2dec({'00' , '68' , d3 });
fwrite(s,Acceleration);
end

 

شکل ۴- تست موتور استپر در صفحه چهارم GUI

شکل ۴

 

در چهارمین صفحه (شکل ۴) شما می‌توانید موتور استپر خود را تست کنید. در ابتدا توجه داشته باشید حتما درایور MDC20 در حالت stepper mode قرار داشته باشد. برای قرار دادن موتور در حالت استپر و نحوه اتصال سیم‌ها، به کاتالوگ محصول مراجعه فرمایید. در این صفحه شما ابتدا نوع ران کردن خود را توسط ۴ عدد radio button تعیین می‌کنید (به نوع اتصال سیم‌ها در هر نوع دقت فرمایید). سپس جهت چرخش موتور تعیین و در آخر نیز سرعت و تعداد استپ وارد شود. دقت کنید حداکثر سرعت ۲۵۲ می‌باشد.

 

function pushbutton17_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton17 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
a1 = get( handles.PORT,'value');
if (a1==2);
    p = 'COM1';
elseif (a1==3);
    p = 'COM2';
elseif (a1==4);
    p = 'COM3';
elseif (a1==5);
    p = 'COM4';
elseif (a1==6);
    p = 'COM5';
elseif (a1==7);
    p = 'COM6';
elseif (a1==8);
    p = 'COM7';
elseif (a1==9);
    p = 'COM8';
elseif (a1==10);
    p = 'COM9';    
elseif (a1==11);
    p = 'COM10';
elseif (a1==12);
    p = 'COM11';
elseif (a1==13);
    p = 'COM12';
elseif (a1==14);
    p = 'COM13';
elseif (a1==15);
    p = 'COM14';
elseif (a1==16);
    p = 'COM15';    
end
delete(instrfind);
s = serial (p);
set(s,'Baudrate',9600);
fopen(s);
s1=str2num(get(handles.som,'string'));
    c1= get(handles.radiobutton7,'value');
     c2= get(handles.radiobutton8,'value');
      c3= get(handles.radiobutton9,'value');
       c4= get(handles.radiobutton10,'value');
    if c1==1
        d='01'
    elseif c2==1
        d='02'
    elseif c3==1
        d='03'
    elseif c4==1
        d='04'
    end
Mode_of_Drvie =hex2dec({'00','CB','01'});
fwrite(s,Mode_of_Drvie);
spd=(str2num(get(handles.v,'string')));
if spd >252
    spd=252
end
spd=dec2hex(spd);
 
 Stepper_Speed = hex2dec({'00','CC',spd});
fwrite(s,Stepper_Speed);
 
a5= get(handles.radiobutton11,'value');
    if a5==1
        F1='C9'
    else
        F1='CA'
    end
x1=str2num(get(handles.fuc2,'string'));
x1=dec2hex(x1);
Stepper_Step = hex2dec({'00',F1,x1});
fwrite(s,Stepper_Step);

 

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

 

کنترل MDC20 توسط GUI متلب

کنترل MDC20 توسط GUI متلب

 

بیشتر بخوانید:

  • آموزش GUI متلب: معرفی نوار ابزار ها (قسمت ۱)
  • آموزش GUI متلب: ساختن زبانه های مختلف در یک پنجره (قسمت ۲)
  • آموزش GUI متلب: گذاشتن تصویر در GUI (قسمت ۳)
  • آموزش GUI متلب: exe کردن رابط کاربری (قسمت ۴)
  • GUI درایور MDC20 در نرم‌افزار متلب

 

 

با تشکر از: آقای مهندس امیررضا اشرفی و آقای مهندس سینا اصفهانی

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

مطالب و مقالات مرتبط

آموزش کنترل از راه دور ربات با رادیو کنترل به وسیله دو عدد درایور PMD90
۲۰ خرداد ۱۳۹۹

کنترل از راه دور ربات با رادیو کنترل به وسیله دو عدد درایور PMD90


مشاهده مطلب ...
آموزش نحوه‌ی راه‌اندازی درایور MDC20 با نرم‌افزار متلب

آموزش نحوه‌ی راه‌اندازی درایور MDC20 با نرم‌افزار متلب

۱۱ اسفند ۱۳۹۸

آموزش نحوه‌ی راه‌اندازی درایور MDC20 با نرم‌افزار متلب


مشاهده مطلب ...
پیاده‌سازی کنترل PID بر روی درایور MDC20 به صورت بلادرنگ (Real-Time) در محیط سیمولینک

پیاده‌سازی کنترل PID بر روی درایور MDC20 به صورت بلادرنگ (Real-Time) در محیط سیمولینک

۱۰ مهر ۱۳۹۸

پیاده‌سازی کنترل PID بر روی درایور MDC20 به صورت بلادرنگ (Real-Time) در محیط سیمولینک


مشاهده مطلب ...

2 Comments

  1. blank .A.Mahdianmehr گفت:
    ۲۴ آبان ۱۳۹۸ در ۱۲:۱۷

    ممنون

    پاسخ
  2. رابط گرافیکی درایور MDC20 — ربات سازان گفت:
    ۱۶ بهمن ۱۳۹۹ در ۱۶:۴۳

    […] GUI درایور MDC20 در نرم‌افزار متلب […]

    پاسخ

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

جستجو در مطالب ربات سازان

✕

آخرین نوشته‌های ربات سازان

  • انتخاب بهینه‌ترین هیت‌سینک برای کاربردهای الکترونیک قدرت0
    انتخاب بهینه‌ترین هیت‌سینک برای کاربردهای الکترونیک قدرت
    ۳ آبان ۱۴۰۲
  • خواندن پلاک الکتروموتورهای سه فاز0
    خواندن پلاک الکتروموتورهای سه فاز
    ۱۳ تیر ۱۴۰۱
  • خواندن دیتاشیت موتور دی سی1
    خواندن دیتاشیت موتور دی سی
    ۱۳ خرداد ۱۴۰۱
  • محاسبه نسبت گیربکس2
    محاسبه نسبت گیربکس
    ۸ خرداد ۱۴۰۱
  • محاسبه سرعت استپ موتور بر حسب دور بر دقیقه0
    محاسبه سرعت استپ موتور بر حسب دور بر دقیقه
    ۲ خرداد ۱۴۰۱

لوگوی ربات سازان

درباره ربات سازان

شرکت ربات سازان فعالیت خود را از سال ۱۳۹۳ شروع کرده است. در ابتدا حوزه کاری شرکت طراحی و ساخت ربات‌های پلتفرم آزمایشگاهی بود که به مرور با بومی‌سازی درایور موتورهای استفاده شده در این ربات‌ها محصولی جدید به سبد محصولات شرکت اضافه شد. پس از آن شرکت به صورت تخصصی شروع به طراحی و ساخت انواع درایورهای موتورهای الکتریکی دی سی و استپر کرد و اکنون پس از گذشت ۸ سال از فعالیت شرکت توانسته‌ایم با پوشش دادن رنج وسیعی از درایورهای موتورهای الکتریکی در ولتاژ، جریان و توان‌های مختلف نیازهای صنعت کشور عزیزمان را در زمینه‌های مختلف برطرف نماییم.

blankblankblankblank

دسترسی سریع

  • صفحه اصلی
  • بلاگ ربات سازان
  • همه محصولات ربات سازان
  • ارتباط با ما
تمامی حقوق مادی و معنوی مطالب این وبسایت متعلق به ربات سازان می‌باشد.
      ✕

      ورود

      گذرواژه خود را فراموش کرده اید؟

      می خواهید یک حساب کاربری ایجاد کنید؟