def IRControl(self): sockid = lirc.init("robot_ir", "lircrc") dist_per_leypress = 30.0 #cm while True: #self.motor.stop() code = lirc.nextcode()[0] print(code) if code == "FORWARD": self.motor.forward() time.sleep(dist_per_leypress / self.motor.DIST_PER_SEC) self.motor.stop() elif code == "LEFT_FORWARD": # 30 degree turn left, then stop self.motor.forwardRight() time.sleep(self.motor.SEC_PER_TURN / 360.0 * 30.0) self.motor.stop() elif code == "RIGHT_FORWARD": # 30 degree turn right, then stop self.motor.forwardLeft() time.sleep(self.motor.SEC_PER_TURN / 360.0 * 30.0) self.motor.stop() elif code == "LEFT": self.motor.forwardRight() time.sleep(self.motor.SEC_PER_TURN / 360.0 * 90.0) self.motor.stop() elif code == "RIGHT": self.motor.forwardLeft() time.sleep(self.motor.SEC_PER_TURN / 360.0 * 90.0) self.motor.stop() elif code == "BACKWARD": self.motor.backward() time.sleep(dist_per_leypress / self.motor.DIST_PER_SEC) self.motor.stop() elif code == "LEFT_BACKWARD": # 30 degree turn left back, then stop self.motor.backwardRight() time.sleep(self.motor.SEC_PER_TURN / 360.0 * 30.0) self.motor.stop() elif code == "RIGHT_BACKWARD": # 30 degree turn right back, then stop self.motor.backwardLeft() time.sleep(self.motor.SEC_PER_TURN / 360.0 * 30.0) self.motor.stop() elif code == "STOP": self.motor.stop() elif code == "LINE_FOLLOW_ON": self.lineFollowModeOn()