Mesurer la rotation et l’accélération avec le Raspberry Pi

Mesurer la rotation et lacceleration avec le Raspberry Pi
Mesurer la rotation et lacceleration avec le Raspberry Pi

#! / 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