def main(): wanderer = Tortoise() while True: print "Moving forwards" wanderer.moveForwards(500) time.sleep(0.5) print print "\tPress enter to continue" print raw_input() print "Moving backwards" wanderer.moveBackwards(500) time.sleep(0.5) print print "\tPress enter to continue" print raw_input() print "Turning on the spot forwards_left" wanderer.turnOnTheSpot(500, enums.Direction.forwards_left) time.sleep(0.5) print print "\tPress enter to continue" print raw_input() print "Turning on the spot forwards_right" wanderer.turnOnTheSpot(500, enums.Direction.forwards_right) time.sleep(0.5) print print "\tPress enter to continue" print raw_input() print "Turning on the spot backwards_left" wanderer.turnOnTheSpot(500, enums.Direction.backwards_left) time.sleep(0.5) print print "\tPress enter to continue" print raw_input() print "Turning on the spot bakwards_right" wanderer.turnOnTheSpot(500, enums.Direction.backwards_right) time.sleep(0.5) print print "\tPress enter to continue" print raw_input() print "Turning naturally forwards_left" wanderer.turn(200, 500, enums.Direction.forwards_left) time.sleep(0.5) print print "\tPress enter to continue" print raw_input() print "Turning naturally backwards_left" wanderer.turn(200, 500, enums.Direction.backwards_left) time.sleep(0.5) print print "\tPress enter to continue" print raw_input() print "Turning naturally forwards_right" wanderer.turn(500, 200, enums.Direction.forwards_right) time.sleep(0.5) print print "\tPress enter to continue" print raw_input() print "Turning naturally backwards_right" wanderer.turn(500, 200, enums.Direction.backwards_right) time.sleep(0.5) print print "\tPress enter to continue" print raw_input() print "Gyrating clockwise" wanderer.shuffleOnTheSpot(500, enums.Direction.clockwise) time.sleep(0.5) print print "\tPress enter to continue" print raw_input() print "Gyrating counter clockwise" wanderer.shuffleOnTheSpot(500, enums.Direction.counterClockwise) time.sleep(0.5) print print "\tPress enter to continue" print raw_input()
# response always triggered by main sensor if responseSensor == 1: responseFlag = 1 if stimulusSensor == 1: # update accumulator if responseSensor == 1: learnAssoc = 0.6 * learnAssoc + 0.4 Cora.setLEDValue(1, 1) else: learnAssoc = 0.75 * learnAssoc # check association thresholds if (learnAssoc > 0.8 and assocFlag == 0): assocFlag = 1 Cora.setLEDValue(2, 1) elif (learnAssoc < 0.2 and assocFlag == 1): assocFlag = 0 Cora.setLEDValue(2, 0) # trigger response if associated if assocFlag == 1: responseFlag = 1 if responseFlag == 1: Cora.moveForwards(100) else: if random.random() < 0.5: Cora.turnOnTheSpot(10, Direction.backwards_right) else: Cora.turnOnTheSpot(10, Direction.backwards_left)
# response always triggered by main sensor if responseSensor == 1: responseFlag = 1 if stimulusSensor == 1: # update accumulator if responseSensor == 1: learnAssoc = 0.6*learnAssoc + 0.4 Cora.setLEDValue(1, 1) else: learnAssoc = 0.75*learnAssoc # check association thresholds if (learnAssoc > 0.8 and assocFlag == 0): assocFlag = 1 Cora.setLEDValue(2, 1) elif (learnAssoc < 0.2 and assocFlag == 1): assocFlag = 0 Cora.setLEDValue(2, 0) # trigger response if associated if assocFlag == 1: responseFlag = 1 if responseFlag == 1: Cora.moveForwards(100) else: if random.random()<0.5: Cora.turnOnTheSpot(10,Direction.backwards_right) else: Cora.turnOnTheSpot(10,Direction.backwards_left)
from tortoise import Tortoise from enums import Direction, SensorType, ActuatorType Dennis=Tortoise() while True: Dennis.setLEDValue(1, 0) Dennis.setLEDValue(2, 0) rightSensor = Dennis.getSensorData(SensorType.proximity,1) leftSensor = Dennis.getSensorData(SensorType.proximity,2) if rightSensor == 1: print "Obstruction right" Dennis.setLEDValue(1, 1) Dennis.turnOnTheSpot(20,Direction.backwards_right) elif leftSensor == 1: print "Obstruction left" Dennis.setLEDValue(2,1) Dennis.turnOnTheSpot(20,Direction.backwards_left) else: print "I'm wandering..." Dennis.moveForwards(30)