def __init__ (self): sp.Module.__init__ (self) self.blinkingTimer = sp.Timer () self.blinkingLight = sp.Marker () self.pulse = sp.Oneshot () self.counter = sp.Register () self.run = sp.Runner ()
def __init__(self): sp.Module.__init__(self) self.page('motion control') self.group('driver input', True) self.targetVelocityStep = sp.Register(0) self.steeringAngleStep = sp.Register(2) self.group('control output') self.targetVelocity = sp.Register() self.steeringAngle = sp.Register() self.group('sweep time measurement', True) self.sweepMin = sp.Register(1000) self.sweepMax = sp.Register() self.sweepWatch = sp.Timer() self.run = sp.Runner()
def __init__(self): sp.Module.__init__(self) self.page('rocket physics') self.group('gimbal angle blue/yellow', True) self.blueYellowDelta = sp.Register() self.blueYellowRoughAngle = sp.Register() self.blueYellowAngle = sp.Register() self.group('thruster angle green/red') self.greenRedDelta = sp.Register() self.greenRedRoughAngle = sp.Register() self.greenRedAngle = sp.Register() self.group('fuel throttle') self.throttleDelta = sp.Register() self.throttlePercent = sp.Register() self.thrust = sp.Register() self.group('ship') self.shipMass = sp.Register(5000) self.effectiveRadius = sp.Register(0.15) self.effectiveHeight = sp.Register(1.5) self.thrusterTiltSpeed = sp.Register(30) self.thrusterMaxAngle = sp.Register(90) self.throttleSpeed = sp.Register(20) self.thrusterMaxForce = sp.Register(100000) self.group('sweep time measurement') self.sweepMin = sp.Register(1000) self.sweepMax = sp.Register() self.sweepWatch = sp.Timer() self.run = sp.Runner() self.group('linear accelleration', True) self.linAccelX = sp.Register() self.linAccelY = sp.Register() self.linAccelZ = sp.Register() self.group('linear velocity') self.linVelocX = sp.Register() self.linVelocY = sp.Register() self.linVelocZ = sp.Register() self.group('position') self.positionX = sp.Register() self.positionY = sp.Register() self.positionZ = sp.Register(cm.earthDiam / 2) self.group('thrust in ship frame') self.forwardThrust = sp.Register() self.blueYellowThrust = sp.Register() self.greenRedThrust = sp.Register() self.group('thrust in world frame') self.thrustX = sp.Register() self.thrustY = sp.Register() self.thrustZ = sp.Register() self.group('angular acceleration', True) self.angAccelX = sp.Register() self.angAccelY = sp.Register() self.angAccelZ = sp.Register() self.group('angular velocity') self.angVelocX = sp.Register() self.angVelocY = sp.Register() self.angVelocZ = sp.Register() self.group('torques in ship frame') self.blueYellowTorque = sp.Register() self.greenRedTorque = sp.Register() self.group('torques in world frame') self.torqueX = sp.Register() self.torqueY = sp.Register() self.torqueZ = sp.Register() if cm.useQuaternions: self._shipRotQuat = sp.quatFromAxAng(np.array((1, 0, 0)), 0) self.group('ship rotation quaternion') self.shipRotQuat0 = sp.Register() self.shipRotQuat1 = sp.Register() self.shipRotQuat2 = sp.Register() self.shipRotQuat3 = sp.Register() self._shipRotMat = sp.rotMatFromQuat(self._shipRotQuat) else: self._shipRotMat = np.array( [ # Columns are tangent (front), normal (up) and binormal (starboard) of ship [1, 0, 0], [0, 1, 0], [0, 0, 1] ]) self.group('attitude') self.attitudeX = sp.Register() self.attitudeY = sp.Register() self.attitudeZ = sp.Register() self.group('earth gravity', True) self.distEarthSurf = sp.Register() self.earthGravX = sp.Register() self.earthGravY = sp.Register() self.earthGravZ = sp.Register() self.group('moon gravity') self.distMoonSurf = sp.Register() self.moonGravX = sp.Register() self.moonGravY = sp.Register() self.moonGravZ = sp.Register() self.group('total force') self.totalForceX = sp.Register() self.totalForceY = sp.Register() self.totalForceZ = sp.Register()
def __init__ (self): sp.Module.__init__ (self) self.page ('Trafic lights') self.group ('Timers', True) self.regularPhaseTimer = sp.Timer () self.cyclePhaseTimer = sp.Timer () self.tBlink = sp.Register (0.3) self.blinkTimer = sp.Timer () self.blinkPulse = sp.Oneshot () self.blink = sp.Marker () self.group ('Mode switching') self.modeButton = sp.Marker () self.modePulse = sp.Oneshot () self.modeStep = sp.Register () self.regularMode = sp.Marker (True) self.cycleMode = sp.Marker () self.nightMode = sp.Marker () self.offMode = sp.Marker () self.group ('Regular mode phases', True) self.northSouthGreen = sp.Marker (True) self.northSouthBlink = sp.Marker () self.eastWestGreen = sp.Marker () self.eastWestBlink = sp.Marker () self.group ('Cycle mode phases') self.northGreen = sp.Marker () self.northBlink = sp.Marker () self.eastGreen = sp.Marker () self.eastBlink = sp.Marker () self.southGreen = sp.Marker () self.southBlink = sp.Marker () self.westGreen = sp.Marker () self.westBlink = sp.Marker () self.group ('Lamps') self.northGreenLamp = sp.Marker () self.northYellowLamp = sp.Marker () self.northRedLamp = sp.Marker () self.eastGreenLamp = sp.Marker () self.eastYellowLamp = sp.Marker () self.eastRedLamp = sp.Marker () self.southGreenLamp = sp.Marker () self.southYellowLamp = sp.Marker () self.southRedLamp = sp.Marker () self.westGreenLamp = sp.Marker () self.westYellowLamp = sp.Marker () self.westRedLamp = sp.Marker () self.group ('Regular phase end times', True) self.tNorthSouthGreen = sp.Register (5) self.tNorthSouthBlink = sp.Register (7) self.tEastWestGreen = sp.Register (12) self.tEastWestBlink = sp.Register (14) self.group ('Cycle phase end times') self.tNorthGreen = sp.Register (5) self.tNorthBlink = sp.Register (7) self.tEastGreen = sp.Register (12) self.tEastBlink = sp.Register (14) self.tSouthGreen = sp.Register (19) self.tSouthBlink = sp.Register (21) self.tWestGreen = sp.Register (26) self.tWestBlink = sp.Register (28) self.group ('Street illumination') self.brightButton = sp.Marker () self.brightPulse = sp.Oneshot () self.brightDirection = sp.Marker (True) self.brightMin = sp.Register (2047) self.brightMax = sp.Register (4095) self.brightFluxus = sp.Register (200) self.brightDelta = sp.Register () self.streetLamp = sp.Register (2047) self.group ('System') self.runner = sp.Runner ()
def __init__(self): sp.Module.__init__(self) self.page('movement control') self.group('torso drive control', True) self.torVoltFac = sp.Register(0.8) self.torVoltMax = sp.Register(10) self.torVolt = sp.Register() self.torEnab = sp.Marker() self.group('torso angle') self.torAngSet = sp.Register() self.torAng = sp.Register() self.torAngOld = sp.Register() self.torAngDif = sp.Register() self.torMarg = sp.Register(15) self.torRound = sp.Marker() self.torSpeedFac = sp.Register(0.5) self.torSpeedMax = sp.Register(20) self.torSpeedSet = sp.Register() self.torSpeed = sp.Register() self.torSpeedDif = sp.Register() self.group('general') self.go = sp.Marker() self.group('upper arm drive control', True) self.uppVoltFac = sp.Register(0.25) self.uppVoltMax = sp.Register(10) self.uppVolt = sp.Register() self.uppEnab = sp.Marker() self.group('upper arm angle') self.uppAngSet = sp.Register() self.uppAng = sp.Register() self.uppAngOld = sp.Register() self.uppAngDif = sp.Register() self.uppMarg = sp.Register(15) self.uppRound = sp.Marker() self.uppSpeedFac = sp.Register(0.5) self.uppSpeedMax = sp.Register(20) self.uppSpeedSet = sp.Register() self.uppSpeed = sp.Register() self.uppSpeedDif = sp.Register() self.group('fore arm drive control', True) self.forVoltFac = sp.Register(0.25) self.forVoltMax = sp.Register(10) self.forVolt = sp.Register() self.forEnab = sp.Marker() self.group('fore arm angle') self.forAngSet = sp.Register() self.forAng = sp.Register() self.forAngOld = sp.Register() self.forAngDif = sp.Register() self.forMarg = sp.Register(15) self.forRound = sp.Marker() self.forSpeedFac = sp.Register(0.5) self.forSpeedMax = sp.Register(20) self.forSpeedSet = sp.Register() self.forSpeed = sp.Register() self.forSpeedDif = sp.Register() self.group('wrist drive control', True) self.wriVoltFac = sp.Register(0.25) self.wriVoltMax = sp.Register(10) self.wriVolt = sp.Register() self.wriEnab = sp.Marker() self.group('wrist angle') self.wriAngSet = sp.Register() self.wriAng = sp.Register() self.wriAngOld = sp.Register() self.wriAngDif = sp.Register() self.wriMarg = sp.Register(3) self.wriRound = sp.Marker() self.wriSpeedFac = sp.Register(0.5) self.wriSpeedMax = sp.Register(20) self.wriSpeedSet = sp.Register() self.wriSpeed = sp.Register() self.wriSpeedDif = sp.Register() self.group('hand and fingers setpoints', True) self.hanAngSet = sp.Register() self.hanEnab = sp.Marker() self.finAngSet = sp.Register() self.finEnab = sp.Marker() self.finDelay = sp.Register(1) self.finTimer = sp.Timer() self.finLatch = sp.Latch() self.group('sweep time measurement') self.sweepMin = sp.Register(1000) self.sweepMax = sp.Register() self.sweepWatch = sp.Timer() self.run = sp.Runner()
def __init__(self): sp.Module.__init__(self) self.page('Four plate stove control with cooking alarm') self.group('General buttons', True) self.powerButton = sp.Marker() self.powerEdge = sp.Oneshot() self.power = sp.Marker() self.group() self.childLockButton = sp.Marker() self.childLockChangeTimer = sp.Timer() self.childLockEdge = sp.Oneshot() self.childLock = sp.Marker() self.unlocked = sp.Marker() self.group('Plate selection') self.plateSelectButton = sp.Marker() self.plateSelectEdge = sp.Oneshot() self.plateSelectDelta = sp.Register() self.plateSelectNr = sp.Register() self.tempDelta = sp.Register() self.tempChange = sp.Marker() self.group('Up/down buttons') self.upButton = sp.Marker() self.upEdge = sp.Oneshot() self.group() self.downButton = sp.Marker() self.downEdge = sp.Oneshot() self.group('Cooking plates', True) self.plate0Temp = sp.Register() self.plate0Selected = sp.Marker() self.group() self.plate1Temp = sp.Register() self.plate1Selected = sp.Marker() self.group() self.plate2Temp = sp.Register() self.plate2Selected = sp.Marker() self.group() self.plate3Temp = sp.Register() self.plate3Selected = sp.Marker() self.group('Alarm selection button') self.alarmSelectButton = sp.Marker() self.alarmSelectEdge = sp.Oneshot() self.alarmSelected = sp.Marker() self.alarmTime = sp.Register() self.alarmTimer = sp.Timer() self.alarmOn = sp.Latch() self.alarmEdge = sp.Oneshot() self.alarmTimeLeft = sp.Register() self.alarmChangeTimer = sp.Timer() self.alarmChangeStep = sp.Register() self.alarmDelta = sp.Register() self.group('Numerical displays', True) self.digitIndex = sp.Register() self.plateDigitValue = sp.Register() self.alarmDigitValue = sp.Register() self.digitValue = sp.Register() self.digitDot = sp.Marker() self.group('Buzzer') self.buzzerOnTime = sp.Register(6) self.buzzerOnTimer = sp.Timer() self.buzzerOn = sp.Latch() self.buzzerBaseFreq = sp.Register(300.) self.buzzerPitchTimer = sp.Timer() self.buzzerFreq = sp.Register() self.buzzerWaveTimer = sp.Timer() self.buzzerEdge = sp.Oneshot() self.buzzer = sp.Marker() self.group('System') self.sweepMin = sp.Register(1000) self.sweepMax = sp.Register() self.sweepWatch = sp.Timer() self.run = sp.Runner()