Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

projektewise1718:projectatxpublic:start

Dokumentation "PROJECT: ATX"

Einleitung, Überblick & Ideenfindung

Wer will denn nicht einfach mal ein Fahrzeug aus dem Star Wars Universum nachbauen? Genau Das haben Wir hier gemacht, auch wenn unsere Konstruktion nicht wirklich an das Original herankommt… Dennoch soll sich unser Roboter wie im Film bewegen können, lenken können und nebenbei für die Atmosphäre Star Wars Musik abspielen können.

Bei unserem Roboter (Project ATX) handelt es sich um ein Fahrzeug mit 8 Rädern, bei dem nur das letzte Räderpaar an zwei Steppermotoren für den Antrieb angeschlossen sind. Das zweite und dritte Räderpaar sind an eine Metallachse angebracht mit jeweils zwei Kugellagern. Das Letzte Räderpaar ist ebenfalls an einer Metallachse angebracht, allerdings ist diese an einem Holzblock, anstatt an zwei Kugellagern, befestigt. Der Holzblock ist nämlich an einem rotierbaren Holzkreis fest angeschraubt. Dieser Holzkreis wiederum ist an einem Servo befestigt, der mithilfe einer Thermalkamera an der Front des Roboters die Lenkung realisieren soll. Außerdem befindet sich in hinteren Teil unseres Roboters ein Piezo-Summer, der eine beliebige Melodie abspielen soll, bevorzugt natürlich aus dem Star-Wars Universum.

Abbildung 1: Der Werdegang unserer Projektinspiration ATST ATTE remastered

Für unser Projekt war ursprünglich der AT-ST aus Star Wars geplant, allerdings wäre die Umsetzung einer Konstruktion mit zwei Beinen und dem Schwerpunkt direkt auf diesen balance-technisch relativ schwierig gewesen, weshalb wir uns dann letztendlich für den ATTE remastered entschieden, da eine Konstruktion mit acht Rädern und einer langen Plattform sehr viel einfacher zu realisieren ist.

Methoden & Umsetzung:

Baugruppen:

Das Grundgerüst

Abbildung 2: Skizze unseres Grundgerüsts

Abbildung 3: Foto des Endergebnisses 1 : Das Grundgerüst

Die erste Aufgabe, welche wir bearbeiteten war der Aufbau eines Skelett für die Konstruktion. Hierfür nahmen wir zuerst eine Große Holzplatte welche als Hauptplattform dienen sollte. Auf dieser sollten dann letztendlich die Breadbords mit dem Arduino und Teensy befestigt werden. An der Oberseite dieser Platten haben wir Zwei Holzblöcke befestigt um an diese wiederum eine 2. Ebene zu befestigen. Am Forderen Block wurde der Servo mit Kabelnbindern verbunden. Unterhalb der forderen Ebene liegt auf der Hauptplattform eine Runde Holzplatte über einem etwas kleineren Runden Loch. An dieser Holzplatte ist ein Holzblock befestigt, in dessen Mitte sich ein Loch für die fordere Achse befindet. Die Zweite , hintere Ebene, dient zur Ermöglichung des Transportes von einer Powerbank oder des Lipos. An dem forderen Block ist eine weitere Platte Senkrecht zur Hauptplatte angebracht. In dieser befindet sich eine Öffnung durch die Thermalkamera durchgesteckt wird damit sie relativ stabil befestigt ist.

Material

  • 3 Holzplatten
  • 3 Holzblöcke
  • diverse Schrauben
  • diverse Nägel
  • Holzleim
  • Breadbord

Die Lenkung

Wie bereits in der Beschreibung für das Grundgerüst erwähnt haben wir für die Verwirklichung der Lenkung einen Servo mit Kabelbindern und 2 Nägeln an eine Holzplatte fixiert und den Servo mit einem entsprechenden Aufsatz an einer beweglichen Kreisförmigen Platte befestigt. Unter dieser Platte ist in einem Holzblock die vordere, lenkende Achse befestigt. Das Ziel war es die Bewegung des Servos mithilfe von Daten der Thermalkamera zu steuern. Hierbei soll die Themalkamera den Wärmsten Punkt finden und diesen dann ansteuern.

Abbildung 4 : Foto der Unterseite des Roboters mit Schwerpunkt auf Lenkung rechts im Bild

Material

  • Servo
  • Thermalkamera
  • Achse
  • Zwei Räder
  • Breadbord

Lösungscode

Die Thermalkamera ist mit 16×4 Pixeln ausgestattet. Der Code den wir benutzt haben, ist eine von uns angepasste Variante eines Codes, welcher uns von Daria zur Verfügung gestellt wurde. Hierbei wird zum Beginn des Programm ablaufs(also in der Setup) ein Wert für jeden der 64 Pixel gemessen. Diese Werte sind Dann wichtig für die weiteren Berechnungen des Codes. Der Code gibt keine genauen Werte aus sondern nur eine Differenz zum Ursprünglichen Wert.
Abbildung 5:Funktionsweise der Thermalkamera https://www.melexis.com/en/documents/documentation/datasheets/datasheet-mlx90621

-3-5-211131614-3-4-7-5-7354-25
-5-7-116181517-1-5-4-9-4817-71
-9-4-314181319-7-1-3-7-5934-43
-7-2-31518209-9-4-5-1-3717-49

Tabelle 1: Beispielwerte

Der höchste Wert wäre in diesem Fall in Spalte 6, und der entsprechende Winkelwert wäre 57

Wir gehen jeden einzelnen Pixel durch und gucken wo die Temperatur am höchsten ist. Um den nötigen Winkel mit welchem unser Servo dann arbeiten kann zu erfahren, findet der Code in Welchem der 16 Horizontalen Pixel der Höchste Wert liegt. Jedem dieser Pixel haben wir vorher einen Wert von 30 bis 85(dem Vorher durch Testen rausgefundenen Maximalen Bereich für unseren Servo) zugeordnet. Der Winkelwert wird nun als Rückgabewert der Methode zurück gegeben. Anschließend wird der Servo auf diesen Wert eingestellt.

Die Berechnung der Winkelwerte findet mit der Formel 30+3*x statt. Hierbei steht das X für die jeweilige spalte von 0 bis 15. Es beginnt nicht bei null da der Code einen Array erzeugt und dieser bei 0 und nicht 1 anfängt und so der 16. Wert an der Stelle 0 ist. Die Formel ergab sich daraus, dass wir zuerst durch Testen den Maximalen Bereich, in welchem sich unser Servo bewegen kann, herausgefunden haben. Dieser befindet sich wie bereits gesagt bei 30 bis 85. Diese 55 haben wir anschließend durch 16 geteilt um herauszufinden, wie viel grad eine Spalte entspricht. Da der Wert 3,43 beträgt haben wir uns dazu entschlossen dreier Schritte zu nehmen und jeden Zweiten Schritt 4. So kann letztendlich der komplette Bereich genau abdeckt werden.

Der Stepperantrieb

Die Fortbewegung unseres Roboters wird durch die zwei hinteren Räder ,welche jeweils mit einem Stepper angetrieben werden, verwirklicht. Der Roboter bewegt sich ständig nach vorne.

Material

  • 2 Stepper
  • 2 Steppertreiber
Stepper 1
5Direction
6Step
Stepper 2
3Direction
2Step

Tabelle 2: Pinbelegungstabelle Stepper

Der Piezo DJ

Die 4. Große Aufgabe war das umsetzen der Geplanten Wiedergabe des Imperialen Marches über einen Piezo Summer. Den Code für diese fand man nach kurzer Recherche im Internet. Der Aufbau des Summers und die Wiedergabe hat bereits nach wenigen Minuten funktioniert. Bevor überhaupt mit dem Aufbau des Gründgerüsts begonnen wurde, hat schon dsa mit Abstand coolste Featur funktioniert. Durch das Vorhandensein vieler vorgefertigter Codes für Musikstücke , gibt es die Möglichkeit weitere Musikstücke einfach abzuspielen. Code Quelle

Video 1: Demonstration des Piezosummers

Material

  • Arduino Nano
  • Piezo Summer
  • Breadbord
PinBelegung
8Speakerpin

Tabelle 3: Pinbelgungstabelle Piezo

Ergebnis und Diskussion:

Nach diesem einen Semester neigt sich unser Projekt dem Ende zu. Wir haben dieses Projekt leider nicht zu 100% abschließen können.

Die Konstruktion unseres Roboter an sich ist eigentlich fertig, es würde, nur optional natürlich, eine (halbe) Hülle bzw. (halbes) Gehäuse fehlen der Ästhetik halber fehlen. Auch der Code funktioniert soweit.

Unser Roboter kann sich nach vorne bewegen und eine Melodie abspielen. Auch die Thermalkamera gibt richtige, für den Servo umgerechnete Werte aus, allerdings funktioniert eben die Lenkung nicht, was daran liegt, dass die Microcontroller nur einen Prozess gleichzeitig bearbeiten können und bei uns eben sowohl die Thermalkamera und Stepper als auch der Piezo permanent laufen müssen. Wir haben zwar Versucht eine andere Möglichkeit umzusetzen, bei der Die abfolge in kleinere Schritte unterteilt wird und die Lenkung so nicht gleichzeitig mit der Fortbewegung abläuft. Selbst nach mehrmaligen versuchen konnten wir das Problem nicht lösen. Mit mehr Zeit wäre dies Sicherlich der Fall gewesen. Unsere Entscheidung die Lenkung mithilfe eines Servos anstatt der Stepper zu verwirklichen ist darauf zurück zu führen das wir uns vorher mit der Thermalkamera beschäftigt haben und uns es Leichter vorkam mit Winkelwerten zu arbeiten, welche anhand der Spatlten berechnet werden. Letzendlich können wir nicht beurteilen welche Variante besser funktioniert hätte. Doch vermutlich wäre das Problem mit den mehreren Prozessen gleichzeitig nicht aufgetreten hätten wir nur die Stepper benutzt.
Die mittleren 4 Räder sind leider nur noch zu Dekozwecken angebracht und hängen nur in der Luft. Der Grund dafür ist schlicht und ergreifend das als sie den Boden berührt hatten es zu zuviel Reibung kam und der Roboter sich gar nicht mehr fortbwegt hat. Ohne die Räder wäre dieses Problem nicht aufgekommen

Für unseren Roboter gibt es natürlich auch einige Verbesserungs- oder Erweiterungsmöglichkeiten. Zum einen könnte man die Lenkung verbessern und überarbeiten oder irgendwie anders realisieren. Man könnte auch das Design anpassen, also das „Skelett“ des Roboters als ATTE verkleiden. Ebenfalls könnte man einen Rückwärtsgang in den Code einbauen und ein Ausweichsystem für die eventuelle Kollision mit Hindernissen einbauen.

projektewise1718/projectatxpublic/start.txt · Zuletzt geändert: 2018/05/17 10:26 von d.golovko