'=================================================================================
'=================================================================================
'Branko Zupan
' Kobacajoči robot
' 2. 5. 2005
'
'=================================================================================
'=================================================================================
'
'sprednji servo na pin B1
'zadni servo na pin B2
'levi senzor na A0
'desni senzor na A1
'variabli S in Z za premikanje sevomehanizmov
'variabla X za oba senzorja (Bit-vrednost (binarno 00000111))
'variabla L za zanke
'
'=================================================================================

VarB S'-----------------> Byte-variabla (8Bit) za levi servo
VarB Z'-----------------> Byte-variabla (8Bit) za desni servo
VarB X'-----------------> Byte-variabla (8Bit) za senzorje
VarB L'-----------------> Byte-variabla (8Bit) za zanke

Low B1'-----------------> pin B1 preklopi kot izhod, stanje L (nizko)
Low B2'-----------------> pin B2 preklopi kot izhod, stanje L (nizko)

S = 150'----------------> postavi servo v sredino
Z = 150'----------------> postavi servo v sredino

Pause 1000

S = 180'-----------------> postavi sprednji servo na začetek koraka
Z = 180'-----------------> postavi zadnji servo na začetek koraka

'=================================================================================
Start:' =-----------------> vrstica za naprej
'=================================================================================

L = 0'--------------------> variabla za zanke na izhodišče
X = 3'--------------------> oba senzorja HI (Bit-vrednost (binarno 00000111))
PAI 3 = X'---------------> tukaj ugotavlja stanje obeh senzorjev (čita vhoda A0, A1)
IF X = 3 Then Skip 3'----> stanje: spremembe ni (X = 3), preskoči naslednje tri vrstice
IF X = 1 Then Levo'-----> stanje: sprememba je (X = 1), preskoči v vrstico za levo
IF X = 2 Then Desno'----> stanje: sprememba je (X = 2), preskoči v vrstico za desno
IF X = 0 Then Nazaj'----> stanje: sprememba je (X = 0), preskoči v vrstico za nazaj

'=================================================================================
'prvi del koraka
'=================================================================================

Do'-----------------------> začetek zanke

PulsOut B1, S'------------> impuls za sprednji servo (se pomanjšuje za 1 do 120)
PulsOut B2, Z'------------> impuls za zadnji servo (180)
Dec S'--------------------> pomanjšuje variablo S za vrednost 1

Pause 10

Loop until S = 120'-------> vrača na začetek zanke dokler ni vrednost 120

'=================================================================================
'drugi del koraka
'=================================================================================

Do'-----------------------> začetek zanke

PulsOut B1, S'-----------> impuls za sprednji servo (120)
PulsOut B2, Z'-----------> impuls za zadnji servo (se pomanjšuje za 1 do 120)
Dec Z'-------------------> pomanjšuje variablo Z za vrednost 1

Pause 10

Loop until Z = 120'------> vrača na začetek zanke dokler ni vrednost 120

'=================================================================================
'tretji del koraka
'=================================================================================

Do'----------------------> začetek zanke

PulsOut B1, S'-----------> impuls za sprednji servo (se povečuje za 1 do 180)
PulsOut B2, Z'-----------> impuls za zadnji servo (120)
Inc S'--------------------> povečuje variablo S za vrednost 1

Pause 10

Loop until S = 180'-> vrača na začetek zanke dokler ni vrednost 180

'=================================================================================
'četrti del koraka
'=================================================================================

Do'-----------------------> začetek zanke

PulsOut B1, S'-----------> impuls za sprednji servo (180)
PulsOut B2, Z'-----------> impuls za zadnji servo (se povečuje za 1 do 180)
Inc Z'--------------------> povečuje variablo Z za vrednost 1

Pause 10

Loop until S = 180'------> vrača na začetek zanke dokler ni vrednost 180

'=================================================================================
GoTo Start'-------------> povratek na začetek koraka
'=================================================================================

'=================================================================================
Levo:' =-----------------> vrstica za levo
'=================================================================================

Do'----------------------> začetek zanke

S = 180
Z = 180
PulsOut B1, S
PulsOut B2, Z
Pause 10
Inc L'-------------------> prišteva 1 v vrednost L (isto kot L = L +1)
Loop until L = 100'-----> vrača na začetek zanke, ko doseže L 100 gre naprej

GoTo Start'-------------> povratek na začetek

'=================================================================================
Desno:' =----------------> vrstica za desno
'=================================================================================

Do'----------------------> začetek zanke
S = 110
Z = 110
PulsOut B1, S
PulsOut B2, Z
Pause 10
Inc L'-------------------> prišteva 1 v vrednost L (isto kot L = L +1)
Loop until L = 100'-----> vrača na začetek zanke, ko doseže L 100 gre naprej
GoTo Start'-------------> povratek na začetek

'=================================================================================
Nazaj:' =----------------> vrstica za nazaj
'=================================================================================

Do'---------------------> začetek zanke
S = 110
Z = 180
PulsOut B1, S
PulsOut B2, Z
Pause 10
Inc L'-------------------> prišteva 1 v vrednost L (isto kot L = L +1)
Loop until L = 100'-> vrača na začetek zanke, ko doseže L 100 gre naprej
GoTo Start'-------------> povratek na začetek