Denkschmied / fire-and-ice

SPS.bbM.18 - Project
4 stars 4 forks source link

Übersicht Loop-Durchlaufzeiten (Fehlende Interrupts bei MATLAB) #39

Open ampxtreme opened 5 years ago

ampxtreme commented 5 years ago

Bitte alle Durchlaufzeiten (Beispielrechnung unten) der Code-Snippets bestimmen und in untenstehende Tabelle eintragen.

Falk und ich haben uns Gedanken zum RPM Sensor (Umsetzung in Matlab) gemacht. Problem ist hierbei ggf. die Abtastfrequenz. Wenn es blöd läuft gehen uns Signale verloren da der Prozessor bzw. der Loop zu diesem Zeitpunkt gerade mit anderen Aufgaben beschäftigt ist.

Aus diesem Grund haben wir mal folgende Rechnung angestellt um die maximal benötigte Loop-Durchlaufzeit am Beispiel RPM zu berechnen.

Bezeichnung Wert
Fahrgeschwindigkeit 5 km/h
Fahrgeschwindigkeit 1,39 m/s
Umfang Rad: (D=6 cm) 0,19 m
20 Löcher/U (Lochscheibe) 7,37 U/s
Abtastfrequenz 147 Hz
Nyquist 295 Hz
Sicherheitsfaktor (2x RPM) 590 Hz
max. benötigte Durchlaufzeit 2 ms
ampxtreme commented 5 years ago

Bitte die benötigte Durchlaufzeit des Codes messen und unten eintragen.

Sensor Ausführungszeit Code [ms]
RPM
Ultraschall  
Servo + Ultraschall  
Camera  
Gyro  
Flame  
Summe
ampxtreme commented 5 years ago

Falls die Durchlaufzeiten zu hoch werden sollten, können wir folgende Ansätze verfolgen:

fabioaufinger commented 5 years ago

Hab noch ein Ass im Ärmel. Eine weitere Möglichkeit wäre über ein Bash-Skript zwei Python-Programme gleichzeitig auszuführen (eines für die Position und eines für den Rest) und über eine Textdatei als Zwischenspeicher zu gehen. Das ist zwar kein wahres Multiprocessing, sondern geht eher in Richtung Multithreading. Einen Vorteil sollte es aber allemal bringen.