示例#1
0
class Accel:
    def __init__(self):
        self.accel = [0, 0, 0]
        self.calib = [0, 0, 0]
        self.valSub = []
        self.raw = ""
        try:
            with open("/sys/class/misc/FreescaleAccelerometer/enable",
                      "w") as enabler:
                enabler.write("1")
                enabler.flush()
                enabler.close()
        except (OSError, IOError, ValueError, TypeError):
            print "Error: No Accel detected"

        self.mm_accel = MemoryMap(
            "/sys/class/misc/FreescaleAccelerometer/data", "r")

    def calibrate(self, period=0.5):
        self.valSub = self.get()
        sum1 = [0, 0, 0]
        sum2 = [0, 0, 0]
        for num in range(0, len(self.accel)):
            sum1[num] = self.valSub[num]
        sleep(period)
        for num in range(0, len(self.accel)):
            sum2[num] = self.valSub[num]

        for num in range(0, len(self.accel)):
            self.calib[num] = (sum1[num] + sum2[num]) / 2

    def get(self):  # Return accel data in array
        try:
            self.raw = str(self.mm_accel.read_line().replace('\n', ''))
            for a in range(0, 3):
                try:
                    self.accel[a] = (int(self.raw[0:self.raw.index(',')])
                                     if ',' in self.raw else int(self.raw))
                    self.raw = self.raw[self.raw.index(',') + 1:]
                except (IndexError, ValueError, TypeError):
                    break
        except (OSError, IOError, TypeError, ValueError):
            print "Error using accelerometer!"
        finally:
            for num in range(0, len(self.accel)):
                self.accel[num] -= self.calib[num]
            return self.accel  # return like this [x, y, z] in integer formats

    def release(self, pin):
        try:
            self.mm_accel.close()
            with open("/sys/class/misc/FreescaleAccelerometer/enable",
                      "w") as enabler:
                enabler.write("0")
                enabler.flush()
                enabler.close()
        except (ValueError, IndexError, TypeError):
            raise ValueError("Couldn't release Accelerometer" % str(pin))
示例#2
0
class Accel:
    def __init__(self):
        self.accel = [0, 0, 0]
        self.calib = [0, 0, 0]
        self.valSub = []
        self.raw = ""
        try:
            with open("/sys/class/misc/FreescaleAccelerometer/enable", "w") as enabler:
                enabler.write("1")
                enabler.flush()
                enabler.close()
        except (OSError, IOError, ValueError, TypeError):
            print "Error: No Accel detected"

        self.mm_accel = MemoryMap("/sys/class/misc/FreescaleAccelerometer/data", "r")

    def calibrate(self, period=0.5):
        self.valSub = self.get()
        sum1 = [0, 0, 0]
        sum2 = [0, 0, 0]
        for num in range(0, len(self.accel)):
            sum1[num] = self.valSub[num]
        sleep(period)
        for num in range(0, len(self.accel)):
            sum2[num] = self.valSub[num]

        for num in range(0, len(self.accel)):
            self.calib[num] = (sum1[num] + sum2[num]) / 2

    def get(self):  # Return accel data in array
        try:
            self.raw = str(self.mm_accel.read_line().replace('\n', ''))
            for a in range(0, 3):
                try:
                    self.accel[a] = (int(self.raw[0:self.raw.index(',')]) if ',' in self.raw else int(self.raw))
                    self.raw = self.raw[self.raw.index(',') + 1:]
                except (IndexError, ValueError, TypeError):
                    break
        except (OSError, IOError, TypeError, ValueError):
            print "Error using accelerometer!"
        finally:
            for num in range(0, len(self.accel)):
                self.accel[num] -= self.calib[num]
            return self.accel  # return like this [x, y, z] in integer formats

    def release(self, pin):
        try:
            self.mm_accel.close()
            with open("/sys/class/misc/FreescaleAccelerometer/enable", "w") as enabler:
                enabler.write("0")
                enabler.flush()
                enabler.close()
        except (ValueError, IndexError, TypeError):
            raise ValueError("Couldn't release Accelerometer" % str(pin))
示例#3
0
class Barometer:
    def __init__(self):
        self.temp = 0000
        self.Tempscale = 0000
        self.pressure = 0000
        self.Tempress = 000
        self.coms = Command()

        try:
            self.coms.run("rmmod mpl3115")
        finally:
            pass
        try:
            self.coms.run("modprobe mpl3115")
        finally:
            pass
        base = "/sys/class/i2c-dev/i2c-1/device/1-0060/iio:device0/"
        self.mm_temp = MemoryMap(base + "in_temp_raw", "r")
        self.mm_scale = MemoryMap(base + "in_temp_scale", "r")
        self.mm_pressure = MemoryMap(base + "in_pressure_raw", "r")
        self.mm_pressure_scale = MemoryMap(base + "in_pressure_scale", "r")

    def get_temp(self, mode="f"):  # Return from Barometer
        try:
            self.temp = (float(self.mm_temp.read_line().replace('\n', '')))
            self.Tempscale = (float(self.mm_scale.read_line().replace(
                '\n', '')))
            self.temp = (self.temp * self.Tempscale)
        except (IndexError, ValueError, IOError, TypeError, OSError):
            print "Barometer is not plugged in!"
        finally:
            return (self.temp * 1.8 + 32) if "f" in mode else self.temp

    def get_pressure(
        self
    ):  # Return raw data which is (kPA) a form of pressure measurments sea level is about 100
        try:
            self.pressure = (float(self.mm_pressure.read_line().replace(
                '\n', '')))
            self.Tempress = (float(self.mm_pressure_scale.read_line().replace(
                '\n', '')))
        except (IndexError, ValueError, IOError, TypeError, OSError):
            print "Barometer is not plugged in!"
        finally:
            return float(self.pressure * self.Tempress)

    def release(self, pin):
        try:
            self.mm_temp.close()
            self.mm_scale.close()
            self.mm_pressure.close()
            self.mm_pressure_scale.close()
        except (ValueError, IndexError, TypeError):
            raise ValueError("Couldn't release barometer" % str(pin))
示例#4
0
class Barometer:
    def __init__(self):
        self.temp = 0000
        self.Tempscale = 0000
        self.pressure = 0000
        self.Tempress = 000
        self.coms = Command()

        try:
            self.coms.run("rmmod mpl3115")
        finally:
            pass
        try:
            self.coms.run("modprobe mpl3115")
        finally:
            pass
        base = "/sys/class/i2c-dev/i2c-1/device/1-0060/iio:device0/"
        self.mm_temp = MemoryMap(base + "in_temp_raw", "r")
        self.mm_scale = MemoryMap(base + "in_temp_scale", "r")
        self.mm_pressure = MemoryMap(base + "in_pressure_raw", "r")
        self.mm_pressure_scale = MemoryMap(base + "in_pressure_scale", "r")

    def get_temp(self, mode="f"):  # Return from Barometer
        try:
            self.temp = (float(self.mm_temp.read_line().replace('\n', '')))
            self.Tempscale = (float(self.mm_scale.read_line().replace('\n', '')))
            self.temp = (self.temp * self.Tempscale)
        except (IndexError, ValueError, IOError, TypeError, OSError):
            print "Barometer is not plugged in!"
        finally:
            return (self.temp * 1.8 + 32) if "f" in mode else self.temp

    def get_pressure(self):  # Return raw data which is (kPA) a form of pressure measurments sea level is about 100
        try:
            self.pressure = (float(self.mm_pressure.read_line().replace('\n', '')))
            self.Tempress = (float(self.mm_pressure_scale.read_line().replace('\n', '')))
        except (IndexError, ValueError, IOError, TypeError, OSError):
            print "Barometer is not plugged in!"
        finally:
            return float(self.pressure * self.Tempress)

    def release(self, pin):
        try:
            self.mm_temp.close()
            self.mm_scale.close()
            self.mm_pressure.close()
            self.mm_pressure_scale.close()
        except (ValueError, IndexError, TypeError):
            raise ValueError("Couldn't release barometer" % str(pin))