Example #1
0
class Minimu:
    VERSION = 'minimu9v5'

    def __init__(self, buss_id, address):
        self.gyro = Gyroscope(buss_id, address)
        self.gyro_full_scale = 245
        self.acc = Accelerometer(buss_id, address)
        self.acc_full_scale = 2
        self.fifo = Fifo(buss_id, address)
        self.temp = Temperature(buss_id, address)

    def enable(self, odr=104):
        self.gyro.enable(odr)
        self.gyro_full_scale = self.gyro.get_full_scale_selection()
        self.acc.enable(odr)
        self.acc_full_scale = self.acc.get_full_scale_selection()
        self.fifo.enable(odr)

    def disable(self):
        self.gyro.disable()
        self.acc.disable()
        self.fifo.disable()

    def read_fifo_raw(self):
        data = np.array(self.fifo.get_data(), dtype=np.int)
        return data

    def read_fifo(self):
        data = np.array(self.fifo.get_data(), dtype=np.double)
        try:
            data[:, :3] *= 1
        except IndexError:
            sleep(0.1)
            data = np.array(self.fifo.get_data(), dtype=np.double)

        data[:, :3] *= self.gyro_full_scale
        data[:, -3:] *= self.acc_full_scale
        data[data > 0] /= 32767
        data[data < 0] /= 32768
        return data

    def read_temperature(self):
        return self.temp.get_temperature()