Benutzer-Werkzeuge

Webseiten-Werkzeuge


projektewise24:projekt6: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
projektewise24:projekt6:doku [2025/03/31 03:14]
uszer [Pin Belegung]
projektewise24:projekt6:doku [2025/03/31 03:22] (aktuell)
uszer [Reference]
Zeile 196: Zeile 196:
  
 ===LFK_face_tracking=== ===LFK_face_tracking===
-Die einzige nennenswerte Änderung des Codes, abgesehen von größtenteils gescheiterten Stabilisierungen,​ ist eine veränderung der Roam-Logic, also wie der Roboter sich bewegt, wenn es gearde ​kein face zu tracken gibt.+Die einzige nennenswerte Änderung des Codes, abgesehen von größtenteils gescheiterten Stabilisierungen,​ ist eine veränderung der Roaming-Logic, also wie der Roboter sich bewegt, wenn es gerade ​kein face zu tracken gibt.
  
-Im originalen Code nutzt der Roboter random numbers, um sich auf beiden Achsen zufällig im definierten Bereich zu bewegen. Diese Logik wurde durch eine simplere Version ersetzt. Da der Roboter insgesamt deutlich schwerer ist als das Beispiel auf welches das Programm eigentlich zugeschnitten ist, waren Modifikationen von Nöten, so wurde der zufällige Neigungswinkel komplett entfernt und durch konstante 90° ersetzt, das bedeutet beim Roamen ​bleibt die Kamera bei einer neutralen, mittleren Neigung.+Im originalen Code nutzt der Roboter random numbers, um sich auf beiden Achsen zufällig im definierten Bereich zu bewegen. Diese Logik wurde durch eine simplere Version ersetzt. Da der Roboter insgesamt deutlich schwerer ist als das Beispiel auf welches das Programm eigentlich zugeschnitten ist, waren Modifikationen von Nöten, so wurde der zufällige Neigungswinkel komplett entfernt und durch konstante 90° ersetzt, das bedeutet beim Roaming ​    <​sub>​Vid.3:​ Video, Prototyp beim '​Roaming'</​sub>​\\ ​bleibt die Kamera bei einer neutralen, mittleren Neigung.
 {{ :​projektewise24:​projekt6:​roaming_test.mp4|Roaming Test}} {{ :​projektewise24:​projekt6:​roaming_test.mp4|Roaming Test}}
  
Zeile 207: Zeile 207:
 Der Arduino beginnt seine Funktion mit einer kurzen LED-Sequenz,​ und bewegt alle Servos in ihre Ausgangsposition.\\ Der Arduino beginnt seine Funktion mit einer kurzen LED-Sequenz,​ und bewegt alle Servos in ihre Ausgangsposition.\\
 Die loop, die danach ausgeführt wird, ist relativ simple:\\ Die loop, die danach ausgeführt wird, ist relativ simple:\\
-{{ :​projektewise24:​projekt6:​rduibo_aktivierungsskizze.png?​1080 |Loop function des Arduino}}+{{ :​projektewise24:​projekt6:​rduibo_aktivierungsskizze.png?​1080 |Loop function des Arduino}}\\ 
 +<​sup>​Abb.14:​ Skizze, Aktivierungsdiagramm der Arduino loop()-funktion</​sup>​
  
 Dieser Code Abschnitt ist einer der Herausfordernsten,​ nicht weil die Funktion an sich etwas komplexes tut, sondern weil sie auf einem schon existierenden Framework gebaut werden musste. Da das Programm auf Schleifendurchläufen basiert, musste eine etwas komplexere Lösung gefunden werden, weshalb mit states und der millis()-funktion gearbeitet werden muss. Dieser Code Abschnitt ist einer der Herausfordernsten,​ nicht weil die Funktion an sich etwas komplexes tut, sondern weil sie auf einem schon existierenden Framework gebaut werden musste. Da das Programm auf Schleifendurchläufen basiert, musste eine etwas komplexere Lösung gefunden werden, weshalb mit states und der millis()-funktion gearbeitet werden muss.
Zeile 259: Zeile 260:
 Korrupte Datensätze liegen vermutlich an überlasteten Anschlüssen und schlechter Verbindung meinerseits,​ da ich einen USB-Hub mit einem USBA-USBC-Adapter nutzen muss um sowohl Kamera als auch Arduino gleichzeitig anschließen zu können. Korrupte Datensätze liegen vermutlich an überlasteten Anschlüssen und schlechter Verbindung meinerseits,​ da ich einen USB-Hub mit einem USBA-USBC-Adapter nutzen muss um sowohl Kamera als auch Arduino gleichzeitig anschließen zu können.
 {{ :​projektewise24:​projekt6:​application_crash_bufferoverflow.mp4 |Dieses Video zeigt representativ,​ was bei einem Buffer-Overflow passiert. (Ardiuino start message not received, stuck in waiting loop)}} {{ :​projektewise24:​projekt6:​application_crash_bufferoverflow.mp4 |Dieses Video zeigt representativ,​ was bei einem Buffer-Overflow passiert. (Ardiuino start message not received, stuck in waiting loop)}}
 +<​sup>​Vid.4:​ Screenrecording,​ Crash-Ursache:​ Buffer Overflow aufgrund einer infinite Loop</​sup>​
 ----- -----
 Ein weiteres Beispiel für das crashen des Programmes aufgrund von korrupter Kommunikation lässt sich in der gleichen Funktion, nur ein paar Zeilen weiter finden: Ein weiteres Beispiel für das crashen des Programmes aufgrund von korrupter Kommunikation lässt sich in der gleichen Funktion, nur ein paar Zeilen weiter finden:
Zeile 280: Zeile 282:
 Wie das aussieht, sieht man in diesem Video: ​ Wie das aussieht, sieht man in diesem Video: ​
 {{ :​projektewise24:​projekt6:​application_crash_corruptendmarker.mp4 | Achtet besonders auf die Konsole im Hintergrund.}} {{ :​projektewise24:​projekt6:​application_crash_corruptendmarker.mp4 | Achtet besonders auf die Konsole im Hintergrund.}}
 +<​sup>​Vid.5:​ Screenrecording,​ Crash-Ursache:​ Korrupte Endmarker</​sup>​
  
 //Side note: Diese Characters werden vom Arduino automatisch am Ende jeder Nachricht hinzugefügt:​ Ein "​carriage return"​ \r der denCurser zurück zum Anfang der aktuellen line bewegt, und der "new line character"​ \n, der eine neue Linie beginnt. Diese sind Teil der Serialen Kommunikation,​ sollten allerdings durch den End Marker '>',​ der davor versandt wird, nicht gelesen werden.// //Side note: Diese Characters werden vom Arduino automatisch am Ende jeder Nachricht hinzugefügt:​ Ein "​carriage return"​ \r der denCurser zurück zum Anfang der aktuellen line bewegt, und der "new line character"​ \n, der eine neue Linie beginnt. Diese sind Teil der Serialen Kommunikation,​ sollten allerdings durch den End Marker '>',​ der davor versandt wird, nicht gelesen werden.//
Zeile 293: Zeile 296:
  
 ----- -----
-====Reference==== +
-<​imgcaption image1|>​Neigungsmechanismus</​imgcaption>​+
projektewise24/projekt6/doku.1743383640.txt.gz · Zuletzt geändert: 2025/03/31 03:14 von uszer