Jeff Shelton 12 February 2015 - Purdue University · 2015. 2. 9. · Jeff Shelton – 12 February...
Transcript of Jeff Shelton 12 February 2015 - Purdue University · 2015. 2. 9. · Jeff Shelton – 12 February...
-
Jeff Shelton – 12 February 2015
1
-
Jeff Shelton – 12 February 2015 2
-
Jeff Shelton – 12 February 2015
3
-
Jeff Shelton – 12 February 2015
4
LS
RS
CLOSE
-
Jeff Shelton – 12 February 2015
LEFT
RIGHT
FORWARD
5
-
Jeff Shelton – 12 February 2015
6
LEFT
RIGHT
FORWARD
LS
RS
CLOSE
-
Jeff Shelton – 12 February 2015
7
LEFT
RIGHT
FORWARD
LS
RS
CLOSE
-
Jeff Shelton – 12 February 2015
8
-
Jeff Shelton – 12 February 2015
Sx (xxx)
L R F Inputs: LS RS CL
9
-
Jeff Shelton – 12 February 2015
Sx (xxx)
L R F Inputs: LS RS CL
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
10
-
Jeff Shelton – 12 February 2015
Sx (xxx)
L R F Inputs: LS RS CL
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
11
By convention, the initial (starting) state is typically named S0. If this is not the
case, you should indicate the initial state for your FSM.
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100
12
Object detected to left of robot!
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
13
Object detected to right of robot!
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
14
Object still present to left
of robot
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
15
Object directly ahead
of robot!
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
16
Object now on right side
of robot
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
17
Object detected on both sides of robot
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1
18
Object directly ahead
of robot!
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1 010
19
Object still present to
right of robot
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1 010
100
20
Object now on left side of
robot
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1 010
100
110
21
Object detected on both sides of robot
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1 010
100
110
110
22
Object detected on both sides of robot
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1 010
100
110
110
xx1
23
Object directly ahead
of robot!
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1 010
100
110
110
xx1
xx1
24
Object directly ahead
of robot!
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1 010
100
110
110
xx1
xx1
000
25
Default movement is to move forward…
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1 010
100
110
110
xx1
xx1
000
000
26
… and make right hand turns
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1 010
100
110
110
xx1
xx1
000
000 000
27
… until one of the sensors detects an
object.
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1 010
100
110
110
xx1
xx1
000
000 000
28
We can merge two inputs for S2…
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1
100
110
110
xx1
xx1
000
000 0x0
29
Are we done?
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1
100
110
110
xx1
xx1
000
000 0x0
30
Are all the input combinations
handled?
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1
100
110
110
xx1
xx1
000
000 0x0
31
001 011 101 111
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1
100
110
110
xx1
xx1
000
000 0x0
32
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1
100
110
110
xx1
xx1
000
000 0x0
33
001 011 101 111
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1
100
110
110
xx1
xx1
000
000 0x0
34
001 011 101 111
Oops! We missed one!
000
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1
100
110
110
xx1
xx1
000
000 0x0
35
000
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1
100
110
110
xx1
xx1
000
000 0x0
36
001 011 101 111
000 000 010
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1
100
110
110
xx1
xx1
000
000 0x0
37
000
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1
100
110
110
xx1
xx1
000
000 0x0
38
000
001 011 101 111
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1
100
110
110
xx1
xx1
000
0x0 0x0
39
000
001 011 101 111
000 010
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1
100
110
110
xx1
xx1
000
0x0 0x0
40
000
001 011 101 111
000 010
100
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1
100
110
110
xx1
xx1
000
0x0 0x0
41
000
001 011 101 111
000 010
100
110
-
Jeff Shelton – 12 February 2015
1 0 1
0 0 1
0 1 1
S1 (LT) S2 (RT)
S0 (STOP)
0 0 0
S3 (FOR)
Sx (xxx)
L R F Inputs: LS RS CL
100 010
100
xx1
010
110
xx1
100
110
110
xx1
xx1
000
0x0 0x0
42
000
100
110
-
Jeff Shelton – 12 February 2015
-
Jeff Shelton – 12 February 2015 44
P
N
-
Jeff Shelton – 12 February 2015
45
P
N
-
Jeff Shelton – 12 February 2015 46
P Start N P
-
Jeff Shelton – 12 February 2015 47
P N Start
-
Jeff Shelton – 12 February 2015 48
P N Start
-
Jeff Shelton – 12 February 2015 49
P N Start
-
Jeff Shelton – 12 February 2015 50
Start P N
-
Jeff Shelton – 12 February 2015 51
P N
-
Jeff Shelton – 12 February 2015 52
P N
-
Jeff Shelton – 12 February 2015 53
P N
-
Jeff Shelton – 12 February 2015 54
N P
-
Jeff Shelton – 12 February 2015 55
P N
-
Jeff Shelton – 12 February 2015
56
P
N
-
Jeff Shelton – 12 February 2015
57
-
Jeff Shelton – 12 February 2015
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
58
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
-
Jeff Shelton – 12 February 2015
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
59
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
00 Exactly on target…
-
Jeff Shelton – 12 February 2015
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
60
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
01
00
Beyond target position
-
Jeff Shelton – 12 February 2015
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
61
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00
Not yet to target position
-
Jeff Shelton – 12 February 2015
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
62
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
Treat as either a "don't care," condition or as an
error… maybe create an emergency
shutdown state?
We shouldn't get a 7/8ths signal when
we are stopped
-
Jeff Shelton – 12 February 2015
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
63
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
-
Jeff Shelton – 12 February 2015
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
64
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00 Exactly on target…
-
Jeff Shelton – 12 February 2015
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
65
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00
"X"
01
Again, either a "don't care," or an error…
We're not able to jump to the other side of the target without passing through the
7/8ths zone
-
Jeff Shelton – 12 February 2015
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
66
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00
"X"
01
10 Not yet to target…
-
Jeff Shelton – 12 February 2015
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
67
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00
"X"
01
10
11 7/8ths of way to target
-
Jeff Shelton – 12 February 2015
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
68
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00
"X"
01
10
11
-
Jeff Shelton – 12 February 2015
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
69
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00
"X"
01
10
11 00
Exactly on target…
-
Jeff Shelton – 12 February 2015
01
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
70
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00
"X"
01
10
11 00
"X"
Another "don't care," or an error…
Shouldn't be able to jump to other side of
the target without passing through
target
-
Jeff Shelton – 12 February 2015
10
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
71
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10
00 11 "X"
00
"X"
01
10
11 00
"X" 01
01
Shouldn't get a "P" signal when already in
7/8ths zone
-
Jeff Shelton – 12 February 2015
10
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
72
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10
00 11 "X"
00
"X"
01
10
11 00
"X" 01
11
01
Still in 7/8ths zone
-
Jeff Shelton – 12 February 2015
10
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
73
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10
00 11 "X"
00
"X"
01
10
11 00
"X" 01
11
01
-
Jeff Shelton – 12 February 2015
10
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
74
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00
"X"
01
10
11 00
"X" 01
11
00 Exactly on target…
-
Jeff Shelton – 12 February 2015
10
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
75
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00
"X"
01
10
11 00
"X" 01
11
00
01
Approaching target from
negative side
-
Jeff Shelton – 12 February 2015
10
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
76
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00
"X"
01
10
11 00
"X" 01
11
00
01 10
Another "don't care" or error
state
Can't jump to opposite side of
7/8ths zone
-
Jeff Shelton – 12 February 2015
10
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
77
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00
"X"
01
10
11 00
"X" 01
11
00
01 10
11 Inside 7/8ths zone
-
Jeff Shelton – 12 February 2015
10
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
78
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00
"X"
01
10
11 00
"X" 01
11
00
01 10
11
-
Jeff Shelton – 12 February 2015
10
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
79
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00
"X"
01
10
11 00
"X" 01
11
00
01 10
11 00
Exactly on target…
-
Jeff Shelton – 12 February 2015
01
10
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
80
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00
"X"
01
10
11 00
"X" 01
11
00
01 10
11 00
"X" Can't jump away from target while moving towards it
"Don't care" or error
-
Jeff Shelton – 12 February 2015
10
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
81
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00
"X"
01
10
11 00
"X" 01
11
00
01 10
11 00
10 "X"
01 Can't jump to other side of
target
"Don't care" or error
-
Jeff Shelton – 12 February 2015
10
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
82
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00
"X"
01
10
11 00
"X" 01
11
00
01 10
11 00
10 "X"
01
11
Still in 7/8ths zone
-
Jeff Shelton – 12 February 2015
10
Sx (xxx)
F R S
Q1 Q2 Q3
Inputs: P N
83
S0 (STOP)
0 0 0
0 0 0
S2 (REVERSE)
0 1 0
0 1 0
0 1 1
S4 (SLOW REV)
0 1 1
S3 (SLOW FOR)
1 0 1
1 0 1
S1 (FORWARD)
1 0 0
1 0 0
10 01
00 11 "X"
00
"X"
01
10
11 00
"X" 01
11
00
01 10
11 00
10 "X"
01
11
-
Jeff Shelton – 12 February 2015 84
Input Current State Next State Output
P N F R S
0 0 S0 S0 0 0 0
0 0 S1 S0 1 0 0
0 0 S2 S0 0 1 0
0 0 S3 S0 1 0 1
0 0 S4 S0 0 1 1
0 1 S0 S2 0 0 0
0 1 S1 X 1 0 0
0 1 S2 S2 0 1 0
0 1 S3 X 1 0 1
0 1 S4 X 0 1 1
1 0 S0 S1 0 0 0
1 0 S1 S1 1 0 0
1 0 S2 X 0 1 0
1 0 S3 X 1 0 1
1 0 S4 X 0 1 1
1 1 S0 X 0 0 0
1 1 S1 S3 1 0 0
1 1 S2 S4 0 1 0
1 1 S3 S3 1 0 1
1 1 S4 S4 0 1 1
-
Jeff Shelton – 12 February 2015 85
Input Current State Next State Output
P N Q0 Q1 Q2 Q0* Q1* Q2* F R S
0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 1 0
0 0 0 1 1 0 0 0 0 1 1
0 0 1 0 0 0 0 0 1 0 0
0 0 1 0 1 0 0 0 1 0 1
0 1 0 0 0 0 1 0 0 0 0
0 1 0 1 0 0 1 0 0 1 0
0 1 0 1 1 X X X 0 1 1
0 1 1 0 0 X X X 1 0 0
0 1 1 0 1 X X X 1 0 1
1 0 0 0 0 1 0 0 0 0 0
1 0 0 1 0 X X X 0 1 0
1 0 0 1 1 X X X 0 1 1
1 0 1 0 0 1 0 0 1 0 0
1 0 1 0 1 X X X 1 0 1
1 1 0 0 0 X X X 0 0 0
1 1 0 1 0 0 1 1 0 1 0
1 1 0 1 1 0 1 1 0 1 1
1 1 1 0 0 1 0 1 1 0 0
1 1 1 0 1 1 0 1 1 0 1
-
Jeff Shelton – 12 February 2015
Q1 Q2Q0*
(P = 1) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q0*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q1*
(P = 1) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q1*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q2*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q2*
(P = 1) 00 01 11 10
00
01
11N Q0
10
86
-
Jeff Shelton – 12 February 2015
Q1 Q2Q0*
(P = 1) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q0*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q1*
(P = 1) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q1*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q2*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q2*
(P = 1) 00 01 11 10
00
01
11N Q0
10
87
0 0 X 0
0 0 X 1
0 0 X 0
1 1 1 X
0 0 0 X
0 0 1 X
X 0 X X
X 0 X X
X 0 X X
X X 1 X
X X 0 X
X X 1 X
0 X X X
0 X X X
0 X X X
X X X 1
X X X 1
X X X 0
0 X X 0
0 X X 1
0 X X 0
X X X 1
X X X 1
X X X 0
-
Jeff Shelton – 12 February 2015
Q1 Q2Q0*
(P = 1) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q0*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q1*
(P = 1) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q1*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q2*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q2*
(P = 1) 00 01 11 10
00
01
11N Q0
10
88
0 0 X 0
0 0 X 1
0 0 X 0
1 1 1 X
0 0 0 X
0 0 1 X
X 0 X X
X 0 X X
X 0 X X
X X 1 X
X X 0 X
X X 1 X
0 X X X
0 X X X
0 X X X
X X X 1
X X X 1
X X X 0
0 X X 0
0 X X 1
0 X X 0
X X X 1
X X X 1
X X X 0
𝑄0∗ = 𝑃 ⋅ 𝑄1
-
Jeff Shelton – 12 February 2015
Q1 Q2Q0*
(P = 1) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q0*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q1*
(P = 1) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q1*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q2*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q2*
(P = 1) 00 01 11 10
00
01
11N Q0
10
89
0 0 X 0
0 0 X 1
0 0 X 0
1 1 1 X
0 0 0 X
0 0 1 X
X 0 X X
X 0 X X
X 0 X X
X X 1 X
X X 0 X
X X 1 X
0 X X X
0 X X X
0 X X X
X X X 1
X X X 1
X X X 0
0 X X 0
0 X X 1
0 X X 0
X X X 1
X X X 1
X X X 0
𝑄0∗ = 𝑃 ⋅ 𝑄1 𝑄1∗ = 𝑁 ⋅ 𝑄0
-
Jeff Shelton – 12 February 2015
Q1 Q2Q0*
(P = 1) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q0*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q1*
(P = 1) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q1*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q2*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q2*
(P = 1) 00 01 11 10
00
01
11N Q0
10
90
0 0 X 0
0 0 X 1
0 0 X 0
1 1 1 X
0 0 0 X
0 0 1 X
X 0 X X
X 0 X X
X 0 X X
X X 1 X
X X 0 X
X X 1 X
0 X X X
0 X X X
0 X X X
X X X 1
X X X 1
X X X 0
0 X X 0
0 X X 1
0 X X 0
X X X 1
X X X 1
X X X 0
𝑄0∗ = 𝑃 ⋅ 𝑄1 𝑄1∗ = 𝑁 ⋅ 𝑄0 𝑄2∗ = 𝑃 ⋅ 𝑁
-
Jeff Shelton – 12 February 2015
Q1 Q2Q0*
(P = 1) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q0*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q1*
(P = 1) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q1*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q2*
(P = 0) 00 01 11 10
00
01
11N Q0
10
Q1 Q2Q2*
(P = 1) 00 01 11 10
00
01
11N Q0
10
91
0 0 X 0
0 0 X 1
0 0 X 0
1 1 1 X
0 0 0 X
0 0 1 X
X 0 X X
X 0 X X
X 0 X X
X X 1 X
X X 0 X
X X 1 X
0 X X X
0 X X X
0 X X X
X X X 1
X X X 1
X X X 0
0 X X 0
0 X X 1
0 X X 0
X X X 1
X X X 1
X X X 0
𝑄0∗ = 𝑃 ⋅ 𝑄1 𝑄1∗ = 𝑁 ⋅ 𝑄0 𝑄2∗ = 𝑃 ⋅ 𝑁
𝐹 = 𝑄0 𝑅 = 𝑄1 𝑆 = 𝑄2
-
Jeff Shelton – 12 February 2015
92