Arduino Mini-Segway

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Prototyp des Segways

Autoren: Manfred Listner, Patricio Emiliano Hernandez Murga
Betreuer: Prof. Schneider


→ zurück zur Übersicht: WS 20/21: Fachpraktikum Elektrotechnik (MTR)


Einleitung

Dieser Artikel beschreibt die Erstellung eines Arduino gesteuerten Mini-Segways. Das Projekt wird als Teil des GET-Fachpraktikums im fünften Fachsemester im Studiengang Mechatronik durchgeführt. Das Mini-Segway soll über zwei Motoren und einen Lagesensor stabilisiert werden. Die Stabilisierung erfolgt über eine Regelschleife. Die Regelung selbst übernimmt dabei eine PID-Regelung. Der Lagesensor dient hierbei als Messeinrichtung und ermittelt die Winkelabweichungen. Durch die gemessenen Winkelabweichungen wird durch die PID-Regelung die Beschleunigung an den Motoren gesteuert, sodass sich das Mini-Segway von selbst stabilisiert.

Anforderungen

Allgemein

Das Mini-Segway muss dazu in der Lage sein, Winkeländerungen zu erkennen, um diesen entgegen wirken zu können. Bei Änderungen der Lage des Schwerpunktes, z.B. durch hinzufügen von Gewichten, muss das Mini-Segway sich automatisch stabilisieren können.


Elektronik und Steuerung

Die Prüfung des Winkels soll über ein Gyroskop erfolgen. Die Änderung des Winkels wird anschließend vom Arduino Mikrocontroller ausgewertet. Durch eine Regelschleife sollen dann die beiden Motoren über den Mikrocontroller angesteuert werden, sodass sich das Mini-Segway wieder ausbalanciert. Zur Ausgabe von Daten soll zusätzlich ein LCD-Display angeschlossen werden.

Funktionaler Systementwurf/Technischer Systementwurf

Das Arduino Mini-Segway verfügt über einen Segway-Körper an dem ein Gyroskop montiert sein soll. Zusätzlich sollen zwei DC-Motoren die Räder
unter dem Segway-Körper antreiben, sodass der Körper in vertikaler Position stabilisiert werden kann.

Das Bild zeigt den schematischen Aufbau des Arduino Mini-Segways


















Der Regelkreis erhält als Eingabe einen Sollwinkel welcher vom Regler verarbeitet wird. Der Motor fungiert als Steller und wirkt eine Kraft auf das System "Segway" aus. Als Messeinrichtung dient ein Gyroskop. Dieser Sensor führt den gemessenen Winkel an den Regler zurück, sodass die vorhandene Winkelabweichung bestimmt und dem Regler erneut zugeführt werden kann.

Das Bild zeigt den Regelkreis der für die Stabilisierung des Arduino Mini-Segways genutzt werden soll











Komponentenspezifikation

Beschleunigungssensor MPU-6050

[1] L298N

Der Beschleunigungssensor MPU-6050 ist ein Sensor der die Beschleunigung um die x-, y- und z-Achse ermittelt. Die Kommunikation mit dem Mikrocontroller erfolgt über eine I2C Schnittstelle. Dafür sind die Anschlüsse SDA und SCL zuständig. Über diese Schnittstelle können die ermittelten Daten des Sensors ausgelesen und weiterverarbeitet werden. Die Anschlüsse VCC und GND sorgen für die Spannungsversorgung des Sensors mit entweder 3,3 V oder 5 V Spannung.

Kippschlater

Um das Arduino Mini-Segway ein- und ausschalten zu können, wird ein Kippschalter verwendet. Dieser wird direkt in die Leitung zur Stromversorgung des Systems eingesetzt. Durch betätigen des Kippschalters wird so die Spannungsversorgung entweder unterbrochen, oder erfolgen.

H-Brücke L298N

Um die Motoren über das Arduino Board steuern zu können, wird die H-Brücke L298N benötigt. Das Bauteil ist in der Lage zwei DC-Motoren mit einer Spannung von bis zu 46 V zu versorgen. Für die verwendeten Motoren sind allerdings lediglich 9 V notwendig. Über die Anschlüsse 1, 2, wird ein erster und über die Anschlüsse 13 und 14 ein zweiter Gleichstrommotor angeschlossen. Gleichzeitig wird über die über die selben Anschlüsse die Drehrichtung der Motoren bestimmt. Dies geschieht in Abhängigkeit zu den digitalen Pins 8 - 11. Durch unterschiedliche Kombinationen aus "LOW" und "HIGH" drehen die Motoren entweder Vor- oder Rückwärts. Durch die Anschlüsse 7 und 12 können die Gleichstrommotoren durch eine PWM gesteuert werden. Über die Anschlüsse 4 und 5 wird die H-Brücke selbst mit Spannung versorgt. Darüber hinaus besteht die Möglichkeit über Anschluss 6 einen Mikrocontroller mit 5 V zu versorgen.

[1] Pinbelegung der H-Brücke L298N
Anschlussnummer Funktion
1
Anschluss für den Gleichstrommotor 1 "+"
2
Anschluss für den Gleichstrommotor 1 "-"
4
Eingang für die Spannungsversorgung der H-Brücke
5
Eingang für GND
6
5 V Ausgang
7
Pin zur Steuerung von Gleichstrommotor 1 über PWM
8, 9
Steuerung von Gleichstrommotor 1
10, 11
Steuerung von Gleichstrommotor 2
12
Pin zur Steuerung Gleichstrommotor 2 über PWM
13
Anschluss für den Gleichstrommotor 2 "+"
14
Anschluss für den Gleichstrommotor 2 "-"


DC-Motoren

Arduino Mega

Verwendete Software

Für das ganze Projekt wurde Simulink und die Simulink-Erweiterung, Stateflow. Denn bei Simulink ist es möglich, die Parameter des Programms während seiner Ausführung durch die Funktion " Monitor and Tune" zu verändern. Dies ist sehr hilfreich, wenn ein Regler im System benötigt wird.

Simulink

Bei Simulink wurde die Bibliothek für Arduino benutzt, welche ermöglicht durch Blöcke von Simulink die Pins von Arduino anzusteuern und einzustellen. Simulink ermöglicht die Modell basierte Programmierung. Diese passt dann sehr gut zu unserem Projekt, da dadurch Signale schnell verarbeiten und dargestellt werden können. Das Projekt benötigt auch ein PID-Regler, welches durch die Funktion "Monitor and Tune" während der Programmausführung anpassen kann. Dadurch kann viel Zeit bei der Anpassung der Parameter KP, KD und KI gespart werden.

Stateflow

Stateflow ermöglicht ein System durch Zustandsautomaten zu betreiben. Unser System benutzt Zustandsautomaten, da die Motoren unterschiedliche Kombinationen digitaler Signale für die Wahl der Antriebsrichtung benötigen.

Umsetzung (HW/SW)

Hardware

Software

Komponententest

Ergebnis

Zusammenfassung

Lessons Learned

Projektunterlagen

Projektplan

Projektdurchführung

YouTube Video

Weblinks

Literatur


→ zurück zur Übersicht: WS 20/21: Fachpraktikum Elektrotechnik (MTR)