Stap 8: Actuator neuronen voor Robots
Ze kunnen variëren in grootte en vorm afhankelijk van de circuits die nodig.
De feitelijke code van een neuron actuator is afhankelijk van de robot die wordt gecontroleerd. Mijn eerste echte wereld gebruiken is met behulp tinkertrons een lucht spier robot controller. Zie hier voor meer informatie over hoe te maken van de controller:
Hier is de code die wordt gebruikt in de twee activator neuronen van de lucht spier robot controller waarmee 11 lucht spieren. Ze zijn parallelle verwerking:
' 18 x activator neuron een
laag 1
laag 2
lage 3
laag 7
laag 6
lage 5
lage 4
LOOP1:
' kanarie 0, t4800, b1
kanarie 0, t4800, (1), b1 ' ontvangen van 1 byte na ontvangst 1
onderbreken van 30
' debug b1
Als b1 = 1 then act1
Als b1 = 2 dan act2
Als b1 = 3 dan act3
Als b1 = 4 dan act4
Als b1 = 5 dan act5
Als b1 = 6 dan act6
Als b1 = 7 dan act7
Als b1 = 16 dan is pressurev1v2
Als b1 = 17 dan vacv1v2
Als b1 = 116 vervolgens terug
Als b1 = 117 dan forw
Als b1 = 52 dan links
Als b1 = 51 dan recht
Als b1 = 18 dan seq1 ' arm omlaag
Als b1 = 19 dan seq1rev ' omgekeerde arm omlaag
goto loop1
ACT1: ' v1
hoge 1
onderbreken van 20
laag 1
goto loop1
act2: ' v2
hoog 2
onderbreken van 20
laag 2
goto loop1
act3:
hoge 3
onderbreken van 20
lage 3
goto loop1
act4:
hoge 7
onderbreken van 20
laag 7
goto loop1
act5:
hoge 6
onderbreken van 20
laag 6
goto loop1
act6:
hoge 5
onderbreken van 20
lage 5
goto loop1
act7:
hoge 4
onderbreken van 20
lage 4
goto loop1
pressurev1v2: ' ch +
hoge 1 ' v1 arm omlaag
hoog 2 ' v2
onderbreken van 800
laag 1
onderbreken van 1500
laag 2
hoge 1
hoog 2
onderbreken van 700
laag 1
laag 2
onderbreken van 60
hoge 4 ' v7
1440 onderbreken
lage 4
onderbreken van 20
' goto loop1
onderbreken van 1600 ' sluit grijper
hoge 1 ' v1 arm
hoog 2 ' v2
onderbreken van 2200
laag 1
laag 2
' arm links
hoge 5 ' v6
onderbreken van 1200
lage 5
' arm omlaag
hoge 1 ' v1
hoog 2 ' v2
onderbreken van 800
laag 1
laag 2
goto loop1
vacv1v2: ' vac ch -
onderbreken van 3000
hoge 1 ' v1 vac kleppen
hoog 2 ' v2
hoge 6 ' v5
hoge 5 ' v6
hoge 3
hoge 7
onderbreken van 3500
laag 1
laag 2
laag 6
lage 5
lage 3
laag 7
onderbreken van 20
hoge 4 ' v7
onderbreken van 3000
lage 4
hoge 1 ' vac inline release
hoog 2
hoge 4
hoge 6
hoge 5
onderbreken van 2000
laag 1
laag 2
lage 4
laag 6
lage 5
hoge 3
hoge 7
onderbreken van 1000
lage 3
laag 7
goto loop1
Terug:
hoge 1
onderbreken van 2000
laag 1
goto loop1
forw:
hoge 3
hoge 4
onderbreken van 1000
lage 3
lage 4
goto loop1
links:
hoge 1
hoge 3
onderbreken van 20
laag 1
lage 3
goto loop1
rechts:
hoog 2
hoge 4
onderbreken van 20
laag 2
lage 4
goto loop1
seq1:
' sluit grijper
onderbreken van 1600
goto loop1
seq1rev: ' openen grijper
onderbreken van 3000
goto loop1
' 18 x activator neuron twee
laag 1
laag 2
lage 3
laag 7
laag 6
lage 5
lage 4
LOOP1:
' kanarie 0, t4800, b1
kanarie 0, t4800, (1), b1 ' ontvangen van 1 byte na ontvangst 1
onderbreken van 30
' debug b1
Als b1 = 1 then act13
Als b1 = 2 dan act13
Als b1 = 3 dan act13
Als b1 = 4 dan act13
Als b1 = 5 dan act13
Als b1 = 6 dan act13
Als b1 = 7 dan act13
Als b1 = 8 dan act8
Als b1 = 9 dan act9
Als b1 = 10 dan act10
Als b1 = 11 then act11
Als b1 = 12 dan act12
Als b1 = 13 dan act13
Als b1 = 14 dan act14
Als b1 = 16 dan is pressurev1v2
Als b1 = 17 dan vacv1v2
Als b1 = 116 dan g1000
Als b1 = 117 dan g1000
Als b1 = 52 dan act13
Als b1 = 51 dan act13
Als b1 = 18 dan seq1 ' arm omlaag
Als b1 = 19 dan seq1rev ' omgekeerde arm omlaag
Als b1 = 21 dan powervac5
goto loop1
act8:
hoge 1
hoge 5
onderbreken van 20
laag 1
lage 5
goto loop1
act9:
hoog 2
hoge 5
onderbreken van 20
laag 2
lage 5
goto loop1
act10:
hoge 3
hoge 5
onderbreken van 20
lage 3
lage 5
goto loop1
act11: ' v11 inname
hoge 7
goto loop1
act12:
hoge 6
hoge 5
onderbreken van 20
laag 6
lage 5
goto loop1
act13:
hoge 5
onderbreken van 20
lage 5
goto loop1
act14: ' stop
hoge 4
onderbreken van 5000
lage 4
goto loop1
powervac5: ' power vac 5 sec
laag 7 ' van arm inname uit
hoge 6
onderbreken van 5000
hoge 7
laag 6
goto loop1
pressurev1v2: ' ch +
hoge 5 ' arm omlaag
3160 onderbreken
hoge 1 ' v8
onderbreken van 1200
laag 1
onderbreken van 200
' goto loop1
hoog 2 ' sluit grijper
onderbreken van 1000
laag 2
hoge 3 ' grip
onderbreken van 600
lage 3
lage 5
laag 7 ' van arm inname uit
hoge 6 ' vac in
hoge 1 ' v8
onderbreken van 20
laag 1
onderbreken van 2200 ' 2800
hoge 7
laag 6
laag 1
' arm links
laag 7 ' inname uit
hoge 6 ' vac in
hoge 1 ' v8
onderbreken van 1200
hoge 7
laag 6
laag 1
' arm omlaag
hoge 5 ' Druk op
onderbreken van 800
lage 5
goto loop1
vacv1v2: ' ch -
laag 7 ' inname uit
hoge 6 ' vac in
hoog 2 ' open grijper
onderbreken van 1500
hoge 3 ' grip
onderbreken van 1500
hoge 1 ' v8
3520 onderbreken
onderbreken van 3000
laag 6
hoge 7
laag 1
hoge 4 ' vac inline release
hoog 2
hoge 3
hoge 1
onderbreken van 2000
lage 4
laag 2
lage 3
laag 1
onderbreken van 1000
goto loop1
g1000:
laag 7
hoge 6
onderbreken van 2000
hoge 7
laag 6
goto loop1
seq1:
hoge 5
hoog 2 ' sluit grijper
onderbreken van 1500
laag 2
hoge 3 ' grip
onderbreken van 600
lage 3
lage 5
goto loop1
seq1rev:
' open grijper
laag 7 ' inname uit
hoge 6 ' vac in
hoog 2 ' open grijper
onderbreken van 1500
hoge 3 ' grip
onderbreken van 1500
laag 2
lage 3
hoge 7
laag 6
goto loop1