Пример #1
0
    def __init__(self,
                 bus,
                 gyro_address,
                 accel_address,
                 compass_address,
                 name,
                 gyro_scale=L3G4200D.FS_2000,
                 accel_scale=ADXL345.AFS_16g):
        self.bus = bus
        self.gyro_address = gyro_address
        self.accel_address = accel_address
        self.name = name
        self.gyro_scale = gyro_scale
        self.accel_scale = accel_scale
        self.accelerometer = ADXL345(bus, accel_address,
                                     name + "-accelerometer", accel_scale)
        self.gyroscope = L3G4200D(bus, gyro_address, name + "-gyroscope",
                                  gyro_scale)
        self.compass = HMC5883L(bus, compass_address, name + "-compass")

        self.last_time = time.time()
        self.time_diff = 0

        self.pitch = 0
        self.roll = 0
        # take a reading from the device to allow it to settle after config changes
        self.read_all()
        # now take another to act a starting value
        self.read_all()
        self.pitch = self.rotation_x
        self.roll = self.rotation_y
Пример #2
0
 def gyReading(self):
     device_gy = L3G4200D()
     i = self.numRecord
     while (i > 0):
         device_gy.read_data()
         self.gx, self.gy, self.gz = device_gy.getGyro()
         print("Rotation in X-Axis : %d" % self.gx)
         print("Rotation in Y-Axis : %d" % self.gy)
         print("Rotation in Z-Axis : %d" % self.gz)
         print("\n")
         time.sleep(self.timeInteration)
         i -= 1
Пример #3
0
    def __init__(self, bus=None):
        if bus is None:
            bus = smbus.SMBus(i2c_banana_pi_bus_number())

        #Default ADXL345 range +/- 2g is ideal for telescope use
        self.accel = ADXL345(bus, 0x53, name="accel")
        self.gyro = L3G4200D(bus, 0x69, name="gyro")
        self.compass = HMC5883L(bus, 0x1e, name="compass")
        self.barometer = BMP085(bus, 0x77, name="barometer")

        self._last_gyro_time = 0  #needed for interpreting gyro
        self.read_gyro_delta()  #Discard first reading
        q_start = self.current_orientation_quaternion_mag_acc_only()
        self._q_start = q_start
        self._current_hybrid_orientation_q = q_start
        self._current_gyro_only_q = q_start
Пример #4
0
    def __init__(self, bus=None):
        if bus is None:
            bus = smbus.SMBus(1)

        # ADXL345 accelerometer range, 2g is ideal for telescope use. Allowed values : 2g, 4g, 8g, 16g
        self.accel = ADXL345(bus, 0x53, name="accel", scale="8g")
        # L3G4200D gyroscope range, 250 is ideal for telescope use. Allowed values : 250, 500, 2000
        self.gyro = L3G4200D(bus, 0x69, name="gyro", scale=250)
        self.compass = HMC5883L(bus, 0x1e, name="compass")
        self.barometer = BMP085(bus, 0x77, name="barometer")

        self._last_gyro_time = 0  #needed for interpreting gyro
        self.read_gyro_delta()  #Discard first reading
        q_start = self.current_orientation_quaternion_mag_acc_only()
        self._q_start = q_start
        self._current_hybrid_orientation_q = q_start
        self._current_gyro_only_q = q_start
Пример #5
0
 def __init__(self):
     self.accelerometer = LIS331DLH()
     self.gyroscope = L3G4200D()
     self.magnetometer = LIS3MDL()
     self.barometer = LPS331AP()