Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local perf = peripheral.getNames()
- local relay = peripheral.wrap(perf[2])
- local m1 = peripheral.wrap(perf[3])
- local m2 = peripheral.wrap(perf[5])
- local m3 = peripheral.wrap(perf[8])
- local m4 = peripheral.wrap(perf[4])
- local motor = {m1,m2,m3,m4}
- local w1 = peripheral.wrap(perf[7])
- local w2 = peripheral.wrap(perf[9])
- local w3 = peripheral.wrap(perf[6])
- local w4 = peripheral.wrap(perf[10])
- local wheel = {w1,w2,w3,w4}
- for x = 1, 4 do
- wheel[x].setSteering(0)
- motor[x].setGeneratedSpeed(0)
- wheel[x].setBrake(0)
- end
- function spin_cw(speed, time)
- parallel.waitForAll(function(spawn)
- spawn(function(); m1.setGeneratedSpeed(speed) end)
- spawn(function(); m2.setGeneratedSpeed(speed) end)
- spawn(function(); m3.setGeneratedSpeed(speed) end)
- spawn(function(); m4.setGeneratedSpeed(speed) end)
- end)
- sleep(time)
- end
- function spin_cc(speed, time)
- parallel.waitForAll(function(spawn)
- spawn(function(); m1.setGeneratedSpeed(-speed) end)
- spawn(function(); m2.setGeneratedSpeed(-speed) end)
- spawn(function(); m3.setGeneratedSpeed(-speed) end)
- spawn(function(); m4.setGeneratedSpeed(-speed) end)
- end)
- sleep(time)
- end
- function stop()
- parallel.waitForAll(function(spawn)
- spawn(function(); w1.setBrake(1) end)
- spawn(function(); w2.setBrake(1) end)
- spawn(function(); w3.setBrake(1) end)
- spawn(function(); w4.setBrake(1) end)
- end)
- for x = 1, 4 do
- wheel[x].setSteering(0)
- wheel[x].setBrake(0)
- motor[x].setGeneratedSpeed(0)
- end
- end
- function pause(time)
- stop()
- sleep(time)
- end
- function forward(speed, time)
- parallel.waitForAll(function(spawn)
- spawn(function(); m1.setGeneratedSpeed(-speed) end)
- spawn(function(); m2.setGeneratedSpeed(0) end)
- spawn(function(); m3.setGeneratedSpeed(speed) end)
- spawn(function(); m4.setGeneratedSpeed(0) end)
- end)
- sleep(time)
- end
- function reverse(speed, time)
- parallel.waitForAll(function(spawn)
- spawn(function(); m1.setGeneratedSpeed(speed) end)
- spawn(function(); m2.setGeneratedSpeed(0) end)
- spawn(function(); m3.setGeneratedSpeed(-speed) end)
- spawn(function(); m4.setGeneratedSpeed(0) end)
- end)
- sleep(time)
- end
- function left(speed, time)
- parallel.waitForAll(function(spawn)
- spawn(function(); m1.setGeneratedSpeed(0) end)
- spawn(function(); m2.setGeneratedSpeed(-speed) end)
- spawn(function(); m3.setGeneratedSpeed(0) end)
- spawn(function(); m4.setGeneratedSpeed(speed) end)
- end)
- sleep(time)
- end
- function right(speed, time)
- parallel.waitForAll(function(spawn)
- spawn(function(); m1.setGeneratedSpeed(0) end)
- spawn(function(); m2.setGeneratedSpeed(speed) end)
- spawn(function(); m3.setGeneratedSpeed(0) end)
- spawn(function(); m4.setGeneratedSpeed(-speed) end)
- end)
- sleep(time)
- end
- function f_left(speed, time)
- parallel.waitForAll(function(spawn)
- spawn(function(); m1.setGeneratedSpeed(-speed) end)
- spawn(function(); m2.setGeneratedSpeed(-speed) end)
- spawn(function(); m3.setGeneratedSpeed(speed) end)
- spawn(function(); m4.setGeneratedSpeed(speed) end)
- end)
- sleep(time)
- end
- function f_right(speed, time)
- parallel.waitForAll(function(spawn)
- spawn(function(); m1.setGeneratedSpeed(-speed) end)
- spawn(function(); m2.setGeneratedSpeed(speed) end)
- spawn(function(); m3.setGeneratedSpeed(speed) end)
- spawn(function(); m4.setGeneratedSpeed(-speed) end)
- end)
- sleep(time)
- end
- function b_left(speed, time)
- parallel.waitForAll(function(spawn)
- spawn(function(); m1.setGeneratedSpeed(speed) end)
- spawn(function(); m2.setGeneratedSpeed(-speed) end)
- spawn(function(); m3.setGeneratedSpeed(-speed) end)
- spawn(function(); m4.setGeneratedSpeed(speed) end)
- end)
- sleep(time)
- end
- function b_right(speed, time)
- parallel.waitForAll(function(spawn)
- spawn(function(); m1.setGeneratedSpeed(speed) end)
- spawn(function(); m2.setGeneratedSpeed(speed) end)
- spawn(function(); m3.setGeneratedSpeed(-speed) end)
- spawn(function(); m4.setGeneratedSpeed(-speed) end)
- end)
- sleep(time)
- end
- local dock = 0
- function toggle_dock()
- if dock == 0 then
- dock_on()
- dock = 1
- elseif dock == 1 then
- dock_off()
- dock = 0
- end
- end
- function dock_on()
- relay.setOutput("front", true)
- end
- function dock_off()
- relay.setOutput("front", false)
- end
- repeat
- write("Enter direction: ")
- dir = read()
- if dir == "x" then
- return
- elseif dir == "d" then
- goto skip
- end
- write("Enter power: ")
- pow = tonumber(read())
- if pow == "x" then
- return
- end
- write("Enter time: ")
- time = tonumber(read())
- if time == "x" then
- return
- end
- ::skip::
- if dir == "f" then
- forward(pow, time)
- elseif dir == "b" then
- reverse(pow, time)
- elseif dir == "l" then
- left(pow, time)
- elseif dir == "r" then
- right(pow, time)
- elseif dir == "cw" then
- spin_cw(pow, time)
- elseif dir == "cc" then
- spin_cc(pow, time)
- elseif dir == "fl" then
- f_left(pow, time)
- elseif dir == "fr" then
- f_right(pow, time)
- elseif dir == "bl" then
- b_left(pow, time)
- elseif dir == "br" then
- b_right(pow, time)
- elseif dir == "d" then
- toggle_dock()
- end
- stop()
- until dir == "x"
- stop()
Advertisement
Add Comment
Please, Sign In to add comment