#import smbus class ITG3200: """ ITG3200 modulo para uso em raspberrypi""" #constants __DEV_ADDR0__ = 0x68 __WHO_AM_I__ = 0 __SMPLRT_DIV__ = 0x15 __DLPF_FS__ = 0x16 __INT_CFG__ = 0x17 __INT_STATUS__ = 0x1A __TEMP_OUT_H__ = 0x1B __TEMP_OUT_L__ = 0x1C __GYRO_XOUT_H__ = 0x1D __GYRO_XOUT_L__ = 0x1E __GYRO_YOUT_H__ = 0x1F __GYRO_YOUT_L__ = 0x20 __GYRO_ZOUT_H__ = 0x21 __GYRO_ZOUT_L__ = 0x22 __PWR_MGM__ = 0x3E __BUS_NUMBER__ = 0 #Dependendo do modelo você modifica aqui!! def __init__(self): """ Sensor class constructor""" self.bus = smbus.SMBus(__BUS_NUMBER__) self.addr = __DEV_ADDR0__ self.sampleRate(0x07) # sample rate will be 125Hz, 8ms self.lowPass(0x01) # 188Hz Low Pass Bandwidth def sampleRate(self, sample): if(!sample): return self.bus.read_word_data(self.addr, __SMPLRT_DIV__) else: try: self.bus.write_byte_data(self.addr, __SMPLRT_DIV__, sample) except ErroDeEscritaDoSampleRate: print("Erro na escrita do sample! :(") return True def whoAmI(self, result): if(!address): return self.bus.read_word_data(self.addr, __WHO_AM_I__) else: try: self.bus.write_byte_data(self.addr, __WHO_AM_I__, result) except ErroDeEscritaDoWhoAmI: print("Erro na escrita do Who Am I! :(") return True def lowPass(self, scale): """ O low pass filter pode ter os seguintes valores: Value - LowPass Band - Internal sampe Rate 0 - 256Hz - 8kHz 1 - 188Hz - 1kHz 2 - 98Hz - 1kHz 3 - 42Hz - 1kHz 4 - 20Hz - 1kHz 5 - 10Hz - 1kHZ 6 - 5Hz - 1kHZ """ self.bus.write_byte_data(self.addr, __DLPF_FS__, (0x18 | scale)) return True def ReadGyroX(self): x_H = self.bus.read_word_data(self.addr, __GYRO_XOUT_H__) x_L = self.bus.read_word_data(self.addr, __GYRO_XOUT_L__) x_Joined = ((x_H << 8) | (x_L << 2)) return x_Joined def ReadGyroY(self): y_H = self.bus.read_word_data(self.addr, __GYRO_YOUT_H__) y_L = self.bus.read_word_data(self.addr, __GYRO_YOUT_L__) y_Joined = ((y_H << 8) | (y_L << 2)) return y_Joined def ReadGyroZ(self): z_H = self.bus.read_word_data(self.addr, __GYRO_ZOUT_H__) z_L = self.bus.read_word_data(self.addr, __GYRO_ZOUT_L__) z_Joined = ((z_H << 8) | (z_L << 2)) return x_Joined #https://github.com/beli-sk/IMU_sensors/blob/master/itg3200.py
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question