BWP-WS19-02/Dokumentation/Systemarchitektur&Energie

Aus Verteilte Systeme - Wiki
Zur Navigation springen Zur Suche springen

Systemarchitektur

Das Systemarchitekturteam entwickelt eine Architektur, die den verschiedenen Modulen eine Arbeitsumgebung erschafft, die Kommunikation zwischen den Modulen ermöglicht und das Scheduling der Module festlegt. Als Betriebssystem wird Zephyr verwendet, das verschiedene APIs bereitstellt, deren Nutzung nun weiter erläutert wird.

Threads

Mailboxen

Zur Kommunikation zwischen den verschiedenen Modulen werden Mailboxen verwendet. Zur Orientierung wie diese unter Zephyr verwendet werden findet sich im Gitlab ein Beispiel für einen "Sender-Thread", sowie einen "Empfänger-Thread"

Energie

Das Energieteam beschäftigt sich mit dem Energiemanagement des ITS-E. Dies umfasst die Energieaufnahme durch Solarpanels, die Energiespeicherung, das Handeln im Energienotstand und den Energieverbrauch.

Energiemanagementsystem

Funktionen

Die Daten, die das Energiemanagementsystem sammelt werden den anderen Modulen in einer Mailbox zur Verfügung gestellt. Außerdem bietet es folgende Funktionalitäten :

getBatteryPercentage

Diese Funktion liefert den aktuellen Batteriezustand in Prozent.

getBatteryDrain

Diese Funktion dient der Überwachung des Batterieverbrauchs und gibt den Wert in Milliampere an.

SolarPower

Diese Funktion zeigt die generierte Energie des Solarpanels in Milliampere an.

isLoading

Diese Funktion signalisiert, ob die Batterie am Aufladen ist. Hierzu vergleicht sie die generierte Energie des Solarpanels mit dem aktuellen Energieverbrauch.

EnergyPerRotation

Diese Funktion berechnet den Energieverbrauch für x-Radumdrehungen und gibt den Wert in Milliamperestunden an.

Schaltpläne

Versuchsaufbau


Das Bild zeigt den ersten elektronischen Aufbau mit allen verwendeten Komponenten.

Bauteile

Coulomb Counter LTC4150

Um Energieflüsse messen zu können wird ein Coloumb Counter verwendet. Dieser misst durchgehend die Menge an Strom die durch ihn durch fließt und erzeugt einen dann einen messbaren Impuls. Dabei entspricht 1 Coloumb = 1 Amperesekunde, jedes mal wenn 0,614 Coloumb durch das Bauteil geflossen sind wird der Impuls erzeugt. Das Bauteil stellt außerdem ein Polaritätssignal zur Verfügung, mit dessen Hilfe festgestellt werden kann ob z.B. Energie aus einem LiPo Akku entnohmen oder hinzugeführt wird.


Erster Versuchsaufbau

In einem Versuchsaufbau wurde zunächst mit Hilfe eines Breadboards versucht einen Impuls zu erhalten, dieser wurde mit einem Oszilloskop aufgezeichnet und ist folgend abgebildet.

Versuchsaufbau Energiemessung Messung der Energieentnahme aus der Batterie mithilfe des Coulomb Counters LTC4150

Ein Hookup Guide zur Verwendung des Coloumb Counters findet sich unter folgendem Link: Weiterführende Informationen

Bauteilwahl zur Parameterbestimmung

Laut dem Datenblatt des Coloumb Counters LTC4150 liefert der IC standardmäßig 1 Interrupt pro 0,6 Coloumb (oder pro 0,1707 mAh).

Da mit dieser Konfiguration nicht genug Interrupts erzeugt werden um den Energieverbrauch genau zu tracken ist es nötig auf dem IC einen anderen Messwiderstand zu verwenden.

Zunächst ist es nötig den maximalen Stromfluss zu ermitteln, da zu diesem Zeitpunkt noch nicht alle Verbraucher am Board angeschlossen sind wird der Stromfluss auf 150 mA geschätzt.

Laut dem Datenblatt (Seite 8) ergibt sich somit ein Messwiderstand von: 50 mV / 100 mA = 0,5 Ohm.

Mit dieser Konfiguration erzeugt der IC alle 1 /( 32,7 * 0,5) = 0,06 Coloumb einen Interrupt.


Konfiguration Coloumb Counter Solar, tickt alle 1/(32.7*2,5) = 0.012 Coloumb !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Mikoe Solar Energy Click

Um die Energie von den verwendeten Solarpanels zu sammeln wird ein Solar Energy Click Board verwendet. Dessen Aufgabe besteht darin die extrem kleinen Energiemengen die geliefert werden zu sammeln und in brauchbarer Dimension weiterzuleiten. Auf dem Board ist der Chip BQ25570 verbaut der eine Vielzahl von Funktionalitäten anwendet.

In unserem Projekt wird das Board als Schnittstelle zwischen den Solarpaneln, dem LiPo Akku und dem Adafruit Featherboard verwendet, das dank direkt benutzbarer Output Pins an den Solar Click angeschlossen werden kann.

Zur Herstellerseite geht es hier. Die Dokumentation des internen Chips BQ25570 findet sich unter diesem Link.

Logging

Zur Erstellung von Protokollen von Softwareprozessen bietet Zephyr eine API an, die Logging API. Um diese nutzen zu können, muss man in der Konfigurationsdatei den Logger aktivieren, per include die benötigte Library miteinbinden und in den Quelldateien eines Moduls das jeweilige Modul registrieren bzw. deklarieren. Nun kann man die Funktionen der API verwenden. Für weitere Informationen gibt es im Gitlab Repository im Branch "Logging" ein Beispiel, in dem das Setup und verschiedene Funktionen der Logging API erklärt und vorgestellt werden.

Zur offiziellen Zephyr Dokumentation der Logging API geht es hier.

Quellen

  • Zephyr Projekt Dokumentation [1]
  • Solar-Energy-Click Board [2]
  • Coulomb Counter LTC4150 [3]
  • Wahlprojekt des Sommersemesters 2019 BWP-SS19-01