예제 #1
0
    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"])
예제 #3
0
    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"])
예제 #4
0
파일: Config.py 프로젝트: BlitzTeam/Arachne
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))
    """
예제 #5
0
	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()
예제 #6
0
    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)