Frequenzen und Sensoren
Verfasst: Dienstag 17. März 2020, 10:10
Da mir vor ein paar Wochen schon einmal hier super geholfen wurde, versuche ich es mal wieder. Mein Programm liest Beschleunigung auf einer Achse eines MPU6050 aus, um Vibrationen zu messen. Ziel sind 1000 Hz, welche das Programm ungefähr schafft. Leider schwankt die Zeit noch. Jetzt hatte ich beat.cronus entdeckt, welches relativ genaue Frequenzen möglich macht. Sind mit dem Sensor und dem Raspberry Pi 4 B überhaupt ungefähre 1200Hz möglich, sodass ich auf 1000 Hz herunterregeln kann?
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
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()