thực tập kĩ thuật
DESCRIPTION
Điều khiển động cơ 1 chiều DC sử dụng vi xử lí ArduinoTRANSCRIPT
-
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;
}