Benutzer-Werkzeuge

Webseiten-Werkzeuge


projektewise21:fliegenderroboter:doku

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
projektewise21:fliegenderroboter:doku [2022/04/11 17:34]
JelenaM [Systembestandteile]
projektewise21:fliegenderroboter:doku [2022/04/25 00:21] (aktuell)
d.golovko
Zeile 1: Zeile 1:
-<note important>​ 
-Generell: sehr gut! Ich hab ein paar kleine Kommentare unten gemacht -- wenn ihr sie gelesen / bearbeitet habt, könnt ihr sie löschen. 
- 
-Ich freue mich, dass ihr mir eurem komplexen Projekt so weit gekommen seid! 
-</​note>​ 
- 
  
 ======Zeppelin====== ======Zeppelin======
Zeile 33: Zeile 27:
  
 Ein weiterer Punkt, den es zu lösen galt, war die Befestigung der Mechanik am Ballon. Dies haben wir fast ausschließlich mit Gaffa Tape gelöst, was unserem Roboter den Namen „Gaffelin“ eingebracht hat, der auch auf der Seite des Ballons zu sehen ist. Ein weiterer Punkt, den es zu lösen galt, war die Befestigung der Mechanik am Ballon. Dies haben wir fast ausschließlich mit Gaffa Tape gelöst, was unserem Roboter den Namen „Gaffelin“ eingebracht hat, der auch auf der Seite des Ballons zu sehen ist.
- 
-<note important>​ 
-Wo ist das zu sehen? Fügt bitte am Anfang dieser Beschreibung eine Abbildung vom gesamten Zeppelin hinzu, damit die Lesenden vom Anfang an eine Vorstellung darüber haben. ​ 
- 
-**Falls** ihr so eine Abbildung nicht mehr habt bzw. nicht mehr erstellen könnt, schiebt zumindest die jetztige Abb. 1 hoch und statt "zu sehen ist" schreibt "sich befindet"​ oder ähnliches (sonst will man als Leser es tatsächlich sehen) ​ 
-</​note>​ 
  
 An der Spitze des Ballons sitzen zwei Ultraschallsensoren und drei Phototransistoren. Erstere sollen eigenständig die Entfernung des Zeppelins von einem Hindernis feststellen und im Zweifel ausweichen bzw. den Motor stoppen, letztere sollen es ermöglichen,​ den Zeppelin Licht folgen zu lassen. An der Spitze des Ballons sitzen zwei Ultraschallsensoren und drei Phototransistoren. Erstere sollen eigenständig die Entfernung des Zeppelins von einem Hindernis feststellen und im Zweifel ausweichen bzw. den Motor stoppen, letztere sollen es ermöglichen,​ den Zeppelin Licht folgen zu lassen.
Zeile 84: Zeile 72:
 Die Kommunikation wollten wir erst über WLAN erfolgen lassen, sind dann aber auf Bluetooth umgestiegen,​ die Umstellung der seriellen Kommunikation von USB auf Bluetooth keine größeren Anpassungen erfordert. Die Kommunikation wollten wir erst über WLAN erfolgen lassen, sind dann aber auf Bluetooth umgestiegen,​ die Umstellung der seriellen Kommunikation von USB auf Bluetooth keine größeren Anpassungen erfordert.
  
-In Processing haben wir eine Klasse angelegt, die für das Senden und Empfangen von Daten verantwortlich ist. Dabei hat jeder Sensor einen bestimmten key, also eine Zahl, die ihm zugeordnet ​wurde und mit welcher jeweils erkannt werden kann, woher der übergebene Wert stammt. So kann es nicht vorkommen, dass beispielsweise ein Wert der Ultraschallsensoren mit dem eines Phototransistors verwechselt wird. Alle Daten werden in der Form ''​{key:​value}[Zeilenumbruch]''​ übertragen. Abgesehen von den Sensoren gibt es auch keys für ErrorTimestamp ​und Echo.+In Processing haben wir eine Klasse angelegt, die für das Senden und Empfangen von Daten verantwortlich ist. Dabei hat jeder Sensor ​und Aktuator ​einen bestimmten key, in Form einer Zahl, die ihm zugeordnet ​wird und mit welcher jeweils erkannt werden kann, woher der übergebene Wert stammt. So kann es nicht vorkommen, dass beispielsweise ein Wert der Ultraschallsensoren mit dem eines Phototransistors verwechselt wird. Alle Daten werden in der Form ''​{key:​value}[Zeilenumbruch]''​ übertragen. Abgesehen von den Sensoren ​und Aktuatoren ​gibt es auch keys zur Übertragung von ZeitstempelnFehlern ​und zum Debuggen.
  
 Wir haben unseren Code so aufgeteilt, dass der Großteil auf Processing läuft. Dies hat den Vorteil, dass der Arduino nicht an die Grenzen seiner Speicherkapazität kommt. Allerdings ist der Arduino so auch abhängig von der Bluetoothverbindung mit dem Computer und Processing, sodass er nicht eigenständig betrieben werden kann, wie es bei den meisten anderen Robotern des Projektlabors der Fall ist. Wir haben unseren Code so aufgeteilt, dass der Großteil auf Processing läuft. Dies hat den Vorteil, dass der Arduino nicht an die Grenzen seiner Speicherkapazität kommt. Allerdings ist der Arduino so auch abhängig von der Bluetoothverbindung mit dem Computer und Processing, sodass er nicht eigenständig betrieben werden kann, wie es bei den meisten anderen Robotern des Projektlabors der Fall ist.
Zeile 90: Zeile 78:
 ===Steuerung=== ===Steuerung===
  
-Die manuelle Steuerung ​erfolgte ​in unseren Tests über einen Gamecontroller,​ der an den Computer angeschlossen ​wurde. Ebenfalls ist es möglich, auf  der normalen Laptoptastatur die w, a und d Tasten ​für Motorschub und rechts ​und links zu nutzen, sowie die hoch und runter Pfeiltasten ​für die dementsprechende Richtung. Dabei muss der Controller jedoch trotzdem an den Computer angeschlossen sein. Steht kein Controller zur Verfügung, muss der Code dementsprechend geändert werden+Die manuelle Steuerung ​erfolgt ​in unseren Tests über einen (Xbox-)Gamecontroller,​ der an den Computer angeschlossen ​wird. Ebenfalls ist es möglich, auf  der normalen Laptoptastatur die ''​w''​ Taste für Motorschub''​a''​ für links und ''​d'' ​für rechts zu nutzen, sowie ''​↑'' ​und ''​↓'' ​für die dementsprechende Richtung. Dabei muss der Controller jedoch trotzdem an den Computer angeschlossen sein. Steht kein Controller zur Verfügung, muss der Code dementsprechend geändert werden.
- +
-Wie auch das Versenden der Daten wird die Steuerung über spezielle Klassen. ''​VirtualController''​ ist in der Lage, die aktuelle Position der Servos und den Schub des Motors zu regeln, während ''​ManualMode''​ die Funktionen beinhaltet, welche das Steuern per Tastatur ermöglichen. Dabei greift letztere Klasse auf erstere zu.+
  
 ===Licht folgen=== ===Licht folgen===
Zeile 100: Zeile 86:
 <​imgcaption image3|>​{{ :​projektewise21:​fliegenderroboter:​sensoren.jpg?​direct&​650 |Phototransistoren und Ultraschallsensoren}}</​imgcaption>​ <​imgcaption image3|>​{{ :​projektewise21:​fliegenderroboter:​sensoren.jpg?​direct&​650 |Phototransistoren und Ultraschallsensoren}}</​imgcaption>​
  
-Vom Arduino werden die Daten der Sensoren an Processing auf dem Computer weitergeleitet,​ wo sie verglichen werden. Ist der Wert des unteren PT um eine bestimmte Toleranz höher als die beiden Oberen, wird auf die bereits vorhandene ​Steuerfunktion zugegriffen und die Servos bewegen die Flossen so, dass der Zeppelin nach unten fliegt.+Vom Arduino werden die Daten der Sensoren an Processing auf dem Computer weitergeleitet,​ wo sie verglichen werden. Ist der Wert des unteren PT um eine bestimmte Toleranz höher als die beiden Oberen, wird auf die entsprechende ​Steuerfunktion zugegriffen und die Servos bewegen die Flossen so, dass der Zeppelin nach unten fliegt.
  
 Sendet einer der oberen Phototransistoren einen höheren Wert als der Untere, wird geprüft, ob dieser um eine bestimmte Toleranz höher ist als der rechte, bzw. linke PT. Ist dies der Fall wird wieder auf eine Steuerfunktion zugegriffen,​ die den Zeppelin nach links oder rechts fliegen lässt. Sendet einer der oberen Phototransistoren einen höheren Wert als der Untere, wird geprüft, ob dieser um eine bestimmte Toleranz höher ist als der rechte, bzw. linke PT. Ist dies der Fall wird wieder auf eine Steuerfunktion zugegriffen,​ die den Zeppelin nach links oder rechts fliegen lässt.
Zeile 110: Zeile 96:
 {{lichtfolgen.mp4|Licht folgen (ohne Kollisionsvermeidung)}} {{lichtfolgen.mp4|Licht folgen (ohne Kollisionsvermeidung)}}
  
-<note important>​ 
-wow! 
-</​note>​ 
  
 ===Kollisionsvermeidung=== ===Kollisionsvermeidung===
  
-Am vorderen Ende des Zeppelin befinden sich zwei Ultraschallsensoren,​ die über Kabel mit dem Arduino verbunden sind. Sie senden durchgehend Werte, die der Arduino über Bluetooth an Processing weitergibt, wo der Abstand des rechten und des linken Ultraschallsensors vom nächsten Hindernis verglichen wird. Sinkt einer der Werte unter eine festgelegte Schwelle, d.h. kommt ein Gegenstand zu nahe, wird auf die zuvor geschriebene ​Steuerfunktion zugegriffen und der Zeppelin in die jeweils entgegengesetzte Richtung gelenkt, begleitet von der Nachricht „Eisberg voraus“.+Am vorderen Ende des Zeppelin befinden sich zwei Ultraschallsensoren,​ die über Kabel mit dem Arduino verbunden sind. Sie senden durchgehend Werte, die der Arduino über Bluetooth an Processing weitergibt, wo der Abstand des rechten und des linken Ultraschallsensors vom nächsten Hindernis verglichen wird. Sinkt einer der Werte unter eine festgelegte Schwelle, d.h. kommt ein Gegenstand zu nahe, wird auf die zuvor ensprechende ​Steuerfunktion zugegriffen und der Zeppelin in die jeweils entgegengesetzte Richtung gelenkt, begleitet von der Nachricht „Eisberg voraus“.
  
 ===Diagramme=== ===Diagramme===
Zeile 219: Zeile 202:
  
 {{:​projektewise21:​fliegenderroboter:​zeppelin_fusion_360_dateien.zip|Fusion 360 Dateien}} {{:​projektewise21:​fliegenderroboter:​zeppelin_fusion_360_dateien.zip|Fusion 360 Dateien}}
 +
 +<note important>​
 +**Bewertung der Projektarbeit**
 +
 +Bauteile:\\
 +- ESC \\
 +- Servos\\
 +- Bluetooth-Modul\\
 +- Ultraschallsensoren\\
 +- Phototransistoren (½ Punkte)\\
 +- Kommunikation zwischen Arduino und PC\\
 +Insgesamt 5,5 Bauteile => 16,5 Punkte ​
 +
 +Komplexe Elemente: \\
 +- Berechnung des Gewichtes und Schwierigkeiten im Zusammenhang mit dem Fliegen\\
 +- 3D-Modellierung und Druck\\
 +- Klassen und Grafiken in Processing\\
 +Insgesamt 3 Elemente => 12 Punkte
 +
 +Code: \\
 +- Variablen-, Funktions-, Klassennamen:​ 2 Punkte\\
 +- Aufteilung in Funktionen usw.: 2 \\
 +- Redundanz: kein Abzug\\
 +- Kommentare: 2 Punkte\\
 +- Variablen möglichst lokal: 2 Punkte\\
 +8 Punkte
 +
 +Arbeit im Team:\\
 +- Verteilung 2\\
 +- Kommunikation 2\\
 +4 Punkte
 +
 +Weitere Aspekte:\\
 +- Stabilität:​ 2 Punkte\\
 +- Verkabelung:​ 2 Punkte\\
 +4 Punkte
 +
 +Insgesamt 40 Punkte von 40 (mehr als 40 geht nicht). Tolle Arbeit!!
 +
 +**Bewertung der Projektdokumentation**
 +
 +Sehr gute detaillierte Dokumentation,​ wo ihr – trotz des großen Umfangs des Projektes – Umsetzungsdetails und eure Entscheidungen klar dokumentiert habt. Die Sprache liest sich sehr gut, und die Abbildungen helfen sehr, das Geschriebene besser zu verstehen. Meine Änderungswünsche habt ihr umgesetzt. Super! 20 Punkte von 20. 
 +</​note>​
projektewise21/fliegenderroboter/doku.1649691293.txt.gz · Zuletzt geändert: 2022/04/11 17:34 von JelenaM