Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local position = 'back'
- local r = require('robot')
- local component = require('component')
- local event = require("event")
- local function goF() -- курсовой робот
- r.swing()
- r.placeDown()
- r.forward()
- r.placeDown()
- r.swingUp()
- end
- local function goB() -- кормовой, с поршнем
- component.piston.push()
- r.forward()
- r.swingDown()
- end
- local function inverter(side, x) -- инвертер функций
- if x == true then
- if side == 'left' then
- r.turnLeft()
- elseif side == 'right' then
- r.turnRight()
- end
- elseif x == false then
- if side == 'left' then
- r.turnRight()
- elseif side == 'right' then
- r.turnLeft()
- end
- end
- end
- local function turnF(side) -- поворотник курсового
- r.swingUp()
- inverter(side, true)
- r.swing()
- os.sleep(0.4)
- r.forward()
- inverter(side, true)
- r.swing()
- os.sleep(0.4)
- r.forward()
- inverter(side, false)
- r.swingUp()
- end
- local function turnB(side) -- поворотник кормового
- r.swing()
- inverter(side, false)
- for i = 1, 2 do
- r.swing()
- os.sleep(0.4)
- r.forward()
- end
- inverter(side, true)
- for j = 1, 2 do
- r.swing()
- os.sleep(0.4)
- r.forward()
- end
- inverter(side, true)
- r.place()
- end
- tArgs = {...}
- if position == 'front' then
- if tArgs[1] == 'go' then
- for k = 1, tArgs[2] do
- goF()
- component.modem.broadcast(100, 'go')
- end
- elseif tArgs[1] == 'turn' then
- turnF(tArgs[2])
- component.modem.broadcast(100, tArgs[2])
- end
- elseif position == 'back' then
- r.place()
- component.modem.open(100)
- while true do
- local _, _, _, _, _, msg = event.pull("modem_message")
- if msg == 'go' then
- goB()
- else
- turnB(msg)
- end
- end
- end
- --usage: <cart go number> <cart turn left> <cart turn right>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement