Visualisierung eines Ad-Hoc Netzwerkes



Ähnliche Dokumente
Lizenzen auschecken. Was ist zu tun?

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Facharbeit Informatik. Thema:

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Tutorial -

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Primzahlen und RSA-Verschlüsselung

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

EasyWk DAS Schwimmwettkampfprogramm

Anleitung zur Nutzung des SharePort Utility

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Bedienungsanleitung für den SecureCourier

Local Control Network

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE

CdsComXL. Excel add-in für Bearbeitung und Auswertung der CDS-daten. ComXL-020/D, Spur Spur Spur Spur

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Erstellen von x-y-diagrammen in OpenOffice.calc

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Registrierung am Elterninformationssysytem: ClaXss Infoline

Enigmail Konfiguration

Web Interface für Anwender

Zeichen bei Zahlen entschlüsseln

Grundlagen der Informatik

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Professionelle Seminare im Bereich MS-Office

Fax einrichten auf Windows XP-PC

Leichte-Sprache-Bilder

! " # $ " % & Nicki Wruck worldwidewruck

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

GeoPilot (Android) die App

Installationsanleitung für das KKL bzw. AGV4000 Interface

Dokumentation von Ük Modul 302

Task: Nmap Skripte ausführen

Online Newsletter III

Tevalo Handbuch v 1.1 vom

Outlook-Daten komplett sichern

Konfiguration der Messkanäle. Konfiguration der Zeitachse. Abb. 3: Konfigurationsmenü des Sensoreingangs A. Abb. 4: Messparameter Konfigurationsmenü

Aktivierungsanleitung für Postbank BestSign mit Seal One

Moni KielNET-Mailbox

Berechnungen in Access Teil I

Wir basteln einen Jahreskalender mit MS Excel.

Kleines Handbuch zur Fotogalerie der Pixel AG

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

10.1 Auflösung, Drucken und Scannen

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Word 2010 Grafiken exakt positionieren

Windows Vista Security

Updatehinweise für die Version forma 5.5.5

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

SFTP SCP - Synology Wiki

Netzwerk einrichten unter Windows

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

«/Mehrere Umfragen in einer Umfrage durchführen» Anleitung

1. Einführung. 2. Archivierung alter Datensätze

Grundfunktionen und Bedienung

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Aufgabe 1 Berechne den Gesamtwiderstand dieses einfachen Netzwerkes. Lösung Innerhalb dieser Schaltung sind alle Widerstände in Reihe geschaltet.

Handbuch für Easy Mail in Leicht Lesen

Anwendungsbeispiele Buchhaltung

Dokumentation für das Spiel Pong

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

PRESENTEC C-TRACK FÜR BLACKBERRY 8800 & BLACKBERRY CURVE 8310 FUNKTIONSBESCHREIBUNG

icloud nicht neu, aber doch irgendwie anders

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Projekt 2HEA 2005/06 Formelzettel Elektrotechnik

Urlaubsregel in David

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

M a i l C r e d i t. \\Burt\user\Soutschek\FP\Technik\Frankiermaschinen\00_PC Software\MailCredit\Anleitung MailCredit Installation.

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule

Eigenen Farbverlauf erstellen

Technical Note ewon über DSL & VPN mit einander verbinden

Easy-Monitoring Universelle Sensor Kommunikations und Monitoring Plattform

Agentur für Werbung & Internet. Schritt für Schritt: Newsletter mit WebEdition versenden

Simulation LIF5000. Abbildung 1

Der Kalender im ipad

Versuch 3. Frequenzgang eines Verstärkers

Internationales Altkatholisches Laienforum

OWA Benutzerhandbuch. Benutzerhandbuch Outlook Web App 2010

Hier ist die Anleitung zum Flashen des MTK GPS auf der APM 2.0. Prinzipiell funktioniert es auch auf der APM 2.5 und APM 1.

Local Control Network Technische Dokumentation

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Vermessung und Verständnis von FFT Bildern

So richten Sie Ihr Postfach im Mail-Programm Apple Mail ein:

Switching. Übung 7 Spanning Tree. 7.1 Szenario

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach Bremen. Friedrich-Mißler-Straße Bremen

Info zum Zusammenhang von Auflösung und Genauigkeit

Konzepte der Informatik

Installationsanleitung Barcode-Scanner des MEDI Baden- Württemberg e.v.

Nutzung von GiS BasePac 8 im Netzwerk

Kommunikations-Management

Handbuch B4000+ Preset Manager

inviu routes Installation und Erstellung einer ENAiKOON id

Hilfe zur Urlaubsplanung und Zeiterfassung

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

Transkript:

Fachhochschule Wiesbaden Fachbereich Design Informatik Medien Studiengang Allgemeine Informatik Technische Visualisiserung Wintersemester 2008/2009 Visualisierung eines Ad-Hoc Netzwerkes vorgelegt von: Ralph Erdt Markus Fischer Betreuer: Prof. Dr. Karl-Otto Linn

II

Inhaltsverzeichnis 1 Einleitung 1 2 Grundlagen 3 2.1 SunSPOT.................................. 3 2.2 Generelles Vorgehen............................ 4 2.3 Identifikation von Knoten.......................... 4 2.4 Positionierung der Knoten im Visualisierungs-Tool............ 5 2.4.1 Entfernungsberechnung mittels RSSI............... 5 2.4.2 Beschleunigungssensor....................... 8 3 Implementierung 17 3.1 Erweiterung der Sensorknoten....................... 17 3.2 Steuerung.................................. 17 3.2.1 Reboot............................... 18 3.2.2 Zentralen Knoten festlegen..................... 18 3.2.3 Toggle LED............................. 18 3.2.4 Traceroute............................. 18 3.3 Datensenden................................. 19 3.4 Traceroute.................................. 19 3.5 Berechnung der Positionen der Knoten im Netz.............. 20 3.5.1 Aufbau mittels eines Federmechanismus............ 20 3.5.2 Beschleunigungssensor....................... 21 3.5.3 Beschleunigungssensor in der Anwendung............ 23 III

4 Anleitung 25 4.1 Anzeigen des Netzes............................ 26 4.1.1 Initialisierung............................ 26 4.1.2 Anzeige............................... 26 4.2 Steuerung des Netzes............................ 27 4.2.1 Identifizieren von Knoten..................... 27 4.2.2 Traceroute............................. 27 4.2.3 R................................. 28 4.3 Steuerung des Knoten............................ 28 5 Fazit 29 6 Literaturverzeichnis 31 A Vollständige Messwerte 33 IV

Abbildungsverzeichnis 2.1 Messaufbau für die RSSI Messung..................... 6 2.2 Empfangsstärken Messung, d=5cm, max=2m............... 7 2.3 Antenne eines SunSPOTs.......................... 7 2.4 LIS3L02AQ auf SunSPOT.......................... 8 2.5 Kondensatoren (C1, C2), mit beschleunigungsabhängiger Kapazität... 9 2.6 Schaltung des LIS3L02AQ......................... 10 2.7 Ausschnitt der Messung für absolute und relative Beschleunigungswerte der X-Achse in Ruhelage.......................... 12 2.8 Ausschnitt der Messung für absolute und relative Beschleunigungswerte der X-Achse in Ruhelage Absolute Werte um +0.0156 verschoben.... 12 2.9 Drift des Beschleunigungssensors in Ruhelage. Auf der x-achse ist der durch den Drift zurückgelegte Weg zu den auf der y-achse aufgetragenen Zeiten.................................... 13 2.10 Gemessener Weg für fünf Wiederholungen................. 14 2.11 Glättung der Rohdaten durch den gleitenden Mittelwert.......... 14 3.1 Skizze der Kräftewirkungen......................... 21 4.1 Foto eines Testnetzes............................ 25 4.2 Screenshot des Programms......................... 26 A.1 Versuchsaufbau für Beschleunigungsmessung............... 34 A.2 Versuchsaufbau für Beschleunigungsmessung............... 34 A.3 Versuchsaufbau für Beschleunigungsmessung............... 35 A.4 Messung 1 Rohdaten Beschleunigungssensor............... 36 A.5 Messung 2 Rohdaten Beschleunigungssensor............... 36 A.6 Messung 3 Rohdaten Beschleunigungssensor............... 37 A.7 Messung 4 Rohdaten Beschleunigungssensor............... 37 V

A.8 Messung 5 Rohdaten Beschleunigungssensor............... 38 A.9 Messung 1 Gleitender Mittelwert (50 Werte) über die Rohdaten der Beschleunigungsmessung........................... 38 A.10 Messung 2 Gleitender Mittelwert (50 Werte) über die Rohdaten der Beschleunigungsmessung........................... 39 A.11 Messung 3 Gleitender Mittelwert (50 Werte) über die Rohdaten der Beschleunigungsmessung........................... 39 A.12 Messung 4 Gleitender Mittelwert (50 Werte) über die Rohdaten der Beschleunigungsmessung........................... 40 A.13 Messung 5 Gleitender Mittelwert (50 Werte) über die Rohdaten der Beschleunigungsmessung........................... 40 A.14 Messung 1 Geschwindigkeit......................... 41 A.15 Messung 2 Geschwindigkeit......................... 41 A.16 Messung 3 Geschwindigkeit......................... 42 A.17 Messung 4 Geschwindigkeit......................... 42 A.18 Messung 5 Geschwindigkeit......................... 43 A.19 Messung 1 Zurückgelegter Weg....................... 43 A.20 Messung 2 Zurückgelegter Weg....................... 44 A.21 Messung 3 Zurückgelegter Weg....................... 44 A.22 Messung 4 Zurückgelegter Weg....................... 45 A.23 Messung 5 Zurückgelegter Weg....................... 45 VI

Tabellenverzeichnis 2.1 Abweichungen tatsächlich zurückgelegte Weg und gemessener Weg in Y Richtung Alle Angaben in Meter...................... 15 3.1 Abweichungen abhängig von Idle-Code in ms............... 23 VII

VIII

Kapitel 1 Einleitung In der Vertiefungsveranstaltung Multimedia Kommunikationssysteme haben wir das Beacon Vector Routing (BVR) Protokoll implementiert. Das BVR Protokoll ist ein Ad-Hoc-Routing-Protokoll, das speziell für Sensornetze entwickelt wurde. Es ist pro-aktiv, das heißt, das Netzwerk wird aufgebaut, bevor es verwendet wird. Weiteres siehe [FRC + 05]. Wir brauchten ein Tool, um das Netzwerk anzeigen, debuggen und zu steuern. Dieses haben wir in der Vertiefung Technische Visualisiserung programmiert. Das Tool soll über folgende Funktionen verfügen: 1. Möglichst realitätsnahe Anzeige des Netzwerkes und der Verbindungen 2. Testen von Verbindungen 3. Identifikation von Knoten, also welcher angezeigte Knoten welcher Knoten in der Realität ist 4. Anzeige der genutzten Verbindungen 5. Steuern des Netzwerkes 1

2 Kapitel 1. Einleitung

Kapitel 2 Grundlagen 2.1 SunSPOT SunSPOTs (Sun Small Programmable Object Technology) sind von Sun Microsystems Laboratories entwickelt worden, um als Experimentalhardware für Sensorknoten zu fungieren. Folgende Hardwareeeigenschaften bieten SunSPOTs: 180 Mhz 32 bit ARM920T Prozessor 512 kbyte RAM 4 MB Flash 2.4 GHz 802.15.4 Funkanbindung USB-Anschluss Zusätzlich können SunSPOTs mit einem Sensorboard ausgestattet sein, welches folgende Hardware hinzufügt: 3-Achsen Beschleunigungssensor Temperatur- und Helligkeitssensor 8 dreifarbige LEDs 2 Taster 5 General Purpose IO Pins 3

2.2. Generelles Vorgehen Kapitel 2. Grundlagen 6 analoge Eingänge Programmiert werden SunSPOTs nur in Java. Direkt auf der Hardware läuft eine JavaVM, nämlich SquawkVM. Sämtliche hardwarenahen Aufrufe werden durch diese VM gekapselt. SquawkVM ist eine spezielle JavaVM, die direkt auf ARM Prozessoren, ohne ein Betriebssystem als Zwischenschicht, arbeitet. 2.2 Generelles Vorgehen Um das Netz anzuzeigen, werden die Daten aller Knoten benötigt, also welche Adresse sie im Netzwerk haben, welche Verbindungen / Nachbarschaften diese haben und mit welcher Stärke die Signale zu empfangen sind. Dazu wird ein zentraler Knoten definiert, der direkt an einem Computer angeschlossen wird. Alle Knoten senden nun regelmäßig ihre Daten an diese zentrale Stelle, und dieser Knoten gibt die Daten aus. Die SunSPOTs melden sich unter Linux als tty-device mit dem Namen /dev/ttyacm?, wobei das? eine fortlaufende Nummer ist. Dieses Device kann ein Programm öffnen, und daraus alle Ausgaben, die auf den SunSPOT mittels System.out.print gemacht werden, empfangen. Da der Knoten wesentlich mehr Informationen ausgibt (zu Debugging Zwecken), werden vor allen relevanten Zeilen der Zeichenkode #D# vorangestellt. Nur die Ausgaben, die damit beginnen, werden verarbeitet. 2.3 Identifikation von Knoten Um zu den im Programm dargestellten Knoten die realen Knoten zuordnen zu können, kann eine LED-Toggle- Funktion implementiert werden. Eine LED wird als Identifikations- LED festgelegt. Wenn nun im Programm die Funktion aufgerufen wird, wird nun ein Paket losgeschickt, das auf dem Zielknoten diese LED anschaltet. Nun kann man optisch einfach erkennen, welcher Knoten zu den angezeigten Knoten gehört. Um die LED wieder abschaltbar zu machen, wird das ganze als Toggle implementiert, also, wenn es aus ist, wird die LED angeschaltet, und wenn die LED an ist, wird diese ausgeschaltet. 4

Kapitel 2. Grundlagen 2.4. Positionierung der Knoten im Visualisierungs-Tool Zusätzlich soll der umgekehrte Weg möglich sein: Die LED soll direkt am Knoten an oder abschaltbar sein, und im Programm soll dieser irgendwie hervorgehoben werden. 2.4 Positionierung der Knoten im Visualisierungs-Tool Um dem Benutzer des Visualisierungs-Tools ein möglichst realitätsnahes Bild über die Knoten in seinem Ad-Hoc-Netzwerk zur Verfügung zu stellen, ist es wichtig, dass die Positionierung der Knoten im Tool anhand von Positionsinformationen durchgeführt wird. Ebenfalls wäre es vorteilhaft, dass die Knoten, die bewegt werden, ihre Position auch im Visualisierungs-Tool aktualisieren. Verfügen die zu visualisierenden Netzwerkknoten über ein GPS Modul, so könnten leicht diese GPS-Koordinaten verwendet werden. Bei Anwendungen, bei denen die Knoten benutzt werden um bestimmte Tiere zu überwachen, ist dies garnicht so unüblich [LM03]. Die uns vorliegenden SunSPOTs besitzen jedoch kein GPS-Modul, also muss für die Positionierung im Tool eine andere Möglichkeit gefunden werden. Da die SunSPOTs über eine Funkschnittstelle miteinander kommunizieren, war die erste Idee, Positionierung der Knoten durch die empfangene Signalstärke von bestimmten Referenzknoten zu realisieren. Die Referenzknoten müssen dann allerdings eine feste Position haben, und die Position muss dem Visualisierungs-Tool bekannt sein. Für die Positionierung der Knoten mittels empfangener Signalstärke haben wir zunächst eine Messung durchgeführt, diese wird in Abschnitt 2.4.1 vorgestellt. Der Vorteil würde bei dieser Methode dabei liegen, dass man die Positionierungsdaten sozusagen nebenher, mit dem normalen Nachrichtenverkehr gewinnen könnte. Die zweite Möglichkeit für die Positionierung der Knoten im Visualisierungs-Tool, ist die Messung der Bewegung mittels des eingebauten Beschleunigungssensors. Die Vermessung des Beschleunigungssensors wird in Abschnitt 2.4.2 dokumentiert. 2.4.1 Entfernungsberechnung mittels RSSI Signalstärke Wenn man davon ausgeht, dass die Signalstärke mit dem Quadrat der Entfernung abnimmt, sollte eine relativ einfache Entfernungsberechnung möglich sein. Um dies zu kontrollieren, wurden Testmessungen durchgeführt. 5

2.4. Positionierung der Knoten im Visualisierungs-Tool Kapitel 2. Grundlagen Wie im Bild 2.1 dargestellt, haben wir folgendermaßen gemessen: Zwei SunSPOTs auf 50cm hohe Holzpfähle (damit die Fresnelzone 1 frei ist). Diese wurden in 5cm Schritten von 25 cm bis 2 Meter Abstand aufgestellt, und jedesmal 50 Pakete gesendet. Bei jedem empfangenen Paket wurde die Empfangsstärke notiert. Abbildung 2.1: Messaufbau für die RSSI Messung Die Grafik 2.2 zeigt die Messungen. Auf der x-achse ist der Abstand der Knoten im cm und auf der y-achse die RSSI Werte aufgetragen. Jedes Kreuz zeigt die Signalstärke eines oder mehrerer Pakete zu der jeweiligen Entfernung.Die Werte sind interne RSSI Werte, die die SunSPOT API liefert. RSSI steht für Recive Strength Indicator, und ist kein normiertes Maß. Um den von den SunSPOTs gelieferten Wert in einem dbm Wert umzurechnen muss man 45 abziehen. 1 Die Fresnelzone ist ein Bereich zwischen Sender und Empfänger, der durch einen Rotationsellipsoid beschrieben ist. Die Brennpunkte des Ellipsoiden sind die Antennen. Die maximale Ausdehnung des Ellipsoiden in der Mitte ist 0.5 λ d (λ ist die Wellenlänge, und d die Distanz). Dieser Bereich muss frei von Störobjekten sein, sonst wird das Signal gestört, auch wenn die direkte Sichtlinie frei ist. 6

Kapitel 2. Grundlagen 2.4. Positionierung der Knoten im Visualisierungs-Tool Abbildung 2.2: Empfangsstärken Messung, d=5cm, max=2m Wie man erkennen kann, sind die Werte sehr undeterministisch, einerseits schwankt die Stärke auf einer Entfernung stark, andererseits ist keine monoton fallende Funktion zu erkennen, was eine Voraussetzung für eine Umrechnung ist. Antenne Abbildung 2.3: Antenne eines SunSPOTs Das Bild 2.3 ist ein Foto der Antenne eines SunsPOTs. Die Antenne sind die gedruck- 7

2.4. Positionierung der Knoten im Visualisierungs-Tool Kapitel 2. Grundlagen Abbildung 2.4: LIS3L02AQ auf SunSPOT ten Leitungen oberhalb des Metallschirms. Diese Leitungen ist nicht symmetrisch. Daher liegt die Vermutung nahe, dass die Senderichtung sehr asymmetrisch ist, also eine starke Richtcharakteristik hat. Dieses ist ein zusätzliches Problem, da man nicht davon ausgehen kann, dass die SunSPOTs immer gleich ausgerichtet sind. Zusammenfassung Die Idee, ein Netz anhand der Stärkeninformationen aufzubauen, musste auf Grund des oben beschriebenen Nicht-Determinismus des RSSI-Wertes beim Empfang verworfen werden. 2.4.2 Beschleunigungssensor Der auf den SunSPOTs verwendete Beschleunigungssensor wird von STMicroelectronics unter der Typenbezeichnung LIS3L02AQ hergestellt. Abbildung 2.4 zeigt die Position des Beschleunigungssensors auf dem SunSPOT Sensorboard. Neben den Sensoren für die eigentliche Messung der Beschleunigung, befinden sich noch direkt die AD-Wandler für das Signal mit in dem IC. 8

Kapitel 2. Grundlagen 2.4. Positionierung der Knoten im Visualisierungs-Tool Abbildung 2.5: Kondensatoren (C1, C2), mit beschleunigungsabhängiger Kapazität Die maximale Abtastrate beträgt 4kHz für die X- und für die Y-Achse und 2.5kHz für die Z-Achse. Der übliche Preis beträgt für Privatpersonen 7-11 C, je nach Abnahmemenge. Die physikalische Methode der Messung heißt kapazitive Beschleunigungsmessung. Dabei werden Kondensatoren verwendet, die nach dem gleichen Schema arbeiten wie der in Abbildung 2.5 abgebildete Kondensator. Die Masse m ist so aufgehängt, dass sie sich innerhalb einer Achse bewegen kann. Bei einer Beschleunigung der Masse m verändern sich die Abstände von d 01 und d 02 und damit die Kapazitäten von C1 und C2. Die Schaltung des LIS3L02AQ ist in Abbildung 2.6 dargestellt. Für jede Achse der Beschleunigungsmessung wird dabei ein Paar von den vorgestellten beschleunigungsabhängigen Kondensatoren verwendet. Dargestellt durch C s1x, C s2x, C s1y, C s2y, C s1z, C s 2z. Die Signale können dann an S1x, S2x, S1y, S2y, S1z, S2z gemessen werden. Um festzustellen, welche Genauigkeit der Beschleunigungssensor tatsächlich liefert, wurde zunächst eine einfache Testanwendung implementiert. Grundlegende Funktionalität sind hierfür: Eichen des Sensors Messen des zurückgelegten Weges Ausgabe der Werte über die USB-Schnittstelle Für das Auslesen des Messwertes vom Beschleunigungssensor stellt die API 7 Funktionen bereit: 1. getaccelx() Beschleunigungswert in X-Richtung 2. getaccely() Beschleunigungswert in Y-Richtung 9

2.4. Positionierung der Knoten im Visualisierungs-Tool Kapitel 2. Grundlagen Abbildung 2.6: Schaltung des LIS3L02AQ 10

Kapitel 2. Grundlagen 2.4. Positionierung der Knoten im Visualisierungs-Tool 3. getaccelz() Beschleunigungswert in Z-Richtung 4. setrestoffset() Kalibrieren der Ruhelage 5. getrelativeaccelx() Relativer Beschleunigungswert in X-Richtung 6. getrelativeaccely() Relativer Beschleunigungswert in Y-Richtung 7. getrelativeaccelz() Relativer Beschleunigungswert in Z-Richtung getaccelx(), getaccely() und getaccelz() liefern die Rohwerte der Beschleunigung ohne die Werte zu filtern oder zu verschieben. Die Funktion setrestoffset() eicht den Sensor auf eine bestimmte Ruhelage. Über getrelativeaccelx(), getrelativeaccely() und getrelativeaccelz() lassen sich die relativen Beschleunigungswerte zur Ruhelage, die mit setrestoffset() festgelegt wurde, abfragen. Um die Funktionen qualitativ vergleichen zu können, wurde eine Messung der Werte mit getaccelx() und getrelativeaccelx() in Ruhelage durchgeführt und die Werte mitprotokolliert. Das von uns gewählte Intervall, in dem die Messwerte protokolliert werden, liegt bei 6 ms. Abbildung 2.7 zeigt die Vergleichswerte für die beiden Funktionen der Beschleunigungsmessung in Richtung der X-Achse. Durch Abbildung 2.8 zeigt sich, dass die absoluten Messwerte von der relativen Funktion lediglich um +0.0156 verschoben sind. Dies hat den positiven Nutzen, dass die Werte näher an 0 liegen. Aus den gemessenen Beschleunigungen innerhalb der Intervalle, kann nun der zurückgelegte Weg bestimmt werden. Mathematisch gesehen wird die gemessene Beschleunigung a zweimal über die Zeit integriert. v = adt s = vdt Hieraus erhält man nun den zurückgelegten Weg s. Für die weitere Betrachtung wird nur noch mit den relativen Beschleunigungen gerechnet, da dies die einfachste Möglichkeit für eine erste Näherung für die Positionsbestimmung ist. Jede Messung eines physikalischen Sensors ist mit Fehlern behaftet, wodurch ein Drift in der Berechnung der Geschwindigkeit und damit in der Berechnung des Weges entsteht. Abbildung 2.9 zeigt den durch diesen Drift zurückgelegten Weg in 8 Sekunden. 11

2.4. Positionierung der Knoten im Visualisierungs-Tool Kapitel 2. Grundlagen Abbildung 2.7: Ausschnitt der Messung für absolute und relative Beschleunigungswerte der X-Achse in Ruhelage Abbildung 2.8: Ausschnitt der Messung für absolute und relative Beschleunigungswerte der X-Achse in Ruhelage Absolute Werte um +0.0156 verschoben 12

Kapitel 2. Grundlagen 2.4. Positionierung der Knoten im Visualisierungs-Tool Abbildung 2.9: Drift des Beschleunigungssensors in Ruhelage. Auf der x-achse ist der durch den Drift zurückgelegte Weg zu den auf der y-achse aufgetragenen Zeiten Um diesen Drift zu minimieren, wurden verschiedene Verfahren untersucht. Eine einfache Abgrenzung der Werte durch Schwellenwerte zeigte sich dabei als nicht geeignet. Das Verfahren, das wir für die folgenden Messungen gewählt haben, nennt sich gleitender Mittelwert. Hierbei werden für einen Messwert die letzten n Werte mit einbezogen. Der Wert für a in der oben dargestellten Integration ist also, bedingt durch den gleitenden Mittelwert, nicht der Messwert in einem Intervall, sondern der Durchschnittswert der letzten n gemessenen Werte. Erweitern könnte man dies mit einer Gewichtung, zu wieviel Prozent die alten Messwerte eingehen, was wir für den hier vorliegenden Fall jedoch nicht durchgeführt haben. Eine andere Möglichkeit wäre, eine Tiefpassfilterung zu verwenden. Um die Reproduzierbarkeit der Messwerte zu überprüfen, wurde ein einfacher Versuchsaufbau zusammengestellt. Die Abbildungen A.1, A.2 und A.3 zeigen den Aufbau. Für die vollständigen Messwerte und eine vollständige Versuchsbeschreibung findet sich in A. Bei diesem Versuchsaufbau wurde der SunSPOT in Y-Richtung mit einer Umlenkung durch ein fallendes Gewicht fünf Mal mit einer steigenden Beschleunigung um 0.98 Meter bewegt. Die Abbildung 2.10 zeigt den zurückgelegten Weg für alle fünf Messungen und damit auch, welche Abweichungen bei fünf Wiederholungen aufgetreten sind. Die Abbildung 2.11 zeigen die Glättung der Rohdaten durch den gleitenden Mittelwert mit einer Einbeziehung der letzten 50 Messwerte. 13

2.4. Positionierung der Knoten im Visualisierungs-Tool Kapitel 2. Grundlagen Abbildung 2.10: Gemessener Weg für fünf Wiederholungen Abbildung 2.11: Glättung der Rohdaten durch den gleitenden Mittelwert 14

Kapitel 2. Grundlagen 2.4. Positionierung der Knoten im Visualisierungs-Tool MESSUNG WEG GEMESSENER WEG DIFFERENZ 1 0.98 0.856-0.124 2 0.98 0.898-0.082 3 0.98 0.988 +0.008 4 0.98 0.913-0.067 5 0.98 1.010 +0.03 Tabelle 2.1: Abweichungen tatsächlich zurückgelegte Weg und gemessener Weg in Y Richtung Alle Angaben in Meter Die Abweichungen zum tatsächlich zurück gelegten Weg der fünf Messungen ist in Tabelle 2.1 zusammengefasst 15

2.4. Positionierung der Knoten im Visualisierungs-Tool Kapitel 2. Grundlagen 16

Kapitel 3 Implementierung 3.1 Erweiterung der Sensorknoten Um alle Ziele zu erreichen war es notwendig, die Software auf den Sensorknoten zu erweitern. Es wurden dazu neue Klassen erzeugt. Zum Beispiel eine Klasse, die Kommandos von USB entgegen nimmt, und verarbeitet (Kapitel 3.2) und eine Klasse, die das Datenversenden übernimmt (Kapitel 3.3). 3.2 Steuerung Um das Netz zu steuern, muss der in Kapitel 2.2 definierte zentrale Knoten Befehle vom PC per USB entgegennehmen. Dazu wurde ein Deterministisch-Endlicher Automat implementiert. Sobald ein Byte empfangen wird, wird der Automat abhängig vom aktuellen Zustand in den nächsten Zustand überführt. So werden die Steuereungsbefehle vom PC auf den Knoten übertragen, der dann diese Befehle ausführt. Folgende Kommandos können übergeben werden: 1. Reboot (zum neu flashen, so muss der SunSPOT nicht von Hand resettet werden) 2. Aktueller Knoten als zentralen Knoten im Netz bekannt machen. 3. Toggle LED (zwecks Identifikation) 4. TraceRoute (um die Route anzuzeigen) 17

3.2. Steuerung Kapitel 3. Implementierung 3.2.1 Reboot Das reboot-kommando ist ein spezielles Kommando, das vorher das Flash-Programm sendet. Eigentlich dazu gedacht, um einen Listener von SUN anszusprechen, wurde die Byte-Sequenz entschlüsselt und dem Automaten hinzugefügt. 3.2.2 Zentralen Knoten festlegen Um alle Daten zu empfangen, muss der aktuelle Knoten als zentraler Knoten festgelegt werden. Das heisst, alle andere Knotenmüssen die Adresse mitgeteilt bekommen, die der Knoten hat. Dazu erstellt der Knoten ein Datenpaket mit der Bekanntmachung und schickt es an die Adresse 0. Das heisst, dieses Paket wird im Netz geflutet. Jeder der das Paket empfängt, trägt also den Absender des Paketes als Datenziel ein, und braodcastet das Paket weiter. 3.2.3 Toggle LED Die fünfte LED wurde als Identifikations- LED festgelegt. Damit soll man Knoten identifizieren können. Also wenn man wissen will, welcher angezeigte Knoten welcher Knoten in der Realität entspricht. Wenn der Automat also im Zustand Toggle LED ist, dann liest er vom Bytestrom solange Bytes, bis eine Null kommt, und diesen so abschließt. Die gelesenen Bytes bilden die Adresse. Das ist so möglich, dass wir alle Adressen als lesbaren Hexdezimalcode nutzen.so können maximal 17 verschiedene Bytes kommen. Entweder die ASCII Representierung von den Zahlen Null bis Neun oder die Buchstaben A bis F. Als siebzehtes Byte kommt dann noch die 0, um den Stream abzuschließen. Sobald der Stream abgeschlossen wird, wird ein Paket erstellt, das den Toggle-LED Befehl enthält. Dieses Paket wird an das übergebene Ziel gesendet. Nun wird die LED getoggelt, das heisst, entweder an oder ausgeschaltet. 3.2.4 Traceroute Um die Route eines Paketes vom Quellknoten zum Zielknoten, zu visualisieren, wurde ein Traceroute implementiert. 18

Kapitel 3. Implementierung 3.3. Datensenden Der Automat liest dazu zwei Adressen ein. Das Vorgehen ist gleich dem Einlesen im Kapitel 3.2.3 Toggle LED. Danach wird das Paket angeschickt. Mehr dazu siehe im Kapitel 3.4. 3.3 Datensenden Dazu wurde ein neuer Pakettyp, D für Daten, definiert. In der Klasse läuft regelmäßig ein Timer (z.zt. alle 30 Sekunden), mit der der Knoten die Daten an die zentrale Stelle schickt.da die zentrale Stelle aber vorher nicht bekannt ist, wird das Senden so lange verzögert, bis eine zentrale Stelle bekannt ist. Sobald diese bekannt ist, werden diese Daten verschickt: 1. Eigene Adresse 2. Status Beacon 3. Status LED 4. Beacon-Adresse 5. Nachbarschaften mit Empfangsstärke 6. Anzahl Versendete Pakete pro Nachbar Aus diesen Daten wird dann die Anzeige generiert. 3.4 Traceroute Für das Traceroute wird der neue Pakettyp T definiert, der speziell behandelt wird. Ein TraceRoute hat drei Phasen: 1. Senden der Anforderung an den ersten Knoten 2. Senden des Traceroutes an den zweiten Knoten, dabei Aufsammeln aller Adressen 3. Senden der gesammelten Informationen zurück an den zentralen Knoten. 19

3.5. Berechnung der Positionen der Knoten im Netz Kapitel 3. Implementierung Wie in Kapitel 3.2.4 beschrieben, empfängt der zentrale Knoten per USB den TraceRoute- Befehl und schickt diesen in der Phase eins an den ersten Knoten weiter. Der erste Knoten empfängt nun das Paket und initiiert die zweite Phase, indem er ein neues Traceroute-Paket erzeugt, und diesem mitteilt, dass es zur Phase zwei gehört. Wenn ein Knoten ein Traceroute-Paket routen soll, sieht es in das Paket, ob es in der Phase zwei ist. Wenn ja, fügt es seine Adresse an das Paket an, und erst dann routet der Knoten das weiter. Der Empfängerknoten setzt nun die Phase im Paket auf drei und leitet das Paket an den zentralen Knoten weiter. Der zentrale Knoten empfängt nun dieses Paket und gibt den Inhalt mit dem Initialisationsstrings #T# an USB aus. Das Programm liest nun die Angaben und fügt alle Adressen in eine Tabelle ein. Beim zeichnen der Nachbarschaften wird nun nachgesehen, ob diese Verbindung in der Tabelle enthalten ist. Wenn ja, dann wird diese Verbindung rot gezeichnet. 3.5 Berechnung der Positionen der Knoten im Netz 3.5.1 Aufbau mittels eines Federmechanismus Da die Idee, die Positionen mittels des RSSI Wertes zu bestimmen, gescheitert war, wurde eine weitere Idee getestet: Das Netz mittels Federn aufzubauen. Alle Knoten werden per Zufall auf eine Fläche verteilt, und dann werden Kräfte definiert: Anziehende Kräfte zwischen Knoten, die eine Verbindung haben, und abweisende Kräfte zwischen Knoten ohne Verbindung. In Skizze 3.1 haben Knoten A und C eine Verbindung, und daher ziehen sie sich an. Knoten A und B sowie B und C haben keine Verbindung. Daher stoßen sie sich ab. Es wird nun immer für jeden Knoten die resultierende Kraft berechnet, und dann werden alle Knoten in die Richtung bewegt in die die resultierende Kraft wirkt. Dieses wird so oft wiederholt, bis die Summe der absoluten Bewegung nahe Null geht. Um ein Schwingen zu verhindern, wird noch eine Dämpfung mittels eines Widerstandsfaktors eingebaut. Das Ergebnis hängt stark von der initialen Positionierung ab. Wenn diese nicht gut gelöst ist, ist das Ergebnis nicht zu gebrauchen, da die Positionierung nicht den realen Positionen 20

Kapitel 3. Implementierung 3.5. Berechnung der Positionen der Knoten im Netz Abbildung 3.1: Skizze der Kräftewirkungen entspricht. Außerdem ist diese Technik für Netze mit wenigen Verbindungen ausgelegt. Allerdings muss man damit rechnen, dass die Knoten in den Netzen sehr viele Verbindungen haben, so dass diese Technik eher in ein Chaos ausartet. Anwendung Da wir die Position mittels des Beschleunigungssensors ermitteln (Siehe Kapitel 3.5.2), erscheint diese Technik überflüssig. Allerdings gibt es so genannte Basistationen, die nicht über das Sensorboard verfügen und daher auch nicht über den Beschleunigungssensor. Bei diesen wird die Federtechnik angewandt, um diese zu positionieren. 3.5.2 Beschleunigungssensor Die Analyse des Beschleunigungssensors aus Abschnitt 2.4.2 hat die nötigen Randbedingungen für die Anbindung an das Visualisierungs-Tool herausgestellt. Die Formeln für die Berechnung der Geschwindigkeit und damit des zurückgelegten Weges, wurden aus dem Programm aus 2.4.2 übernommen. Das Szenario für die Anwendung sieht dabei wie folgt aus: Positionierung eines Knotens auf einer bekannten Ursprungsposition. Aktivierung der Bewegungsmessung. 21

3.5. Berechnung der Positionen der Knoten im Netz Kapitel 3. Implementierung Verschicken der Daten an die Basisstation. Update der Position des Knotens im Visualisierungs-Tool. Ein erstes Problem stellt es dar, dass der Knoten, bevor das Routing startet, schon eine Verzerrung der Messintervalle hervorruft. Bedingt ist dies durch die Ausgaben auf der Textkonsole. Um dieses Problem quantitativ zu erfassen, wird der Code in Listing 3.1 beispielhaft betrachtet. Dieser Code wird ausgeführt, während der Knoten darauf wartet, dass das Routing aktiviert wird. Werden nun verschiedene Teile auskommentiert, zeigt Tabelle 3.1 die Auswirkungen. 1 while (true) 2 { 3 out = "#A# ich bin am leben"; 4 if (bvr_gestartet) 5 { 6 // Wird nicht ausgefuehrt im Idle-Mode wenn die initial Messung aktiv ist 7 } 8 else 9 { 10 out = out + ", aber nicht aktiv."; 11 } 12 System.out.println(out); 13 } Quellcode 3.1: Code, der während der Idle-Phase des Knotens ausgeführt wird Tabelle 3.1 zeigt die Zeiten der verschiedenen Fälle, die getestet wurden. Dies sind: Komplett Der Code in Listing in 3.1 wird komplett ausgeführt. Ohne println() Der Code in Listing in 3.1 wird ohne die println()-anweisung ausgeführt. Ohne String Operationen Vom Code in Listing in 3.1 wird nur noch die If-Abfrage ausgeführt. Obwohl die Messintervalle durch den parallel auf den SunSPOTs ausgeführten Routing- Algorithmus größer werden, kann die Position dennoch im Visalisierungs-Tool angezeigt werden. Wenn auch nicht so genau wie in der vorgestellten Messung der Bewegung in Y-Richtung, aber so genau, dass man zumindest Informationen erhält, wie der jeweilige SunSPOT zu anderen im Netz positioniert ist. 22

Kapitel 3. Implementierung 3.5. Berechnung der Positionen der Knoten im Netz DURCHSCHNITTS INTERVALL Komplett 11 5.02 Ohne println() 7 5.01 Ohne String Operationen 6 5 Tabelle 3.1: Abweichungen abhängig von Idle-Code in ms MAXIMALES INTERVALL 3.5.3 Beschleunigungssensor in der Anwendung Es wurden zwei Arten des Umgangs mit dem Beschleunigungssensor implementiert. Feste Position Bevor das BVR Protokoll gestartet wird, wird die Position festgestellt. Dazu aktiviert man die Messung, während der Knoten an einer definierten Stelle liegt, und trã Cgt den Knoten an den Zielpunkt. Währenddessen darf man den Knoten in keine der drei Achsen (X, Y und Z) kippen. Am Zielpunkt deaktiviert man die Messung. Nun schickt der Knoten die gemessene Position bei jedem Datenupdate mit. Bewegung Um die Bewegung eines Knoten zu sehen, muss man zuerst das BVR aktivieren. Nun legt man den Knoten an die Ausgangsposition und aktiviert die Messung. Jetzt Überträgt der Knoten alle 100ms die aktuelle Position. 23

3.5. Berechnung der Positionen der Knoten im Netz Kapitel 3. Implementierung 24

Kapitel 4 Anleitung Zu diesem im Bild 4.1 angezeigten Netz ergibt sich die Anzeige, wie sie in Bild 4.2 dargestellt ist. Abbildung 4.1: Foto eines Testnetzes Das fertige Programm besteht also, wie im Bild 4.2 dargestellt, aus zwei Elementen. In der Hauptfläche wird das Netzwerk dargestellt. Im unteren Bereich sind horizonal die Buttons angeordnet, mit denen man das Netzwerk steuern kann. 25

4.1. Anzeigen des Netzes Kapitel 4. Anleitung 4.1 Anzeigen des Netzes Abbildung 4.2: Screenshot des Programms 4.1.1 Initialisierung Bevor das Netz angezeigt werden kann, muss jeder Knoten seine Adresse und Nachbarschaftsinformation an das Tool senden. Dazu verbindet man einen beliebigen Knoten mit einem Linux-Rechner. Nun sollte das Device /dev/ttyacm0 erzeugt werden. Mit diesem Device kommuniziert die Anwendung mit dem Knoten. Nun muss man dem Netz sagen, dass dieser Knoten die zentrale Stelle ist. Dazu dient der Knopf setze Datenempfänger in dem Programm. Dieser muss betätigt werden. Alle Knoten starten nun einen Timer an, der die Daten (Beacon-Vector, Nachbarschaftsinformationen) regelmäßig an die zentrale Stelle schickt. 4.1.2 Anzeige Alle Knoten werden durch Kreise dargestellt. Im Normalfall sind diese schwarz. Rote Kreise sind Knoten, die als Beacon nach dem Paper [FRC + 05] agieren. Blaue Kreise sind Knoten, die seit einiger Zeit keine Daten geschickt haben und nur noch angezeigt werden, um die Informationen vollständig zu halten. 26

Kapitel 4. Anleitung 4.2. Steuerung des Netzes Die Verbindung zwischen den Knoten zeigt an, dass zwischen diesen eine Verbindung besteht. Wenn diese an einer Seite offen ist, liegt es daran, dass nur der eine Knoten (auf dessen Seite die Linie nicht offen ist), Verbindung zum anderen Knoten hat, aber nicht umgekehrt. Die Schrift unter den Kreisen ist rot, wenn die Knoten die LED aktiviert haben. Siehe dazu das Kapitel 4.2.1. 4.2 Steuerung des Netzes Mit den im Bild 4.2 erkennbaren Buttons kann man mit der Anwendung das Netz steuern. Die Befehle werden in den folgenden Unterkapiteln erklärt. 4.2.1 Identifizieren von Knoten Um sowohl einzelne Knoten zu identifizieren, als auch das Routing vom Zentralknoten zu den einzelnen Knoten zu testen, wurde die Identifizierungs-LED eingebaut. In der Anwendung kann man einen Knoten auswählen und dann auf Toggle LED klicken. Wenn alles klappt, dann wird die fünfte LED auf diesen Knoten getogglet, das heißt, entweder an- oder ausgeschaltet. Die LED kann auch mit dem Knoten an- oder ausgeschaltet werden. Dazu siehe das Kapitel 4.3. Knoten, deren LED aktiv ist, werden in der Übersicht mit roter Schrift dargestellt. 4.2.2 Traceroute Um die Route der Nachrichten anzuzeigen, wurde ein Traceroute implementiert. Dazu wählt man im Programm zwei Knoten an und drückt dann den Knopf Traceroute. Jetzt schickt der zentrale Knoten ein Paket an den ersten Knoten. Dieser schickt das Paket an den zweiten Knoten weiter und setzt ein Flag. Alle Knoten, die das Paket routen, hängen ihre Adresse an das Paket an. Der Zielknoten schickt dann das Paket zurück an den zentralen Knoten. Das Programm zeigt nun die Route mit roten Strichen an. 27

4.3. Steuerung des Knoten Kapitel 4. Anleitung 4.2.3 R Im Paper [FRC + 05] ist die Konstante R als Anzahl der Beacons definiert. Allerdings ist die Zahl nicht weiter spezifiziert. Daher kann man die Zahl on the fly ändern, um das das Verhalten des Netzes mit verschiedenen Anzahlen von Beacons zu testen. 4.3 Steuerung des Knoten Der Knoten muss mehrere Nutzereingaben entgegen nehmen, hat aber nur zwei Taster. Daher wurde ein Automat eingebaut. Die LEDs drei bis sechs nutzt der Automat. 3: Beschleunigungssensor kalibrieren 4: Beschleunigungssensor aufzeichnen 5: BVR aktivieren 6: Identitäts LED Die BVR-LED leuchtet am Anfang rot. Das heisst, auf dem Knoten ist noch kein BVR aktiviert. Erst wenn man dieses aktiviert, wird BVR und die ganze Kommunikation gestartet. Wenn die LED Grün leuchtet, ist BVR aktiv. Das kann nicht mehr zurückgenommen werden. Die Identitäts-LED dient zur Identifizierung des Knotens in der Anzeige. Wenn die LED aktiviert wurde, leuchtet die weiß, und in der Anzeige wird die ID des Knotens rot geschrieben. Mit der linke Taste wechselt man die Optionen, und mit der rechten Taste werden diese aktiviert / deaktiviert. 28

Kapitel 5 Fazit Das Projekt ist im großen und ganzen gelungen. Wir haben eine Möglichkeit geschaffen, das Netz zu visualisieren, zu steuern und zu debuggen. Dadurch sind auch die erhofften Synergieeffekte aufgetreten, da wir durch dieses Tool das Verhalten des Netzes viel besser erfassen konnten. Einzelne Teilaspekte sind aber leider nicht so zu nutzen gewesen, wie wir es uns erhofft haben: RSSI Durch die Erfahrung, die wir während des Praktikums mit den SunSPOTs gesammelt haben, haben wir leider die Idee der Feststellung der Position mittels des RSSI Wertes fallen lassen müssen. Die gemessenen RSSI Werte des SunSPOT eignen sich nicht zur Abstandsbestimmung, da diese im Kurzbereich nicht deterministisch genug sind. Die ganze Problematiken waren uns am Anfang nicht bewusst. Beschleunigungssensor Die Messungen mit dem Beschleunigungssensor parallel zum Beacon Vector Routing sind eine lohnenswerte Methode, um die realen Positionen der Knoten auf Positionen im Visualiserungs-Tool näherungsweise abzubilden. In der vorgestellten Lösung ist der entscheidende Nachteil, dass die Neigung des SunSPOT s mittels einer Eichung eliminiert wird. Dadurch kommt es zu Ungenauigkeiten in der Messung, sobald der SunSPOT geneigt wird. Insgesamt wurde aber trotzdem ein recht annehmbares Ergebnis für die Positionierung 29

Kapitel 5. Fazit im Visualiserungs-Tool erreicht, wenn man davon ausgeht, dass die Knoten nicht geneigt werden. Ein sinnvolle Erweiterung wäre es, nun die Erdanziehungskraft abhängig von der Neigung des Sensors raus zu rechnen, um zu erkennen, ob sich der SunSPOT in einer Richtung bewegt oder ob er nur geneigt wurde. 30

Kapitel 6 Literaturverzeichnis [FRC + 05] FONSECA, Rodrigo ; RATNASAMY, Sylvia ; CULLER, David ; SHENKER, Scott ; STOICA, Ion: Beacon vector routing: Scalable point-to-point routing in wireless sensornets. In: In NSDI, 2005 [LM03] LIU, Ting ; MARTONOSI, Margaret: Impala: a middleware system for managing autonomic, parallel sensor systems. In: PPoPP 03: Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming. New York, NY, USA : ACM, 2003. ISBN 1 58113 588 2, S. 107 118 31

32 Kapitel 6. Literaturverzeichnis

Anhang A Vollständige Messwerte Alle folgenden Messwerte sind bezogen auf die Y-Achse des SunSPOT s. Die Abbildungen A.1, A.2 und A.3 zeigen den gewählten Versuchsaufbau. Dabei wird der SunSPOT in negativer Y-Richtung über ein Gewicht, das gerade nach unten fällt, beschleunigt. Als Gewicht dienten zwei Packungen Taschentücher. Das Gewicht berührt den Boden, kurz bevor der SunSPOT den Gummidämpfer erreicht. So wird sichergestellt, dass der größte Teil der Geschwindigkeit durch die Reibung zwischen SunSPOT und Tischoberfläche abgebaut wird. Damit der SunSPOT sich nur in negativer Y-Richtung bewegt, sind die in den Abbildungen A.1, A.2 und A.3 Führungsschienen aus Holz vorhanden. 33

Anhang A. Vollständige Messwerte Abbildung A.1: Versuchsaufbau für Beschleunigungsmessung Abbildung A.2: Versuchsaufbau für Beschleunigungsmessung 34

Anhang A. Vollständige Messwerte Abbildung A.3: Versuchsaufbau für Beschleunigungsmessung 35