Benutzer-Werkzeuge

Webseiten-Werkzeuge


projektews2013:wwsr:start:projektdokumentation

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
projektews2013:wwsr:start:projektdokumentation [2014/03/24 12:32]
yuri_gbur
projektews2013:wwsr:start:projektdokumentation [2016/01/21 12:45] (aktuell)
Zeile 12: Zeile 12:
 Ultraschall wahrnehmen und somit Hindernissen auf dem Weg zur WLAN-Quelle ausweichen. Im Fall der Umgebungswahrnehmung soll  Ultraschall wahrnehmen und somit Hindernissen auf dem Weg zur WLAN-Quelle ausweichen. Im Fall der Umgebungswahrnehmung soll 
 beachtet werden, dass der Roboter kleine Hindernisse,​ wie z.B Kabel, nicht als Grund zum ausweichen betrachtet. ​ beachtet werden, dass der Roboter kleine Hindernisse,​ wie z.B Kabel, nicht als Grund zum ausweichen betrachtet. ​
-Optional, je nach Zeit und Möglichkeiten,​ soll der WWSR eine Ladefläche besitzen, mit der er Kleine ​Gegenstände transportieren+Optional, je nach Zeit und Möglichkeiten,​ soll der WWSR eine Ladefläche besitzen, mit der er kleine ​Gegenstände transportieren
 kann und einen zweiten WLAN-Modus, mit dem man ihm über eine mobile Application Befehle zur Fahrtrichtung geben kann. kann und einen zweiten WLAN-Modus, mit dem man ihm über eine mobile Application Befehle zur Fahrtrichtung geben kann.
  
-<​note>​Knapp und gut (Felix)</​note>​ 
  
 ====2. Allgemeiner Ablauf==== ====2. Allgemeiner Ablauf====
  
-Als erstes haben wir uns die WLAN-Antenne vorgenommen,​ sodass sie die WLAN-Stärke in eine Richtung verstärkt wahrnehmen kann. Der nächste Punkt war dann eine Möglichkeit zu finden, bei der wir die WLAN-Antenne um 360° rotieren lassen können. Danach haben wir angefangen das Robotergerüst zu bauen. Darauf folgte dann die Montierung der Räder mit den dazugehörigen Motoren. Zum Schluss wurden dann die Ultraschallgeräte ​zusammen mit dem Arduino, der WLAN-Antenne und weiterem Zubehör am Robotergerüst befestigt.+Als erstes haben wir uns die WLAN-Antenne vorgenommen,​ sodass sie die WLAN-Stärke in eine Richtung verstärkt wahrnehmen kann. Der nächste Punkt war dann eine Möglichkeit zu finden, bei der wir die WLAN-Antenne um 360° rotieren lassen können. Danach haben wir angefangen das Robotergerüst zu bauen. Darauf folgte dann die Montierung der Räder mit den dazugehörigen Motoren. Zum Schluss wurden dann der Ultraschallentfernungsmesser (mit Servo) ​zusammen mit dem Arduino, der WLAN-Antenne und weiterem Zubehör am Robotergerüst befestigt.
 Momentan beschäftigen wir uns mit der Handy-Applikation. Momentan beschäftigen wir uns mit der Handy-Applikation.
-<​note>​Felix:​ Im Präsens liest sich das etwas komisch, denn das Projekt ist ja (mehr oder weniger) abgeschlossen - formuliert daher den bereits erledigten Teil in eine Vergangenheitsform um. Kleinere Ungenauigkeiten:​ Die Räder wurden nicht "​gebaut",​ die "​Ultraschallgeräte"​ sind  Ultraschallentfernungsmesser,​ sie wurden auch nicht "​eingestellt",​ sondern es wurde eine Entfernung festgelegt, ab der etwas passieren soll)</​note>​ +
-<​note>​bearbeitet</​note>​+
  
 ====3. Teilschritte==== ====3. Teilschritte====
Zeile 29: Zeile 27:
 Wir verwenden als Material hauptsächlich Holz, da wir damit die besten Möglichkeiten erzielen stabil und gleichzeitig flexibel zu bauen. Zum aktuellen Zeitpunkt haben wir die Stepper-Motoren mit jeweils vier M3 Schrauben an ein trapezförmiges Holzbrett geschraubt und diese wiederum mit kleinen Holzklötzen an die Hauptfläche montiert. Die Hauptfläche ist 8-eckig, allerdings nicht durchgehend symmetrisch. Zur Frontrichtung haben wir die Grundfläche etwas länger gemacht, um ein drittes Rad befestigen zu können. Die verlängerte Spitze gewährleistet auch, dass der Roboter beim drehen an anderen Stellen nirgends hängen bleibt. Die komplette Konstruktion ist ungefähr 30cm lang, 20cm breit und die Grundplatte ist c.a. 8cm vom Boden entfernt (dort wo die Motoren sind ist die Höhe geringer). Wir verwenden als Material hauptsächlich Holz, da wir damit die besten Möglichkeiten erzielen stabil und gleichzeitig flexibel zu bauen. Zum aktuellen Zeitpunkt haben wir die Stepper-Motoren mit jeweils vier M3 Schrauben an ein trapezförmiges Holzbrett geschraubt und diese wiederum mit kleinen Holzklötzen an die Hauptfläche montiert. Die Hauptfläche ist 8-eckig, allerdings nicht durchgehend symmetrisch. Zur Frontrichtung haben wir die Grundfläche etwas länger gemacht, um ein drittes Rad befestigen zu können. Die verlängerte Spitze gewährleistet auch, dass der Roboter beim drehen an anderen Stellen nirgends hängen bleibt. Die komplette Konstruktion ist ungefähr 30cm lang, 20cm breit und die Grundplatte ist c.a. 8cm vom Boden entfernt (dort wo die Motoren sind ist die Höhe geringer).
 Die Kabel für die Motoren sind durch Löcher nach oben auf die Grundplatte geführt. Die Kabel für die Motoren sind durch Löcher nach oben auf die Grundplatte geführt.
-<​note>​FelixDie Beschreibung ist ja im Grunde nicht schlecht, aber wenn es darum geht, Geometrie zu erklären, geht nichts über eine kleine (Bleistift) Skizze...\\ + 
-Nadine: eine Möglichkeit wäre auch, wenn gute Fotos vorhanden ​sind, diese zu beschriften,​ dabei sollte aber darauf geachtet werdden, dass alles gut zu erkennen ist</​note>​+{{:projektews2013:​wwsr:​start:​wwsr-skizze-01.jpg?430|}} {{:​projektews2013:​wwsr:​start:​wwsr-skizze-02.jpg?430|}} 
 +(Längenangaben ​sind nicht zu 100% genau!) 
  
 ==3.1.1 Materialien:​== ==3.1.1 Materialien:​==
Zeile 41: Zeile 41:
 ===3.2 WLAN-Antenne:​=== ===3.2 WLAN-Antenne:​===
  
-Als erstes haben wir versucht, ​den WLAN-Chip (RN-XV) über den Arduino einzustellen und eine Verbindung zu einem zweiten WLAN-Gerät herzustellen. Das größte Problem dabei war die Einstellung der Baudraten, um die Kommunikation die jeweiligen Komponenten zu gewährleisten. Besonders sollte man hier darauf achten, dass der verwendete Microcontroller die benötigten Baudraten unterstützt, denn sobald der WLAN-Chip einmal auf eine Baudrate ​eingestellt wurdekann es seindass man diese nur über ein Microcontroller der die Baudrate unterstützt wieder ändern kann, da sonst die Kommunikation der beiden Bauteile nicht unbedingt gewährleistet wird. Wir haben uns für den Arduino Mega entschieden,​ da dieser alle notwendigen Baudraten unterstützt und zu dem eine serielle Schnittstelle auf Hardware-Basis besitzt, die sich für die Verbindung zum WLAn-Chip anbietet. Zudem ist die von uns verwendete "​WiFly"​ Bibliothek sehr groß und verlangsamt so das Verbinden mit einem WLAN.Netzwerk bei kleineren Microcontrollern. +==3.2.1 Integrierung des WiFly-Chips:​== 
- +Als erstes haben wir versucht, ​das WLAN-Modul ("RN-XV WiFly Modul") über den Arduino einzustellen und eine Verbindung zu einem zweiten WLAN-Gerät herzustellen. Das größte Problem dabei war die Einstellung der Baudraten, um die Kommunikation die jeweiligen Komponenten zu gewährleisten. Besonders sollte man hier darauf achten, dass der verwendete Microcontroller die benötigten Baudraten unterstützt. Gewählt haben wir eine Baudrate ​von 115200das ermöglicht eine Datenübertragungsrate von 11520 byte/s bzw. 11,52KB/s. Wir haben uns für den Arduino Mega entschieden,​ da dieser alle notwendigen Baudraten unterstützt und zu dem eine serielle Schnittstelle auf Hardware-Basis besitzt, die sich für die Verbindung zum WiFly-Modul anbietet. Zudem ist die von uns verwendete "​WiFly"​ Bibliothek sehr groß und verursacht unerklärliche Abstürze, wenn der Speicher voll ist, was bei kleinerem Microcontrollern (wie z.B. dem Arduino Nanodurchaus passieren kann.
-<​note>​Felix:​ Wie heißt das Modul genau? (Typenbezeichung). Welche Baudrate nutzt Ihr letztendlich?​\\ Kleine Anmerkung: Der Nano hat tatsächlich oft etwas wenig Speicher für die Libraries, das verlangsamt jedoch nicht die Geschwindigkeit (sondern ​verursacht unerklärliche Abstürze, wenn der Speicher voll ist). Vielleicht war der Initialisierungsprozess langsamer, weil eine niedrigere Bausrate verwendet wurde?</​note>​+
  
 +==3.2.2 Die Yagi-Uda-Richtantenne:​==
 Nach erfolgreichem Einrichten einer WLAN-Verbindung zwischen dem Arduino und einem Netzwerk, haben wir uns überlegt, wie wir die Antenne so modifizieren können, dass wir die Möglichkeit haben die Richtung des Signalursprungs zu ermitteln. Die Grundüberlegung die wir hatten, war eine sich im Kreis drehende Richtantenne (ähnlich wie ein Radar), da wir nur mit einer Antenne die Richtung bestimmen wollen und nicht den Ursprung über mehrere Antennen anpeilen müssen. Nach einigem Recherchieren haben wir dann die sogenannte "​0-Euro-Antenne"​ gefunden (http://​www.heise.de/​netze/​artikel/​Die-0-Euro-Antenne-223704.html). Dieser Antennenaufbau lässt sich mit geringen Materialkosten und gut zugänglichen Materialien bauen. Mit einem Styropor-Block und den Kupferdrähten eines Starkstromkabels haben wir den Aufbau umgesetzt. Dabei traten die Probleme auf, dass erstens die Abstände und die Länge der Drähte sehr genau abgemessen werden müssen und zweitens die Antenne der Standardausführung des RN-XV zu kurz ist, um die Richtantenne sinnvoll daran zu montieren. Ein weiteres Hindernis war, dass das uns bis dahin zugängliche Treiber-Shield zusätzlich noch einen Motortreiber für Schrittmotoren hatte, dessen Kühlkörper viel Platz weggenommen hat. Inzwischen verwenden wir 2 neue Komponenten,​ einen neuen WLAN-Chip (RN-XV mit SMA-Connector für eine größere Antenne) und ein neues Shield nur für WLAN-Chips, welche den Aufbau vereinfacht haben und unter anderem mit einer weiteren, platzsparenden zweiten Version der Antenne, die Richtungsbestimmung präziser ermöglicht haben. Achtung, die Abstände der Pins auf dem neuen Shield sind kleiner als die Pins der sonst im Labor verwendeten Komponenten. Wenn man die Kontakte Löten möchte, empfiehlt es sich die Kabel ein zweites mal zu befestigen, damit die Verbindungsstellen beim drehen der Antenne nicht so stark belastet werden. Aus Erfahrung lohnt es sich nicht die Kontakte zu isolieren, da so, gerade durch die hohe Belastung,​leicht nun nicht mehr sichtbare Kontaktbrüche entstehen können.  ​ Nach erfolgreichem Einrichten einer WLAN-Verbindung zwischen dem Arduino und einem Netzwerk, haben wir uns überlegt, wie wir die Antenne so modifizieren können, dass wir die Möglichkeit haben die Richtung des Signalursprungs zu ermitteln. Die Grundüberlegung die wir hatten, war eine sich im Kreis drehende Richtantenne (ähnlich wie ein Radar), da wir nur mit einer Antenne die Richtung bestimmen wollen und nicht den Ursprung über mehrere Antennen anpeilen müssen. Nach einigem Recherchieren haben wir dann die sogenannte "​0-Euro-Antenne"​ gefunden (http://​www.heise.de/​netze/​artikel/​Die-0-Euro-Antenne-223704.html). Dieser Antennenaufbau lässt sich mit geringen Materialkosten und gut zugänglichen Materialien bauen. Mit einem Styropor-Block und den Kupferdrähten eines Starkstromkabels haben wir den Aufbau umgesetzt. Dabei traten die Probleme auf, dass erstens die Abstände und die Länge der Drähte sehr genau abgemessen werden müssen und zweitens die Antenne der Standardausführung des RN-XV zu kurz ist, um die Richtantenne sinnvoll daran zu montieren. Ein weiteres Hindernis war, dass das uns bis dahin zugängliche Treiber-Shield zusätzlich noch einen Motortreiber für Schrittmotoren hatte, dessen Kühlkörper viel Platz weggenommen hat. Inzwischen verwenden wir 2 neue Komponenten,​ einen neuen WLAN-Chip (RN-XV mit SMA-Connector für eine größere Antenne) und ein neues Shield nur für WLAN-Chips, welche den Aufbau vereinfacht haben und unter anderem mit einer weiteren, platzsparenden zweiten Version der Antenne, die Richtungsbestimmung präziser ermöglicht haben. Achtung, die Abstände der Pins auf dem neuen Shield sind kleiner als die Pins der sonst im Labor verwendeten Komponenten. Wenn man die Kontakte Löten möchte, empfiehlt es sich die Kabel ein zweites mal zu befestigen, damit die Verbindungsstellen beim drehen der Antenne nicht so stark belastet werden. Aus Erfahrung lohnt es sich nicht die Kontakte zu isolieren, da so, gerade durch die hohe Belastung,​leicht nun nicht mehr sichtbare Kontaktbrüche entstehen können.  ​
  
 +==3.2.3 Abschluss:​==
 Die ganze Konstruktion haben wir dann probeweise auf einem Servo-Motor montiert, um zu testen, ob sich die Antenne auch automatisch in die richtige Position ausrichtet. Das hat ohne große weitere Modifikationen der Antenne schnell funktioniert und wir konnten anfangen die Antenne auf einen Stepper-Motor mit 360° Drehwinkel zu montieren (Auf die Stepper-Motoren gehe ich später bei der Einstellung der Räder genauer ein).  Die ganze Konstruktion haben wir dann probeweise auf einem Servo-Motor montiert, um zu testen, ob sich die Antenne auch automatisch in die richtige Position ausrichtet. Das hat ohne große weitere Modifikationen der Antenne schnell funktioniert und wir konnten anfangen die Antenne auf einen Stepper-Motor mit 360° Drehwinkel zu montieren (Auf die Stepper-Motoren gehe ich später bei der Einstellung der Räder genauer ein). 
 Da wir keine Schleifringe zu Verfügung haben, die uns die Möglichkeit gegeben hätten kontinuierlich die Antenne im Kreis zu drehen, haben wir den Quellcode so geschrieben,​ dass der Stepper-Motor nach 360° die Richtung wechselt und wieder zurück läuft, um ein Aufwickeln der Kabel zu verhindern ([[projekteWs2013:​WWSR:​start:​robotwlankrammitstepper| Quellcode]]). Da wir keine Schleifringe zu Verfügung haben, die uns die Möglichkeit gegeben hätten kontinuierlich die Antenne im Kreis zu drehen, haben wir den Quellcode so geschrieben,​ dass der Stepper-Motor nach 360° die Richtung wechselt und wieder zurück läuft, um ein Aufwickeln der Kabel zu verhindern ([[projekteWs2013:​WWSR:​start:​robotwlankrammitstepper| Quellcode]]).
Zeile 54: Zeile 55:
    *Hier die Links zu den WiFly Bibliotheken:​ 1. [[https://​github.com/​Zapalot/​WiFlyHQ|WiFlyHQ]] ​ 2. [[https://​github.com/​Zapalot/​ArdOscForWiFlyHQ|ArdOscForWiFlyHQ]]    *Hier die Links zu den WiFly Bibliotheken:​ 1. [[https://​github.com/​Zapalot/​WiFlyHQ|WiFlyHQ]] ​ 2. [[https://​github.com/​Zapalot/​ArdOscForWiFlyHQ|ArdOscForWiFlyHQ]]
  
-==3.2.Materialien:​==+==3.2.Materialien:​==
   * Styropor-Block (c.a 15cm x 5cm x 2cm)   * Styropor-Block (c.a 15cm x 5cm x 2cm)
   * RN-XV Chip mit SMA-Connector   * RN-XV Chip mit SMA-Connector
Zeile 66: Zeile 67:
   * Holzklotz als Sockel für die Antenne   * Holzklotz als Sockel für die Antenne
   * Gewindestäbe (lang genug, um den StepperMotor mit dem Sockel zu befestigen) sowie Unterlegscheiben und Muttern   * Gewindestäbe (lang genug, um den StepperMotor mit dem Sockel zu befestigen) sowie Unterlegscheiben und Muttern
-<​note>​Felix:​Gefällt mir! Ein paar passende Abschnittsüberschriften könnten die Übersichtlichkeit noch etwas erhöhen.</​note>​ 
  
 ===3.3 Räder / Stepper-Motoren:​=== ​ ===3.3 Räder / Stepper-Motoren:​=== ​
-<​note>​Felix:​ Hier fehlen 1-2 einleitende Sätze: Für was braucht Ihr die Stepper überhaupt und was sind sie? Was für einen Typen benutzt Ihr? Wozu ist dieser Treiber überhaupt da und welche Bezeichnung hat er?</​note>​ 
-<​note>​bearbeitet</​note>​ 
 {{ :​projektews2013:​wwsr:​start:​0j3360.600.png?​direct&​400|}}Ein Steppermotor (auf deutsch Schrittmotor) ist ein Motor, der ein elektromagnetisches Feld erzeugt, wodurch sich der Rotor dreht. Insgesamt sind im Roboter drei dieser Motoren verbaut (1 für die Antenne und 2 für die Räder). Dieser Motor eignet sich gut für die Antenne, da er in der Lage ist sich um 360° zu drehen, was für die hier zwingend notwendig ist. Noch essentieller sind die Motoren für die Räder, da sie sich theoretisch ewig in eine Richtung drehen können ohne, dass sich Kabel aufwickeln. {{ :​projektews2013:​wwsr:​start:​0j3360.600.png?​direct&​400|}}Ein Steppermotor (auf deutsch Schrittmotor) ist ein Motor, der ein elektromagnetisches Feld erzeugt, wodurch sich der Rotor dreht. Insgesamt sind im Roboter drei dieser Motoren verbaut (1 für die Antenne und 2 für die Räder). Dieser Motor eignet sich gut für die Antenne, da er in der Lage ist sich um 360° zu drehen, was für die hier zwingend notwendig ist. Noch essentieller sind die Motoren für die Räder, da sie sich theoretisch ewig in eine Richtung drehen können ohne, dass sich Kabel aufwickeln.
  
Zeile 85: Zeile 83:
  
 ===3.4 Ultraschallsender / -empfänger:​=== ===3.4 Ultraschallsender / -empfänger:​===
-<​note>​Felix:​ Auch hier wäre ein einführender Satz schön. Außerdem fehlen ein paar Worte zur grundsätzlichen Funktionsweise des Sensors (der übrigends kein Chip sondern eher ein Modul ist.)</​note>​ 
-<​note>​bearbeitet</​note>​ 
 Zur Raumwahrnehmung des Roboters benutzen wir das Ultraschallwellen-Modul HC-SR04. Dieses Modul sendet ein Ultraschallsignal aus, welches auf ein Objekt trifft, reflektiert wird und es wieder auffängt. Das Modul errechnet aus der Zeit die das Schallsignal benötigt hat die Entfernung zum Objekt aus. Zur Raumwahrnehmung des Roboters benutzen wir das Ultraschallwellen-Modul HC-SR04. Dieses Modul sendet ein Ultraschallsignal aus, welches auf ein Objekt trifft, reflektiert wird und es wieder auffängt. Das Modul errechnet aus der Zeit die das Schallsignal benötigt hat die Entfernung zum Objekt aus.
  
Zeile 96: Zeile 92:
  
 ==3.4.1 Materialien:​== ==3.4.1 Materialien:​==
-  * HC SR04 Sonar-Modul+  * HC-SR04 Sonar-Modul
   * Servomotor mit 180°    * Servomotor mit 180° 
   * Holzklotz zur Befestigung des Moduls am Servo   * Holzklotz zur Befestigung des Moduls am Servo
Zeile 102: Zeile 98:
 ====4. Fernsteuerung per WLAN/​Android Applikation==== ====4. Fernsteuerung per WLAN/​Android Applikation====
 {{ :​projektews2013:​wwsr:​start:​screenshot_2014-03-16-22-15-35.png?​100|}} {{ :​projektews2013:​wwsr:​start:​screenshot_2014-03-16-22-15-35.png?​100|}}
-Dieser Prozess ist noch in Bearbeitung. Ersteinmal haben wir einen zweiten ​WiFly-Chip an den Arduino angeschlossen. Dies ist essentiell, da der WiFly zum Messen der WLAN-Stärke in einen anderen Modus als zum Senden/​Empfangen von Daten sein muss. Die Umsellung von einem Modus (finishCommand() - Messen der WLAN-Stärke,​ startCommand() - Senden/​Empfangen von Daten) in den anderen dauert ca. 500ms. Diese Wartezeit macht eine "​Realtime"​-Scannung nicht möglich. Daher benutzen wir zwei WiFly-Chipseiner der konstant in der Lage ist zu senden/​empfangen und einer der dauerhaft die WLAN-Stärke messen kann.+Dieser Prozess ist noch in Bearbeitung. Ersteinmal haben wir ein zweites ​WiFly-Modul an den Arduino angeschlossen. Dies ist essentiell, da der WiFly zum Messen der WLAN-Stärke in einen anderen Modus als zum Senden/​Empfangen von Daten sein muss. Die Umsellung von einem Modus (finishCommand() - Messen der WLAN-Stärke,​ startCommand() - Senden/​Empfangen von Daten) in den anderen dauert ca. 500ms. Diese Wartezeit macht eine "​Realtime"​-Scannung nicht möglich. Daher benutzen wir zwei WiFly-Moduleeins das konstant in der Lage ist zu senden/​empfangen und eins der dauerhaft die WLAN-Stärke messen kann.
 Bisher haben wir es geschafft die Daten der 360° WLAN-Scannung auf dem Handy zu empfangen und in einem sich selbst aktualisierenden und skalierenden Graph darzustellen. Rechts ein Foto zur Veranschaulichung. Bisher haben wir es geschafft die Daten der 360° WLAN-Scannung auf dem Handy zu empfangen und in einem sich selbst aktualisierenden und skalierenden Graph darzustellen. Rechts ein Foto zur Veranschaulichung.
  
Zeile 117: Zeile 113:
 Die Richtantenne dreht sich gegen den Uhrzeigersinn um 360 Grad. Während der Drehung misst sie immer wieder die Signalstärke zum mit sich verbundenen Router. Der höchste gemessenen Wert wird in einer Variable gespeichert zusammen mit der Step-Anzahl die an dem Punkt der höchsten Messung zurück gelegt wurde. Diese Step-Anzahl wird dann einer Methode übergeben, die diese umrechnet in die Anzahl der Steps, die die Räder drehen müssen damit sich der Roboter im richtigen Winkel ausrichtet. Die Richtantenne dreht sich gegen den Uhrzeigersinn um 360 Grad. Während der Drehung misst sie immer wieder die Signalstärke zum mit sich verbundenen Router. Der höchste gemessenen Wert wird in einer Variable gespeichert zusammen mit der Step-Anzahl die an dem Punkt der höchsten Messung zurück gelegt wurde. Diese Step-Anzahl wird dann einer Methode übergeben, die diese umrechnet in die Anzahl der Steps, die die Räder drehen müssen damit sich der Roboter im richtigen Winkel ausrichtet.
  
-===5.3. Der Loop=== ​  +===5.3. Der Loop=== 
 +Am beginn des Loops wird davon ausgegangen,​ dass der Roboter bereits Ausgerichtet ist. Das passiert entweder im Setup oder am Ende eines Loop-Durchgangs. Der Loop beginnt damit, dass der Roboter geradeaus fährt. Während er in die Richtung fährt in die er sich ausgerichtet hat, überprüft er regelmäßig ob der Ultraschallsensor Gegenstände,​ die in Fahrtrichtung stehen, ortet und/oder ob die "​Bumper"​ an den Flügeln vor den Rädern betätigt sind. Wenn der Ultraschallsensor einen Gegenstand ortet, wird die ausweichen Methode aufgerufen und wenn einer der "​Bumper"​ reagiert, setzt der Roboter ein Stück zurück und weicht entgegengesetzt der Richtung des ausgelösten "​Bumpers aus.  
 +Die Ausweichmethode hat beginnt damit, dass der auf dem Servo montierte Ultraschallsensor nach rechts und links um 90 Grad geschwenkt wird, dabei wird überprüft in welcher der beiden Richtungen mehr platz ist. Je nach Ergebnis der Messungen reagiert der Roboter unterschiedlich. Sollte in eine der Richtungen mehr als 50 cm platz sein dreht sich der Roboter in diese Richtung und fährt gerade aus. Die Maximale Distanz bis zum nächsten Hindernis wird in einer Variable gespeichert und der Roboter fährt obwohl er mit dem Ultraschallsensor in die Ursprüngliche Fahrtrichtung misst nicht gegen ein anderes Hindernis. Falls der Roboter während diesem Schritt eine Lücke findet, dreht er sich in die ursprüngliche Fahrtrichtung und führt eine erneute Messung durch. Sollte der Fall nicht gegeben sein misst der Roboter direkt neu.  
 +Der zweite Fall ist, dass der Roboter in eine Richtung weniger als 50 cm hat, aber mehr als 20 cm. dann dreht der Roboter um und fährt in die entgegengesetzte Richtung um dann mit dem oberen Schritten weiter zu machen. 
 +Im dritten Fall, fährt der Roboter Rückwärts,​ wenn er rechts und links zu wenig Platz hat um zu drehen und verfährt dann wie in den anderen Fällen.  
 +Ein weiterer wichtiger Bestandteil beim Seitwärts zu einer Wand fahren nach dem ersten Ausweichen ist die Möglichkeit des Roboters geringfügig die Fahrtrichtung zu korrigieren,​ wenn die Wand dem Schallsensor zu nahe kommt. 
 +Ein weitere Bestandteil der auf Grund der Zeit nicht mehr zustande gekommen ist, wäre die "​Bumper"​ auch während des Ausweichens sinnvoll zu integrieren um das Ausweichen zu optimieren und die Kollisionsgefahr zu verringern. 
 +   ​
  
- +====6. Aktueller Stand/Ergebnis==== 
- +''​29.03.2014 | 02:41''​
-====5. Aktueller Stand==== +
-''​23.03.2014 | 22:47''​+
  
 Bis jetzt haben wir den Roboter weitestgehend fertig. Der WWSR ist in der Lage das WLAN-Signal auf mittlere Distanz (~5 meter) zu orten und sich dementsprechend auszurichten. Er fährt auf diese Quelle zu bis er auf ein Objekt trifft, und weicht daraufhin intelligent aus. Nach dem Ausweichen richtet sich der Roboter erneut aus. Bis jetzt haben wir den Roboter weitestgehend fertig. Der WWSR ist in der Lage das WLAN-Signal auf mittlere Distanz (~5 meter) zu orten und sich dementsprechend auszurichten. Er fährt auf diese Quelle zu bis er auf ein Objekt trifft, und weicht daraufhin intelligent aus. Nach dem Ausweichen richtet sich der Roboter erneut aus.
 Als nächstes werden wir noch einen "​Stoßsensor"​ vorne anbauen, für den Fall, dass der Roboter an ein Objekt stößt. Sollte dies der Fall sein soll der WWSR dieses Objekt umfahren. Dieser "​Bumper"​ ist vorallendingen dann notwendig wenn, das im Weg stehende Objekt zu niedrig für den Entfernungsmesser ist. Desweiteren arbeiten wir noch an einer Handy-Applikation,​ die es uns erlaubt die Daten der Sensoren auszulesen bzw. den Roboter selber zu steuern. Als nächstes werden wir noch einen "​Stoßsensor"​ vorne anbauen, für den Fall, dass der Roboter an ein Objekt stößt. Sollte dies der Fall sein soll der WWSR dieses Objekt umfahren. Dieser "​Bumper"​ ist vorallendingen dann notwendig wenn, das im Weg stehende Objekt zu niedrig für den Entfernungsmesser ist. Desweiteren arbeiten wir noch an einer Handy-Applikation,​ die es uns erlaubt die Daten der Sensoren auszulesen bzw. den Roboter selber zu steuern.
  
-<​note>​Nadine:​ Was heißt mittlere Distanz?</​note>​ +===6.1 Fotostrecke zur Entwicklung des WWSR===
-<​note>​bearbeitet</​note>​ +
- +
-===5.1 Fotostrecke zur Entwicklung des WWSR===+
  
  
 {{:​projektews2013:​wwsr:​start:​img_0594.jpg?​direct&​100|}} {{:​projektews2013:​wwsr:​start:​img_0609.jpg?​direct&​100|}} {{:​projektews2013:​wwsr:​start:​img_0614.jpg?​direct&​100|}} {{:​projektews2013:​wwsr:​start:​img_0621.jpg?​direct&​100|}} {{:​projektews2013:​wwsr:​start:​img_0627.jpg?​direct&​100|}} {{:​projektews2013:​wwsr:​ufqhpdp.jpg?​direct100|}} {{:​projektews2013:​wwsr:​start:​img_0594.jpg?​direct&​100|}} {{:​projektews2013:​wwsr:​start:​img_0609.jpg?​direct&​100|}} {{:​projektews2013:​wwsr:​start:​img_0614.jpg?​direct&​100|}} {{:​projektews2013:​wwsr:​start:​img_0621.jpg?​direct&​100|}} {{:​projektews2013:​wwsr:​start:​img_0627.jpg?​direct&​100|}} {{:​projektews2013:​wwsr:​ufqhpdp.jpg?​direct100|}}
  
-===6. Pintabelle des Arduino===+====7. Pintabelle des Arduino===
 + 
 +^ Art            ^ Pin           ^ Verwendungszweck ​                       ^ 
 +| Communication ​ | Serial3 (TX)  | WiFlychip I - RX (Antenne) ​             | 
 +| Communication ​ | Serial3 (RX)  | WiFlychip I - TX (Antenne) ​             | 
 +| Communication ​ | Serial2 (TX)  | WiFlychip II - RX (Fernsteuerung) ​      | 
 +| Communication ​ | Serial2 (RX)  | WiFlychip II - TX (Fernsteuerung) ​      | 
 +| Digital ​       | 22            | Steppermotor der Antenne - DIR          | 
 +| Digital ​       | 24            | Steppermotor der Antenne - DIR          | 
 +| Digital ​       | 26            | Steppermotor des rechten Rades - STEP   | 
 +| Digital ​       | 28            | Steppermotor des rechten Rades - DIR    | 
 +| Digital ​       | 30            | Steppermotor des linken Rades - STEP    | 
 +| Digital ​       | 32            | Steppermotor des linken Rades - DIR     | 
 +| Digital ​       | 34            | Ultraschallentfernungsmesser - Trigger ​ | 
 +| Digital ​       | 36            | Ultraschallentfernungsmesser - Echo     | 
 +| Digital ​       | 42            | Servo - Digitalpin (orange) ​            | 
 +| Digital ​       | 46            | Linker "​Bumper"​ - Digitalpin ​           | 
 +| Digital ​       | 48            | Rechter "​Bumper"​ - Digitalpin ​          | 
 +| Power          | 5V            | Logikstrom (5V)                         | 
 +| Power          | GND           | Ground ​                                 | 
 +| Power          | VIN           | 12V (Batterie) ​                         |
  
-^Art               ^ Pin              ^ Verwendungszweck ​                          ^ 
-| Communication ​   | Serial3 (TX)     | WiFlychip I - RX (Antenne) ​                | 
-| Communication ​   | Serial3 (RX)     | WiFlychip I - TX (Antenne) ​                | 
-| Communication ​   | Serial2 (TX)     | WiFlychip II - RX (Antenne) ​               | 
-| Communication ​   | Serial2 (RX)     | WiFlychip II - TX (Antenne) ​               | 
-| Digital ​         | 22               | Steppermotor der Antenne - DIR             | 
-| Digital ​         | 24               | Steppermotor der Antenne - DIR             | 
-| Digital ​         | 26               | Steppermotor des rechten Rades - STEP      | 
-| Digital ​         | 28               | Steppermotor des rechten Rades - DIR       | 
-| Digital ​         | 30               | Steppermotor des linken Rades - STEP       | 
-| Digital ​         | 32               | Steppermotor des linken Rades - DIR        | 
-| Digital ​         | 34               | Ultraschallentfernungsmesser - Trigger ​    | 
-| Digital ​         | 36               | Ultraschallentfernungsmesser - Echo        | 
-| Digital ​         | 42               | Servo - Digitalpin (orange) ​               | 
-| Digital ​         | 46               | Linker "​Bumper"​ - Digitalpin ​              | 
-| Digital ​         | 48               | Rechter "​Bumper"​ - Digitalpin ​             | 
-| Power            | 5V               | Logikstrom (5V)                            | 
-| Power            | GND              | Ground ​                                    | 
-| Power            | VIN              | 12V (Batterie) ​                            | 
  
 **Es ist anzumerken, dass sämtliche Quellcodes für das Verständnis der einzelnen Funktionsweisen des Roboters dienen. Das komplette Programm findet ihr unter dem Namen Robotik.zip im Quellcodes-Verzeichnis. Das Programm wurde objektorientiert programmiert,​ das heißt das es in mehrere Klassen aufgeteilt ist. Falls es selbst nach genauerer Betrachtung Schwierigkeiten im Verständnis gibt, verweisen wir auf die einzelnen Quellcodes und diesen Artikel: [[techniken:​objektorient|Klassen und Objekte]].** **Es ist anzumerken, dass sämtliche Quellcodes für das Verständnis der einzelnen Funktionsweisen des Roboters dienen. Das komplette Programm findet ihr unter dem Namen Robotik.zip im Quellcodes-Verzeichnis. Das Programm wurde objektorientiert programmiert,​ das heißt das es in mehrere Klassen aufgeteilt ist. Falls es selbst nach genauerer Betrachtung Schwierigkeiten im Verständnis gibt, verweisen wir auf die einzelnen Quellcodes und diesen Artikel: [[techniken:​objektorient|Klassen und Objekte]].**
- 
-<note >Felix: Insgesamt bin ich schon recht zufrieden. die Sprache ist verständlich,​ die Abbildungen helfen beim Verständnis. An einzelnen Stellen wäre etwas mehr technische Präzision bei der Beschreibung der Aufgaben von Bauteilen und deren Typenbezeichungen gut. Die Bilderserien sind eine gute Idee, bedürfen aber noch einer knappen Beschreibung dessen, was dort zu sehen ist. Die Komponentenlisten sind eine sehr gute Idee!\\ ​ 
-(Nadine: Ich finde das was bis jetzt vorhanden ist schön. Gut gefällt mir, dass das Material zu den Komponenten aufgezählt wurde. Es fehlt mir an einigen Stellen, was die Komponenten eigentlich tun sollen und die Kommasetzung sollte vor allen bei Sätzen mit um überprüft werden.) 
-\\ **Es fehlen jedoch noch eine Beschreibung des Navigationsalgorithmus,​ eine abschließende Diskussion und ein Ausblick!**</​note>​ 
projektews2013/wwsr/start/projektdokumentation.1395660738.txt.gz · Zuletzt geändert: 2016/01/21 12:45 (Externe Bearbeitung)