def __init__(self): logging.basicConfig(format="%(levelname)s (%(asctime)s): %(message)s", datefmt="%I:%M:%S %p", level=logging.INFO, filename="/var/tmp/R2D2.log") GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) atexit.register(self.Exit) self.MCP3008 = MCP3008(spi=SPI.SpiDev(0, 0)) self.Voltage = VoltageDivider(self.MCP3008, 0, 984.0, 101.0) self.Current = ACS711EX(self.MCP3008, 1) self.BrightnessControl = Potentiometer(self.MCP3008, 2) self.Battery = LiPo(self.Voltage, self.Current, 6, 10) self.DomeLightsRelay = self.Relay1 = Relay(16) self.DomeServosRelay = self.Relay2 = Relay(17) self.DomeMotorRelay = self.Relay3 = Relay(18) self.Relay4 = Relay(19) self.Relay5 = Relay(20) self.SoundRelay = self.Relay6 = Relay(21) self.BodyServosRelay = self.Relay7 = Relay(22) self.BodyLightsRelay = self.Relay8 = Relay(23) self.Relay9 = Relay(24) self.Relay10 = Relay(25) self.Relay11 = Relay(26) self.Relay12 = Relay(27) self.Network = Network() self.Head = HeadMotor(self.DomeMotorRelay) self.Sound = Sound() self.StatusDisplay = StatusDisplay(self) self.FrontLogicDisplay = FrontLogicDisplay(self.DomeLightsRelay) self.RearLogicDisplay = RearLogicDisplay(self.DomeLightsRelay) self.FrontProcessStateIndicator = FrontProcessStateIndicator(self.DomeLightsRelay) self.RearProcessStateIndicator = RearProcessStateIndicator(self.DomeLightsRelay) self.FrontHoloProjector = FrontHoloProjector(self.DomeLightsRelay) self.TopHoloProjector = TopHoloProjector(self.DomeLightsRelay) self.RearHoloProjector = RearHoloProjector(self.DomeLightsRelay) self.MagicPanel = MagicPanel(self.DomeLightsRelay) self.LifeFormScanner = LifeFormScanner(self.DomeServosRelay) self.DomePanels = Panels() self.BodyServos = Maestro("00126418") self.LeftUtilityArm = MaestroServo(self.BodyServos, 16, 2390, 1520, 20, 1) self.RightUtilityArm = MaestroServo(self.BodyServos, 17, 2390, 1520, 20, 1)