Upload
rodrigo-romero
View
241
Download
0
Embed Size (px)
Citation preview
7/26/2019 Lec2 FeedbackControl Arduino-complete
1/79
!"#$%&" () *+,$"- ./$"0&1$23/
45""671#8 93/$&3:;
?@ABC>> ??(
7/26/2019 Lec2 FeedbackControl Arduino-complete
2/79
H3I2#,
5""671#8 #3/$&3:
JI"/ K,L #:3,"6M:33I
*$172:2$+ 1/6 I"&N3&-1/#" ,I"#2N2#1$23/,
*+,$"- &",I3/,"O.E #3/$&3::"&
7/26/2019 Lec2 FeedbackControl Arduino-complete
3/79
JI"/ 1/6 #:3,"6 :33I #3/$&3:
G1,2# I&37:"-)
7/26/2019 Lec2 FeedbackControl Arduino-complete
4/79
JI"/ !33I *+,$"-
93-I%$"& ,"/6, 1 #3--1/6 71,"6 3/ !T 1/6 +3%
D3I" $D" &20D$ $D2/0" #3-", 3%$
53& -3,$ 1II:2#1$23/,T $D2, &":2", 3/ 1 0336 -36":
3N $D" I:1/$
7/26/2019 Lec2 FeedbackControl Arduino-complete
5/79
JI"/ !33I *+,$"-
O&3#"6%&" N3& N3"M#3/$&3: ,+,$"-)93-I%$"& #1:#%:1$", 1 N3"T 5T $3 62,I:1+ 1$ $D"
"/6 "NN"#$3&
93-I%$"& #3/$&3::"& 6"$"&-2/", $D" #3&&"#$
K3:$10" $3 ,"/6 $3 $D" 1#$%1$3& 1$ $D" U32/$
E+/1-2#, 3N $D" 6"K2#" Q2:: &",%:$ 2/ 1 #D1/0" 2/
I3,2$23/
T
Ki
1 !"! iKv A
bm results in
,fwd. kin.
xx ,
7/26/2019 Lec2 FeedbackControl Arduino-complete
6/79
9:3,"6 !33I *+,$"-
HD" #3--1/6 2, -362N2"6 71,"6 3/ "&&3&7"$Q""/ $D" 3%$I%$ 1/6 $D" &"N"&"/#" 4N""671#8#3/$&3:;
=6K1/$10", 3N N""671#8 #3/$&3:*$172:2V1$23/
E2,$%&71/#" &"U"#$23/
W"N"&"/#" $&1#82/0
7/26/2019 Lec2 FeedbackControl Arduino-complete
7/79
9:3,"6M:33I H&1/,N"& 5%/#$23/
=,,%-" /"0:2027:" /32," 1/6 62,$%&71/#"T 1N""671#8 #3/$&3: ,+,$"- #1/ 7" &"I&","/$"6 1,
>4,; R W4,;X4,;Y4,;L Z3$" $D1$ Q2$D 1/ 26"1:,"/,3&T X4,; R [L HD" 0"/"&1: $&1/,N"& N%/#$23/ 2,
HD" &"N"&"/#" ,20/1: #1/ K1&+ Q2$D $2-" 4$&1#82/0;
3& #3/,$1/$ 4&"0%:1$3&;L
)()()(1
)()(
)(
)(
sHsGsC
sGsC
sR
sY
7/26/2019 Lec2 FeedbackControl Arduino-complete
8/79
HD" 0"/"&1: $&1/,N"& N%/#$23/ 2,
Note that the denominator of both TFs are the
,1-" R\ ,1-" I3:", R\ 1II:+ $D" ,1-" ,$172:2$+
#3/,26"&1$23/
P2$D E2,$%&71/#"
H(S)
C(S)
)()()(1
)(
)(
)(
sHsGsC
sG
sD
sY
7/26/2019 Lec2 FeedbackControl Arduino-complete
9/79
!H. *+,$"-,
!H. R !2/"1& $2-"M2/K1&21/$ ,+,$"-L 53& +4$; R *]^4$;_T
!2/"1&2$+) 53& 1/+ $Q3 2/I%$ ,20/1:, ^[4$; 1/6 ^(4$;1/6 1 &"1: #3/,$1/$ 1T
*]^[4$;`^(4$;_ R *]^[4$;_ ` *]^(4$;_ 1/6
*]1^[4$;_ R 1*]^[4$;_
H2-" 2/K1&21/#") 53& 1/+ &"1: #3/,$1/$ HT +4$MH; R*4^4$MH;;L HD2, 2/#:%6", #3/,$1/$M012/ ,+,$"- 1/6:2/"1& #3-72/1$23/, 3N $2-"M,D2N$, 3N $D" 2/I%$,20/1:T 2L"L +4$; R ^4$;(^4$Ma;L
7/26/2019 Lec2 FeedbackControl Arduino-complete
10/79
*$172:2$+ 3N !H. ,+,$"-,
B2K"/ 1 $&1/,N"& N%/#$23/ 3N 1 !H. ,+,$"- 2/ $D" N3&-T
HD" &33$ 3N $D" #D1&1#$"&2,$2# "S%1$23/T #1::"6 $D"$%&'(T #1/
7" N3%/6 N&3- ,"$$2/0
QD2#D #1/ 7" Q&2$$"/ 1, 1 #3-I:"^ /%-7"&) I R ` U
HD" ,+,$"- 2, ()*+&'2N 1:: $D" I3:", 3N 2$, $&1/,N"& N%/#$23/
D1K" /"01$2K" &"1: I1&$, 4b AT 3/ :"N$MD1:N I:1/"; 1/6
%/,$17:" 3$D"&Q2,"L
PD"/ R AT $D" ,+,$"- 2, ,*-./0*&&1 ()*+&'2N $D" #3-I:"^
&33$, 1&" /3/M&"I"1$"6 1/6 %/,$17:" 3$D"&Q2,"L
HD" &33$, 3N $D" /%-"&1$3& 2, #1::"6 2'-%(T QD2#D 1&" /3$
&":1$"6 $3 $D" ,$172:2$+T $D3%0D 2$ Q2:: 1NN"#$ $D" &",I3/," 3N
$D" ,+,$"-L
7/26/2019 Lec2 FeedbackControl Arduino-complete
11/79
*$172:2$+ 9&2$"&23/
Rouths
7/26/2019 Lec2 FeedbackControl Arduino-complete
12/79
O"&N3&-1/#" *I"#2N2#1$23/, 4H2-" 63-12/;
HD" I"&N3&-1/#" &"S%2&"-"/$, 1&" %,%1::+ 02K"/ N3&
$D" ,$"I &",I3/,"L
W2," $2-"T $&
JK"&,D33$T
7/26/2019 Lec2 FeedbackControl Arduino-complete
13/79
O"&N3&-1/#" ,I"#2N2#1$23/, W2," $2-" 4$&;) HD" $2-" N3& 3%$I%$ $3 &2," N&3- A 43&
[Ad; $3 @Ad 3N $D" N2/1: K1:%"
JK"&,D33$ 4
7/26/2019 Lec2 FeedbackControl Arduino-complete
14/79
W",I3/," 3N [,$ J&6"& *+,$"-
= , > 0
!1I:1#" $&1/,N3&-) =
=
+
+ ()
*3:K" !M[T =
+()
P2$D ,$"I 2/I%$ 454,; R =C,;;T =
[1
]
7/26/2019 Lec2 FeedbackControl Arduino-complete
15/79
93/,26"& 1 W! #2%2$)
= , 0 = 0
W"Q&2$"T
=
H2-" #3/,$1/$ =
53& %/2$ ,$"I 2/I%$T =
(1
)
Whats the steady state response?PD1$ D1II"/ 1$ 4g
7/26/2019 Lec2 FeedbackControl Arduino-complete
16/79
93/,26"& (/6 3&6"& -M7M8 ,+,$"-
PD1$ D1II"/ $3 $D" &",I3/,"T ^4$;T 3N $D"
,+,$"- QD"/ Q" 16U%,$ 8 1/6 7g
fkxxbxm
xbkxfxm
fffxmF bk
5 includes all forces
applied to the system
7/26/2019 Lec2 FeedbackControl Arduino-complete
17/79
!"#$%"& (%)*$)+,- . /"012+3 4"#25
[h
W"Q&2$2/0 $D" (/6
M3&6"& "S%1$23/ 2/ 1/3$D"& N3&-
E2K26"6 7+ [C-)
Z1$%&1: N&"S%"/#+)
E1-I2/0 &1$23)
Z3$" $D1$ A
fm
xm
kx
m
bx
1
mk
b
m
b
n 22
sradm
kn /
7/26/2019 Lec2 FeedbackControl Arduino-complete
18/79
65#"& 4)715+7)
[i
!1I:1#" $&1/,N3&-)
*3:K" N3& e4,;)
./K"&," !1I:1#" $&1/,N3&-)
W",I3/," $3
./2$21: #3/62$23/,
W",I3/," $3
./I%$
7/26/2019 Lec2 FeedbackControl Arduino-complete
19/79
8#)1 4)715+7)
[@
=,,%-" $D" N3/0 N%/#$23/T ,$"I 2/I%$
0 1 2 3 4 5 6 7 8 9 10
-0.1
0
0.1
0.2
0.3
0.4
0.5
Step Response
Time (sec)
A
mplitude
= 0.1
= 0.4= 1.0
= 2.0
= 0
4)715+7)7 95% :299)%)+# :"012+3
%"#25
; < =>+:"01):?
1$%) 57,2&&"#25+
< @ @ A =>+:)%:"01):?:),"-2+3 57,2&&"#25+
; A =B%2#2,"&&- :"01):?
C A =DE)%:"01):?
+5 57,2&&"#25+
7/26/2019 Lec2 FeedbackControl Arduino-complete
20/79
*$"I &",I3/," ,I"#2N2#1$23/, 3N %/6"&61-I"6
,+,$"- Q2$D /3 /%-"&1$3& 6+/1-2#,
PL O1:-T *+,$"- E+/1-2#,T c&6 >6L
F+ ,5+#%5& :)723+G 5+) 5% 05%) 59 #H)7) %)*$2%)0)+#7 I2&& J) 32E)+ #5 :)#)%02+)
#H) "&&5I"J&) %)325+ 59 #H) 15&)7 2+ #H) 7K1&"+)L
7/26/2019 Lec2 FeedbackControl Arduino-complete
21/79
H3I2#,
5""671#8 #3/$&3:JI"/ K,L #:3,"6M:33I
*$172:2$+ 1/6 I"&N3&-1/#" ,I"#2N2#1$23/,
*+,$"- &",I3/,"
O.E #3/$&3::"&
7/26/2019 Lec2 FeedbackControl Arduino-complete
22/79
O.E 93/$&3::"&
O&3I3&$23/1:M2/$"0&1:M6"&2K1$2K" #3/$&3: I&3K26",1 Q26":+M%,"6 0"/"&2# N""671#8 #3/$&3::"&
HD" #3/$&3: ,20/1: 2, 0"/"&1$"6 71,"6 3/ $D""&&3&T "4$;T 7"$Q""/ $D" #%&&"/$ ,+,$"- ,$1$"
1/6 $D" &"N"&"/#" 1/6 2/K3:K", c 012/,) 8IR I&3I3&$23/1: 012/ 41II:+ $3 $D" "&&3&;
8ER 6"&2K1$2K" 012/ 41II:+ $3 $D" 6"&2K1$2K" 3N
$D" "&&3&; 8.R 2/$"0&1: 012/ 41II:+ $3 $D" 2/$"0&1: 3N $D"
"&&3&;
7/26/2019 Lec2 FeedbackControl Arduino-complete
23/79
M&5,N :2"3%"0 59 OF/ ,5+#%5&&)%
HD" "^I&",,23/ 3N $D" #3/$&3::"& 2, 02K"/ 7+
H2-" 63-12/)
H&1/,N"& N/)sk
s
kk
sE
sUD
Ip
)(
)(
t
DIp dt
tdekdektektu
0
)()()()(
7/26/2019 Lec2 FeedbackControl Arduino-complete
24/79
OE 93/$&3::"& >^1-I:"
93/,26"& (/6M3&6"& I:1/$)
OE #3/$&3::"&)
JK"&1:: H5)
./#&"1,2/0 8I2/#&"1,", /1$%&1: N&"S%"/#+
2/#&"1,", 1/6 6"#&"1,", 61-I2/0 &1$23L
./#&"1,2/0 8E2/#&"1,", 61-I2/0L
21
2)( asasbsG
skksC Dp )(
pD
pD
bkasbkas
kskb
sR
sY
21
2)(
)(
)(
)(
7/26/2019 Lec2 FeedbackControl Arduino-complete
25/79
O&3I3&$23/1:
93/$&3: ,20/1: R 8I4&"NM+; R 8I" >NN"#$) 720 ,20/1: N3& :1&0" "&&3&T ,-1:: ,20/1:
N3& ,-1:: "&&3&
W",%:$, 2/ ,$"16+M,$1$" "&&3&Z""6, 1 /3/V"&3 "&&3& $3 0"/"&1$" 1 #3/$&3:1#$23/
>,,"/$21::+ 1 ,I&2/01$ $D" 6",2&"6 I3,2$23/45R8^;
X20D 012/ -18", 1 ,$2NN"& ,I&2/0 1/62/#&"1,", $"/6"/#+ $3 3,#2::1$"
7/26/2019 Lec2 FeedbackControl Arduino-complete
26/79
>NN"#$ 3N 8I
7/26/2019 Lec2 FeedbackControl Arduino-complete
27/79
E"&2K1$2K"
93/$&3: ,20/1: R 8E64";C6$
>NN"#$) ,:3Q, #3/$&3: 1#$23/ 1/6 61-I,3,#2::1$23/,j 2/#&"1,", ,+,$"- ,$172:2$+
91/ 1:,3 -18" &",I3/," -3&" ,:%002,D
G1,"6 3/ N2&,$ 6"&2K1$2K") "2$D"& /32," 3&N2:$"&2/0 :10 4N3& K":3#2$+ ",$2-1$" N&3- I3,2$23/;#1/ 1#$%1::+ 2/$&36%#" 2/,$172:2$+ 1012/
7/26/2019 Lec2 FeedbackControl Arduino-complete
28/79
>NN"#$ 3N 8E
7/26/2019 Lec2 FeedbackControl Arduino-complete
29/79
./$"0&1:
93/$&3: ,20/1: R 82 4";6$
>NN"#$) 2/$"0&1$", "&&3& 3K"& $2-"
93/$&3: ,20/1: 7%2:6, %I 1/6 "K"/$%1::+ 7&2/0,
"&&3& $3 V"&3 >:2-2/1$", ,$"16+M,$1$" "&&3&1/6 2-I&3K", ,+,$"-
&",I3/,2K"/",,
F/I:"1,1/$ ,26" "NN"#$,)
W"6%#"6 61-I2/0 1/6 :1&0"& 3K"&,D33$46"#&"1,"6 ,$172:2$+;
./$"0&1$3& Q2/6M%I
7/26/2019 Lec2 FeedbackControl Arduino-complete
30/79
>NN"#$ 3N 8.
7/26/2019 Lec2 FeedbackControl Arduino-complete
31/79
H%/2/0 1 O.E #3/$&3::"&
Iterative manual tuning process*$1&$ Q2$D O) 2/#&"1," %/$2: %/,$17:"
=66 E %/$2: ,$17:"
.N ** "&&3& 2, 1 I&37:"-T 166 .
4166 E %/$2: ,$17:";
=66 -3&" OT 16U%,$ ET "$#L
93-I&3-2," 7"$Q""/ %)715+72E)+)771/6 7#"J2&2#-
HD"&" 1&" ,+,$"-1$2# $%/2/0 0%26":2/", 1K12:17:" ,%#D1, $D" k2"0:"&MZ2#D3:, -"$D36L HD" 3I$2-1: 012/, 1&",":"#$"6 71,"6 3/ $D" :10 $2-" 1/6 $D" &"1#$23/ &1$"3N $D" 3I"/ :33I %/2$M,$"I &",I3/,"L
7/26/2019 Lec2 FeedbackControl Arduino-complete
32/79
H3I2#,
5""671#8 #3/$&3:JI"/ K,L #:3,"6M:33I
*$172:2$+ 1/6 I"&N3&-1/#" ,I"#2N2#1$23/,
*+,$"- &",I3/,"
O.E #3/$&3::"&
7/26/2019 Lec2 FeedbackControl Arduino-complete
33/79
JI$2#1: "/#36"&
= 6202$1: 3I$2#1: "/#36"& 2, 1 6"K2#" $D1$ #3/K"&$,
-3$23/ 2/$3 1 ,"S%"/#" 3N 6202$1: I%:,",L HD" -3$23/
-1+ 7" "2$D"& :2/"1& 3& &3$1$23/1:L
P" N3#%, 3/ $D" -3&" #3--3/ &3$1&+ 3I$2#1:
"/#36"&L
7/26/2019 Lec2 FeedbackControl Arduino-complete
34/79
./#&"-"/$1: 3I$2#1: "/#36"&
= 62,8 43& #36"QD"":; 1$$1#D"6 $3 1 &3$1$2/0 ,D1N$
,I2/, 7"$Q""/ $Q3 ID3$3M"-2$$"&, 1/6 6"$"#$3&, L
HD" 62,8 D1, 1 &1621: I1$$"&/ 3N :2/", $D1$ 1:$"&/1$":+
I1,, 1/6 7:3#8 $D" 7"1- 7"$Q""/ 1 ID3$3M"-2$$"&6"$"#$3& I12&L
HD" ID3$3 6"$"#$3& 3%$I%$, 1&" #1::"6 #D1//": = 1/6
GL
7/26/2019 Lec2 FeedbackControl Arduino-complete
35/79
./#&"-"/$1: 3I$2#1: "/#36"&
G+ #3%/$2/0 $D" /%-7"& 3N I%:,", 1/6 8/3Q2/0 $D"
/%-7"& 3N &1621: :2/", 2/ $D" 62,8T $D" &3$1$23/ 3N $D"
,D1N$ #1/ 7" -"1,%&"6L
HD" 62&"#$23/ 3N &3$1$23/ 2, 6"$"&-2/"6 7+ $D" ID1,"&":1$23/,D2I 7"$Q""/ $D" = 1/6 G I%:," $&12/,L
.N = :"16, GT $D"/ $D" ,D1N$ 2, &3$1$2/0 #3%/$"&M#:3#8Q2,"
.N G :"16, =T $D"/ $D" ,D1N$ 2, &3$1$2/0 #:3#8Q2,"
7/26/2019 Lec2 FeedbackControl Arduino-complete
36/79
l%16&1$%&" ,20/1:,
9D1//": = 1/6 G 1&" [C? #+#:" 3%$ 3N ID1,"
Q2$D "1#D 3$D"& 4S%16&1$%&" ,20/1:,;L
HD"&" 1&" N3%& 62,$2/#$ ,$1$", 4*[*?;L HD%,T 1aAA #3%/$ "/#36"& QD2#D D1, aAA ID+,2#1: ,:2$,
N3& "1#D ID3$36236" Q2:: 02K" +3% (AAA #3%/$,
I"& &"K3:%$23/L
7/26/2019 Lec2 FeedbackControl Arduino-complete
37/79
E9 -3$3& ,I""6 #3/$&3:
7/26/2019 Lec2 FeedbackControl Arduino-complete
38/79
XM7&260" 6&2K"& OP< 2, 3N$"/ %," Q2$D 1 XM7&260")
HD" XM7&260" 1::3Q, $D" -3$3& $3 #D1/0" 62&"#$23/)
.N *[ 1/6 *? 1&" JZT 1/6 *( 1/6 *c J55T $D" -3$3& $%&/, 2/
3/" 62&"#$23/L
.N *[ 1/6 *? 1&" J55T 1/6 *( 1/6 *c JZT $D" -3$3& $%&/, 2/ $D"3II3,2$" 62&"#$23/L
.N *( 1/6 *? 1&" J55 3& *[ 1/6 *c 1&" J55T $D" -3$3& ,:3Q, 63Q/L
F," OP< $3 #3/$&3: $D" ,Q2$#D",T 1/6 D"/#" $D" -3$3& ,I""6L
7/26/2019 Lec2 FeedbackControl Arduino-complete
39/79
!(@i XM7&260" 6&2K"& ./#:%6", ( XM7&260",)
7/26/2019 Lec2 FeedbackControl Arduino-complete
40/79
=&6%2/3
7/26/2019 Lec2 FeedbackControl Arduino-complete
41/79
=&6%2/3 1D2$"#$%&"
=H-"01c(i 3/ F/3
G3$D 1/1:30 1/6 6202$1:
7/26/2019 Lec2 FeedbackControl Arduino-complete
42/79
=&6%2/3 F/3
7/26/2019 Lec2 FeedbackControl Arduino-complete
43/79
7/26/2019 Lec2 FeedbackControl Arduino-complete
44/79
=&6%2/3 O&30&1-
E3Q/:316 1/6 2/,$1:: N&""=&6%2/3 ./$"0&1$"6E"K":3I-"/$ >/K2&3/-"/$4.E>; ,3N$Q1&" 1/6 F*G6&2K"&,)
D$$I)CC1&6%2/3L##C"/C
7/26/2019 Lec2 FeedbackControl Arduino-complete
45/79
=&6%2/3 .E>
m"&2N+
,+/$1^
FI:316
,8"$#D $3
731&6 JI"/ ,1K"/"Q JI"/ ,"&21: -3/2$3&
7/26/2019 Lec2 FeedbackControl Arduino-complete
46/79
=&6%2/3 .E>
>^1-I:",)52:"\ >^1-I:", M> ..
9D33," 731&6
H33:, M\ G31&6 M\ =&6%2/3 F/3
*":"#$ ,"&21: I3&$
H33:, M\ *"&21: I3&$ M\ 9J
7/26/2019 Lec2 FeedbackControl Arduino-complete
47/79
>^1-I:" ,8"$#D blinkCf G:2/8
H%&/, 3/ 1/ !>E 3/ N3& 3/" ,"#3/6T $D"/ 3NN N3& 3/" ,"#3/6T &"I"1$"6:+L fC
CC O2/ [c D1, 1/ !>E #3//"#$"6 $3 2$L
CC 02K" 2$ 1 /1-")
2/$ :"6 R [cj
CC $D" ,"$%I &3%$2/" &%/, 3/#" QD"/ +3% I&",, &","$)
K326 ,"$%I4; n
CC 2/2$21:2V" $D" 6202$1: I2/ 1, 1/ 3%$I%$L
I2/E 3NN 7+ -182/0 $D" K3:$10" !JP
6":1+4[AAA;j CC Q12$ N3& 1 ,"#3/6o
E"#:1&1$23/ ,"#$23/
*"$%I ,"#$23/L F,"
N3& ,"$$2/0 I2/ -36"
1/6 ,"&21: I3&$ "$#L
7/26/2019 Lec2 FeedbackControl Arduino-complete
48/79
./I%$ 1/6 3%$I%$ N%/#$23/,
12+U5:)=12+G 05:)?
93/N20%&", 1 6202$1: I2/ $3 7"D1K" "2$D"& 1, 1/ 2/I%$ 3&
1/ 3%$I%$L
-36") .ZOFHT JFHOFH
:232#"&V%2#)=12+G E"&$)?
H%&/, 1 6202$1: I2/ "2$D"& 3/ 3& 3NNL
K1:%") X.BX 3& !JP
:232#"&4)":=12+? W"16, $D" K1:%" N&3- 1 ,I"#2N2"6 6202$1: I2/T "2$D"&
X.BX 3& !JPL
Usually use an 2/$ variable to store the value.
7/26/2019 Lec2 FeedbackControl Arduino-complete
49/79
./I%$ 1/6 3%$I%$ N%/#$23/,
"+"&534)":=12+?
W"16, $D" K3:$10" 1II:2"6 $3 1/ 1/1:30 2/I%$ I2/ 4AM a;
1/6 &"$%&/, 1 /%-7"& 7"$Q""/ A 1/6 [A(c $D1$
&"I&","/$, $D" K3:$10", 7"$Q""/ A 1/6 a mL
"+"&53V%2#)=12+G E"&$)?
9D1/0", $D" OP< &1$" 3/ 3/" $D" 6202$1: I2/, cT aT pT
@T [AT 1/6 [[L
m1:%" -1+ 7" 1 /%-7"& 7"$Q""/ A 1/6 (aaL A -"1/,
J55T (aa -"1/, [AAd 6%$+ #+#:"L
Z""6 $3 %," I2/
7/26/2019 Lec2 FeedbackControl Arduino-complete
50/79
*8"$#D 732:"&I:1$"
=/+ =&6%2/3 sketch must have a setup and loop,"#$23/L
K326 ,"$%I4; n
CC #36"
o
K326 :33I4; n
CC#36"
o
The void means that the function does not
&"$%&/ 1/+ K1:%", QD"/ #1::"6L
7/26/2019 Lec2 FeedbackControl Arduino-complete
51/79
*"&21: -3/2$3&
H3 62,I:1+ 2/N3&-1$23/ 3/ ,#&""/L
9:2#8 3/ $3 3I"/ $D" ,"&21: -3/2$3& Q2/63QL
>^1-I:" ,8"$#D)CC ,8"$#D cMAa
K326 ,"$%I4;
n
*"&21:L7"02/4@pAA;j
2/$ 6"09 R (Aj
2/$ 6"05j
6"05 R 6"09 f @ C a ` c(j
*"&21:LI&2/$:/46"05;jo
K326 :33I4;
no
*"$ $D" ,"&21: I3&$ ,I""6 $3@pAA71%6
Print the value of 6"05 to the
,"&21: -3/2$3& Q2/63Q
Note that *"&21:LI&2/$:/ can also be used inside loop()
7/26/2019 Lec2 FeedbackControl Arduino-complete
52/79
.NM":," ,$1$"-"/$
*+/$1^)
93/62$23/ 3I"&1$3&)
2N 46%07/)/%0;
n
CC 1#$23/ =
o
":,"
n
CC 1#$23/ G
o
7/26/2019 Lec2 FeedbackControl Arduino-complete
53/79
.NM":," ,$1$"-"/$ "^1-I:"CC ,8"$#D cMA@
2/$ :"6O2/ R [cj
2/$ 6":1+O"&236 R [AAj
2/$ #3%/$ R Aj
K326 ,"$%I4;
n
I2/E (A $2-", 1$AL[,"# &1$" 1/6 $D"/ Q12$ N3& c ,"#
7"N3&" &"I"1$2/0 1012/L
7/26/2019 Lec2 FeedbackControl Arduino-complete
54/79
93-I3%/6 3I"&1$3&,
^``j CC "S%2K1:"/$ $3 $D" "^I&",,23/ ^ R ^ ` [j
^M M j CC "S%2K1:"/$ $3 $D" "^I&",,23/ ^ R ^ M [j
^ `R +j CC "S%2K1:"/$ $3 $D" "^I&",,23/ ^ R ^ ` +j
^ MR +j CC "S%2K1:"/$ $3 $D" "^I&",,23/ ^ R ^ M +j
^ fR +j CC "S%2K1:"/$ $3 $D" "^I&",,23/ ^ R ^ f +j
^ CR +j CC "S%2K1:"/$ $3 $D" "^I&",,23/ ^ R ^ C +j
7/26/2019 Lec2 FeedbackControl Arduino-complete
55/79
G33:"1/ 3I"&1$3&, qq MM :302#1: 1/6
H&%" 3/:+ 2N 73$D 3I"&1/6, 1&" $&%"T "L0L2N 46202$1:W"164(; RR [ qq 6202$1:W"164c; RR [;
n CC #36"
o
rr MMM :302#1: 3&
H&%" 2N "2$D"& 3I"&1/6 2, $&%"T "L0L
2N 4^ \ A rr + \ A; n
CC LLL
o
2, $&%" 2N "2$D"& ^ 3& + 2, 0&"1$"& $D1/ AL
s MM /3$
H&%" 2N $D" 3I"&1/6 2, N1:,"T "L0L
2N 4s^; n
CC LLL
o
2, $&%" 2N ^ 2, N1:," 42L"L 2N ^ "S%1:, A;L
7/26/2019 Lec2 FeedbackControl Arduino-complete
56/79
7/26/2019 Lec2 FeedbackControl Arduino-complete
57/79
E1$1 $+I",
For statement
7/26/2019 Lec2 FeedbackControl Arduino-complete
58/79
For statement
*+/$1^)
>^1-I:")
N3& 42/2$21:2V1$23/j #3/62$23/j 2/#&"-"/$;
n
CC,$1$"-"/$4,;j
o
CC ,8"$#D cMAi
2/$ :"6O2/ R [cj
2/$ 6":1+O"&236 R [AAj
K326 ,"$%I4;
nI2/
7/26/2019 Lec2 FeedbackControl Arduino-complete
59/79
while statement
*+/$1^)
>^1-I:")
QD2:"4"^I&",,23/;
n
CC ,$1$"-"/$4,;
o
CC ,8"$#D cMAi
2/$ :"6O2/ R [cj
2/$ 6":1+O"&236 R [AAj
K326 ,"$%I4;
nI2/
7/26/2019 Lec2 FeedbackControl Arduino-complete
60/79
t6"N2/" 62&"#$2K"
91/ %," t6"N2/" $3 1,,3#21$" 1 K1:%" Q2$D 1
K1&217:" I&3K26"6 $D" K1:%" 63", /3$ #D1/0"L HD2,
,1K", -"-3&+L
53& "^1-I:"T &"I:1#"
2/$ :"6O2/ R [cj
7+t6"N2/" :"6O2/ [c
Z3$" $D"&" 2, /3 ,"-2M#3:3/ /""6"6 1N$"& t6"N2/"L
5%/#$23/,
7/26/2019 Lec2 FeedbackControl Arduino-complete
61/79
5%/#$23/,
= N%/#$23/ 2, 1 :28" 1 I&30&1- Q2$D2/ 1 I&30&1-L
*+/$1^)
>^1-I:")
&"$%&/$+I" N%/#$23/Z1-"4 1&0%-"/$, ;n
CCN%/#$23/ 736+
&"$%&/ &"$%&/$+I"j
o
2/$ :"6O2/ R [cj
2/$ 6":1+O"&236 R (aAj
K326 ,"$%I4;
n
I2/
7/26/2019 Lec2 FeedbackControl Arduino-complete
62/79
O1,,2/0 I1&1-"$"& $3 1 N%/#$23/
>^1-I:")
CC ,8"$#D ?MA(2/$ :"6O2/ R [cj
2/$ 6":1+O"&236 R (aAj
K326 ,"$%I4;
n
I2/
7/26/2019 Lec2 FeedbackControl Arduino-complete
63/79
5%/#$23/ $D1$ &"$%&/, K1:%" >^1-I:")
2/$ #"/$H351&"/42/$ #;
n
2/$ N R # f @ C a ` c(j
&"$%&/ Nj
o
HD2, N%/#$23/ $18", 1 $"-I"&1$%&" 2/ 6"0&"", #"/$20&16"1/6 &"$%&/, $D" "S%2K1:"/$ 2/ 6"0&"", N1D&"/D"2$L Y3% #1/
#1:: 2$ %,2/0)
2/$ H"-I"&1$%&" R #"/$H351&"/4(A;j
X"&" $D" &",%:$ 2, 6"#:1&"6 1, 1/ 2/$"0"&L *3 $D" &",%:$ Q2::be rounded off. To keep decimal values, use float instead
of 2/$.
5%/#$23/ $D1$ &"$%&/, K1:%" 4N:31$2/0
7/26/2019 Lec2 FeedbackControl Arduino-complete
64/79
5%/#$23/ $D1$ &"$%&/, K1:%" 4N:31$2/0
I32/$; >^1-I:")
N:31$ #"/$H351&"/4N:31$ #;
n
N:31$ N R # f @LA C aLA ` c(LAj
&"$%&/ Nj
Y3% #1/ #1:: 2$ %,2/0)
N:31$ H"-I"&1$%&" R #"/$H351&"/4(A;j
Z3$" $D1$ Q" D1K" %," N:31$,
$D&3%0D3%$ D"&"L P" D1K" 1:,3 166"6
LA $3 $D" "/6 3N 3%& #3/,$1/$,L HD2,
"/,%&", $D1$ $D" #3-I2:"& 8/3Q, $3
$&"1$ $D"- 1, N:31$, &1$D"& $D1/ 2/$,L
=&&1+,
7/26/2019 Lec2 FeedbackControl Arduino-complete
65/79
=&&1+,
=/ 1&&1+ #3/$12/, 1 :2,$ 3N
K1:%",T &1$D"& $D1/ U%,$ 3/"
K1:%"L
2/$ 6%&1$23/,]_ R n(AAT (AAT (AAT aAAT aAAT aAAT
(AAT (AAT (AAoj
=&&1+,
7/26/2019 Lec2 FeedbackControl Arduino-complete
66/79
=&&1+,
>^1-I:")CC ,8"$#D
7/26/2019 Lec2 FeedbackControl Arduino-complete
67/79
*$&2/0, = ,$&2/0 2, 1/ 1&&1+ 3N $+I" 64*-L
HD" $+I" 64*-2, 1 /%-7"& 7"$Q""/ A 1/6 [(h $D1$
&"I&","/$, 3/" #D1&1#$"& 4=*9..;L
93--3/ =*9.. #36")
>^)
#D1& /1-"]_ R uX"::3uj
HD2, 6"N2/", 1/ 1&&1+ 3N char called name 1/6
initializes it to the word X"::3. It 1:,3 166, 1 N2/1:
/%:: K1:%" 4=*9.. A; $3 -1&8 $D" "/6 3N $D" ,$&2/0L
name[0] holds H
name[1] holds e, "$#
*$&2/0,
7/26/2019 Lec2 FeedbackControl Arduino-complete
68/79
*$&2/0, HD" N3::3Q2/0 1&" "S%2K1:"/$)
#D1& /1-"]_ R uX"::3uj
#D1& f/1-" R uX"::3uj
HD" f 2/62#1$", 1 I32/$"&L *3 $D" /1-" I32/$, $3 $D" N2&,$ #D1&
":"-"/$ 3N $D" #D1& 1&&1+L
>^1-I:")
CC ,8"$#D#D1& -",,10"]_ R uX"::3uj CC 3& %,") #D1& f-",,10" R uX"::3uj
K326 ,"$%I4;
n
*"&21:L7"02/4@pAA;j
o
K326 :33I4;
n
*"&21:LI&2/$:/4-",,10";j
6":1+4[AAA;j
o
N
7/26/2019 Lec2 FeedbackControl Arduino-complete
69/79
=&&1+ 3N ,$&2/0,
P" #1/ 1:,3 N3&- 1/ 1&&1+ 3N ,$&2/0, 4/3$ U%,$ 1&&1+ 3N #D1&;
#har *letters[] = { 17#, 6"N,0D2);
HD2, -"1/,)letters[0] holds 17#
letters[1] holds 6"N, "$#
*"&21: #3--%/2#1$23/
7/26/2019 Lec2 FeedbackControl Arduino-complete
70/79
*"&21:L7"02/4,I""6; M ,"$, $D" 61$1 &1$" 2/ 72$, I"& ,"#3/6T
QD"&" ,I""6 2, 3/" 3N $D"," &1$",) cAAT pAAT [(AAT (?AAT ?iAAT
@pAAT [??AAT [@(AAT (iiAAT ci?AAT ahpAAT 3& [[a(AA
*"&21:L1K12:17:"4; MM HD2, N%/#$23/ &"$%&/, $D" /%-7"& 3N 7+$",
3N 61$1 2/ $D" 7%NN"& $D1$ 1&" Q12$2/0 N3& +3% $3 &"16L
*"&21:LN:%,D4; M P12$, N3& $D" $&1/,-2,,23/ 3N 3%$032/0 ,"&21:
61$1 $3 #3-I:"$"L
*"&21:L&"164;&"16, 2/ 3/" 7+$" 43& M[ 2N /3 61$1 1K12:17:";
*"&21:LQ&2$"48*&; M Q&2$" 72/1&+ 61$1 $3 ,"&21: I3&$T QD"&" 8*&2, 1
K1:%" $3 ,"/6 1, 1 ,2/0:" 7+$"L
*"&21:LQ&2$"4()-;Q&2$" 72/1&+ 61$1 $3 ,"&21: I3&$T QD"&" ()-2, 1
,$&2/0 $3 ,"/6 1, 1 ,"&2", 3N 7+$",
*"&21:LQ&2$"4+!59 &'0; M Q&2$" 72/1&+ 61$1 $3 ,"&21: I3&$T QD"&"
+!52, 1/ 1&&1+ $3 ,"/6 1, 1 ,"&2", 3N 7+$", 1/6 &'02, $D" :"/0$D
3N $D" 7%NN"&
*"&21: #3--%/2#1$23/
7/26/2019 Lec2 FeedbackControl Arduino-complete
71/79
*"&21:LI&2/$47*)*; M O&2/$, 7*)*$3 $D" ,"&21: I3&$ 1, D%-1/M
&"1617:" =*9.. $"^$L
>^)
*"&21:LI&2/$4hi; 02K", uhiu
*"&21:LI&2/$4[L(c?ap; 02K", u[L(cu
*"&21:LI&2/$4vZv; 02K", uZu
*"&21:LI&2/$4uX"::3 Q3&:6Lu; 02K", uX"::3 Q3&:6Lu
*"&21:LI&2/$:/47*)*; M I&2/$, 7*)*$3 $D" ,"&21: I3&$ 1, D%-1/M
&"1617:" =*9.. $"^$ N3::3Q"6 7+ 1 #1&&210" &"$%&/ #D1&1#$"&
*"&21: #3--%/2#1$23/
7/26/2019 Lec2 FeedbackControl Arduino-complete
72/79
>^1-I:") Q" #1/ #3--%/2#1$" Q2$D 1&6%2/3 %,2/0 ,"&21: -3/2$3&CC,8"$#D
2/$ 3%$O2/ R ?jK326 ,"$%I4;
n
I2//$"& [ 3& Au;j
o
K326 :33I4;
n
2N 4*"&21:L1K12:17:"4; \ A;
n
#D1& #D R *"&21:L&"164;j2N 4#D RR v[v;
n 6202$1:P&2$"43%$O2/T X.BX;j o
":," 2N 4#D RR vAv;
n 6202$1:P&2$"43%$O2/T !JP;j o
o
o
G2 X 7
7/26/2019 Lec2 FeedbackControl Arduino-complete
73/79
G2/1&+T X"^ /%-7"&,
G2/1&+ /%-7"& use leading B. Only works with 872$ K1:%",L
>^1-I:") G[[[[[A[[
X"^16"#2-1: /%-7"& M use leading 0x.
>^1-I:") A^hG
G2$Q2," 3I"&1$23/,
7/26/2019 Lec2 FeedbackControl Arduino-complete
74/79
G2$Q2," 3I"&1$23/,
q MM 72$Q2," =ZEL
>^1-I:") G[[[[[A[[ q GAAAA[[[[ +2":6, GAAAA[A[[
r M 72$Q2," JW
>^1-I:") G[[[[[A[[ r GAAAA[[[[ +2":6, G[[[[[[[[
w M 72$Q2," ZJH
>^1-I:") w G[[[[[A[[ +2":6, GAAAAA[AA
./$"&&%I$,
7/26/2019 Lec2 FeedbackControl Arduino-complete
75/79
./$"&&%I$,
=&6%2/3 2, ,2/0:" $D&"16L *3 -3/2$3&2/0 $D"
3##%&&"/#" 3N 1/ "K"/$ %,", %I I&"#23%, 9OF$2-"L
F," 2/$"&&%I$ 2/,$"16L
9OF Q2:: I"&N3&- 2$, &"0%:1& 1#$2K2$2", %/$2:2/$"&&%I$ 3##%&,L HD"/ 2$ Q2:: ,%,I"/6
QD1$"K"& 2$ 2, 632/0 1/6 &%/, 1 N%/#$23/ $3
D1/6:" $D" 2/$"&&%I$L =&6%2/3 F/3 D1, ( 2/$"&&%I$ I2/, 4O2/ ( 1/6 c;
#3&&",I3/62/0 $3 2/$"&&%I$ A 1/6 [ &",I"#$2K":+L
F,2/0 2/$"&&%I$,
7/26/2019 Lec2 FeedbackControl Arduino-complete
76/79
0 I =$$1#D 1 ,20/1: $3 1/ 2/$"&&%I$ I2/L
=,,3#21$" 1 N%/#$23/T 2/$"&&%I$ ,"&K2#" &3%$2/" 4.*W;T Q2$D $D"
2/$"&&%I$)
1$$1#D./$"&&%I$42/$"&&%I$T N%/#$23/T -36";
QD"&"
2/$"&&%I$) $D" /%-7"& 3N $D" 2/$"&&%I$ 4A 3& [;
N%/#$23/) $D" /1-" 3N $D" .*W
-36") 6"N2/", QD"/ $D" 2/$"&&%I$ ,D3%:6 7" $&200"&"6L
!JP $3 $&200"& $D" 2/$"&&%I$ QD"/"K"& $D" I2/ 2, :3QT
9X=ZB> $3 $&200"& $D" 2/$"&&%I$ QD"/"K"& $D" I2/ #D1/0",
K1:%"
W.*.ZB $3 $&200"& QD"/ $D" I2/ 03", N&3- :3Q $3 D20DT
5=!!.ZB QD"/ $D" I2/ 03", N&3- D20D $3 :3QL
PD"/ $D" 2/$"&&%I$ 3##%&,T $D" 1&6%2/3 Q2:: &%/ $D" .*WL
PD"/ $D" .*W 2, 63/"T $D" 1&6%2/3 Q2:: &",%-" 2$, &"0%:1&
1#$2K2$2", 7"N3&" $D" 2/$"&&%I$23/L
F,2/0 2/$"&&%I$,
7/26/2019 Lec2 FeedbackControl Arduino-complete
77/79
0 I >^1-I:")
CC,8"$#D hMA?
2/$ 2/$"&&%I$O2/ R (j
2/$ :"6O2/ R [cj
2/$ I"&236 R aAAj
K326 ,"$%I4;
n
I2/
7/26/2019 Lec2 FeedbackControl Arduino-complete
78/79
0 C F," W"1:M$2-" Q2/63Q, $1&0"$ 4&$Q2/$0$; $33:73^
I1#8"$ 2/I%$ 7:3#8
I1#8"$ 3%$I%$ 7:3#8
4-18" ,%&" $3 ,"$ $D" #3&&"#$ 9J< I3&$ $D" 1&6%2/3 2, #3//"#$"6 $3;
Data type: single in -1$:17 (4 bytes) is the same as float in
=&6%2/3
F," *"&21:LQ&2$" 2/ 1&6%2/3 to send data to packet input block in,2-%:2/8L HD" N3::3Q2/0 ,"/6, $D" K1:%" ,$3&"6 2/ 1 N:31$ K1&217:"
xyz to ,2-%:2/8)
*"&21:LQ&2$"444%/2$ix$f;q^+V;T?;j
QD"&"T
uint8_t means size is 1 byte, i.e. 8 bits
* means pointer
&xyz means address of xyz
4 means there are 4 bytes altogether to send
./$"&N1#2/0 Q2$D ,2-%:2/8
7/26/2019 Lec2 FeedbackControl Arduino-complete
79/79
0 F," *"&21:L&"16 2/ 1&6%2/3 to read data sent from packet output
7:3#8 2/ ,2-%:2/8L HD" N3::3Q2/0 &"16, 1 ?M7+$" N:31$ 61$1 N&3-
,2-%:2/8 into a variable 6"N:
QD2:" 4s*"&21:L1K12:17:"4;; no
4442/$ix$f;4q6"N;;]A_; R *"&21:L&"164;j
QD2:" 4s*"&21:L1K12:17:"4;; no4442/$ix$f;4q6"N;;][_; R *"&21:L&"164;j
QD2:" 4s*"&21:L1K12:17:"4;; no
4442/$ix$f;4q6"N;;](_; R *"&21:L&"164;j
QD2:" 4s*"&21:L1K12:17:"4;; no
4442/$ix$f;4q6"N;;]c_; R *"&21:L&"164;j
Z3$" $D1$ $D"&" 1&" ? &"16, 43/" 7+$" 1$ 1 $2-";L 52&,$ 2/$3 6"N]A_T