Nutze ich etwas was zu lange braucht aber mit anderen Verfahren schneller möglich wäre? Bräuchte da glaube ich mal einen Anstoß von erfahrerenen Pythonern
Code: Alles auswählen
import smbus
import math
import pandas as pd
import os
import datetime
import time
import cronus.beat as beat
power_mgmt_1 = 0x6b
power_mgmt_2 = 0x6c
def read_byte(reg):
return bus.read_byte_data(address, reg)
def read_word(reg):
h = bus.read_byte_data(address, reg)
l = bus.read_byte_data(address, reg+1)
value = (h << 8) + l
return value
def read_word_2c(reg):
val = read_word(reg)
if (val >= 0x8000):
return -((65535 - val) + 1)
else:
return val
def dist(a,b):
return math.sqrt((a*a)+(b*b))
bus = smbus.SMBus(1) # bus = smbus.SMBus(0) fuer Revision 1
address = 0x68 # via i2cdetect
bus.write_byte_data(address, power_mgmt_1, 0)
#beat.set_rate(500) #=500Hz
while True: #beat.true(): #Auslesen des Sensors
p = p + 1
start = time.time()
beschleunigung_xout = read_word_2c(0x3b)
beschleunigung_xout_skaliert = abs(beschleunigung_xout) / 16384.0
save = open(f'/home/pi/gyropro/Messungen/Daten{e}.csv','a') #Abspeichern der Daten
save.write(f'{p},{str(abs(beschleunigung_xout_skaliert))}\n')
save.close()
end = time.time()
print(end - start)
#beat.sleep()