Skip to content

Instantly share code, notes, and snippets.

@jakorten
Last active October 18, 2022 17:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jakorten/fc5891703a05045775f096cecd5a0cab to your computer and use it in GitHub Desktop.
Save jakorten/fc5891703a05045775f096cecd5a0cab to your computer and use it in GitHub Desktop.
Basis code voor een robotje wat samen met andere robotjes kan dansen.
def robotDance():
pass
def on_received_number(robotTaskState):
global andereRobotAfstand
global robotTaskState
global STATE_DANCE
andereRobotAfstand += radio.received_packet(RadioPacketProperty.SIGNAL_STRENGTH)
if andereRobotAfstand <= afstandsLimiet:
if robotTaskState == STATE_DANCE:
robotDance()
radio.on_received_number(on_received_number)
def doState():
doRobotTaskState()
doRobotPlaceState()
def doRobotTaskState():
global previousRobotTaskState, robotTaskState
global STATE_DANCE
if robotTaskState == STATE_DANCE:
radio.send_number(STATE_DANCE)
robotDance()
def doRobotPlaceState():
global previousRobotPlaceState, robotPlaceState
pass
def enterNewRobotPlaceState(newState):
global previousRobotPlaceState
previousRobotPlaceState = newState
def enterNewRobotTaskState(newState):
global previousRobotTaskState
previousRobotTaskState = newState
def exitRobotTaskState(currentState):
global previousRobotTaskState
# if currentState == SOME_ROBOT_TASK_STATE:
# do something
previousRobotTaskState = currentState
def exitRobotPlaceState(currentState):
global previousRobotPlaceState
# if currentState == SOME_ROBOT_PLACE_STATE:
# do something
previousRobotPlaceState = currentState
# Initialisatie van variabelen e.d.:
def statesInitialiseren():
global STATE_OP_LIJN, STATE_VERDWAALD, STATE_DOEL_RAND, STATE_DOEL, robotPlaceState
global STATE_FIND_GOAL, STATE_DANCE, robotTaskState
STATE_OP_LIJN = 0
STATE_VERDWAALD = 1
STATE_DOEL_RAND = 2
STATE_DOEL = 3
robotPlaceState = STATE_VERDWAALD
STATE_FIND_GOAL = 4
STATE_DANCE = 5
robotTaskState = STATE_FIND_GOAL
robotTaskState = 0
STATE_FIND_GOAL = 0
STATE_DANCE = 0
previousRobotTaskState = 0
robotPlaceState = 0
STATE_DOEL = 0
STATE_DOEL_RAND = 0
STATE_VERDWAALD = 0
STATE_OP_LIJN = 0
previousRobotPlaceState = 0
andereRobotAfstand = 0
afstandsLimiet = 0
statesInitialiseren()
# door te testen kom je op een waarde,
# kan iets anders dan -42 zijn!
afstandsLimiet = -42
radio.set_group(1)
def on_forever():
doState()
basic.forever(on_forever)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment