def __init__(self): # Servos connected to PWM pins of the Beagle Bone Black. # Edit this according to the plane connections. # Maximum number of servos allowed = 4 self.Ailerons_Right = Servo("P8_13") self.Ailerons_Left = Servo("P9_14") self.Flaps = Servo("P9_21") self.Elevators = Servo("P9_42") #self.Radar = Servo("") self.Ailerons_Right.StartServo() self.Ailerons_Left.StartServo() self.Flaps.StartServo() self.Elevators.StartServo() # Set makimum titl angles of all servos. # Edit this portion according to the plane being used self.alireons_max = 30 self.falps_max = 30 self.elevators_max = 45 self.radar_max = 45 # Exponential componenet of the movement. # 1 - Linear, self.alireons_exp = 2 self.elevators_exp = 2 self.radar_exp = 3 # Throttle specific data self.engines = 1
def __init__(self, config_file=None): ''' setup channels and basic stuff ''' if self._DEBUG: print self._DEBUG_INFO, "Debug on" #self.db = filedb.fileDB() #self.turning_offset = self.db.get('turning_offset', default_value=0) self.wheel = Servo(self.STEER_SERVO_ID) self.wheel.set_base_position(self.STRAIGHT_ANGLE) self.wheel.set_min_limit(self.MAX_STEER_ANGLE) self.wheel.set_max_limit(self.MAX_STEER_ANGLE) if self._DEBUG: print self._DEBUG_INFO, 'Front wheel PEM channel:', self.STEER_SERVO_ID print self._DEBUG_INFO, 'Front wheel base value:', self.STRAIGHT_ANGLE self.angle = { "left": self.MAX_STEER_ANGLE, "straight": self.STRAIGHT_ANGLE, "right": self.MAX_STEER_ANGLE } if self._DEBUG: print self._DEBUG_INFO, 'left angle: %s, straight angle: %s, right angle: %s' % ( self.angle["left"], self.angle["straight"], self.angle["right"])
def __init__(self, debug=False, db="config", bus_number=1, channel=FRONT_WHEEL_CHANNEL): ''' setup channels and basic stuff ''' self.db = filedb.fileDB(db=db) self._channel = channel self._straight_angle = 90 self.turning_max = 20 self._turning_offset = int( self.db.get('turning_offset', default_value=0)) self.wheel = Servo.Servo(self._channel, bus_number=bus_number, offset=self.turning_offset) self.debug = debug if self._DEBUG: print self._DEBUG_INFO, 'Front wheel PWM channel:', self._channel print self._DEBUG_INFO, 'Front wheel offset value:', self.turning_offset self._angle = { "left": self._min_angle, "straight": self._straight_angle, "right": self._max_angle } if self._DEBUG: print self._DEBUG_INFO, 'left angle: %s, straight angle: %s, right angle: %s' % ( self._angle["left"], self._angle["straight"], self._angle["right"])
def configLegs(connexion=Connexion()): Leg.a = 72 Leg.b = 100 Leg.a1 = 0 Leg.a2 = 0 Leg.ab0 = 0 Leg.ab1 = 0 Leg.ab2 = 0 Leg.liftTime = 5.0 Leg.forwardTime = 5.0 Leg.pullTime = 5.0 #define SERVO_BR1 0 #define SERVO_BR2 1 #define SERVO_BL1 2 #define SERVO_BL2 3 #define SERVO_FM1 4 #define SERVO_FR1 5 #define SERVO_FR2 6 #define SERVO_FR3 7 #define SERVO_FR4 8 #define SERVO_FL1 9 #define SERVO_FL2 10 #define SERVO_FL3 11 BR1 = 0 BR2 = 1 BL1 = 2 BL2 = 3 FM1 = 4 FR1 = 5 FR2 = 6 FR3 = 7 FR4 = 8 FL1 = 9 FL2 = 10 FL3 = 11 return (Leg( (Servo(connexion, BR1, offset=90), Servo(connexion, BR2, offset=-90)), LegType.BACK), Leg((Servo(connexion, BL1, offset=90), Servo(connexion, BL2)), LegType.BACK)) """
def __init__(self, debug=False, bus_number=1, db="config", address=0x40): ''' Init the servo channel ''' self.db = filedb.fileDB(db=db) self.pan_offset = int(self.db.get('pan_offset', default_value=0)) self.tilt_offset = int(self.db.get('tilt_offset', default_value=0)) self.pan_servo = Servo.Servo(self.pan_channel, bus_number=bus_number, offset=self.pan_offset, address= address ) self.tilt_servo = Servo.Servo(self.tilt_channel, bus_number=bus_number, offset=self.tilt_offset, address = address) self.debug = debug if self._DEBUG: print self._DEBUG_INFO, 'Pan servo channel:', self.pan_channel print self._DEBUG_INFO, 'Tilt servo channel:', self.tilt_channel print self._DEBUG_INFO, 'Pan offset value:', self.pan_offset print self._DEBUG_INFO, 'Tilt offset value:', self.tilt_offset self.current_pan = 0 self.current_tilt = 0 self.ready()
def __init__(self, serialDev): self.logger = logging.getLogger('BleuettePi') self.serial = Serial() self.serial.connect(serialDev) self.mcp = MCP230XX(self.MCP_ADDRESS, 16) self.Servo = Servo.Servo(self.serial, fakemode=Config.FAKE_MODE) self.Servo.init() Servo.Servo_Trim.values = Data.Instance().get(['servo', 'trims']) Servo.Servo_Limit.values = Data.Instance().get(['servo', 'limits']) self.Analog = Analog(self.serial) self.Compass = BleuettePi_Compass() self.Accelerometer = BleuettePi_Accelerometer() self.GroundSensor = BleuettePi_GroundSensor(self.mcp) # Init mode GPIO.setmode(GPIO.BOARD) GPIO.setup(self.INTA, GPIO.IN) GPIO.setup(self.INTB, GPIO.IN) GPIO.setup(self.INTC, GPIO.IN) GPIO.setup(self.INTD, GPIO.IN) GPIO.add_event_detect(self.INTA, GPIO.RISING, callback=self.interrupt, bouncetime=300) GPIO.add_event_detect(self.INTB, GPIO.RISING, callback=self.interrupt, bouncetime=300) GPIO.add_event_detect(self.INTC, GPIO.RISING, callback=self.interrupt, bouncetime=300) GPIO.add_event_detect(self.INTD, GPIO.RISING, callback=self.interrupt, bouncetime=300) self.mcp.config(self.RESET_PIN, MCP230XX.OUTPUT) #self.mcp.pullup(self.RESET_PIN, True) self.mcp.output(self.RESET_PIN, 1)