#! / usr / bin / python
importation smbus
importation math
# S’inscrire
power_mgmt_1 = 0x6b
power_mgmt_2 = 0x6c
def read_byte(reg):
revenir autobus.read_byte_data(adresse, reg)
def read_word(reg):
h = autobus.read_byte_data(adresse, reg)
l = autobus.read_byte_data(adresse, reg+1)
valeur = (h << 8) + l
revenir valeur
def read_word_2c(reg):
val = read_word(reg)
si (val > = 0x8000):
revenir –((65535 – val) + 1)
autre:
revenir val
def dist(une,b):
revenir math.sqrt((une*une)+(b*b))
def get_y_rotation(X,y,z):
radians = math.atan2(X, dist(y,z))
revenir –math.degrés(radians)
def get_x_rotation(X,y,z):
radians = math.atan2(y, dist(X,z))
revenir math.degrés(radians)
autobus = smbus.SMBus(1) # bus = smbus.SMBus (0) fuer Révision 1
adresse = 0x68 # via i2cdetect
# Aktivieren, um das Modul ansprechen zu koennen
autobus.write_byte_data(adresse, power_mgmt_1, 0)
impression « Gyroskop »
impression « ——–«
gyroskop_xout = read_word_2c(0x43)
gyroskop_yout = read_word_2c(0x45)
gyroskop_zout = read_word_2c(0x47)
impression « gyroskop_xout: », (« % 5d » % gyroskop_xout), « skaliert: », (gyroskop_xout / 131)
impression « gyroskop_yout: », (« % 5d » % gyroskop_yout), « skaliert: », (gyroskop_yout / 131)
impression « gyroskop_zout: », (« % 5d » % gyroskop_zout), « skaliert: », (gyroskop_zout / 131)
impression
impression « Beschleunigungssensor »
impression « ———————«
beschleunigung_xout = read_word_2c(0x3b)
beschleunigung_yout = read_word_2c(0x3d)
beschleunigung_zout = read_word_2c(0x3f)
beschleunigung_xout_skaliert = beschleunigung_xout / 16384.0
beschleunigung_yout_skaliert = beschleunigung_yout / 16384.0
beschleunigung_zout_skaliert = beschleunigung_zout / 16384.0
impression « beschleunigung_xout: », (« % 6d » % beschleunigung_xout), « skaliert: », beschleunigung_xout_skaliert
impression « beschleunigung_yout: », (« % 6d » % beschleunigung_yout), « skaliert: », beschleunigung_yout_skaliert
impression « beschleunigung_zout: », (« % 6d » % beschleunigung_zout), « skaliert: », beschleunigung_zout_skaliert
impression « Rotation X: » , get_x_rotation(beschleunigung_xout_skaliert, beschleunigung_yout_skaliert, beschleunigung_zout_skaliert)
impression « Rotation Y: » , get_y_rotation(beschleunigung_xout_skaliert, beschleunigung_yout_skaliert, beschleunigung_zout_skaliert)
-
AZDelivery 3 x KY-040 Module Encodeur Rotatif Compatible avec Arduino et Raspberry Pi incluant Un E-Book!
-
HEEPDD Compteur de Rotation Tachymètre Numérique, Technologie Avancée, Testeur de Régime et de Vitesse Polyvalent pour Câbles et Câbles, écran LCD Haute Résolution
