Difference between revisions of "Drehrate und Beschleunigung"

From phyphox
Jump to navigation Jump to search
Line 8: Line 8:
  
 
Auch wenn man für viele Beschleunigungsexperimente prinzipiell den im Smartphone verbauten Beschleunigungs- und Drehratensensor verwenden könnte, macht auch hier ein externer Sensor sehr viel Sinn:
 
Auch wenn man für viele Beschleunigungsexperimente prinzipiell den im Smartphone verbauten Beschleunigungs- und Drehratensensor verwenden könnte, macht auch hier ein externer Sensor sehr viel Sinn:
 +
 
1. Man möchte nicht, dass ein Smartphone bei einer Messung Schaden nimmt.
 
1. Man möchte nicht, dass ein Smartphone bei einer Messung Schaden nimmt.
 +
 
2. Man weiß nicht millimetergenau, wo genau die Sensoren im Smartphone verbaut sind.
 
2. Man weiß nicht millimetergenau, wo genau die Sensoren im Smartphone verbaut sind.
 +
 
3. Sensoren wie der hier verwendete MPU-6050 sind günstig, gut und dank der I2C-Bus-Schnittstelle sehr einfach zu verlöten.
 
3. Sensoren wie der hier verwendete MPU-6050 sind günstig, gut und dank der I2C-Bus-Schnittstelle sehr einfach zu verlöten.
 +
 +
Hier soll der Sensor für Beschleunigungsmessungen auf der Luftkissenbahn sowie für Drehraten- und Zentrifugalbeschleunigungsmessungen eingesetzt werden. Aus diesem Grund ist das Programm so aufgebaut, dass der Sensor die Resultierende aus ax und ay sowie die Resultierende Drehrate aller drei Achsen übermittelt. Direkt nach dem Starten oder einem Reset muss der Sensor einige Sekunden ruhen. Während dieser Zeit wird die Beschleunigung auf null Tariert. So wird die Erdbeschleunigung rausgerechnet, falls der Sensor schief liegt
  
  
 
==Aufbau==
 
==Aufbau==
 +
Die Verkabelung des Sensors ist wieder wie üblich: 3V3 – Vin, Gnd – Gnd, SCL – 22,
 +
SDA –21. Als Stromversorgung dient hier einfach eine kleine Powerbank. Der MPU-6050 wurde mit etwas Heißkleber auf den ESP32 neben das Kommunikationsmo
  
Der Temperatursensor liefert seine Daten über den OneWire-Bus: 3V3 – Vin, Gnd – Gnd, 2 - Datenbus. Der Datenbus Pin 2 ist, wie oben beschrieben, über Pullup-widerstand auf "High" hochgezogen. Die Bluetooth-Antenne wurde einfach abgeknipst, für kurze Entfernungen reicht es mit dem Rest den Rest den Anschlusskabels. Achtung: Das Koaxialkabel muss so abgekniffen werden, dass nichts kurzgeschlossen wird!
 
  
Ist alles verlötet und funktioniert, kann es kompakt mit Schrupfschlauch eingepackt werden. Nicht vergessen, den dünneren Schrupfschlauch für die Zugentlastung und Knickschutz vor dem Löten übers Kabel zu schieben...
 
  
 
[[File:DS18B20_2.jpg]]
 
[[File:DS18B20_2.jpg]]

Revision as of 11:38, 1 September 2023

Drehrate und Beschleunigung
Experiment Drehrate und Beschleunigung
Category Arduino library experiments
Used sensors MPU-6050


Drehrate.jpg

Auch wenn man für viele Beschleunigungsexperimente prinzipiell den im Smartphone verbauten Beschleunigungs- und Drehratensensor verwenden könnte, macht auch hier ein externer Sensor sehr viel Sinn:

1. Man möchte nicht, dass ein Smartphone bei einer Messung Schaden nimmt.

2. Man weiß nicht millimetergenau, wo genau die Sensoren im Smartphone verbaut sind.

3. Sensoren wie der hier verwendete MPU-6050 sind günstig, gut und dank der I2C-Bus-Schnittstelle sehr einfach zu verlöten.

Hier soll der Sensor für Beschleunigungsmessungen auf der Luftkissenbahn sowie für Drehraten- und Zentrifugalbeschleunigungsmessungen eingesetzt werden. Aus diesem Grund ist das Programm so aufgebaut, dass der Sensor die Resultierende aus ax und ay sowie die Resultierende Drehrate aller drei Achsen übermittelt. Direkt nach dem Starten oder einem Reset muss der Sensor einige Sekunden ruhen. Während dieser Zeit wird die Beschleunigung auf null Tariert. So wird die Erdbeschleunigung rausgerechnet, falls der Sensor schief liegt


Aufbau

Die Verkabelung des Sensors ist wieder wie üblich: 3V3 – Vin, Gnd – Gnd, SCL – 22, SDA –21. Als Stromversorgung dient hier einfach eine kleine Powerbank. Der MPU-6050 wurde mit etwas Heißkleber auf den ESP32 neben das Kommunikationsmo


DS18B20 2.jpg


Programmierung

Der ESP32 wird über die Arduino IDE programmiert. Es müssen die Definitionen für den ESP32 und die phyphox-Bibliothek installiert sein. Siehe dazu das Video unter Category: Arduino library experiments.

Es ist darauf zu achten, dass jeder ESP32 eine eigene Kennung hat (diese wird in PhyphoxBLE::start("Thermometer_01") festgelegt). Anschließend kann über das Plus-Symbol in phyphox ein Bluetooth-Experiment hinzugefügt werden, das Experiment wird dann automatisch geladen.

#include <phyphoxBle.h> 
#include <OneWire.h> 
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2 
OneWire oneWire(ONE_WIRE_BUS); 
DallasTemperature sensors(&oneWire);
int dt = 500;
void setup(void) 
{ 
    PhyphoxBLE::start("Thermometer_01");          //Start the BLE server

//Experiment
    PhyphoxBleExperiment experiment;

    experiment.setTitle("Thermometer");
    experiment.setCategory("Arduino Experiments");
    experiment.setDescription("Plot the Temperature over time.");

    //View
    PhyphoxBleExperiment::View view;
//Graph
    PhyphoxBleExperiment::Graph graph;
    graph.setLabel("Temperatur");
    graph.setUnitX("s");
    graph.setUnitY("°C");
    graph.setLabelX("time");
    graph.setLabelY("Theta");
 //   graph.setChannel(1,2);

    view.addElement(graph);                 //Attach graph to view
    experiment.addView(view);               //Attach view to experiment
    PhyphoxBLE::addExperiment(experiment);  //Attach experiment to server

 sensors.begin(); 
} 
void loop(void) 
{ 
 sensors.requestTemperatures();
 float T = sensors.getTempCByIndex(0);
 PhyphoxBLE::write(T);
   delay(dt); 
}


Arbeitsmaterialien