Bordcomputer für ein E-Trike auf Basis eines Raspberry Pi · Der Raspberry Pi wird normalerweise...
Transcript of Bordcomputer für ein E-Trike auf Basis eines Raspberry Pi · Der Raspberry Pi wird normalerweise...
Graduate School
Studiengang „Elektrische Energiesysteme und Elektromobilität“
Masterprojektarbeit
Bordcomputer für ein E-Trike auf Basis
eines Raspberry Pi
[1]
Betreuer: Prof. Dr.-Ing. Thomas Walter
Studiendekan: Prof. Dr.-Ing. Claus Kröger
Vorgelegt von: Ralf Burr, Matr. Nr. 3120085
Heinrich Kern, Matr. Nr. 3104710
Datum: 9. Februar 2016
Erklärung 2
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Erklärung
„Wir versichern, dass wir diese Projektarbeit selbständig und nur unter Verwendung der
angegebenen Quellen und Hilfsmittel angefertigt und die benutzten Quellen wörtlich oder
inhaltlich entnommenen Stellen als solche kenntlich gemacht haben. Die Arbeit hat in gleicher
oder ähnlicher Form noch keiner anderen Prüfungsbehörde vorgelegen.“
Ulm, den ________________________________
Ralf Burr_________________________________
Heinrich Kern_____________________________
Inhaltsverzeichnis 3
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Inhaltsverzeichnis
Erklärung ............................................................................................................................... 2
Inhaltsverzeichnis ................................................................................................................... 3
Abkürzungen .......................................................................................................................... 7
1 Einleitung ....................................................................................................................... 8
2 Systemkonzept ............................................................................................................... 9
3 Hardware ..................................................................................................................... 12
3.1 Eigenversorgung des Datenloggers ............................................................................ 12
3.2 Messung der Akkuströme und Spannungen .............................................................. 14
3.3 Messung der Sonneneinstrahlung .............................................................................. 16
3.4 GPS-Empfänger ........................................................................................................... 17
3.5 Visualisierung mit Display ........................................................................................... 18
3.6 Messung der Geschwindigkeit .................................................................................... 18
3.7 Analogeingänge .......................................................................................................... 21
3.7.1 Analog-Digital-Wandler .................................................................................. 21
3.7.2 Analogeingangsbeschaltung ........................................................................... 22
3.7.3 Impedanzwandler ........................................................................................... 23
3.7.4 Übersicht ......................................................................................................... 24
4 Software ...................................................................................................................... 24
4.1 MCP3208-Klasse ......................................................................................................... 25
4.2 Sensor-Klasse .............................................................................................................. 26
4.3 Akku-Klasse ................................................................................................................. 27
4.4 Frequenz-Klasse .......................................................................................................... 27
4.5 Geschwindigkeit-Klasse .............................................................................................. 30
4.6 LCD-Klasse ................................................................................................................... 30
4.7 Trike-Klasse ................................................................................................................. 31
4.8 Datenlogger-Klasse ..................................................................................................... 32
4.9 Bordcomputer-Klasse ................................................................................................. 33
4.10 Shutdown-Klasse......................................................................................................... 34
5 Raspberry Pi ................................................................................................................. 35
5.1 Installation des Betriebssystems ................................................................................ 35
5.2 Zugriff auf den Raspberry Pi ....................................................................................... 35
5.3 Einrichten der Laufzeitumgebung .............................................................................. 38
5.3.1 Die SPI-Schnittstelle ........................................................................................ 39
5.3.2 GPS-Daemon ................................................................................................... 39
Inhaltsverzeichnis 4
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
5.4 Gerätebaumerweiterung ............................................................................................ 40
5.5 Automatisches Ausführen der Software .................................................................... 40
6 Inbetriebnahme ............................................................................................................ 41
6.1 DC/DC-Wandler .......................................................................................................... 41
6.2 Inbetriebnahme AD-Wandler ..................................................................................... 42
6.3 Geschwindigkeitsmessung .......................................................................................... 43
7 Messergebnisse ............................................................................................................ 46
8 Fazit ............................................................................................................................. 51
9 Literaturverzeichnis ...................................................................................................... 52
10 Anhang ......................................................................................................................... 53
10.1 Übersichtsschaltplan................................................................................................... 53
10.2 Schaltplan Hauptplatine ............................................................................................. 57
10.3 Layout Hauptplatine ................................................................................................... 59
10.4 Liste Bauteile Hauptplatine ........................................................................................ 61
10.5 Stückliste Datenlogger ................................................................................................ 62
10.6 Raspberry Pi Model 2B ............................................................................................... 63
10.7 Strahlungssensor Apogee SP-512 ............................................................................... 64
10.8 LEM-Stromsensor CAS-15 ........................................................................................... 68
10.9 GPS-Sensor .................................................................................................................. 71
10.10 Reedschalter MK21 ..................................................................................................... 73
10.11 AD-Wandler MCP3204 ................................................................................................ 75
10.12 Schmitt-Trigger SN74AHC1G14 .................................................................................. 79
Inhaltsverzeichnis 5
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abbildungsverzeichnis Abbildung 1: E-Trike Rückansicht mit Sicht auf den Bordcomputer ................................................ 8
Abbildung 2: Übersicht Komponenten E-Trike zu Projektbeginn .................................................... 9
Abbildung 3: Vollständiges Blockschaltbild des Projekts ............................................................... 11
Abbildung 4: Schaltplan "Eigenversorgung des Datenloggers" ...................................................... 13
Abbildung 5: Funktionsblock "Ein- und Ausschalten des Tiefsetzstellers“ .................................... 14
Abbildung 6: LINKS: Messbox RECHTS: Unterseite Platine Messbox ............................................. 15
Abbildung 7: Schaltplan Messbox .................................................................................................. 15
Abbildung 8: Empfindlichkeit des Strahlungssensors Apogee "SP-215" [5] .................................. 17
Abbildung 9: Montiertes GPS-Modul BU-353 (Dahinter der Strahlungssensor) ............................ 17
Abbildung 10: LCD-Display im spritzwassergeschützten Gehäuse ................................................. 18
Abbildung 11: Messaufbau zur Analyse des Schalterprellens ........................................................ 18
Abbildung 12: Pulsdauer bei einem Schaltvorgang ........................................................................ 19
Abbildung 13: Analyse Schalterprellen .......................................................................................... 19
Abbildung 14: Bodediagramm des RC-Tiefpassfilters .................................................................... 20
Abbildung 15: Funktionsblock "Schmitt-Trigger" zur Geschwindigkeitsmessung ......................... 21
Abbildung 16: Reedschalter mit Magnet zur Geschwindigkeitserfassung ..................................... 21
Abbildung 17: Analogeingang mit Schutzbeschaltung ................................................................... 23
Abbildung 18: Impedanzwandler ................................................................................................... 23
Abbildung 19: Gesamtübersicht Analogeingang ............................................................................ 24
Abbildung 20: Python Logo ............................................................................................................ 24
Abbildung 21: Mcp3208-Klasse ...................................................................................................... 25
Abbildung 22: SPI Kommunikation mit dem MCP 3208 [8] ........................................................... 25
Abbildung 23: Sensor-Klasse .......................................................................................................... 26
Abbildung 24: Akku-Klasse ............................................................................................................. 27
Abbildung 25: Ablaufdiagramm Frequenzberechnung durch Interrupt ........................................ 28
Abbildung 26: Aufruf getFrequency ............................................................................................... 29
Abbildung 27: Frequenz-Klasse ...................................................................................................... 29
Abbildung 28:Speed-Klasse ............................................................................................................ 30
Abbildung 29: LCD-Klasse ............................................................................................................... 31
Abbildung 30: Trike-Klasse ............................................................................................................. 32
Abbildung 31: Datenlogger-Klasse ................................................................................................. 33
Abbildung 32:Bordcomputer-Klasse .............................................................................................. 33
Abbildung 33: Shutdown-Klasse ..................................................................................................... 34
Abbildung 34: Einplatinencomputer Raspberry Pi 2B mit Micro-SD Karte und USB-Stick ............. 35
Abbildung 35: Zugriff auf das Raspberry Pi mittels PuTTY ............................................................. 37
Abbildung 36: Grafische Oberfläche WinSCP ................................................................................. 37
Inhaltsverzeichnis 6
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abbildung 37: Verbindung mittels Remote Desktop Verbindung .................................................. 38
Abbildung 38: Wirkungsgrad des DC/DC-Wandlers vs. Ausgangsstrom ........................................ 41
Abbildung 39: Gemessene Signale mit dem Speicheroszilloskop .................................................. 44
Abbildung 40: Signale während eines Schaltvorgangs des Reed-Kontakts .................................... 44
Abbildung 41: Beginn eines Schaltvorgangs zur Geschwindigkeitsmessung ................................. 45
Abbildung 42: Hauptplatine des Datenloggers im eingebauten Zustand ...................................... 46
Abbildung 43: Logifle nach dem Import in Microsoft Excel ........................................................... 46
Abbildung 44: Messfahrt Nr. 007: Geschwindigkeit und Elektrische Motorleistung vs. Zeit ........ 47
Abbildung 45: Bedienoberfläche des Programms "GPX_creator.py" ............................................ 47
Abbildung 46: Messfahrt „logfile0007.csv“: Streckenverlauf, dargestellt mit Openstreetmap .... 48
Abbildung 47: Messfahrt "logfile0007.csv": Höhenprofil & Steigung ............................................ 49
Abbildung 48: Messung Nr. 003: Bestrahlungsstärke und Ladeleistung vs. Zeit ........................... 49
Abkürzungen 7
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abkürzungen
SOC State Of Charge
Wp Watt Peak
OCV Open Circuit Voltage
ISC I Short Cut
BMS Battery Management System
MPP Maximum Power Point
ULE Ladeendspannung
ADC Analog Digital Converter
IC Integrated Circuit
PDIP Plastic Dual In-line Package
GND Ground
DHCP Dynamic Host Configuration Protocol
IP Internet Protocol
DNS Domain Name System
SSH Secure Shell
APT Advanced Packaging Tool
PIP Pip Installs Python
Einleitung 8
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
1 Einleitung
Pedelecs sind Fahrräder mit elektromotorischer Unterstützung bis maximal 250 W
Nenndauerleistung an der mechanischen Antriebswelle und einer Geschwindigkeit von 25 km/h.
Ein E-Trike ist ein spezielles Pedelec in Form eines dreirädrigen Liegefahrrads. An der Hochschule
Ulm ist durch mehrere studentische Projekte ein E-Trike von HP-Velotechnik um ein Solardach mit
Ppeak = 150W sowie einem MPP-Tracker zum effizienten Laden des Lithium-Ionen-Akkus (36 V)
erweitert worden.
Abbildung 1: E-Trike Rückansicht mit Sicht auf den Bordcomputer
Im Rahmen dieses Masterprojekts des Studiengangs „Elektrische Energiesysteme und
Elektromobilität“ wird für dieses E-Trike auf Basis des Kleinstcomputers „Raspberry Pi“ ein
Datenlogger zur Erfassung verschiedener Messwerte entwickelt. Erfasst werden unter anderem
die Geschwindigkeit, die aktuelle Sonneneinstrahlung und der elektrische Leistungsfluss zwischen
Motor, Akkus und Solarpanel. Dadurch kann zum Beispiel untersucht werden, ob bei einer
täglichen Fahrt und anschließendem Abstellen unter freiem Himmel die Akkus vollständig durch
die Solarmodule geladen werden.
Systemkonzept 9
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
2 Systemkonzept
Zu Beginn des Projekts ist das E-Trike mit einer Antriebseinheit und einer Ladeeinheit ausgestattet.
Die Antriebseinheit besteht aus einem Display, Fahrakku sowie einem Nabenmotor. Diese Einheit
entspricht dem Ursprungszustand nach dem Kauf des E-Tikes. Die Ladeeinheit besteht aus einem
weiteren Akku, welcher folgend „Ladeakku“ genannt wird. Dieser hat keine Verbindung zum
Antriebsstrang und wird über einen MPP-Tracker und das interne BMS des Akkus geladen.
Alternativ können die Akkus über ein externes Ladegerät aufgeladen werden.
Abbildung 2: Übersicht Komponenten E-Trike zu Projektbeginn
Der Datenlogger soll Messdaten erfassen, die während der Fahrt auf einem Display angezeigt oder
für eine spätere Auswertung am PC abgespeichert werden können.
Der erste Schritt ist die Erstellung eines Pflichtenhefts für den Datenlogger in Absprache mit Herrn
Prof. Walter.
Systemkonzept 10
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Sensorik / Messgröße Techn. Anforderung Hintergrund:
Sonneneinstrahlung Messbereich 0…1000 W/m²
Die zu erwartenden Einstrahlungswerte für Deutschland bewegen sich in diesem Bereich.
Geschwindigkeit Messbereich 0…50 km/h
Zu erwartende Geschwindigkeit.
Elektrischer Strom
Ladeakku
Messbereich 0…3,04 A
Solarmodule (3 Stück in Reihe) liefern: ISC = 3,04 A; OCV = 20,8 V
Somit nimmt der Ladestrom bei sehr niedrigem Ladezustand des Akkus (Entspricht ebenfalls ca. 20 V) maximal 3,04 A an.
Elektrischer Strom
Fahrakku
Messbereich -20…20 A
Annahme: Bei 36 V Akkuspannung und 250 W Nenndauerleistung ist der Nennstrom ca. 7 A. Mit Schätzung des Wirkungsgrades und Anlaufstrom wird ein Sicherheitsfaktor von 3 gewählt. Negative Ströme sind bei Rekuperation zu erwarten.
Elektrische Spannung Fahr- und Ladeakku
Messbereich 20...42 V Ergibt sich aus ULe=4,2 V und U(SOC=0) = 2,0 V nach Datenblattangabe bei 10 in Reihe geschalteten Zellen (Panasonic 18650A).
Messung GPS-Position Keine speziellen Vorgaben.
Gefahrene Route soll als GPS-Track bei der Auswertung am PC auf einer Karte darstellbar sein.
Datenverarbeitung
Hardware Verwendung des Einplatinencomputers „Raspberry Pi“
(Gewünschte Anforderung durch Herrn Prof. Walter).
Display Messdaten sollen dem Fahrer während der Fahrt angezeigt werden.
Bedienung Es muss ein Bedienelement zum starten/stoppen einer Messung vorhanden sein.
Allgemeine Anforderungen
Mechanisch /
Konstruktiv
System muss spritzwassergeschützt und fest montiert sein. System soll kompakt aufgebaut sein und am E-Trike so integriert sein, dass es während der Fahrt nicht stört.
Eigenversorgung des
Datenloggers.
Versorgung über den Fahrakku. Möglichst geringe Stromaufnahme während des Betriebs, kein Standby-Verbrauch. (Eine Versorgung über den Ladeakku würde die relativ geringe Ladeleistung durch die Solarmodule verfälschen).
Tabelle 1: Übersicht der zu erfassenden Messgrößen
Systemkonzept 11
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Zur Anbindung der Sensoren und des Displays wird eine Platine entwickelt, die über eine
Steckleiste mit dem Raspberry Pi verbunden wird. Somit erfolgt der Aufbau des Datenloggers wie
in Abbildung 3 dargestellt.
Abbildung 3: Vollständiges Blockschaltbild des Projekts
Hardware 12
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
3 Hardware
Im Folgenden Abschnitt wird gezeigt, wie die einzelnen Funktionsblöcke aufgebaut sind und
welche Vorteile die gewählten Schaltungen und Bauteile liefern.
3.1 Eigenversorgung des Datenloggers
Der Raspberry Pi wird normalerweise über ein USB-Netzteil versorgt. Laut Spezifikation [2] muss
die Versorgungsspannung zwischen 4,75 V und 5,50 V liegen.
Die Versorgung des gesamten Datenloggers erfolgt durch den 36 V Fahrakku und muss mit einem
Tiefsetzsteller auf eine Spannung von 5,0 V herabgesetzt werden. Die maximale Leistung, die der
Tiefsetzsteller bereitstellen muss, ergibt sich aus Tabelle 2.
Verbraucher P [mW] Quelle
Raspberry Pi 1250 Gemessen
2 Stromsensoren 2x100 Datenblatt LEM CAS 15-P
GPS 275 Datenblatt BU-353S4
Display 105 Gemessen
Einstrahlungssensor 15 Datenblatt Apogee SP-215
Optional: USB-Buchse zum
laden eines Smartphones
2500 Ein USB „High Powered Port“
muss 500 mA liefern können [2]
GESAMT 4345
Tabelle 2: Ermittlung der benötigten Leistung für den Datenlogger
Die Wahl fällt auf den Regelbaustein „LM5576“ von Texas Instruments. Dieser bietet folgende
Vorteile:
weiter Eingangsbereich 6...75 V (Spannung des Fahrakkus liegt zwischen 20 und 42 V)
kleine Bauform durch integrierten High-side switch
automatische Abschaltung bei Überlast
integrierter thermischer Schutz
ein- und ausschaltbar über den Pin „SD“
Die äußere Beschaltung erfolgt nach der Schaltplanempfehlung des Datenblatts des
Tiefsetzstellers. Zusätzlich wird eingangsseitig eine TVS-Diode als ESD-Schutz und eine Schottky-
Diode als Verpolungsschutz eingebaut. Die Schaltung des Funktionsblocks „Eigenversorgung des
Datenloggers“ ist in Abbildung 4 dargestellt.
Hardware 13
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abbildung 4: Schaltplan "Eigenversorgung des Datenloggers"
Der Raspberry Pi muss per Handschalter sicher ein- und ausschaltbar sein. Das Betriebssystem
startet, sobald er mit 5 V Spannung versorgt wird und darf während des Boot-Prozesses nicht mehr
abgeschaltet werden. Das Herunterfahren geschieht mit demselben Handtaster. Sobald der
Raspberry Pi vollständig heruntergefahren ist, muss der Tiefsetzsteller ausgeschaltet werden,
damit kein unnötiger Entladestrom auf Grund eines Standby-Betriebes fließt.
Diese Funktionalität wird mit dem in Abbildung 5 dargestellten Funktionsblock „Ein- und
Ausschalten des Tiefsetzstellers“ erreicht. Der Tiefsetzsteller lässt sich einschalten, indem am Pin
„SD“ des LM5575 eine Spannung größer 1,225 V angelegt wird. Beim Einschalten wird über die
ständig verfügbare Spannung am Fahrakku der Pfad 1 aktiviert, der LM5575 wird eingeschaltet
und der Raspberry Pi startet. Sofort nach dem Start wird über einen GPIO-Port das Signal „Hold“
vom Raspberry Pi auf 3,3V gesetzt und versorgt den Pin „SD“ über Pfad 2. Dies entspricht einer
Selbsthalteschaltung.
Der Ausschaltvorgang erfolgt nach folgendem Schema: Der Signalpegel des ON/OFF-Signals wird
vom Raspberry Pi zyklisch abgefragt. Ist der Eingang „Low“, wird der Shutdown-Prozess
eingeleitet. Der Ausgang „Hold“ bleibt dabei gesetzt, bis der Raspberry Pi endgültig
heruntergefahren ist. Danach wird der LM5575 mit einer kurzen Verzögerung durch den
Kondensator C30 abgeschaltet.
Hardware 14
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abbildung 5: Funktionsblock "Ein- und Ausschalten des Tiefsetzstellers“
3.2 Messung der Akkuströme und Spannungen
Da für den Raspberry Pi die Versorgungsspannung von 5,0 V durch den Tiefsetzsteller erzeugt wird,
liegt es nahe, die Sensoren ebenfalls so zu wählen, dass diese mit 5,0 V betrieben werden können.
Ein Shuntwiderstand zur Strommessung kommt wegen der hohen Verlustleistung nicht in Frage.
Verwendet wird der Halleffekt-Sensor CAS15-NP von LEM. Die Gründe hierfür sind:
die Sensitivität kann durch mehrmaliges Durchschleifen der Leitung erhöht werden.
Dadurch kann für die stark unterschiedlichen Messbereiche von Fahr- und Ladeakku
der gleiche Sensortyp benutzt werden.
Analogausgang 0..5 V
positive und negative Ströme messbar. Bei i = 0 A gibt der Sensor eine Spannung
u = 2,5 V aus. Dadurch kann schon bei Stillstand des E-Trikes gesehen werden, ob der
Sensor ordnungsgemäß funktioniert.
Zur Messung der Ströme von Fahr- und Ladeakku müssen die Leitungen zwischen den Akkus und
dem Motor bzw. dem MPP-Tracker aufgetrennt werden. Dies geschieht innerhalb einer Box, die
unter dem Sitz montiert wird. Siehe Abbildung 6.
Hardware 15
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abbildung 6: LINKS: Messbox RECHTS: Unterseite Platine Messbox
Damit das E-Trike auch ohne den Bordcomputer benutzt werden kann, werden an der Box je ein
Rosenbergerstecker und eine Buchse angebracht. Damit kann die Box durch einfaches Umstecken
zwischengeschaltet werden. Das Schaltschema ist im Schaltplan in Abbildung 7 dargestellt.
Abbildung 7: Schaltplan Messbox
Hardware 16
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
3.3 Messung der Sonneneinstrahlung
Um die Bestrahlungsstärke der Sonne (W/m²) zu messen, gibt es Sensoren mit verschiedenen
Messprinzipien:
Pyranometer Ein schwarzer Körper absorbiert die Strahlung und erwärmt sich. Es entsteht ein Temperaturgefälle zur Umgebungstemperatur, das mit einem Thermoelement gemessen wird.
Passiver Sensor, benötigt keine Stromversorgung
Erzeugt kleine Spannungssignale von ca. 50 µV/W/m². Beispiel „SP Lite2“, siehe [3]
Si-Solarzelle im Kurzschlussbetrieb
Kurzschlussstrom ist annähernd proportional zur Bestrahlungsstärke und ist kaum temperaturabhängig. Strommessung erfolgt über einen Shuntwiderstand.
Sehr günstig Sehr kleine Spannungssignale. Bsp:
Mini-Solarzelle KXOB22 (Conrad Electronic). Bei einem Shunt von 1 Ω und voller Sonneneinstrahlung wäre das Messsignal nur 50 mV [4]
Sensor auf Basis einer Si-Solarzelle und integriertem Messverstärker.
Analogausgang wird auf einen normierten Messbereich proportional zur Bestrahlungsstärke verstärkt.
Messsignal mit großem Spannungshub ist weniger empfindlich gegen Störungen.
Messsignal kann auf den gleichen Spannungsbereich normiert werden wie die Stromsensoren (0…5 V)
Teuer
Tabelle 3: Verschiedene Prinzipien zur Messung der Sonneneinstrahlung
Für das E-Trike wird der Sensor „SP-512“ der Firma Apogee verwendet. Dieser besitzt eine geringe
Eigenstromaufnahme von 300 µA und kann mit 5 V versorgt werden. Da der Sensor auf Basis einer
Si-Zelle arbeitet, entspricht die spektrale Empfindlichkeit des Sensors der Empfindlichkeit der
Solarmodule auf dem Dach (siehe Abbildung 8). Somit kann der Sensor als gute Referenz für die
zu erwartende Ladeleistung durch die Solarmodule dienen.
Hardware 17
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abbildung 8: Empfindlichkeit des Strahlungssensors Apogee "SP-215" [5]
3.4 GPS-Empfänger
GPS-Module gibt es als Mini-Platine mit integrierter Antenne und serieller Schnittstelle für ca.
40 €. Da das GPS-Modul für optimalen Empfang auf dem Dach montiert wird, ist ein zusätzliches
Gehäuse notwendig. Aus diesem Grund wird der gekapselte Empfänger BU-353 mit USB-
Schnittstelle von Globalsat verwendet, welcher preislich mit der oben genannten Lösung identisch
ist.
Abbildung 9: Montiertes GPS-Modul BU-353 (Dahinter der Strahlungssensor)
Hardware 18
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
3.5 Visualisierung mit Display
Über das Display werden während der Fahrt die Messdaten in Echtzeit angezeigt. Aus folgenden
Gründen fällt die Wahl auf ein zweizeiliges LCD-Display:
Hintergrundbeleuchtung ermöglicht das Ablesen auch bei Nachtfahrten
geringer Stromverbrauch (21 mA mit Hintergrundbeleuchtung)
kompakt, kann spritzwassergeschützt in ein Gehäuse eingebaut werden
einfache serielle Datenübertragung im 4-Bit Modus. (4 Daten- und 2 Steuerleitungen nötig,
die direkt mit den GPIO´s des Raspberry Pi verbunden sind)
Abbildung 10: LCD-Display im spritzwassergeschützten Gehäuse
3.6 Messung der Geschwindigkeit
Eine einfache Methode zur Geschwindigkeitsmessung an Fahrrädern ist die Messung der Frequenz
eines Rades mit Hilfe eines Reedschalters. Dieser wird fest am Rahmen montiert und durch einen
an den Speichen angebrachten Magneten bei jeder Radumdrehung ausgelöst.
Um die Messung einer viel zu hohen Frequenz durch Schalterprellen auszuschließen, wird vorab
eine Messung mit dem Oszilloskop vorgenommen wie in Abbildung 11 dargestellt.
Abbildung 11: Messaufbau zur Analyse des Schalterprellens
Hardware 19
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Ergebnis: Die Pulsdauer bei einer Umfangsgeschwindigkeit am Rad von ca. 60 km/h beträgt 2,5 ms
(400 Hz). Siehe Abbildung 12.
Abbildung 12: Pulsdauer bei einem Schaltvorgang
Die Frequenzen, die durch das Schalterprellen verursacht werden liegen über 100 kHz. Dies geht
aus einem Schaltvorgang des Reedschalters hervor, wie in Abbildung 13 dargestellt.
Abbildung 13: Analyse Schalterprellen
Wenn man davon ausgeht, dass mit dem E-Trike nicht schneller als 60 km/h gefahren wird, können
alle Frequenzen, die über 400 Hz liegen herausgefiltert werden. Dies geschieht mit einem RC-
Tiefpassfilter erster Ordnung.
Mit R = 47 kΩ und C = 2 nF ergibt sich eine Grenzfrequenz fg und eine Zeitkonstante τ von:
fg =1
2 · π · R · C=
1
2 · π · 47 kΩ · 2 nF = 1,7 kHz
Hardware 20
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
τ = R · C = 94 µs
Der RC-Tiefpass dämpft somit näherungsweise die niedrigste Frequenz des Schalterprellens
(23,3 kHz) mit ca. -5 dB (Siehe Bodediagramm).
Abbildung 14: Bodediagramm des RC-Tiefpassfilters
Die maximale Amplitude dieser Frequenzen wird zuerst durch den Spannungsteiler (R24 und R25)
auf UB/2 = 2,5 V begrenzt. Durch die Dämpfung des Filters wird diese Spannung auf folgenden
Wert gedämpft:
𝑈max _23,3_𝑘𝐻𝑧 ≈ 2,5 ∙ 10−5 𝑑𝐵
20 𝑉 = 1,41 𝑉
Diese Spannung liegt unter der Schaltschwelle des Schmitt-Triggers. Diese liegt bei:
𝑈𝑉𝐶𝐶
2=
3,3 𝑉
2= 1,65 𝑉
Hardware 21
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Damit ergibt sich für den Funktionsblock „Geschwindigkeitsmessung“ folgende Schaltung:
Abbildung 15: Funktionsblock "Schmitt-Trigger" zur Geschwindigkeitsmessung
Die TVS-Diode D19 Dient zum Schutz der Schaltung vor Spannungsimpulsen. Der Ausgang des
Schmitt-Triggers mit der Bezeichnung „Hall“ wird mit einem GPIO-Port des Raspberry Pi
verbunden. Der Reedschalter wird mit einem Aluwinkel am Rahmen des E-Trikes befestigt (Siehe
Abbildung 16). Als Betätigungsmagnet dient ein an den Speichen befestigter Magnet eines
Fahrradtachos.
Abbildung 16: Reedschalter mit Magnet zur Geschwindigkeitserfassung
3.7 Analogeingänge
Da der Raspberry Pi keine Analogeingänge besitzt, muss hierfür ein Analog Digitalwandler (engl.
Analog Digital Converter, kurz ADC) verwendet werden.
3.7.1 Analog-Digital-Wandler
Der ADC muss nach Tabelle 1 mindestens 5 Analogeingänge besitzen. Zur Anbindung der externen
Peripherie besitzt der Raspberry Pi ein SPI-Bus (Serial Peripheral Interface) mit einem 3,3 V
Hardware 22
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Buspegel. Somit fällt die Wahl auf einen MCP3208 der Firma Microchip. Dieser besitzt 8
Analogeingänge, eine Auflösung von 12 Bit, sowie eine Genauigkeit von 2 LSB. Weiter ist der IC in
einem 16-pin PDIP Gehäuse verfügbar. Die Analogreferenzspannung für den ADC wird vom
Raspberry Pi bereitgestellt und beträgt ebenso 3,3 V.
3.7.2 Analogeingangsbeschaltung
Je nach Sensor muss der Analogeingang einen Spannungsbereich von 0…5 V oder 0…42 V messen
können. Die maximal messbare Spannung des ADC darf die Analogreferenzspannung nicht
überschreiten. Somit muss das Eingangssignal bei maximaler Spannung auf die
Analogreferenzspannung heruntergeteilt werden. Hierfür wird ein Spannungsteiler aus
Widerständen verwendet.
Überschreitet die Eingangsspannung den definierten Bereich, wird die Spannung am
Analogeingang des ADCs durch eine Diode, die in Flussrichtung zur Analogreferenzspannung
geschaltet ist begrenzt (siehe Abbildung 17). Somit kann sich die Spannung maximal auf die
Analogreferenzspannung plus Diodenspannung (typisch 0,7 V) erhöhen, was die Bauteile nicht
beschädigt. Eine weitere Diode gegen GND schützt den Analogeingang gegen negative
Spannungen. Zum Schutz der Analogeingänge vor hochenergetischen hochfrequenten Pulsen,
welche zum Beispiel bei Funkenentladungen entstehen, ist zu jedem Eingang parallel eine
Suppressordiode geschaltet (siehe Abbildung 17). Um keine Signalverfälschung durch Aliasing zu
erhalten muss nach Nyquist das Analogsignal doppelt so schnell abgetastet werden wie die
höchste zu erwartende Frequenz. Um das Analogsignal in der Bandbreite zu begrenzen, muss es
Tiefpass gefiltert werden. Hierfür wird ein RC-Tiefpassfilter verwendet, welcher sich aus einem
zusätzlichem Kondensator und dem Eingangsspannungsteiler zusammensetzt. Die Grenzfrequenz
fg des Tiefpassfilters wird dabei wie folgend berechnet:
𝑓𝑔 = 2𝑓𝑠 =1
2𝜋𝑅𝐶
Die Abtastfrequenz fs ist während des Projektes auf 10 Hz festgelegt worden. Somit besitzen alle
Analogeingangsfilter eine -3dB Grenzfrequenz von fg = 5 Hz. Die Analogeingangsbeschaltung für
den Analogeingang A1 mit einem Eingangsspannungsbereich von 0…5 V ist in Abbildung 17
dargestellt. Für die Analogeingänge mit einem Spannungsbereich von 0… 42 V wurde die gleiche
Schaltung gewählt. Lediglich die Suppressordiode, die Widerstände R10 und R11 sowie der
Kondensator C17 sind durch entsprechende Werte angepasst.
Hardware 23
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abbildung 17: Analogeingang mit Schutzbeschaltung
3.7.3 Impedanzwandler
Zur Anpassung der Quellimpedanz des Analogeingangs an die Impedanz des ADC Eingangs wird
ein Impedanzwandler zwischengeschaltet. Dieser besteht aus einem rückgekoppelten
Operationsverstärker mit dem Verstärkungsfaktor v = 1.
Abbildung 18: Impedanzwandler
Bei der Auswahl des Operationsverstärkers für Impedanzwandlers müssen folgende Kriterien
erfüllt werden:
Versorgungsspannung 3,3 V
Aussteuerung des Ausgangs sowie des Eingang bis zur Versorgungsspannung (engl.
Rail-to-Rail)
Bandbreite größer Abtastfrequenz
Zur Realisierung des Impedanzwandlers wird ein MCP6002 von Microchip verwendet. Dieser
erfüllt alle geforderten Kriterien und ist in einem SOIC-8 Package verfügbar.
Software 24
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
3.7.4 Übersicht
Am Beispiel des Analogeingangs A0 zeigt Abbildung 19 die gesamte Analogeingangsbeschaltung
mit Schutzbeschaltung, Spannungsteiler, Impedanzwandler und ADC.
Abbildung 19: Gesamtübersicht Analogeingang
4 Software
Bei der Realisierung der Software fällt die Wahl auf Python. Hierbei handelt es sich um eine
universelle, interpretierte höhere Programmiersprache. Die Entwurfsphilosophie liegt hierbei in
der guten Programmlesbarkeit [6]. Die Programmiersprache Python bietet sehr viele
Standardbibliotheken und zahlreiche Erweiterungspakete [7], welche überwiegend
plattformunabhängig verwendet werden können. Die Module aus der Standardbibliothek werden
gut gepflegt und ständig erweitert. Zum Ausführen eines Python-Skriptes muss ein Python
Interpreter auf dem Zielsystem installiert sein.
Neben der objektorientierte Programmierung unterstützt Python auch Programmierparadigmen
wie die funktionale oder aspektorientierte Programmierung.
Abbildung 20: Python Logo
Um die Software für dieses Projekt übersichtlich zu gestalten wird diese objektorientiert
programmiert. Nachfolgend werden die einzelnen Klassen beschreiben.
Software 25
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
4.1 MCP3208-Klasse
Die Klasse Mcp3208 liest die einzelnen Spannungen der ADC Eingänge eines Mcp 3208 Bausteines
ein. Dabei benutzt diese die SpiDev Klasse, um Daten über den SPI zu senden und empfangen. In
Abbildung 21 sind die Attribute und Methoden dieser Klasse dargestellt.
Abbildung 21: Mcp3208-Klasse
Wie das Datenpaket zum Auslesen der Spannung eines Kanales aufgebaut sein muss, wird dem
Datenblatt entnommen und ist in Abbildung 22 dargestellt.
Abbildung 22: SPI Kommunikation mit dem MCP 3208 [8]
Ein Datenpakt besteht dabei aus 3 Byte. Das erste Byte beginnt mit 5 führenden Nullen, welchen
das Startbit, der Modus und das erste Bit des Kanales folgen. Das zweite Byte beginnt mit den
restlichen beiden Kanalbits. Alle weiteren folgenden Bits des zweiten und dritten Bytes sind mit
Nullen aufgefüllt. Der abgetastete Wert wird im zweiten Byte, ab dem vierten Bit, sowie dem
dritten Byte übertragen. Dabei beginnt der Digitalwert mit dem höchstwertigem Bit (engl. Most
Significant Bit, kurz MSB). Die Realisierung in der GetAdValue Funktion für das Auslesen eines
Kanales ist folgend dargestellt:
Software 26
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
r = self.spi.xfer2([(self.MCP_START_BIT << 2) + (self.mode << 1) +
(channel >> 2 ) , (channel << 6) & 0xFF, 0])
AdValue = ((r[1] & 0x0F) << 8) + r[2])
Beim Aufruf der Funktion AdcGetAllAdcValues() wird die Funktion AdcGetValue() in einer Schleife
für alle Kanäle durchlaufen und die Werte in einer Liste zurückgegeben.
4.2 Sensor-Klasse
Die Sensor-Klasse liest zyklisch mit der Abtastfrequenz fa = 10 Hz über die MCP3208-Klasse den
Digitalwert eines Einganges aus. Hierfür nutzt diese die Thread-Klasse, die in einem separaten
Thread die Methode update aufruft. Die digitalen Werte werden mit dem Skalierungsfaktor des
Spannungsteilers sowie des Umrechnungsfaktors auf die Eingangsspannung des Analogeingangs
umgerechnet. Ist an diesem Eingang ein Sensor angeschlossen, der eine physikalische Messgröße
in einen Spannungswert umrechnet, kann dieser Umrechnungsfaktor zusätzlich angegeben
werden. Besitzt dieser angeschlossene Sensor einen Spannungsoffset, kann dieser entweder im
Konstruktor angegeben werden oder mit der Methode _calcoffset, welche den Mittelwert über
die ersten 100 Messwerte berechnet, ermittelt werden. Da die Aufzeichnungsfrequenz der
Messwerte auf 1 Hz festgelegt ist, werden die Messwerte mit einem IIR-Tiefpassfilter gefiltert.
Dieser Tiefpassfilter besitzt eine Grenzfrequenz von 0,5 Hz. Die gefilterte Spannung des
Analogeinganges bzw. der physikalische Wert kann mit der Getter-Methode getElValue
beziehungsweise getPhValue abgerufen werden. Folgend sind die Attribute und Methoden dieser
Klasse dargestellt.
Abbildung 23: Sensor-Klasse
Software 27
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
4.3 Akku-Klasse
Die Akku-Klasse vereint jeweils zwei Objekte: Den Spannungs- und den Stromsensor der
Sensor-Klasse. Mit diesen beiden Sensor-Objekten wird die aktuell aus dem Akku entnommene
Leistung berechnet. Die Methode getWattHour ist bis jetzt noch nicht implementiert.
Abbildung 24: Akku-Klasse
4.4 Frequenz-Klasse
Die Frequenz-Klasse dient zur Bestimmung der Drehfrequenz des Hinterrades. Hierfür wird die
GPIO-Klasse zur Flankendetektion an einem GPIO-Port genutzt. So wird dem GPIO-Port bei der
Initialisierung die Callbackmethode __interrupt für einen Flankenwechsel zugewiesen. Die
Berechnung der Frequenz durch einen Flankenwechsel erfolgt nach folgendem Ablaufdiagramm.
Software 28
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abbildung 25: Ablaufdiagramm Frequenzberechnung durch Interrupt
Nach Aufruf der Methode __ interrupt wird zuerst geprüft, ob der Aufruf durch eine positive
Flanke verursacht wurde. Ist dies zutreffend, wird die aktuelle Systemzeit ermittelt. Anschließend
erfolgt die Berechnung der Periodendauer aus der Differenz der Systemzeiten aus letztem und
aktuellem Aufruf:
𝑡 = 𝑡𝑎𝑐𝑡𝑢𝑎𝑙 − 𝑡𝑙𝑎𝑠𝑡
Nach Prüfung der Periodendauer wird daraus die Drehfrequenz des Rades berechnet:
𝑓 = 1
𝑡
Zuletzt wird überprüft, ob die berechnete Frequenz größer ist als die definierte Mindestfrequenz
fmin = 0,5 Hz. Dadurch wird verhindert, dass die Frequenz-Klasse eine Frequenz berechnet obwohl
das Rad zwischenzeitlich stillsteht.
Wird die Methode getFrequency() aufgerufen, wird zuerst geprüft, ob sich das Rad
zwischenzeitlich nicht im Stillstand befindet. Die Prüfung auf Stillstand erfolgt nach dem in
Abbildung 26 dargestelltem Flussdiagramm.
Software 29
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abbildung 26: Aufruf getFrequency
Nach Aufruf der Methode getFrequency() wird die aktuelle Systemzeit ermittelt. Daraus wird die
Zeit zwischen letzter positiver Flanke und dem Methodenaufruf berechnet. Ist der reziproke Wert
dieser Zeit kleiner als die festgelegte Mindestfrequenz, wird die Drehfrequenz des Hinterrades zu
Null bestimmt. Zusätzlich zählt die Frequenz-Klasse alle positiven Flanken, um daraus die
gefahrene Strecke zu berechnen. Abbildung 27 zeigt alle Attribute und Methoden der
Frequenz·Klasse.
Abbildung 27: Frequenz-Klasse
Software 30
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
4.5 Geschwindigkeit-Klasse
Die Speed-Klasse stellt eine Erweiterung der Frequenz-Klasse dar und beinhaltet zusätzlich das
Attribut Raddurchmesser. So wird über die Beziehung zwischen Raddurchmesser und Frequenz
die aktuelle Geschwindigkeit berechnet. Zusätzlich wird über die Radumdrehungen und den
Raddurchmesser die zurückgelegte Strecke berechnet. Folgend ist die Speed-Klasse sowie deren
Beziehung mit der Frequenz-Klasse dargestellt.
Abbildung 28:Speed-Klasse
4.6 LCD-Klasse
Die LCD-Klasse steuert das an die GPIO-Ports angeschlossene LCD-Display über die GPIO-Klassen
an. Die Ansteuerung des Displays erfolgt über 6 Leitungen. Vier davon werden zur
Datenübertragung und zwei (Enable und Daten/Kommando) zur Steuerung verwendet. Das
Display besitzt einen HD44780 [9] kompatiblen Controller der für die Steuerung sowie die
Übertragung von Daten fest spezifiziert ist. Die implementierten Methoden sowie Attribute sind
in Abbildung 29 dargestellt. Nach Aufruf des Konstruktors erfolgt die Initialisierung des LCD-
Displays in den 4 Bit Modus. Mit der Methode message kann anschließend Text auf dem Display
angezeigt werden. Die Position des Cursors wird mit jedem Buchstaben automatisch um eine
Position erhöht. Mit der Methode setcursor kann man diesen auf einen ausgewählten Platz setzen.
Wird erneut die Methode message aufgerufen, wird der bereits angezeigte Text überschrieben.
Mit der Methode clear wird der gesamte Text auf dem Display gelöscht und der Cursor wieder auf
Position eins gesetzt.
Software 31
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abbildung 29: LCD-Klasse
4.7 Trike-Klasse
Die Trike-Klasse vereint nun jeweils mindestens ein Objekt der oben beschreiben Klassen. So hat
diese jeweils ein Attribut mit dem Objektnamen Fahrakku, Ladeakku vom Typ Akku-Klasse, einen
Strahlungssensor vom Typ Sensor-Klasse, ein Display vom Typ LCD, einen Hallsensor vom Typ
Speed sowie ein Objekt Gps von der GPS-Klasse.
Die Trike-Klasse enthält die Methode Displaymanager. Diese liest zyklisch mit Hilfe der Thread-
Klasse die Messwerte der einzelnen Objekte wie zum Beispiel die Leistung des Fahrakkus aus und
zeigt diese mit entsprechender Einheit auf dem Display an. Die Methode showDisplayInfo
unterbricht die Anzeige der Messwerte durch den Displaymanager und zeigt den im
Methodenaufruf überreichten Text für die ebenso definierte Dauer an. Zusätzlich stellt die Trike-
Klasse jeweils eine Gettermethode für alle Telemetrie-Daten der einzelnen Objekte bereit. Über
die Methode getLogSwitch wird der logische Zustand des Schalters für die Aktivierung der
Aufzeichnung zurückgegeben. Alle Attribute und Methoden sowie Beziehungen zu den
Objektklassen sind in Abbildung 30 dargestellt.
Software 32
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abbildung 30: Trike-Klasse
4.8 Datenlogger-Klasse
Die Datenlogger-Klasse speichert die Messwerte in einer CSV-Datei. Hierfür verwendet diese die
CSV-Klasse sowie die OS-Klasse. Wird ein Objekt der Datenlogger-Klasse erzeugt, wird mittels der
OS-Klasse geprüft ob der angegebene Speicherpfad im Konstruktor existiert. Ist dies nicht der Fall,
wird die entsprechende Ordnerstruktur erzeugt. Anschließend wird in einer zusätzlich erzeugten
Logdatei abgefragt, wie oft ein Objekt dieser Klasse erzeugt wurde. Dementsprechend wird die
CSV-Datei mit entsprechend fortlaufender Nummer erzeugt. Hat ein Objekt der
Datenlogger-Klasse eine leere CSV-Datei generiert, kann mit der Methode writeRow eine Liste mit
den aktuellen Messwerten abgespeichert werden. In folgender Abbildung sind alle
implementierten Methoden sowie Attribute dargestellt.
Software 33
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abbildung 31: Datenlogger-Klasse
4.9 Bordcomputer-Klasse
Die Bordcomputer-Klasse steuert das Aufzeichnen einer Messfahrt und erstellt das Objekt
SolarTrike. Wird die Methode startLoggingThread aufgerufen erstellt die Bordcomputer-Klasse ein
Objekt der Datenlogger-Klasse und somit eine leere CSV-Datei. Anschließend wird die Kopfzeile
der CSV-Datei gemäß der Reihenfolge der Messwerte geschrieben. Zusätzlich wird „Aufzeichnung
gestartet“ auf dem Display des E-Trikes angezeigt. Anschließend wird die Methode
__loggingThread jede Sekunde mit Hilfe der Thread-Klasse aufgerufen. Diese Methode liest die
aktuellen Messwerte aus dem Objekt SolarTrike aus und übergibt diese mit der Methode writeRow
an das aktuelle Objekt der Datenlogger-Klasse. Wird die Methode stopLoggingThread aufgerufen,
wird das Objekt der Datenlogger-Klasse gelöscht und somit die Aufzeichnung in die CSV-Datei
beendet. Abbildung 32 zeigt alle Methoden und Attribute der Bordcomputer-Klasse.
Abbildung 32:Bordcomputer-Klasse
Damit beim Aufruf des Modules Bordcomputer.py ein Objekt der Bordcomputer-Klasse erzeugt wird, wird folgender Code in die Klassendefinition eingefügt: if __name__ == '__main__':
#STC = Solar Trike Computer
STC = Bordcomputer()
Software 34
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
#check every second the value of the switch
while 1:
if STC.SolarTrike.getLogSwitch():
STC.startLoggingThread()
else :
STC.stopLoggingThread()
sleep(1)
Zu Beginn wird geprüft, ob das Modul als erste Instanz aufgerufen wird oder von einem
übergeordneten Modul importiert ist. So kann die objektorientierte Software noch beliebig
erweitert werden ohne eine Änderung am Modul Bordcomuter.py vorzunehmen. Anschließend
wird ein Objekt der Bordcomputer-Klasse erzeugt. Mit der nachfolgenden Schleife wird überprüft,
ob der Schalter des E-Trikes zum Aufzeichnen aktiviert ist. Dementsprechend wird der
Aufzeichnungsthread gestartet oder gestoppt.
4.10 Shutdown-Klasse
Die Shutdown-Klasse weist über die GPIO-Klasse dem Pin, an welchem der Ein- und Ausschalter
angeschlossen ist die Callbackfunktion shutdown zu. Wird der logische Zustand 0 erkannt führt
diese Methode über die Os-Klasse folgenden Befehl aus:
sudo shutdown -h now
Dies führt dazu, dass der Raspberry Pi herunterfährt.
Abbildung 33: Shutdown-Klasse
Am Ende der Klassendefinition wird ein Objekt der Shutdown-Klasse erzeugt, damit nach Aufruf
dieses Modules die Funktion Shutdown aktiv ist.
Raspberry Pi 35
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
5 Raspberry Pi
Der Raspberry Pi ist ein kleiner preiswerter Einplatinenrechner, welcher aus einer Platine von ca.
9 x 6 cm besteht. Darauf befinden sich alle notwendigen Komponenten, um diesen als Computer
zu betreiben [10]. Als Festwertspeicher für die Software muss eine Micro SD-Karte eingesetzt
werden. Zur Spannungsversorgung wird ein Netzteil über die Micro USB Buchse angeschlossen.
Abbildung 34: Einplatinencomputer Raspberry Pi 2B mit Micro-SD Karte und USB-Stick
5.1 Installation des Betriebssystems
In diesem Projekt wird der Raspberry Pi mit dem Debian Betriebssystem Version 8 alias „Jessie“,
welches am 5. September 2015 [11] erschienen ist und speziell für den Raspberry Pi angepasst ist,
betrieben. Dabei handelt es sich um ein freies Betriebssystem mit der Linux Kernel Version 4.1.
Diese angepasste Debian Version für den Raspberry Pi wird auch Raspbian genannt.
Mit dem Freeware-Tool „Win32 Disk Imager“ lässt sich eine bootfähige Micro-SD Karte mit dem
Betriebssystem erstellen. Nach dem ersten Bootvorgang des Raspberry Pi wird das Betriebssystem
über folgende Befehle in der Konsole auf den neuesten Stand gebracht:
sudo apt-get update
sudo apt-get upgrade
sudo reboot
5.2 Zugriff auf den Raspberry Pi
Um während der Softwareentwicklung auf den fest installierten Raspberry Pi zugreifen zu können,
bietet sich die Ethernet-Schnittstelle an. Da bei der direkten Verbindung über ein Ethernet-Kabel
Raspberry Pi 36
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
mit dem PC kein DHCP-Server zur Verfügung steht, muss für das Raspberry Pi eine statische IP
konfiguriert werden. Um dies zu erreichen muss die Datei „dhcpcd.conf“ angepasst werden. Diese
enthält die Konfiguration aller Netzwerkschnittstellen und sieht standardmäßig wie folgt aus:
# Please note that this file is written to be used with dhcpcd.
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'.
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet manual
auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Standardmäßig sind die drei Schnittstellen „lo“, „eth0“ und „wlan0“ aufgeführt. Die Schnittstelle
„eth0“ ist dabei die Ethernet-Schnittstelle. Um dieser Schnittstelle eine statische IP zuzuweisen
muss die Datei dhcpcd.conf am Ende wie folgt erweitert werden:
interface eth0
static ip_address=192.168.1.50/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
Die erste Zeile legt fest, dass es sich um die Konfiguration der Ethernet-Schnittstelle handelt. In
der zweiten Zeile werden die IP-Adresse des Raspberry Pi und die Subnetzmaske angegeben. Die
nächsten beiden Zeilen sind für die Verbindung mit dem Internet über einen Router wichtig. Hier
muss dessen Adresse sowie der DNS, welcher meist auch der Router ist, eingetragen werden. Hier
wird diese willkürlich gewählt. Es ist aber darauf zu achten dass sich die IP Adressen im gleichen
Adressraum befinden.
Um auf den Raspberry Pi zugreifen zu können, muss der standardmäßig installierte SSH Server
aktiviert werden. Mit folgendem Befehl in der Kommandozeile gelangt man über eine grafische
Oberfläche in die Grundeinstellungen des Raspberrys:
sudo raspi-config
Unter dem Punkt „ssh“ wird der SSH-Server aktiviert und nach erneutem Neustart ausgeführt. Nun
kann mit PuTTY, ein Client für SSH-Verbindungen, über die Ethernet-Schnittstelle auf den
Raspberry Pi zugegriffen werden.
Raspberry Pi 37
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abbildung 35: Zugriff auf das Raspberry Pi mittels PuTTY
Zusätzlich kann mit WinSCP, welches ebenfalls auf Basis der SSH-Verbindung mit dem Raspberry Pi
kommuniziert, auf das Dateisystem des Raspberry Pi zugegriffen werden.
Abbildung 36: Grafische Oberfläche WinSCP
Raspberry Pi 38
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Um auch Zugriff auf die grafische Oberfläche zu erhalten wird zusätzlich „xrdp“ installiert. Dies
erfolgt mit der folgenden Zeile in der Konsole:
sudo apt-get install xrdp
„Xrdp“ ist ein Server für das Remote Desktop Protokoll. Auf diesen kann man mittels einer Remote
Desktop Verbindung unter Windows zugreifen. Nach erfolgreichem Login kann man wie in
Abbildung 37 dargestellt auf den Raspberry Pi zugreifen.
Abbildung 37: Verbindung mittels Remote Desktop Verbindung
5.3 Einrichten der Laufzeitumgebung
Um die in Punkt 4 beschriebene Software ausführen zu können, müssen zusätzlich Erweiterungen
für Python installiert und weitere Module im Linuxkernel aktiviert werden.
Raspberry Pi 39
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
5.3.1 Die SPI-Schnittstelle
Um die SPI-Schnittstelle nutzen zu können, muss zuerst das SPI Modul im Linuxkernel aktiviert
werden. In die Einstellungen gelangt man mit folgendem Befehl:
sudo raspi-config
Die Aktivierung des SPI-Modules im Linuxkernel erfolgt im Untermenü “Advanced Options“ unter
dem Stichpunkt „SPI“. Um in Python auf das Kernelmodul zugreifen zu können muss über den APT
Installer „Pythen-Dev“ installiert werden. Dabei handelt es sich um eine Erweiterung für Python
um statische Bibliotheken verwenden zu können. Die Installation dieses Paketes erfolgt durch
Eingabe folgenden Befehles in der Konsole:
sudo apt-get install python-dev
Um nun mit Python Daten über den SPI Bus zu verschicken wird „spidev” verwendet. Dabei
handelt es sich um ein Paket aus dem Python Package Index [12]. Zur Installation von Paketen aus
dieser Modulsammlung wird die Paketverwaltungssoftware PIP (Pip Installs Python) verwendet.
Diese wird mit folgendem Befehl installiert:
sudo apt-get install python-pip
So kann nun das Modul „spidev“ mittels PIP wie folgt installiert werden:
sudo pip install spidev
5.3.2 GPS-Daemon
Zur Auswertung des Datenstromes, den das GPS-Modul über USB an den Raspberry Pi sendet, wird
„gpsd“ installiert. Gpsd ist ein Hintergrundprogramm (engl. daemon) welches die Daten
(geografische Position, Geschwindigkeit, Uhrzeit, Anzahl der Satelliten und so weiter) erfasst und
für Client-Applikationen zur Verfügung stellt. Gpsd wird über folgende Eingabe in der Konsole
installiert:
sudo apt-get install gpsd
Damit der Daemon das USB-GPS Modul erkennt und ab Systemstart die Daten auswertet muss die
Konfiguration, welche sich unter „/etc/default/gpsd“ befindet, wie folgt angepasst werden:
START_DAEMON="true"
Raspberry Pi 40
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
DEVICES="/dev/ttyUSB0"
Damit Python als Client auf gpsd zugreifen kann, muss noch das Python GPS-Packet installiert
werden. Dies geschieht mit folgenden Zeilen:
sudo apt-get install python-gps
5.4 Gerätebaumerweiterung
Damit der Raspberry Pi wie in Punkt 3.1 beschrieben das „Hold“-Signal direkt nach dem Start auf
3,3 V setzt, muss über den Gerätebaum (engl. device tree) der GPIO-Port mit dem Linux Power
Management Module verknüpft werden. Da es sich hier um eine Erweiterung des Gerätebaums
handelt, geschieht dies durch ein Overlay. Der Device Tree des Raspberrys ist unter dem Pfad
/boot/config.txt gespeichert und muss wie folgt erweitert werden:
dtoverlay=gpio-poweroff,gpiopin=6,active_low=1
Somit wird die „gpio-poweroff” Erweiterung dem Pin 6 zugewiesen und festgelegt, dass der Pegel
im Betrieb auf 3,3 V und nach erfolgreichem Herunterfahren auf 0 V liegt.
5.5 Automatisches Ausführen der Software
Damit die Software nach abgeschlossenem Bootvorgang automatisch startet, muss diese
aufgerufen werden. Die einfachste Methode ist ein Eintrag in die rc.local Datei. Diese befindet sich
unter folgendem Dateipfad:
/etc/rc.local
Diese Datei kann mit einem Texteditor mit Root-Rechten bearbeitet werden. Der Aufruf von
eigenen Programmen muss dabei vor folgender Zeile erfolgen:
Exit 0
Werden Programme aufgerufen, die eine Endlosschleife besitzen, müssen diese mit einem „&“ am
Ende abgeschlossen werden. Dies bewirkt, dass auf diese Programme nicht gewartet wird und
weitere Programme gestartet werden können. Der Eintrag in der rc.local-Datei für den Aufruf der
Datenlogger Software sowie für das Programm zum Herunterfahren sieht folgendermaßen aus:
python /home/pi/shutdown.py &
python /home/pi/Datenlogger/Bordcomputer.py &
Inbetriebnahme 41
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
6 Inbetriebnahme
6.1 DC/DC-Wandler
Der erste Schritt bei der Inbetriebnahme der Platine ist der Aufbau und die Überprüfung des
DC/DC-Wandlers. Zur Überprüfung des Wirkungsgrads werden am Ein- und Ausgang jeweils der
Strom und die Spannung mit einem Multimeter gemessen. Der Ausgang wird mit einer
elektronischen Last schrittweise belastet. Der Wirkungsgrad in Abhängigkeit des Ausgangsstromes
ist in Abbildung 38 dargestellt. Der Wirkungsgrad wird wie folgt berechnet:
𝜂 = 𝑈𝑜𝑢𝑡 · 𝐼𝑜𝑢𝑡
𝑈𝑖𝑛 · 𝐼𝑖𝑛
Abbildung 38: Wirkungsgrad des DC/DC-Wandlers vs. Ausgangsstrom
Wird der Datenlogger wie in Absatz 3.1. beschrieben mit einem voll belasteten USB-Port zur
Ladung eines Smartphones benutzt, liegt der Wirkungsgrad bei 78 %. Andernfalls liegt der
Wirkungsgrad bei ungünstigen 62 %.
Inbetriebnahme 42
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
6.2 Inbetriebnahme AD-Wandler
Die Genauigkeit der eingelesenen Messgrößen unterliegt hauptsächlich folgenden Fehlern:
Ursache Verbesserung möglich?
1 Schwankung der Referenzspannung am AD-Wandler (VREF=3,3 V wird
durch Raspberry Pi bereitgestellt). Der Raspberry Pi generiert dies mit
einem Linearregler NCP1117.
Nein. Die Genauigkeit der
Spannung ist beim NCP1117
±1% (Von 3,3 V)
2 Kleinstes Inkrement des AD-Wandlers (12 bit) 212=4096 mögliche Werte.
Ungenauigkeit laut Datenblatt: 2 LSB
Nein. Die Änderung von 2 LSB
entspricht 0,048% (Des
Messbereichs)
3 Genauigkeit der Sensoren. Diese sind laut Datenblatt:
Stromsensoren: 2,5% * 15 A
Strahlungssensor: ±5%
Nein, da bauartbedingt
4 Widerstände der Spannungsteiler vor den Impedanzwandlern haben
Toleranzen
Ja: Messung mit einem
Referenzmessgerät.
--> Softwaremäßige Korrektur
mit Kalibrierfaktor
5 Leitungswiderstände (Kabel, Lötstellen, Schraubkontakte) Ja, wird beim Vorgehen bei
Punkt 4 automatisch
mitkalibriert
6 Zufällige Störgrößen: Temperaturdriften, EMV-Einkopplungen Nein, nicht deterministisch
auftretende Störungen
Tabelle 4: Auflistung von Messfehlern bei den Analoggrößen
Bei der Inbetriebnahme des AD-Wandlers wird jeder Kanal durch Beaufschlagung einer
entsprechenden physikalischen Größe überprüft. Die eingelesenen Werte werden mit den
Messwerten eines Referenzgerätes verglichen. Um die Fehlerarten Nr. 4 und 5 aus Tabelle 4 zu
eliminieren wird in der Software ein Kalibrierfaktor hinterlegt.
Inbetriebnahme 43
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Tabelle 5 zeigt die Ergebnisse der Inbetriebnahme:
Eingang Vorgehensweise Messergebnis
mit Referenz-
gerät
Ausgelese
n über
ADC
Errechneter
Kalibrier-
faktor
CH1 (IFA) Einprägung eines Stroms mit Labornetzgerät an
Stromsensoren. Überprüfung mit dem Multimeter
(Fluke 115, Ungenauigkeit 1 % bei Strommessung)
4,0 A 3,950 A 1,10127
CH2 (ILA) 4,0 A 3,883 A 1,03013
CH3
(W/m²)
Aufgrund der bauartbedingten relativ großen
Ungenauigkeit des Strahlungssensors (±5 %) wird
dieser nicht mit einem Sonnensimulator kalibriert.
Der Kalibrierfaktor wird mit einer
Referenzspannung des Labornetzgeräts ermittelt.
Eine Vergleichsmessung bei verschiedenen
Bestrahlungsstärken im Freien mit dem
Handpyranometer Voltcraft PL-11OSM
(Ungenauigkeit +-10 W/m²) zeigt: Eingelesener
Wert mit Datenlogger weicht ca 7,5 W/m² vom
Handpyranometer ab.
4 V
3,981 V 1,00477
CH5 (UFA) Anschluss des Rosenberger-Steckers am Akku.
Referenzmessung an den Klemmen X7 der
Hauptplatine mit (Fluke 115, Ungenauigkeit 0,5 %
bei Spannungsmessung)
38,81 V 39,09 V 0,99284
CH6 (ULA) 39,39 V 39,71 V 0,99194
Tabelle 5: Ermittlung der Kalibrierfaktoren
6.3 Geschwindigkeitsmessung
Zur Überprüfung der Funktionsfähigkeit der Geschwindigkeitsmessung wird das E-Trike im Labor
aufgebockt. Über die Pedale wird das Hinterrad auf eine Geschwindigkeit von 60 km/h gebracht.
Als Referenz dient die angezeigte Geschwindigkeit auf dem Display des E-Trikes, die direkt vom
Motor ausgegeben wird. Es zeigt sich, dass diese mit der berechneten Geschwindigkeit des
Datenloggers übereinstimmt. Trotzdem wird zur Überprüfung des RC-Tiefpasses und des Schmitt-
Triggers ein Schaltvorgang bei maximaler Geschwindigkeit aufgezeichnet (60 km/h).
Inbetriebnahme 44
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Folgende Signale werden aufgezeichnet:
Abbildung 39: Gemessene Signale mit dem Speicheroszilloskop
Abbildung 40 zeigt einen kompletten Schaltvorgang, wenn der Magnet durch das Rad am
Reedschalter vorbeigeführt wird.
Abbildung 40: Signale während eines Schaltvorgangs des Reed-Kontakts
Inbetriebnahme 45
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abbildung 41 zeigt eine Detailansicht zu Beginn dieses Vorgangs.
Abbildung 41: Beginn eines Schaltvorgangs zur Geschwindigkeitsmessung
Graphisch lässt sich eine Zeitkonstante τ (Zeit, bis 63% des Endwertes erreicht sind) von ca. 140 µs
ermitteln. Man erkennt, dass der Schmitt-Trigger erst schaltet, wenn der Prellvorgang beendet ist.
Somit kann davon ausgegangen werden, dass die Frequenzmessung zuverlässig funktioniert.
Messergebnisse 46
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
7 Messergebnisse
Um die Gesamtfunktionalität des fertig aufgebauten Datenloggers zu überprüfen (siehe Abbildung
42), werden mehrere Messfahrten unternommen. Exemplarisch wird hier eine circa. 1,2 km lange
Messfahrt vom 14. Dezember 2015 um die Hochschule/Manfred-Börner-Straße herum vorgestellt:
Abbildung 42: Hauptplatine des Datenloggers im eingebauten Zustand
Nach der Messfahrt stehen die Rohdaten als *.csv-Datei zur Verfügung. In Excel werden über
„Daten“ “Externe Daten abrufen“ “Aus Text“ diese Daten importiert. Damit die Spalten mit
den Messwerten korrekt dargestellt werden, muss als Trennzeichen das „Komma“ und als
Dezimaltrennzeichen der „Punkt“ angewählt werden. Dadurch erhält man eine Darstellung wie in
Abbildung 43 gezeigt:
Abbildung 43: Logifle nach dem Import in Microsoft Excel
Logfile No.: 7
Fahrakku Fahrakku Ladeakku Ladeakku Sonneineinstrahlung Geschwindigkeit Strecke GPS Longitude GPS Latitude GPS Altitude GPS Uhrzeit
U[V] I[A] U[V] I[A] Phi[w/m2] v[km/h] s[m] [] [] [] []
36,56341148 0,08242269 38,94755441 0,025949507 19,12560916 0 1516 9,939880174 48,41863879 607,214 2015-12-14T14:47:37.000Z
36,57201436 0,080328613 38,95421247 0,020827706 19,20153172 0 1516 9,939880174 48,41863879 607,214 2015-12-14T14:47:38.000Z
36,560081 0,080088052 38,95006901 0,029563357 19,22981953 0 1516 9,939880174 48,41863879 607,214 2015-12-14T14:47:39.000Z
36,56145795 0,076387725 38,9498256 0,021157937 19,05762571 0 1516 9,939880174 48,41863879 607,214 2015-12-14T14:47:40.000Z
36,57751815 0,071488986 38,96980721 0,021638042 19,1478829 0 1516 9,939880174 48,41863879 607,214 2015-12-14T14:47:41.000Z
36,56939072 0,072857554 38,95105769 0,023654315 19,19155565 0 1516 9,939880174 48,41863879 607,214 2015-12-14T14:47:42.000Z
36,58102829 0,068424227 38,94529456 0,021242361 19,1205007 0 1516 9,939880174 48,41863879 607,214 2015-12-14T14:47:43.000Z
36,58044151 0,07889685 38,94721307 -0,026133292 19,16617689 0 1516 9,939880174 48,41863879 607,214 2015-12-14T14:47:44.000Z
36,5879151 0,075909989 38,95325468 0,021062536 19,14759299 0 1516 9,939880174 48,41863879 607,214 2015-12-14T14:47:45.000Z
36,59303211 0,079886798 38,94962142 -0,025579444 19,02683739 0 1516 9,939880174 48,41863879 607,214 2015-12-14T14:47:46.000Z
36,59047232 0,087620001 38,94335033 0,026600126 19,14661794 0 1516 9,939880174 48,41863879 607,214 2015-12-14T14:47:47.000Z
36,59558157 0,082022893 38,93991882 0,0136201 19,31696888 0 1516 9,939880174 48,41863879 607,214 2015-12-14T14:47:48.000Z
36,61921326 0,079241169 38,94798279 0,009012765 19,26869164 0 1516 9,939880174 48,41863879 607,214 2015-12-14T14:47:49.000Z
36,60361444 0,073639738 38,94551121 0,023180436 19,20926928 0 1516 9,939880174 48,41863879 607,214 2015-12-14T14:47:50.000Z
Messergebnisse 47
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abbildung 44 zeigt die grafische Auswertung der Geschwindigkeit und der elektrischen
Motorleistung über der Zeit.
Abbildung 44: Messfahrt Nr. 007: Geschwindigkeit und Elektrische Motorleistung vs. Zeit
Interessant sind folgende Punkte:
1 Maximalwert steigt bis auf 600 W Die gesetzlich vorgeschriebene maximale Leistung
bezieht sich auf die mechanische
Nenndauerleistung.
2 Motorleistung < 0 W Rekuperationsbetrieb
3 Motorleistung geht auf 0 W zurück Motorunterstützung schaltet über 25 km/h ab
Tabelle 6: Charakteristische Punkte der Messfahrt
Zur Auswertung der Strecke kann über die Bedienoberfläche des Programm „GPX_creator.py“
eine *.gpx-Datei erstellt werden. (Siehe Abbildung 45)
Voraussetzung ist, dass auf dem Raspberry Pi das Modul „gpxpy“ installiert ist. Dieses kann mit
dem PIP heruntergeladen werden.
Abbildung 45: Bedienoberfläche des Programms "GPX_creator.py"
Messergebnisse 48
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Das GPS Exchange Format „GPX“ ist ein offenes, lizenzfreies Datenformat zur Speicherung von
Geodaten. Der GPX_creator erstellt aus einer log-Datei eine *.gpx-Datei, die anschließend in
verschiedenen Navigationsprogrammen eingelesen werden kann. Dadurch lässt sich detailliert die
Route auf einer Karte darstellen.
Abbildung 46: Messfahrt „logfile0007.csv“: Streckenverlauf, dargestellt mit Openstreetmap
Der in Abbildung 46 dargestellte Streckenverlauf wurde mit einem kostenlosen Online-GPX-viewer
erstellt [13]. Dieses Tool erstellt zusätzlich ein Diagramm mit Höhenprofil und Steigung wie in
Abbildung 47 dargestellt.
Messergebnisse 49
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Abbildung 47: Messfahrt "logfile0007.csv": Höhenprofil & Steigung
Mit dem Datenlogger kann auch die Ladung des Akkus analysiert werden. Dazu wurde an einem
Tag mit stark schwankender Sonneneinstrahlung (windig, teilweise bewölkt) eine Messung
gemacht. Abbildung 48 zeigt den Zusammenhang zwischen Bestrahlungsstärke und Ladestrom.
Abbildung 48: Messung Nr. 003: Bestrahlungsstärke und Ladeleistung vs. Zeit
Die Spitzenleistung der 3 Solarmodule zusammen beträgt laut Herstellerangaben 150 W unter STC
(Standard Test Conditions bei 1000 W und 25°). Da die Leistung annähernd proportional zur
Messergebnisse 50
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Bestrahlungsstärke ist, wäre die Modulleistung beim Maximalwert der Messung (460 W/m²
Einstrahlung bei Punkt 1) rechnerisch 67,5 Watt. Tatsächlich beträgt die Ladeleistung in diesem
Punkt 60,4 W. Mögliche Gründe für diese Abweichung: Verluste des Ladereglers, Abweichung von
den Herstellerangaben des Moduls und Messungenauigkeiten.
Fazit 51
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
8 Fazit
Ziel des Masterprojekts war es, einen Datenlogger für ein bestehendes E-Trike mit Solardach zu
entwickeln. Vorgabe war die kontinuierliche Erfassung, Speicherung und Ausgabe von GPS-Daten,
Geschwindigkeit, Sonneneinstrahlung und elektrische Leistungsflüsse mit Hilfe des
Kleinstcomputers Raspberry Pi.
Erster Schritt der Planungsphase war die Definition der Anforderungen an den Datenlogger und
die Auswahl geeigneter Sensoren. Zur Spannungsversorgung des Datenloggers und zur Anbindung
der Analogsensoren an die Digitalschnittstelle des Raspberry Pi wurde eine Schaltung samt
Platinenlayout entworfen. Dabei mussten unter anderem Schutz- und Filterschaltungen
dimensioniert und ein Power-Management für die Eigenversorgung entwickelt werden.
Zur Integration des Systems am E-Trike wurden in der Hochschulwerkstatt verschiedene Winkel
und Befestigungslösungen gefertigt und zugekaufte Teile wie etwa Gehäuse bearbeitet. Dadurch
konnten alle Komponenten am E-Trike kompakt und spritzwassergeschützt installiert und
verkabelt werden.
Herausforderungen bei der Entwicklung der Software war unter anderem die Einarbeitung in die
Programmiersprache Python und die Strukturierung der Software in einzelne Klassen.
Vorkenntnisse in der objektorientierten Programmiersprache C++ waren dabei sehr hilfreich,
ebenso die Recherche vieler anderer Projekte und Teillösungen.
Nach der erfolgreichen Inbetriebnahme mit kleineren Korrekturen, konnten erste Messfahrten
unternommen werden und die Messwerte ausgewertet werden.
Interessant war für die Verfasser dieser Arbeit, dass der Motor des E-Trikes eine sehr hohe
Spitzenleistung von 600 W, und das GPS eine extrem hohe Genauigkeit aufweist.
Des Weiteren hat sich gezeigt, dass der Raspberry Pi ein sehr leistungsfähiges und gleichzeitig
preiswertes System für diese Anwendung ist. Dadurch kann der Datenlogger noch um viele
Funktionen wie etwa die Einbindung eines Radarsensors erweitert werden. Vor allem können
durch Auswertung der Daten vielfältige Kenntnisse gewonnen werden. Zur Einschätzung des
Potentials eines E-Trikes mit Solardach sollten nun viele Messfahrten unternommen werden und
dieses im Alltag getestet werden. Ein weiterführendes Projekt von Herrn Prof. Mantz sieht vor, die
Daten über ein GSM-Modul zu verschicken um Echtzeitanalysen während einer Messfahrt zu
ermöglichen.
Literaturverzeichnis 52
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
9 Literaturverzeichnis
[1] Foto: Philipp Niemöller/Hochschule Ulm, 2015.
[2] USB Implementers Forum, „USB Power Delivery Specification (PDF),“ 07 05 2015. [Online].
Available: http://www.usb.org/developers/docs/usb20_docs/. [Zugriff am 15 01 2016].
[3] Kipp & Zonen B.V. - Niederlande, „Produktkatalog Pyranometer,“ [Online]. Available:
http://www.kippzonen.com/Download/325/Instruction-Sheet-Pyranometers-SP-Lite2-EN-
D-F-ES. [Zugriff am 15 01 2016].
[4] IXYS Korea LTD, „Firmenhompage IXYS,“ [Online]. Available:
http://ixapps.ixys.com/DataSheet/20110302-KXOB22-12X1-DATA-SHEET.pdf. [Zugriff am
15 01 2016].
[5] Apogee Instruments, „Anleitung Pyranometer SP-215,“ [Online]. Available:
http://www.apogeeinstruments.co.uk/content/SP-212-SP-215-manual.pdf. [Zugriff am 15
01 2016].
[6] „Python Dokumentation,“ 12 1 2016. [Online]. Available: https://pypi.python.org/pypi.
[7] „Python Dokumentation,“ 12 01 2016. [Online]. Available:
https://docs.python.org/2/faq/general.html.
[8] Microchip, [Online]. Available:
http://ww1.microchip.com/downloads/en/DeviceDoc/21298e.pdf. [Zugriff am 01 01 2016].
[9] Adafruit, „Entwicklerhompage,“ [Online]. Available:
https://www.adafruit.com/datasheets/HD44780.pdf. [Zugriff am 01 01 2016].
[10] K. Dembowski, Raspberry Pi - Das Handbuch, Wiesbaden: Springer-Verlag, 2013.
[11] „Debian Entwickler-Hompage,“ [Online]. Available:
https://www.debian.org/releases/stable/. [Zugriff am 12 1 2016].
[12] „Python Package Index,“ [Online]. Available: https://pypi.python.org/pypi. [Zugriff am 1 1
2016].
[13] Bernhard Gaul, „GPX-Viewer,“ [Online]. Available: www.bernhard-
gaul.de/gpxviewer/gpxviewer.php. [Zugriff am 01 01 2016].
Anhang 53
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
10 Anhang
10.1 Übersichtsschaltplan
Anhang 54
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 55
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 56
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 57
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
10.2 Schaltplan Hauptplatine
Anhang 58
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 59
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
10.3 Layout Hauptplatine
TOP Layer
Anhang 60
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
BOTTOM Layer
Anhang 61
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
10.4 Liste Bauteile Hauptplatine
Part Value Device Package DescriptionC1 2,2u C-EUC1812 C1812 CAPACITOR, European symbolC2 2,2u C-EUC1812 C1812 CAPACITOR, European symbolC3 330p C-EUC0805 C0805 CAPACITOR, European symbolC4 0,01uF C-EUC0805 C0805 CAPACITOR, European symbolC5 0,01u C-EUC0805 C0805 CAPACITOR, European symbolC6 1u C-EUC1210 C1210 CAPACITOR, European symbolC7 22n C-EUC0805 C0805 CAPACITOR, European symbolC8 0,47u C-EUC0805 C0805 CAPACITOR, European symbolC9 22u C-EUC1210 C1210 CAPACITOR, European symbolC10 150u KONDENSATOR_EEFHE EEFHE_KONDENSATORC11 1u C-EUC1210 C1210 CAPACITOR, European symbolC12 22u C-EUC1210 C1210 CAPACITOR, European symbolC13 68u C-EUC0805 C0805 CAPACITOR, European symbolC14 470n C-EUC0805 C0805 CAPACITOR, European symbolC15 100n C-EUC0805 C0805 CAPACITOR, European symbolC16 22n C-EUC0805 C0805 CAPACITOR, European symbolC17 22n C-EUC0805 C0805 CAPACITOR, European symbolC20 330p C-EUC0805 C0805 CAPACITOR, European symbolC21 100n C-EUC0805 C0805 CAPACITOR, European symbolC22 120n C-EUC0805 C0805 CAPACITOR, European symbolC23 120n C-EUC0805 C0805 CAPACITOR, European symbolC26 100n C-EUC0805 C0805 CAPACITOR, European symbolC27 22n C-EUC0805 C0805 CAPACITOR, European symbolC28 22n C-EUC0805 C0805 CAPACITOR, European symbolC29 100p C-EUC0805 C0805 CAPACITOR, European symbolC30 33u C-EUC0805 C0805 CAPACITOR, European symbolD1 CSHD6-100C CSHD6-100C DPAKD2 BAV199 BAV199 SOT23 DIODED3 BAV199 BAV199 SOT23 DIODED4 SMBJ5V0A SCHOTTKY-DIODE DIODE_SMB Schottky DiodeD5 SMBJ5V0A SCHOTTKY-DIODE DIODE_SMB Schottky DiodeD6 BAV199 BAV199 SOT23 DIODED7 BAV199 BAV199 SOT23 DIODED8 SMBJ40A SCHOTTKY-DIODE DIODE_SMB Schottky DiodeD9 SMBJ40A SCHOTTKY-DIODE DIODE_SMB Schottky DiodeD10 BAV199 BAV199 SOT23 DIODED11 BAV199 BAV199 SOT23 DIODED12 SMBJ5V0A SCHOTTKY-DIODE DIODE_SMB Schottky DiodeD13 SMBJ5V0A SCHOTTKY-DIODE DIODE_SMB Schottky DiodeD15 BZX84C3V3 ZENER-DIODESOT23 SOT23 Z-DiodeD16 HSMS-285F HSMS-285F SOT323 Surface Mount Microwave Schottky Detector DiodesD17 SMBJ40A SCHOTTKY-DIODE DIODE_SMB Schottky DiodeD18 MBRS3200 SCHOTTKY-DIODE DIODE_SMB Schottky DiodeD19 SMBJ5V0A SCHOTTKY-DIODE DIODE_SMB Schottky DiodeD20 HSMS-285F HSMS-285F SOT323 Surface Mount Microwave Schottky Detector DiodesIC1 LM5576 LM5575 HTSSOP-20EPJP1 PINHD-1X3 1X03 PIN HEADERL1 DR127-330-R DR127-330-R INDM125125X800N POWER INDUCTORLED1 RED LEDCHIP-LED0805 CHIP-LED0805 LEDQ1 BSS123 BSS123 SOT23 N-CHANNEL MOS FETR1 10 R-EU_R2512 R2512 RESISTOR, European symbolR2 20k R-EU_R0805 R0805 RESISTOR, European symbolR3 21k R-EU_R0805 R0805 RESISTOR, European symbolR4 49,9k R-EU_R0805 R0805 RESISTOR, European symbolR5 5,11k R-EU_R0805 R0805 RESISTOR, European symbolR6 1,65k R-EU_R0805 R0805 RESISTOR, European symbolR7 100k R-EU_R0805 R0805 RESISTOR, European symbolR8 220k R-EU_R0805 R0805 RESISTOR, European symbolR9 330k R-EU_R0805 R0805 RESISTOR, European symbolR10 220k R-EU_R0805 R0805 RESISTOR, European symbolR11 330k R-EU_R0805 R0805 RESISTOR, European symbolR12 10k R-EU_R0805 R0805 RESISTOR, European symbolR13 500 R-EU_R0805 R0805 RESISTOR, European symbolR14 330k R-EU_R0805 R0805 RESISTOR, European symbolR15 26k R-EU_R0805 R0805 RESISTOR, European symbolR16 330k R-EU_R0805 R0805 RESISTOR, European symbolR17 26k R-EU_R0805 R0805 RESISTOR, European symbolR20 220k R-EU_R0805 R0805 RESISTOR, European symbolR21 330k R-EU_R0805 R0805 RESISTOR, European symbolR22 220k R-EU_R0805 R0805 RESISTOR, European symbolR23 330k R-EU_R0805 R0805 RESISTOR, European symbolR24 4k7 R-EU_R0805 R0805 RESISTOR, European symbolR25 47k R-EU_R0805 R0805 RESISTOR, European symbolR26 50k R-EU_R0805 R0805 RESISTOR, European symbolR27 10k R-EU_R0805 R0805 RESISTOR, European symbolR28 100k R-EU_R0805 R0805 RESISTOR, European symbolR29 1k R-EU_R0805 R0805 RESISTOR, European symbolR30 100k R-EU_R0805 R0805 RESISTOR, European symbolU1 AD8602ARZ AD8602ARZ SOIC127P600X175-8N Precision CMOS, Single-Supply, Rail-to-Rail, Input/Output Wideband Operational AmplifiersU2 AD8602ARZ AD8602ARZ SOIC127P600X175-8N Precision CMOS, Single-Supply, Rail-to-Rail, Input/Output Wideband Operational AmplifiersU3 AD8602ARZ AD8602ARZ SOIC127P600X175-8N Precision CMOS, Single-Supply, Rail-to-Rail, Input/Output Wideband Operational AmplifiersU4 SN74AHC1G14DCKR SN74AHC1G14DCKR SOT65P210X110-5N Single Schmitt-Trigger Inverter GateU5 MCP3208-CI/SL MCP3208-CI/SL SOIC127P600X175-16N IC, 12 ADC, SMD, 3208X1 RASPI_BOARD_B+_E4 RASPI_BOARD_B+_E4 RASPI_BOARD_B+_EDGES_4DRILLGPIO connector with markings for outer dimensions of the Raspberry Pi board model B+X2 AKZ692/2 MPT2 2POL254 PHOENIX CONNECTORX3 282834-2 MPT2 2POL254 PHOENIX CONNECTORX4 282834-6 MPT6 6POL254 PHOENIX CONNECTORX5 282834-2 MPT2 2POL254 PHOENIX CONNECTORX6 282834-8 MPT8 8POL254 PHOENIX CONNECTORX7 282834-6 MPT6 6POL254 PHOENIX CONNECTORX8 282834-2 MPT2 2POL254 PHOENIX CONNECTOR
Anhang 62
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
10.5 Stückliste Datenlogger
Anz-
ahl
Ein-
heitBezeichnung Hersteller Typ Lieferant Best. Nr.
NETTO
€ / Einh.
NETTO
€ ges.
Messbox
2 Stk. Rosenberger Buchse Rosenberger Power Data RoPD® Buchse 2,5mm² Lynergy 12,52 25,04
2 Stk. Rosenberger Stecker Rosenberger Power Data RoPD® Stecker 90° Lynergy 18,40 36,80
2 Stk. Stromsensor LEM CAS 15-P RS Comp. 666-8176 13,86 27,72
1 Stk. Gehäuse Hammond IP 54, Maße 106,5 x 66 x 45,4 RS Comp. 528-6984 7,13 7,13
1 PE Kabelverschraubung SIB Z6121600R RS Comp. 530-823 3,66 3,66
4 m Kabel 8x0,5 geschirmt Lapp LIYCY 8x0,5 mm² geschirmt Ebay 1,34 5,36
Geschwindigkeitsmessung
1 Stk. Reedschalter RS Components Reedkontakt Flach, Schließer, 500 mA RS Comp. 530-8949 8,07 8,07
1 Stk. Betätigungsmagnet RS Components RS Magnet Wandler Rechteckig RS Comp. 536-1748 2,36 2,36
Messung Einstralung
1 Stk. Strahlungssensor Apogee SP-215 Coralsands 207,00 207,00
Raspberry, Gehäuse und Zubehör
1 Stk USB Doppeleinbaubuchse Typ AAmphenol MUSBC51100 RS Comp. 725-6008 11,21 11,21
2 Stk. Kippschalter, löt, 1-pol, Ein-Ein Eledis KIPP 1A11 Reichelt KIPP 1A11 1,09 2,18
1 Stk. Steuerleitung 2x0,14 mm² Lapp LIYY 214-5 Reichelt LIYY 214-5 1,18 1,18
1 Stk. Steuerleitung 10x0,14 mm² Lapp LIYY1014-5 Reichelt LIYY1014-5 2,90 2,90
6 Stk. Gegenmutter KabelverschraubungBopla MGM12 Reichelt MGM12 0,06 0,35
6 Stk. Kabelverschraubung 3-6,5 mm Bopla MBF12 Reichelt MBF12 0,24 1,46
2 Stk. USB-Stecker mit Zugentlastung BKL Electronic 10120098 USB A BKL Electronic Conrad Electronic 747013 0,77 1,54
2 Stk. USB-Stecker SMD Econ US1AFS Conrad Electronic 1303503 0,46 0,92
1 Stk. Raspberry Pi 2 Model B Raspberry RASPBERRY PI 2 MODEL B 1 GB RAM Conrad Electronic 1316978 36,13 36,13
1 Stk. Micro-SD Karte Verbatim Class 10, Mit SD-Adapter 8GB Conrad Electronic 1005590 4,77 4,77
1 Stk. USB Stick TDK 8 GB TDK Micro Schwarz t78845 USB 2.0 Conrad Electronic 595910 5,03 5,03
1 Stk. Netzwerkkabel gewinkelt 3 m Good ConnectionsGC PATCHKABEL CAT 5E F/UTP SW 90° 3MConrad Electronic 1275090 5,78 5,78
1 Stk. Gehäuse für Raspberry Hammond 1554J2GYCL Conrad Electronic 536274 20,71 20,71
Bauelemente Hauptplatine
4 Stk. Vielschicht KeramikkondensatorTDK C4532X7R2A225M230KA RS-Online 788-3098 0,86 3,42
4 Stk. Vielschicht KeramikkondensatorAVX 12101C105K4Z2A RS-Online 698-3746 0,88 3,52
4 Stk. Vielschicht KeramikkondensatorMurata GRM32ER61E226ME15L RS-Online 790-0639 0,85 3,41
2 Stk. UE Alu Kondensator Panasonic EEFUE0J151R RS-Online 414-9525 2,86 5,72
2 Stk. Diode ST STPS15H100CB RS-Online 485-7995 0,95 1,90
12 Stk. Schaltdiode DIODESZetex BAS70-04-7-F RS-Online 738-4822 0,19 2,23
10 Stk. TVS-Diode FAIRCHILD SMBJ5V0A RS-Online 761-3748 0,27 2,74
6 Stk. TVS-Diode Vishay SMBJ40A-E3 RS-Online 610-4580 0,28 1,67
2 Stk. Zenerdiode ON SemiconducterBZX84C3V3LT1G RS-Online 545-0618 1,42 2,84
4 Stk. Diode AVAGO HSMS-285B-G RS-Online 611-0765 1,38 5,53
2 Stk. Diode ON SemiconducterMBRS3200T3G RS-Online 773-7730 0,63 1,26
2 Stk. Abwärtswandler Texas InstrumentsLM5576MH/NOPB RS-Online 288-752 6,23 12,46
2 Stk. SMD Induktivität Bussmann DR127-330-R RS-Online 770-1031 1,07 2,14
0 Stk. MOSFET Transistor FAIRCHILD BSS123 RS-Online 671-0321 0,15 0,00
2 Stk. Dickschichtwiderstand TE Connectivity 352010RJT RS-Online 224-0143 0,09 0,19
2 Stk. 12 Bit ADC Microchip MCP3208-BI/SL RS-Online 770-9757 4,34 8,68
8 Stk. Operationsverstärker Microchip MCP6002-I/SN RS-Online 628-3598 0,32 2,56
0 Stk. Schmitt-Trigger Texas InstrumentsSN74AHC1G14DCKR RS-Online 652-5044 0,25 0,00
2 Stk. Leiterplatten-Sockel HARWIN M20-6112045 RS-Online 681-6791 3,65 7,30
4 Stk. Anschlussklemmenblöcke Phoenix Contact 1725698 RS-Online 220-4305 2,65 10,61
8 Stk. Anschlussklemmenblöcke Phoenix Contact 1725656 RS-Online 220-4260 0,91 7,31
2 Stk. Anschlussklemmenblöcke Phoenix Contact 1725711 RS-Online 220-4327 1,45 2,91
2 Stk. Dünnschichtwiderstand Panasonic ERA6AEB5111V RS-Online 708-6348 0,04 0,09
2 Stk. Dünnschichtwiderstand Panasonic ERA6AEB1651V RS-Online 708-6187 0,04 0,09
Anhang 63
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
10.6 Raspberry Pi Model 2B
Anhang 64
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
10.7 Strahlungssensor Apogee SP-512
Anhang 65
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 66
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 67
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 68
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
10.8 LEM-Stromsensor CAS-15
Anhang 69
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 70
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 71
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
10.9 GPS-Sensor
Anhang 72
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 73
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
10.10 Reedschalter MK21
Anhang 74
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 75
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
10.11 AD-Wandler MCP3204
Anhang 76
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 77
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 78
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 79
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
10.12 Schmitt-Trigger SN74AHC1G14
Anhang 80
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 81
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 82
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 83
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern
Anhang 84
Hochschule Ulm Masterprojekt | Ralf Burr, Heinrich Kern