Top Banner

of 80

Thực tập kĩ thuật

Jan 09, 2016

Download

Documents

Gia Khanh

Điều khiển động cơ 1 chiều DC sử dụng vi xử lí Arduino
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    1

    MC LC

    LI M U..3

    Chng 1: TNG QUAN....4

    1. Gii thiu chung v Arduino...4

    1.1. Tng quan v Arduino Uno..4

    1.2. S chn Arduino..5

    2. Gii thiu v phn mn Proteus...7

    3.Cc phn mm s dng.9

    4. Chi ph thc hin ti9

    Chng 2: Nhn dng ng c DC11

    1. Xc nh thng s ng c ...11

    1.1 Xc nh dng hm truyn ..11

    1.2. Xc nh hm truyn v thng s PID ...11

    1.3. Kim nghim thng s PID21

    2. Nhn dng ng c thc24

    Chng 3: Thit k v m phng mch iu khin ng c DC- Encoder...30

    1. Thit k mch iu khin ng c DC-Encoder30

    1.1. Cch bm xung trong Arduino30

    1.2. c Encoder bng phng php ngt ngoi ..31

    1.2.1. Gii thiu v Encoder..31

    1.2.2. Ngt ngoi trong Arduino33

    1.3. Ngt Timer..35

    1.4. Nguyn tc iu khin ng c ..36

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    2

    1.5. Thit k mch trn Proteus.39

    2. Thit k giao din iu khin bng Megunolink...41

    2.1. Gii thiu v Megunolink..41

    2.2. Cc bc thit k giao din Megunolink42

    2.3. Kt qu bi ton..49

    Chng 4: M phng tay my 1DOF52

    1. Thit lp h phng trnh vi phn..52

    2. M phng bng Simulink..54

    3. M phng bng Matlab..59

    Chng 5: tng pht trin66

    Kt lun..72

    Ti liu tham kho.73

    Ph lc...74

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    3

    LI M U

    Hin nay khoa hc k thut ang pht trin rt nhanh, mang li nhng li ch cho con

    ngi v tt c nhng lnh vc trong cuc sng. nng cao i sng nhn dn v ha

    nhp vi s pht trin chung ca th gii, ng v nh nc ta ra nhng mc tiu

    a t nc i ln thnh mt nc cng nghip ha hin i ha. thc hin iu

    th mt trong nhng ngnh cn quan tm pht trin nht l ngnh c kh ni chung v

    c in t ni ring v n ng vai tr quan trng trong vic sn xut ra cc thit b cng

    c ( my mc, robot) ca mi ngnh kinh t.

    S xut hin ca Arduino to ra ln sng trn th gii trong vic lp trnh v thit

    k cc mch vi iu khin m khng i hi qu nhiu kin thc v lp trnh. Hin nay

    vic s dng Arduino Vit Nam tr nn ph bin v c s dng rng ri trong cc

    trng i hc cng ngh ca Vit Nam, cng nh nhng ngi am m v lp trnh vi

    iu khin.

    Vic s dng Arduino iu khin ng c cho thy kh nng ca Arduino, gp

    phn iu khin cc c cu, Robot tr nn linh hot v d dng hn. V vy vic iu

    khin ng c bng Arduino ang c s dng rng ri trong cng nghip . phng th

    nghim hin nay.

    Bi vit khng trnh khi nhng sai st, rt mong c s gip v ch bo ca

    thy c chng em lm tt hn trong nhng ln tip theo.

    Cui cng em xin trn thnh cm n s ch bo tn tnh ca thy c trong b mn C

    ng Dng v c bit l s hng dn ca thy ng Khoa gip chng em hc

    c rt nhiu iu v hon thnh mn thc tp k thut ny.

    Trn trng cm n

    H Ni, ngy thng nm 2015

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    4

    Chng 1: Tng quan

    1. Gii thiu v Arudino

    Arduino ra i ti th trn Ivrea thuc nc Italia. c t tn theo v vua vo th k

    th 9 l King Arduin. Arduino chnh thc c gii thiu vo nm 2005 nh l 1 cng c

    khim tn dnh cho cc sinh vin v gio s Massimo Banzi l 1 trong nhng ngi pht

    trin Arduino ti trng IDII. Mc d hu nh khng c tip th g c, tin tc v

    Arduino vn lan truyn vi tc chng mt nh nhng li truyn ming tt p ca

    nhng ngi dng u tin. Hin nay Arduino ni ting ti ni c ngi n th trn

    Ivrea thm quan ni sinh ra ca Arduino.

    Arduino thc ra l mt bo mch vi x l, c dng lp trnh tng tc vi cc

    thit b phn cng nh cm bin, ng c, n, hoc cc thit b khc. c im ni bt

    ca Arduino l mi trng pht trin ng dng cc k d s dng, vi mt ngn ng lp

    trnh c th hc mt cch nhanh chng ngay c vi nhng ngi t am hiu v in t v

    lp trnh. V iu lm nen hin tng Arduino chnh l mc gi rt thp v tnh cht

    ngun m t phn cng ti phn mn. Ch vi hn 200.000 VND , ta c th s hu mt

    board Arduino c 14 ng I/O thoa cc iu khin thit b.

    1.1. Tng quan v Arduino Uno

    Arduino Uno l 1 bo mch thit k vi b x l trung tm l vi iu khin AVR

    Atmega328.

    N c 14 chn digital I/O, 6 chn u vo (input) analog, thch anh dao ng 16Mhz.

    Mt s thng s k thut nh sau :

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    5

    Bng 1.1: Bng thng s v Arduino Uno

    Chip ATMega328

    in p cp ngun 5V

    in p u vo 7-12V

    in p u vo gii hn 6-20V

    S chn Digital I/O 14(c 6 chn iu ch rng xung PWM)

    S chn nlog 6

    DC Current per I/O Pin 40mA

    DC Current for 3.3V Pin 50mA

    Flash Memory 32KB (ATMega328) vi 0,5KB s dng bootloader

    SRAM 2KB (ATMega328)

    EEPROM 1KB (ATMega328)

    Xung nhp 16 MHz

    1.2. S chn ca Arduino

    Hnh 1.1: S Arduino Uno

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    6

    a) USB (1).

    Arduino s dng cp USB giao tip vi my tnh. Thng qua cp USB chng ta

    c th Upload chng trnh cho Arduino hot ng, ngoi ra USB cn l ngun cho

    Arduino.

    b) Ngun ( 2 v 3 ).

    Khi khng s dng USB lm ngun th chng ta c th s dng ngun ngoi thng

    qua jack cm 2.1mm ( cc dng gia ) hoc c th s dng 2 chn Vin v GND

    cp ngun cho Arduino.

    Bo mch hot ng vi ngun ngoi in p t 5 20 volt. Chng ta c th cp mt p

    ln hn tuy nhin chn 5V s c mc in p ln hn 5 volt. V nu s dng ngun ln

    hn 12 volt th s c hin tng nng v lm hng bo mch. Khuyt co cc bn nn

    dng ngun n nh l 5 n di 12 volt.

    Chn 5V v chn 3.3V (Output voltage) : cc chn ny dng ly ngun ra t ngun m

    chng ta cung cp cho Arduino. Lu : khng c cp ngun vo cc chn ny v s

    lm hng Arduino.

    Dng in trong mch Arduino ch vo khong 50mA

    GND: chn mass.

    c) Chip Atmega328.

    Chip Atmega328 C 32K b nh flash trong 0.5k s dng cho bootloader. Ngoi ra

    cn c 2K SRAM, 1K EEPROM.

    d) Input v Output ( 4, 5 v 6).

    Arduino Uno c 14 chn digital vi chc nng input v output s dng cc hm

    pinMode(), digitalWrite() v digitalRead() iu khin cc chn ny ti s cp chng

    cc phn sau.

    Cng trn 14 chn digital ny chng ta cn mt s chn chc nng l:

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    7

    Serial : chn 0 (Rx ), chn 1 ( Tx). Hai chn ny dng truyn (Tx) v nhn (Rx) d

    liu ni tip TTL. Chng ta c th s dng n giao tip vi cng COM ca mt s

    thit b hoc cc linh kin c chun giao tip ni tip.

    PWM (pulse width modulation): cc chn 3, 5, 6, 9, 10, 11 trn bo mch c du ~ l

    cc chn PWM chng ta c th s dng n iu khin tc ng c, sng ca

    n

    SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), cc chn ny h tr giao tip theo

    chun SPI.

    I2C: Arduino h tr giao tip theo chun I2C. Cc chn A4 (SDA) v A5 (SCL) cho php

    chng tao giao tip gia Arduino vi cc linh kin c chun giao tip l I2C.

    e) Reset (7): dng reset Arduino.

    2. Gii thiu v phn mn Proteus

    Phn mn Proteus l phn mn cho php m pohngr hot ng ca mch in t bo

    gm phn thit k mch v vit chng trnh iu khin cho cc h vi iu khin nh

    MCS-51, PIC, AVR, .... Proteus l phn mn m phng mch in t ca Lanccenter

    Electronics, m phng cho hu ht cc linh kin in t thng dng, c bit h tr cho

    cc MCU nh PIC, 8051, AVR..

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    8

    Hnh 1.2: Giao din khi ng Proteus 8.0

    Phn mn bao gm 2 chng trnh ISIS cho php m phngr mch v ARES dng

    v mch in. Proteus l cng c m phng cho cc li vi iu khin kh tt, n h tr cc

    dng vi iu khin nh PIC, 8051, AVR, ...vv cc giao tip I2C, SPI, CAN, USB,

    Ethenet...ngoi ra cn m phng cc mch s, mch tng t mt cch hiu qu.

    m phng c Arduino trn proteus th chng ta cn phi download th vin arduino

    cho proteus. c c th vin ny cc bn cn truy cp vo trang web:

    http://blogembarcado.blogspot.com/search/label/Proteus

    Hnh 1.3: Th vin m phng Arduino

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    9

    Sau khi download v cc bn chp 2 file ARDUINO.IDX v ARDUINO.LIB vo th

    mc:

    Proteus 7:

    C:\Program Files (hoc x86) \Labcenter Electronics\Proteus 7 Professional\LIBRARY

    Proteus 8:

    C:\Program Files (hoc x86) \Labcenter Electronics\Proteus 8

    professional\Data\LIBRARY

    Trong th vin ny h tr 5 loi board Arduino khc nhau trong gm c Arduino

    Uno, MEGA, NANO, LILYPAD v UNO SMD v mt cm bin siu m Untrasonic.

    Sau khi chp xong chng ta khi ng Proteus ln vo th vin linh kin bng cch

    bm phm P v g t kho l ARDUINO chng s hin ra danh sch cc board hin c

    y ti chn Arduino Uno.

    Hnh 1.4: M phng Arduino bng Proteus.

    Lu chng ta cn phi cp ngun vo 2 chn 5V v Gnd trn mch nh hnh trn.

    3.Cc phn mm s dng:

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    10

    -Matlab-simulink:m phng hot ng, tm hm truyn

    -Arduino IDE: bin dch code C sang file HEX

    -Meguno link: Thit k giao din

    -Proteus: M phng mch Arduino

    4. Chi ph thc hin ti

    Sau y l bng chi tit cc linh kin c s dng trong bi thc tp nh sau:

    Bng 1.2: Bo gi linh kin c s dng

    STT Tn linh kin S lng Bo gi Thnh tin

    1 Arduino Uno 1 250.000 250.000

    2 LCD L016M 1 75.000 75.000

    3 L293D 1 25.000 25.000

    4 Bin tr 10K 2 2.500 5.000

    5 Board trng 1 45.000 45.000

    6 DC - Encoder 2 100.000 200.000

    7 Cc linh kin ph 10.000 10.000

    Tng 610.000

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    11

    Chng 2: Nhn dng ng c

    1. Xc nh thng s ng c

    1.1 Xc nh dng hm truyn

    Hm truyn ng c 1 chiu u vo in p; u ra vn tc gc:

    Hnh 2.1 : S in c

    -ng c DC: in tr aR ; cun cm L; hng s phn sc in ng eK ; hng s momen

    mK ; Momen qun tnh rto mJ ;

    -Ti: Momen qun tnh J

    1 1( ) ( )J J b K K R K R Um e m a m a

    (phn xy dng PTVP cp chng 4)

    Laplace 2 v=>/( )

    ( )( )

    ( )

    m a

    e mm

    a

    K RsG s

    K KU sJ J s b

    R

    =>G(s) c dng 1

    k

    Ts

    1.2. Xc nh hm truyn v thng s PID

    n vi dng tnh PID: gc [xung]; vn tc gc [xung/s]; in p u (V); tn

    hiu iu khin U cp cho chn 9 (PWM): 0-255 tng ng vi u ngun cp 9V do U

    tuyn tnh vi u nn ta quy c n v ca n l V

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    12

    Tm hm truyn:

    *Cp U=255V o [xung/s]

    Code test ng c DC

    #include

    Timer t0;

    #define motorPin1 8 // L293D Input 1

    #define motorPin2 7 // L293D Input 2

    #define speedPin 9 // L293D enable chn 1

    int menu=0,dau=0,dem=0,dem2=0;

    float v=0,time=0.025,inv=40,U = 0,t=0;

    long int a=0,b=0,c=0,qold=0,qnew=0,eold=0,enew=0;

    void setup() {

    Serial.begin(9600);

    pinMode(2, INPUT_PULLUP);

    pinMode(13, INPUT);

    attachInterrupt(0, dao, FALLING);

    pinMode(motorPin1, OUTPUT);

    pinMode(motorPin2, OUTPUT);

    pinMode(speedPin, OUTPUT);

    t0.every(time*1000, pid);

    }

    void loop() {

    t0.update();

    if(dem2==40) U=0;

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    13

    else U=255;

    analogWrite (speedPin, U);

    digitalWrite(motorPin1, HIGH);

    digitalWrite(motorPin2, LOW);

    if(dem==1) {

    Serial.println(v);

    dem=0;}

    }

    void dao() // chng trnh con ngt, khi c ngt xy ra s thc hin chng trnh ny.

    {

    c=digitalRead(2);

    b=digitalRead(13);

    if (c==b) a=a-1;

    else a=a+1;

    }

    void pid()

    {

    qnew=a;

    v=(qnew-qold)/time;

    qold=qnew;

    eold=enew;

    dem++;

    dem2++;

    }

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    14

    Dng lnh Serial.println(v); trong in vn tc o c ra mn hnh Serial monitor

    Hnh 2.2 : M mn hnh Serial Monitor

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    15

    Hnh 2.3: Vn tc gc o c

    Sau copy s liu trn serial monitor vo file excel

    Hnh 2.4: S liu lu vo file excel

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    16

    *Xc nh hm truyn ( )1

    kG s

    Tss dng phn mm matlab c:

    Import file excel ca vn tc gc o c theo thi gian trong matlab:

    Hnh 2.5: Gi tr vn tc theo thi gian

    Sau khi c vector v (138x1); ta nhp u (138x1):

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    17

    Hnh 2.6: u v v trong workspace

    M toolbox Matlab Identification :

    Trong mc import data chn time domain nhp bin v va import

    Trong mc Estimate chn Transfer Fcn : in vo 1 im cc v 0 im khng.

    n Estimate chy

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    18

    Hnh 2.7: Mi trng Transfer Fcn

    +Kt qu hm truyn tm c:

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    19

    Hnh 2.8: Hm truyn tm c

    (s) 52,17(s)

    (s) 1 0,0446.

    G

    U s

    *Ta cng c th tnh ton hm truyn ( )1

    kG s

    Ts

    Gi U l kch thch u vo U=255V; b xung/s l gi tr khi xc lp kch thch U

    khng i trong thi gian t U(t)

    Kch thch 1(t): /1

    1

    (s)(s) ( ) (1 )

    (s) 1

    t TY kG y t k eh Ts

    Kch thch U(t); /2

    2

    (s)(s) ( ) (1 )

    U(s) 1

    t TY kG y t b eTs

    1 2

    2 1 2 1

    ( ) ( ) ( ); ( ) ( ) ( )

    ( ) .1( ) ( ) . ( ) ( ) . ( ) ( ) . ( )

    Y s G s h s Y s G s U s

    U t U t U s U h s Y s U Y s y t U y t

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    20

    2

    1

    ( ) 13527752.06

    ( ) 255

    y t b bU k

    y t k U

    b xung/s l gi tr trung bnh khi xc lp tra theo kt qu o

    Hnh 2.9: Gi tr trung bnh ca b

    G(s) c p ng qu nh hnh:

    Hnh 2.10: p ng qu hm truyn G(s)

    => Thi im T tng ng vi 1( ) 0.63y t k

    => Ti t=T 2 1( ) . ( ) 0,63. . 0,63. 0,63.13277 8400 y t U y t U k b

    i chiu bng kt qu o ta thy T 0.05s

    Hnh 2.11:Gi tr vn tc gc ti T

    =>Kt qu tnh tay: (s) 52,06(s)(s) 1 0,05.

    G

    U s

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    21

    -Hm truyn tnh c vi u vo: U(0-255 thang 9V) u ra (xung / s) :

    (s) 52,17 (s) 52,17(s) (s)

    (s) 1 0,0446. (s) (1 0,0446. )

    G K

    U s U s s

    -Phng php ti u ln:

    1(s) (s) ,

    1 2

    i

    PID i

    KkG G K

    Ts s kT

    -Phng php ti u i xng:

    1

    1

    1 1K(s) (s) K (1 ), ,T 4

    (1 ) 2

    PID P p

    kK K T

    s Ts T s kT

    -p dng:

    +iu khin gc K(s):

    PI: K1

    0,21K 1,142 4

    p

    p iK

    kT T

    gim qu iu chnh chn Ki=0.05

    +iu khin vn tc gc G(s):

    I: 1

    0,212

    iK

    kT

    1.3. Kim nghim thng s PID

    Kp=0.21;Ki=0.05;Lng t: 100Od

    Hnh 2.12: S kim tra v tr

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    22

    Hnh 2.13: Sai lch gia lng t v thc t

    0,21i

    K ;Lng t: w 400(v/ p)d

    Hnh 2.14: S kim tra tc

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    23

    Hnh 2.15: Sai lch gia lng t v thc t

    Kp=0.21;Ki=0.05;Lng t: 150sin(250 t )2

    d

    Hnh 2.16: S kim tra bm qu o

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    24

    Hnh 2.17: Sai lch gia lng t v thc t

    2. Nhn dng ng c thc

    Trong m hnh ca ta s dng ng c mt chiu cc thng s R (in tr phn ng), Ke

    (h s phn sc in ng), Km (h s momen) ca ng c khng c sn, do trong

    mc nhn dng h tht s ni v vic nhn dng ng c DC.

    Ta c cc phng trnh c in ca ng c c dng nh sau:

    ( ) ( )aa a a a

    di tL R i t e t U t

    dt (2.1)

    0a ee t K t (2.2)

    0r e x

    d tJ M T

    dt

    (2.3)

    e m aM K i t (2.4)

    Xc nh Ra v Ke

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    25

    Nu p ng phn in nhanh so vi p ng phn c (hng s thi gian c rt ln so vi

    hng s thi gian phn in) th ta c th n gin ha bng cch cho La = 0. Khi ta

    vit li Error! Reference source not found. nh sau:

    ( ) ( )a a aR i t e t U t (2.5)

    Thay (2.2) vo phng trnh (2.5) ta thu c:

    0 ( )a a eR i t K t U t (2.6)

    T phng trnh Error! Reference source not found. ta c th xc nh c cc tham

    s Ra v Ke bng cch tin hnh in p, dng in v vn tc ca ng c vi 2 mc

    in p khc nhau.

    Dng c o gm c :

    Hnh 2.18 ng h o in vn nng Hnh 2.19 in tr 0.47 ohm

    Encoder ni sn vi ng c c phn di 448 xung/vng

    Phng php o

    Tin hnh o vi 2 mc in p ngui AC/DC ADAPTER 5V v 24V. Vi cc bc o

    nh sau:

    Bc 1: Lp mch. Ghp ni tip in tr vi ng c vi tng ngun in trn.

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    26

    Bc 2: o in p 2 u u c ta c U(t), o in p hai u in tr 0.47 ohm (do

    in tr ca ng c khng ln khong nn vic o ni tip bng h o khng c

    chnh xc bng phng php o in p hai u in tr ri tnh ra dng trong mch) ri

    tnh ra dng trong mch theo nh lut ohm.

    Bc 3: Ghi li s xung o c trn LCD trong mt giy, ta ly gi tr hin th khi ng

    c chy n nh ly gi tr trung bnh cng ri chia cho phn gii l 100 xung ta c

    s vng quay trong mt giy.

    Bc 4: Lp li vi mc in p cn li cc bc 1,2,3.

    Kt qu o:

    Bng 2.2: Kt qu o

    Ngun in p 2 u DC(V) Dng in trong mch(A) Tc (rad/s)

    5V 5.03 0.138 163.36

    24V 23.6 0.194 828.31

    Thay cc kt qu o vo phng trnh (2.6) ri tin hnh gii h 2 phng trnh 2 n ta

    tm c

    3.7657

    0.0276

    a

    e

    R

    K Vs

    Xc nh Km

    Th phng trnh Error! Reference source not found. vo phng trnh

    Error! Reference source not found. ta c:

    0r m a x

    d tJ K i t T

    dt

    (2.7)

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    27

    Da vo phng trnh Error! Reference source not found. ta c th tin hnh xc nh

    thng s Km bng cch tin hnh dng mu th gp trc tip vi trc ng c t mt

    in p ph hp vo 2 u ng c sao cho ng c quay mt gc gii hn 90o v d

    cn bng ti v tr . Do ng c khng quay nn

    00r

    d tJ

    dt

    (2.8)

    Phng trnh Error! Reference source not found. tr thnh

    m a xK i t T (2.9)

    Nh vy xc nh Km ta cn xc nh Tx v ia(t) ti thi im. Gi ta tin hnh o nh

    sau:

    Dng c o:

    Nh trn vi encoder c phn gii 888 xung/vng v c thm vt mu tnh momen

    lp trc ng c mu c khi lng 0.16kg di 0.5m c l R=3mm lp vi trc ng c

    v tr cch trng tm 0.125m.

    Hnh 2.20 Mu th momen

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    28

    Phng php o

    Lp mch vi ngun DC 5V. Tin hnh o dng in ca mch nh trn kt hp hin th

    gc quay ng c so vi phng thng ng.

    Kt qu o

    Bng 2.3: Kt qu o

    Dng in (A) S xung

    1.39 44

    1.39 43

    1.39 42

    1.38 43

    1.38 41

    1.36 40

    1.38 42

    1.39 45

    1.37 43

    1.37 43

    - T bng s lu trn ta tnh

    Gi tr trung bnh ca dng in

    1.3810

    i

    tb

    II A

    Gi tr trung bnh ca gc quay l

    360 36042.6 17, 27

    10 888 888

    o o

    oxung

    Momen tnh tc dng ln trc ng c l

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    29

    sin 0.16x xsin 17,27 x 0.125 0.06ox mau cT m g l 9.81 Nm

    Cui xng ta xc nh c Km bng

    0.060.04 /

    1.38

    xm

    a

    TK Nm A

    i t

    Vy ta xc nh xong cc tham s ng c vi kt qu l :

    Bng 2.21: Tham s ca ng c

    Ra 3.7657

    Ke 0.0276 Vs

    Km 0.04 /Nm A

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    30

    Chng 3: Thit k v m phng mch iu khin

    ng c DC- Encoder

    1. Thit k mch iu khin ng c DC-Encoder

    1.1. Cch bm xung trong Arduino

    to ra c PWM trn Arduino th chng ta s dng lnh analogWrite(Pin, Value);

    Trong :

    -Pin: l v tr chn, i vi Arduino Uno th ch c cc chn 3, 5, 6, 9, 10 & 11 mi

    c chc nng to PWM. Vy chng ta c th tr li c cu hi bn trn, cc chn

    digital

    cn li ca c th c hoc xut 2 gi tr l 0 v 1 m thi.

    -Value: Gi tr nm trong khong 0 n 255.

    V d:

    S dng lnh analogWrite(speedPin,127); th dng xung chn 9 (speedPin = 9) s nh

    hnh di v gi tr trung bnh ng ra s l 2,5V (50% ).

    Hnh 3.1: PWM 50%

    Nu Value = 64 (hay 25%) th dng xung nh sau:

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    31

    Hnh 3.2: PWM 25%

    Value = 229 (hay 90%) th dng xung s l :

    Hnh 3.3: PWM 90%

    T v d trn ta thy s thay i rng ca chui xung dn n s thay i in p ra.

    Ta cng thy rng in p trn motor cng thay i tuyn tnh theo s thay i in p

    ng ra trn chn 9. Tc l nu in p trung bnh trn chn 9 l 2,5 volt (50% ) th in p

    trn hai u motor l 4.5 volt ( ngun motor l 9 volt).

    1.2. c Encoder bng phng php ngt ngoi

    1.2.1. Gii thiu v Encoder

    H thng optical encoder bao gm mt ngun pht quang (thng l hng ngoi

    infrared), mt cm bin quang v mt a c chia rnh. Optical encoder li c chia

    thnh 2 loi:

    Encoder tuyt i (absolute optical encoder) v encoder tng i (incremental

    optical encoder). Trong a s cc DC Motor, incremental optical encoder c dng v

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    32

    m hnh ng c servo trong bi ny cng khng ngoi l. T by gi khi ni encoder tc

    l incremental encoder.

    Hnh 3.4. Optical Encoder

    Encoder thng c 3 knh (3 ng ra) bao gm knh A, knh B v knh I (Index).

    Trong hnh l nh bn pha trong ca a quay v mt cp phat-thu dnh ring cho l nh

    ny. l knh I ca encoder. C mi ln motor quay c mt vng, l nh xut hin

    ti v tr ca cp pht-thu, hng ngoi t ngun pht s xuyn qua l nh n cm bin

    quang, mt tn hiu xut hin trn cm bin. Nh th knh I xut hin mt xung mi

    vng quay ca motor. Bn ngoi a quay c chia thnh cc rnh nh v mt cp thu-

    pht khc dnh cho cc rnh ny. y l knh A ca encoder, hot ng ca knh A cng

    tng t knh I, im khc nhau l trong 1 vng quay ca motor, c N xung xut hin

    trn knh A. N l s rnh trn a v c gi l phn gii (resolution) ca encoder.

    Mi loi encoder c phn gii khc nhau, c khi trn mi a ch c vi rnh nhng

    cng c trng hp n hng nghn rnh c chia. iu khin ng c, phi bit

    phn gii ca encoder ang dng. phn gii nh hng n chnh xc iu khin

    v c phng php iu khin. Khng c v trong hnh , tuy nhin trn cc encoder

    cn c mt cp thu pht khc c t trn cng ng trn vi knh A nhng lch mt

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    33

    cht (lch M+0,5 rnh), y l knh B ca encoder. Tn hiu xung t knh B c cng tn

    s vi knh A nhng lch pha 90o. Bng cch phi hp knh A v B ngi c s bit

    chiu quay ca ng c. Hy quan st hnh 3.

    Hnh 3.5. Hai knh A v B lch pha trong encoder (trch t [1])

    Hnh trn cng trong hnh 3 th hin s b tr ca 2 cm bin knh A v B lch pha

    nhau. Khi cm bin A bt u b che th cm bin B hon ton nhn c hng ngoi

    xuyn qua, v ngc li. Hnh thp l dng xung ng ra trn 2 knh. Xt trng hp

    motor quay cng chiu kim ng h, tn hiu i t tri sang phi. Quan st lc tn hiu

    A chuyn t mc cao xung thp (cnh xung) th knh B ang mc thp. Ngc li,

    nu ng c quay ngc chiu kim ng h, tn hiu i t phi qua tri. Lc ny, ti

    cnh xung ca knh A th knh B ang mc cao. Nh vy, bng cch phi hp 2 knh

    A v B chng ta khng nhng xc nh c gc quay (thng qua s xung) m cn bit

    c chiu quay ca ng c (thng qua mc ca knh B cnh xung ca knh A).

    C 3 cch c Encoder :

    - Dng input capture

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    34

    - Dng chc nng Counter

    - Cui cng l ngt ngoi

    1.2.2. Ngt ngoi trong Arduino

    Ngt (interrupt) l nhng li gi hm t ng khi h thng sinh ra mt s kin.

    Nhng s kin ny c nh sn xut vi iu khin thit lp bng phn cng v c cu

    hnh trong phn mm bng nhng tn gi c nh.

    Ngt gip chng trnh gn nh v x l nhanh hn. Chng hn, khi kim tra 1 nt

    nhn c c nhn hay khng, thng thng bn cn kim tra trng thi nt nhn bng

    hm digitalRead() trong on chng trnh loop(). Vi vic s dng ngt, bn ch cn ni

    nt nhn n ng chn c h tr ngt, sau ci t ngt s sinh ra khi trng thi nt

    chuyn t HIGH->LOW. Thm 1 tn hm s gi khi ngt sinh ra. Vy l xong, bin trong

    on chng trnh ngt s cho ta bit trng thi nt nhn.

    S lng cc ngt ph thuc vo tng dng vi iu khin. Vi Arduino Uno bn ch

    c 2 ngt, Mega 2560 c 6 ngt v Leonardo c 5 ngt.

    C php:

    attachInterrupt(interrupt, ISR, mode);

    Thng s

    interrupt: S th t ca ngt. Trn Arduino Uno, bn c 2 ngt vi s th t l 0 v 1.

    Ngt s 0 ni vi chn digital s 2 v ngt s 1 ni vi chn digital s 3.

    ISR: tn hm s gi khi c s kin ngt c sinh ra.

    mode: kiu kch hot ngt, bao gm

    LOW: kch hot lin tc khi trng thi chn digital c mc thp

    HIGH: kch hot lin tc khi trng thi chn digital c mc cao.

    RISING: kch hot khi trng thi ca chn digital chuyn t mc in p thp sang mc

    in p cao.

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    35

    FALLING: kch hot khi trng thi ca chn digital chuyn t mc in p cao sang mc

    in p thp.

    Lu : vi mode LOW v HIGH, chng trnh ngt s c gi lin tc khi chn digital

    cn gi mc in p tng ng.

    void setup()

    {

    ...............

    attachInterrupt(0, dao, FALLING);

    ..............

    }

    void dao() // chng trnh con ngt, khi c ngt xy ra s thc hin chng trnh

    ny.

    {

    c=digitalRead(2); //chan ngat -kenh A

    b=digitalRead(13); //kenh B

    if (c==b) a=a-1; // tru bot xung A (nghich)

    else a=a+1; // cong them xung cua A (thuan)

    }

    1.3. Ngt Timer ( tnh PID)

    Trong Arduino c th vin Timer.h phc v cho ngt timer. Mc ch ca ngt timer

    l nh sn mt khong thi gian v m ngc n ht thi gian timer s thc hin

    lnh hoc gi chng trnh con...

    #include

    Timer t0;

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    36

    int time=0.025;

    void setup() {

    ..........

    t0.every(time*1000, pid);

    }

    The call void loop() {

    t0.update();

    .........

    }

    void pid()

    {.........}

    t0.update() // cp nht thi gian

    t0.every s gi hm pid sau mi 25ms .

    1.4. Nguyn tc iu khin ng c

    Nguyn tc chung:

    Hnh 3.7: Nguyn tc iu khin ng c

    Cng thc tnh PID:

    1

    0

    (e ). .

    kk k

    p D I k

    eu K e K K e h

    h

    Trong : u l i lng output t b iu khin

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    37

    h[s] thi gian ly mu;

    k -ln tnh th k;

    . n gin ha vic tnh thnh phn tch phn, chng ta nn dng phng php cng

    dn (hay quy):

    (k) (k 1) e(k)hI

    I I K

    Ty thuc hm truyn m ta chn dng PID, PI, I...

    T ra s c s nguyn tc thit k iu khin ng c

    Hnh 3.8: S iu khin

    Ngt ngoi khi chn 2 c tn hiu xung 1->0 lin tc gi tn hiu khi ng c quay.

    So snh knh A v B bit chiu thun nghch tng ng q - hay +.

    (1)Hm tnh U iu khin (0-255) xut ra chn 9; Hm ch c gi sau mi 25ms qua

    ngt timer

    T=0.025 s : thi gian ly mu. Thi gian ly mu cng nh (tn s cao) th vic hiu

    chnh cng tin gn n s lin tc v cht lng iu khin s tt hn. Trong cc b

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    38

    iu khin s, thi gian ly mu l mt yu t rt quan trng. Cn tnh ton thi gian

    ny khng qu ln nhng cng ng qu nh, v nh th s hao ph thi gian thc thi.

    Code tnh PID:

    void pid()

    {

    qnew=a; // dat goc moi = a

    if(menu==0){

    t=t+time; // tang thoi gian dem

    enew=x*sin(y*t+1.57)-a; //e(k)

    ipart+=0.05*(enew-eold)*time; //I(k)

    U=0.21*enew+ipart; }

    if(menu==1) {

    enew=z-abs(qold-qnew); //enew sai so van toc z xung dat tuong ung voi van to dat

    U+=0.21*enew; //ki=021; U chinh la I(k)

    v=(qnew-qold); } // van toc dang xung in ra man hinh

    qold=qnew; // dat vi tri cu = vi tri moi cho vong lap moi

    eold=enew; // dat sai so cu = sai so moi cho vong lap moi

    dem++;

    if (U255) U=255; //Chan can tren

    if(U5)U=90; //Chan can duoi

    }

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    39

    ngha on lnh:

    on lnh l chng trnh con s c gi bi timer sau mi 25 ms (thi gian ly mu)

    u ra ca n l U (0-255) trn chn 9.C 2 menu: Menu=0 iu khin v tr vi u vo

    l gc (xung) o c sau khi c encoder; menu=1 iu khin vn tc vi u vo l

    vn tc gc (xung/0.025s) o c sau khi c encoder. U c tnh theo cc cng thc

    PID cp.

    1.5. Thit k mch trn Proteus

    Sau khi thc hin c lp trnh cho mch trn Arduino IDE ta c th chy th xem

    mch hot ng nh th no trn phn mn Proteus

    Phn mn hot ng kh n gin, ta ch vic kch vo biu tng P v nh ra tn linh

    kin trong khung Keywords v kch p vo a linh kin ra bn ngoi

    Hnh 3.9: Ly linh kin

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    40

    Hnh 3.10: Cch ly linh kin

    T chng ta thit k mch nh trong hnh v di y:

    Cc chn c nh s t 1 n 9 nh trong hnh v

    Hnh 3.11: S ni mch trn Proteus

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    41

    Hnh 3.12: Cc chn ni vi LCD

    Hnh 3.13: Cc chn ni vi Arduino

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    42

    Hnh 3.14: Cc ng ni ca ng c v L293D

    2. Thit k giao din iu khin bng Megunolink

    2.1. Gii thiu v Megunolink

    Megunolink l phn mn cho php nhn v gi d liu Serial Data.

    N h tr thit b c s dng cc dng ni tip qua USB, RS-232 hoc UDP c h

    tr bao gm cc Arduino, PIC, mbed, Beagle, v tem vi iu khin c bn.

    MegunoLink cung cp cho bn cch gio tip b iu khin v my tnh ca bn theo

    nhng cch hu ch v th v.Bn cng c th gi cc lnh iu khin in thoi ca

    bn vi cc nt m to ra cc thng ip hoc bng cch g vo mt ca s mn hnh.

    V c chc nng nh:

    V : hin th d liu ca bn bng ha

    Bng iu khin giao din : nhanh chng xy dng mt giao din n gin kim sot

    hay cu hnh vi iu khin ca bn

    Di cc tin nhn : ni tip d liu ring bit vo cc knh khc nhau cho r rng

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    43

    Bn thng tin cu hnh bo co trong mt d dng c cc bng:

    Lp trnh : chng trnh ti ln to ra trong Microsoft Visual Studio, hoc cc cng c

    khc, trc tip n Arduino vi iu khin ca bn

    ng nhp vo tp tin : lu d liu vo mt tp tin xem xt sau

    Qun l kt ni : lm vic vi nhiu thit b ni tip cng mt lc

    2.2. Cc bc thit k giao din Megunolink

    Phn mm gip ta t xy dng cc thnh phn giao din theo mun:

    Cc mode:

    Hnh 3.16: Cc mode

    Cc mode s dng: Connection manager; interface panel; time plot

    Mode Conection manager: Qun l kt ni gia my tnh v arduino

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    44

    Hnh 3.17: Khi kt ni

    Mode Interface panel: Giao din nhp s liu u vo iu khin ng c

    Mode khi cha thit k

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    45

    Hnh 3.18: Mode Interface panel

    n design xut hin ca s design:

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    46

    Hnh 3.19: Ca s thit k

    Th ko ra 1 button

    Hnh 3.20: Th thit k nt bm

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    47

    V d:

    To nhp c tn menu:

    Hnh 3.21: To menu

    -To mt nt bm bn cnh n c cha lnh kt ni trong on click send

    Hnh 3.22: To nt bm

    Th vin serial command handler cha cc lnh cho php khi ng 1 chc nng khi

    nhn lnh t giao din. Mc nh lnh bt u bng ! V kt thc bng \r

    Code arduino:

    #include "MegunoLink.h"

    #include "CommandHandler.h"

    CommandHandler SerialCommandHandler; //Khai bo kt ni

    int menu = 3; //bin menu ban u =3

    void datmenu(CommandParameter &Parameters) //chng trnh con datmenu

    {

    menu=Parameters.NextParameterAsInteger(); //menu=[menu.value]

    }

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    48

    void setup()

    {

    Serial.begin(9600); //Khai bo tc truyn

    SerialCommandHandler.AddCommand(F("setmenu"), datmenu); //Gi CT con khi click

    nt bm

    .................................

    }

    void loop() {

    SerialCommandHandler.Process(); //Kim tra tn hiu giao tip gia my tnh v

    arduino

    .................

    }

    on chng trnh c ngha:

    Ta nhp 1 s vo nhp c tn name sau click nt bm bn cnh s kch ng gi

    chng trnh con datmenu v gn cho bin menu=value trong nhp menu trn giao din

    Mode time plot: Hin th di dng th gc quay v vn tc ng c theo thi gian

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    49

    Hnh 3.23: Mode time plot

    Code Arduino

    #include "MegunoLink.h"

    TimePlot MyPlot("goc"); //Tn th

    void setup() {

    ..........

    Serial.begin(9600); //kt ni

    MyPlot.SetTitle("goc"); //Tiu

    MyPlot.SetXlabel("thoigian");

    MyPlot.SetYlabel("goc");

    MyPlot.SetSeriesProperties("goc", Plot::Blue, Plot::Solid, 2, Plot::Square);

    .........

    }

    Void loop()

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    50

    {

    ...........

    MyPlot.SendData(F("goc"),a*0.8); //gi d liu cho trc goc

    ..............

    }

    Sp xp cc mode trong giao din bng cch ko th s dng chut:

    Hnh 3.24: Giao din thit k

    2.3. Kt qu bi ton

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    51

    Lng t: d 400vg / ph

    Hnh 3.25: iu khin vn tc

    Lng t: d 100deg

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    52

    Hnh 3.26: iu khin v tr

    Lng t: d 150sin(250t 90)deg

    Hnh 3.27: iu khin bm qu o

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    53

    Chng 4: M phng tay my 1DOF

    1. Thit lp h phng trnh vi phn

    Hnh 4.1: C cu tay my

    -Tay my:

    Khi lng m; khi tm C OC=l; momen qun tnh vi trc quay O: J; h s cn trc

    tay my 2b

    -ng c DC:

    in tr aR ; cun cm L; hng s phn sc in ng eK ; hng s momen mK ; Momen

    qun tnh rto mJ ; H s cn trc ng c 1b

    -Hp gim tc 2 1r r / r

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    54

    Hnh 4.2: S in - C

    *Thit lp:

    -S bc t do: n=2 (1 bc c v 1 bc in)

    -Ta suy rng: qq

    -ng nng:

    2 2

    1

    2 2 2 2 2

    1

    2 2

    1 1

    2 2

    w

    1 1 1(J J w ) (J J ) (J )

    2 2 2

    1 1(J )

    2 2

    e

    m m

    m m tg

    m e m

    tg

    T Li Lq

    r

    T r

    T T T Lq

    -Th nng:

    sinm mgl

    -Hm tn nng:

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    55

    2 2 2 2 2 2

    2 1

    2 1

    1 1 1 1(b r b ) r b

    2 2 2 2

    0,

    m e

    a aR q R q

    b b b

    -Lc suy rng ca cc lc khng th: U; emf ;V M (Momen in trn trc ng c)

    1

    ( )

    emf

    e m

    e m

    e m

    A U q V q M

    U q K w q K i

    U q K r q K rq

    U K r q K rq

    -Phng trnh lagrang II:

    *

    *

    q

    d T TQ

    dt

    d T TQ

    dt q q q q

    J cosmtg m

    a e

    b mgl K qr

    Lq R q U K r

    B qua s thay i dng in:

    (t) q(t) 0

    q e

    a

    d dL i L

    dt dt

    U K r

    R

    => Ta c PTVP:

    2 1 2 1( ) ( ) cos m e m a m aJ J r b K K R r mgl K rR U

    2. M phng bng Simulink

    a.H m

    1 1 2

    2

    1( ( ) cos )

    m a e m a

    m

    K rR U b K K R r mglJ J r

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    56

    iu kin u: 0; 0

    %dong co

    Ke=1;Km=1;Ra=1;Jm=0.001;

    %tay may

    m=2;J=1;l=0.4;g=9.81;

    b=0.001;

    %hop giam toc

    r=2;

    Hnh 4.3: Xy dng thut ton tn Simulink

    Kt qu:

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    57

    Hnh 4.4: Kt qu (rad)

    Hnh 4.5: Kt qu (rad/s)

    b.H phn hi

    V tr:

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    58

    Hnh 4.6: Xy dng thut ton tn Simulink

    Chn Kp=400;Ki=10;Kd=100

    Hnh 4.7: Phn hi v v tr

    Vn tc:

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    59

    Hnh 4.8: Xy dng thut ton tn Simulink

    Chn Kp=160;Ki=10

    Hnh 4.9: Phn hi vn tc

    Bm qu o:

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    60

    Hnh 4.10: Xy dng thut ton tn Simulink

    Chn Kp=400;Ki=10;Kd=100

    Hnh 4.11: iu khin bm qu o

    3. M phng bng Matlab

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    61

    a.H m

    1 1 2

    2

    1( ( ) cos )

    m a e m a

    m

    K rR U b K K R r mglJ J r

    iu kin u: 0; 0

    *bai6jj.m

    function xdot=baijj6(t,x);

    %dong co

    Ke=1;Km=1;Ra=1;Jm=0.001;

    %tay may

    m=2;J=1;l=0.4;g=9.81;

    b=0.001;

    %hop giam toc

    r=2;

    V=24;

    xdot=zeros(2,1);

    xdot(1)=x(2);

    xdot(2)=(1/(J+Jm*r^2))*((Km*r/Ra)*V-((b+Km*Ke/Ra)*r^2)*x(2)+m*g*l*cos(x(1)));

    end

    *V:

    [t,x]=ode45('bai6jj',[0:0.1:10],[0,0]);

    clf;

    figure(1);

    plot(t,x(:,1)),xlabel('t[s]'),ylabel('q[rad]'),

    figure(2);

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    62

    plot(t,x(:,2)),xlabel('t[s]'),ylabel('w[rad]'),

    Hnh 4.12: Kt qu iu khin v tr (rad)

    Hnh 4.13: Kt qu iu khin vn tc w

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    63

    b.H phn hi

    *V tr:

    function xdot=bai6jj(t,x);

    %dong co

    Ke=1;Km=1;Ra=1;Jm=0.001;

    %tay may

    m=2;J=1;l=0.4;g=9.81;

    b=0.001;

    %hop giam toc

    r=2;

    Kp=6000;Kd=50;

    V=-Kp*(x(1)-1.57)-Kd*(x(2));

    xdot=zeros(2,1);

    xdot(1)=x(2);

    xdot(2)=(1/(J+Jm*r^2))*((Km*r/Ra)*V-((b+Km*Ke/Ra)*r^2)*x(2)+m*g*l*cos(x(1)));

    End

    In kt qu:

    [t,x]=ode45('bai6jj',[0:0.1:10],[0,0]);

    clf;

    figure(1);

    plot(t,x(:,1)),xlabel('t[s]'),ylabel('q[rad]'),

    figure(2);

    plot(t,x(:,2)),xlabel('t[s]'),ylabel('w[rad]'),

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    64

    Hnh 4.14: Kt qu v tr

    *Vn tc:

    function xdot=bai6jj(t,x);

    %dong co

    Ke=1;Km=1;Ra=1;Jm=0.001;

    %tay may

    m=2;J=1;l=0.4;g=9.81;

    b=0.001;

    %hop giam toc

    r=2;

    Kp=6000;Kd=50;

    V=-Kp*(x(1)-5*t)-Kd*(x(2)-5);

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    65

    xdot=zeros(2,1);

    xdot(1)=x(2);

    xdot(2)=(1/(J+Jm*r^2))*((Km*r/Ra)*V-((b+Km*Ke/Ra)*r^2)*x(2)+m*g*l*cos(x(1)));

    end

    Hnh 4.15: Kt qu vn tc

    *Bm qu o:

    function xdot=bai6jj(t,x);

    %dong co

    Ke=1;Km=1;Ra=1;Jm=0.001;

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    66

    %tay may

    m=2;J=1;l=0.4;g=9.81;

    b=0.001;

    %hop giam toc

    r=2;

    Kp=6000;Kd=50;

    V=-Kp*(x(1)-1.57*sin(10*t))-Kd*(x(2)-15.7*cos(10*t));

    xdot=zeros(2,1);

    xdot(1)=x(2); xdot(2)=(1/(J+Jm*r^2))*((Km*r/Ra)*V-

    ((b+Km*Ke/Ra)*r^2)*x(2)+m*g*l*cos(x(1)));

    end

    Hnh 4.16: Kt qu bm qu o

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    67

    Chng 5: tng pht trin

    Mt h thng Arduino c th cung cp cho bn rt nhiu s tng tc vi mi trng

    xung quanh vi:

    H thng cm bin a dng v chng loi (o c nhit , m, gia tc, vn tc,

    cng nh sng, mu sc vt th, lu lng nc, pht hin chuyn ng, pht hin

    kim loi, kh c,),

    Cc thit b hin th (mn hnh LCD, n LED,).

    Cc module chc nng (shield) h tr kt ni c dy vi cc thit b khc hoc cc

    kt ni khng dy thng dng (3G, GPRS, Wifi, Bluetooth, 315/433Mhz, 2.4Ghz,),

    nh v GPS, nhn tin SMS,

    Arduino s gip bn lm mt dy LED chp tt, mt chic xe t ng trnh vt cn, mt

    cnh tay robot gp hay bt c th g bn mun iu khin mt cch t ng.

    Hnh 5.1: Xe t ng trnh vt cn s dng mch arduno.

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    68

    Hnh 5.2: Cnh tay robot vit ch

    Hnh 5.3: M hnh my bay Fly Cam

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    69

    Nu bn mun iu khin ng c, s c cc mch cng sut tng thch hon ton vi

    Arduino. Nu bn mun iu khin qua mng Internet, cng c mt mch Ethernet/Wifi

    tng thch hon ton vi Arduino. V cn rt nhiu th khc na. My ci mch gn

    thm mnh ang ni n cc extension shield (mch m rng). Cc shield ny gip tng

    tnh linh hot ca Arduino.

    Cc shield s chng ln Arduino s trng nh th ny:

    Hnh 5.4: Cc shield

    Arduino rt n gin, d s dng, d code (ngn ng tng t nh C++). Mt trong

    nhng ci hay nht ca Arduino l n h tr rt nhiu th vin, rt tin li.

    Bn mun iu khin ng c servo, rt n gin, cm 3 dy ca servo vo 3 l trn

    Arduino, m chng trnh ln, open th vin c sn, sa li theo mnh l xong.

    Bn mun iu khin ng c bc, ni dy vo, open th vin, sa dng code nh

    sau iu khin ng c bc: Stepper1.step(100, FORWARD, DOUBLE), trong

    100 l s bc bn mun, FORWARD l hng quay, DOUBLE l quay full step. Hy

    ngh n vic bn iu khin ng c bc trong MPLAB s th no.

    Arduino cng c rt nhiu kch thc khc nhau, ph hp cho nhiu mc ch s dng.

    Thng dng nht hin nay l Arduino Uno.

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    70

    2. ng dng nn tng Arduino trong mt s sn phm.

    Ct n tit kim nng lng.

    Ta s dng bo mch Arduino Mega 2560 iu khin ton b phn in t. Tn

    hiu t cm bin nh sng c truyn vo bo mch Arduino. Thng qua thut ton x l

    chng nhiu, h thng bit c thi im no l ph hp quyt nh bt n v tt

    n, gip tit kim nng lng mt cch thng minh. Ngoi ra, bo mch Arduino cn

    nhn cc tn hiu in p t c quy, cc tn hiu v vn tc gi t encoder gn trn trc

    turbine v xut tn hiu ra bng LED 7 thanh hin th tc thi vn tc gi cng nh

    in nng d tr cn trong c quy.

    Hnh 5.5. S dng bo mch Arduino iu khin bt n tit kim nng lng v hin th

    thng tin tc gi, in nng trong c quy.

    Vic s dng bo mch sn Arduino trong sn phm ny m bo phn vi iu khin

    hot ng n nh, khng b nh hng bi s chn ng rung lc c hc do gi gy nn.

    S ha sch giy

    Ta s dng bo mch Arduino Mega 2560 nh l mt thit b slave cho phn iu

    khin trung tm. Cc tn hiu t 5 cm bin c c qua cc chn ca Arduino v truyn

    v phn iu khin trung tm thng qua cng COM (theo chun RS232). Cc lnh iu

    khin t phn iu khin trung tm c truyn thng qua cng COM ti bo mch

    Arduino iu khin ng c (thng qua kt ni vi module L298), iu khin qut ht

    trang, qut thi trang v n LED chiu sng thng qua ng ngt (bng modul relay).

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    71

    Hnh 5.7. S dng bo mch Arduino giao tip my tnh v iu khin thit b ngoi vi .

    Ngoi ra trong vic xy dng giao din iu khin, chng em cng ngh them v cch

    thit k giao din trn C#.

    Cng c thit k C# rt ph bin v c s dng rng ri trn th gii

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    72

    Hnh 5.8: Thit k giao din trn C#

    C# c kh khn hn Megunolink kh nhiu. N i hi ngi thit k phi c kin thc

    lp trnh C#. V mi thao tc u c lp trnh trn C#. Khng ging nh Megunolink

    l lp trnh vn lm trn Arduino IDE.

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    73

    KT LUN

    thit k ch to mt sn phm cng ngh hin nay i hi s tm hiu trn nhiu lnh

    vc khc nhau. Arduino c s dng rng ri trn khp th gii gip vic d dng

    hn rt nhiu. Qua bi vit v mn hc thc tp k thut chng em t c nhng iu

    nh sau:

    - Xy dng m hnh c in iu khin ng c DC- Encoder

    - Thc hin m phng h c in trn Matlab

    - Thit k giao din iu khin trn my tnh bng Megunolink

    Em xin chn thnh cm n thy ng Khoa gip chng em hc c rt nhiu

    iu. Bi vit khng trnh khi nhng thit st, rt mong c s gp ca thy v cc

    bn chng em lm tt hn.

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    74

    Ti liu tham kho

    1. Michael Margolis and Nicholas Weldin, Arduino Cookbook, OReilly Media, Inc,

    2011.

    2. Michael McRoberts, Beginning Arduino, OReilly Media, 2013.

    3. L thuyt iu khin tuyn tnh -Nguyn Don Phc

    4. Bi ging phn mm m phng h ng lc c iu khin- Nguyn Quang Hong

    5. Nguyn Trung Tn, Hng dn s dng c bn Arduino, 2014

    6. http://arduino.cc/ truy nhp ngy cui 1/6/2015

    7. http://hocavr.com/ truy nhp ngy cui 1/6/2015

    8. http://megunolink.com/ truy nhp ngy cui 1/6/2015

    9. http://youtube.com truy nhp ngy cui 1/6/2015

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    75

    Ph lc

    Code Arduino IDE:

    #include "MegunoLink.h" // khai bao thu vien giao dien

    #include "CommandHandler.h"

    int menu = 3; // 3 mode (vi tri, toc do,tat dong co)

    int x=0,y=0,z=0,w=0;

    CommandHandler SerialCommandHandler;

    void datmenu(CommandParameter &Parameters)

    {

    menu=Parameters.NextParameterAsInteger();

    }

    void gocbandau(CommandParameter &Parameters)

    {

    w=Parameters.NextParameterAsInteger();

    }

    void gocdat(CommandParameter &Parameters)

    {

    x=Parameters.NextParameterAsInteger();

    x=x/0.8; // doi tu don vi tu giao dien dat

    }

    void tanso(CommandParameter &Parameters)

    {

    y=Parameters.NextParameterAsInteger();

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    76

    y=y/57.3; // doi don vi

    }

    void vantoc(CommandParameter &Parameters)

    {

    z=Parameters.NextParameterAsInteger();

    z=z/5.357; // doi don vi

    }

    TimePlot Plot("vantoc"); // ve do thi van toc

    TimePlot MyPlot("goc"); // ve do thi goc

    #include

    LiquidCrystal lcd(12, 11, 6,5, 4, 3);

    #include // khai bao timer

    Timer t0; // dung timer t0

    #define motorPin1 8 // L293D Input 1 (chan dieu khien chieu quay)

    #define motorPin2 7 // L293D Input 2 (chan dieu khien chieu quay)

    #define speedPin 9 // L293D enable chn 1 ( bam xung dieu khien toc do )

    int dau=0,dem=0;

    float v=0,time=0.025,inv=40,U = 0,t=0; // time=0.025 thoi gian lay mau , inv =40

    ngich dao time

    long int a=0,b=0,c=0,qold=0,qnew=0,eold=0,enew=0,ipart=0; // q vi tri , e sai so , ipart

    tinh ki

    void setup() {

    lcd.begin(16, 2);

    Serial.begin(9600);

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    77

    SerialCommandHandler.AddCommand(F("setmenu"), datmenu); // khai bao goi chuong

    trinh con

    SerialCommandHandler.AddCommand(F("setgocbandau"), gocbandau);

    SerialCommandHandler.AddCommand(F("setgocdat"), gocdat);

    SerialCommandHandler.AddCommand(F("settanso"), tanso);

    SerialCommandHandler.AddCommand(F("setvantoc"), vantoc);

    MyPlot.SetTitle("goc"); // khai bao do thi

    MyPlot.SetXlabel("thoigian");

    MyPlot.SetYlabel("goc");

    MyPlot.SetSeriesProperties("goc", Plot::Blue, Plot::Solid, 2, Plot::Square);

    Plot.SetTitle("vantoc");

    Plot.SetXlabel("thoigian");

    Plot.SetYlabel("vantocgoc");

    Plot.SetSeriesProperties("vantoc", Plot::Blue, Plot::Solid, 2, Plot::Square);

    pinMode(2, INPUT_PULLUP); // dung kenh A cua encoder

    pinMode(13, INPUT); // dung kenh B cua encoder

    attachInterrupt(0, dao, FALLING); // khai bao ngat ngoai khi xung di xuong goi chuong

    trinh "dao" (ngat)

    pinMode(motorPin1, OUTPUT); // du lieu ra chan dieu khien chieu quay

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    78

    pinMode(motorPin2, OUTPUT); // du lieu ra chan dieu khien chieu quay

    pinMode(speedPin, OUTPUT); // du lieu ra chan bam xung

    t0.every(time*1000, pid); // sau 25 ms thuc hien 1 lan vong pid

    }

    void loop() {

    SerialCommandHandler.Process(); // kiem tra giao tiep voi mat tinh

    t0.update();

    if(menu==3) U=0;

    if(w==0) {a=0;w=1;}

    analogWrite (speedPin, U); // viet gia tri ra chan bam xung

    if (dau) { // u>0 dau = 0, u

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    79

    if(menu==0)MyPlot.SendData(F("goc"),a*0.8); // ve do thi goc v/p megunolink

    }

    void dao() // chng trnh con ngt, khi c ngt xy ra s thc hin chng trnh

    ny.

    {

    c=digitalRead(2);

    b=digitalRead(13);

    if (c==b) a=a-1; // tru bot xung A (nghich)

    else a=a+1; // cong them xung cua A (thuan)

    }

    void pid()

    {

    qnew=a; // dat goc moi = a

    if(menu==0){

    t=t+time; // tang thoi gian dem

    enew=x*sin(y*t+1.57)-a;

    ipart+=0.05*(enew-eold)*time;

    U=0.21*enew+ipart; }

    if(menu==1) {

    enew=z-abs(qold-qnew); //enew sai so van toc z xung dat tuong ung voi van to dat

    U+=0.21*enew; //ki=021

    v=(qnew-qold); } // van toc dang xung in ra man hinh

    qold=qnew; // dat vi tri cu = vi tri moi cho vong lap moi

    eold=enew; // dat sai so cu = sai so moi cho vong lap moi

  • Thc tp k thut GVHD: TS ng Khoa -------------------------------------------------------------------------------------------------------------------------------

    80

    dem++;

    if (U255) U=255;

    if(U5)U=90;

    }