Arduino Mini-Segway: Unterschied zwischen den Versionen
Zeile 61: | Zeile 61: | ||
[[Datei:Funduino DC-Motoren.jpg|300px|thumb|rechts|[2] Funduino DC-Motoren]] | [[Datei:Funduino DC-Motoren.jpg|300px|thumb|rechts|[2] Funduino DC-Motoren]] | ||
Zur Bewegung des Arduino Mini-Segways werden zwei DC-Motoren verwendet. Die Motoren verfügen jeweils über eine Spule durch die ein Magnetfeld erzeugt wird. Je nach Polung an den Eingängen des Motors kann so eine Drehung im, oder gegen den Uhrzeigersinn erzeugt werden. | Zur Bewegung des Arduino Mini-Segways werden zwei DC-Motoren verwendet. Die Motoren verfügen jeweils über eine Spule durch die ein Magnetfeld erzeugt wird. Je nach Polung an den Eingängen des Motors kann so eine Drehung im, oder gegen den Uhrzeigersinn erzeugt werden. | ||
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> | <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> | ||
===H-Brücke L298N=== | ===H-Brücke L298N=== |
Version vom 18. Januar 2021, 16:39 Uhr
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.
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.
Komponentenspezifikation
Beschleunigungssensor MPU-6050
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.
DC-Motoren
Zur Bewegung des Arduino Mini-Segways werden zwei DC-Motoren verwendet. Die Motoren verfügen jeweils über eine Spule durch die ein Magnetfeld erzeugt wird. Je nach Polung an den Eingängen des Motors kann so eine Drehung im, oder gegen den Uhrzeigersinn erzeugt werden.
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.
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 "-" |
Arduino Mega 2560
Der Arduino Mega ist ein Mikrocontroller auf Basis des ATmega2560-Mikrocontrollers vom Hersteller Arduino. Das Board verfügt über 54 digitale Ein- oder Ausgänge von denen 15 als PWM-Ausgänge verwendet werden können. Zusätzlich verfügt der Mikrocontroller über 16 analoge Pins, 4 serielle Anschlüsse und einen USB-Anschluss um die Datenverbindung mit einem Rechner zu gewährleisten.
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.
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
Als Grundgerüst für das Arduino Mini-Segway wird das "Zwei Ebenen Chassis mit 2-Motoren - Smart Car" [5] des Herstellers Funduino verwendet. Durch die zentrierte Positionierung der Motoren und Räder unterhalb der ersten Ebene eignet sich das Set gut als Rahmen für das Mini-Segway. Auf der unteren Ebene wird der Beschleunigungssensor MPU6050 montiert. Die H-Brücke zur Steuerung der DC-Motoren befindet sich auf der Unterseite der zweiten Ebene. Der Mikrocontroller, Arduino Mega 2560, wird auf der Oberseite der zweiten Ebene angebracht um ein leichtes bedienen des Mikrocontrollers zu ermöglichen.
Um eine Kommunikation zwischen Arduino Mikrocontroller und Beschleunigungssensor MPU5060 zu gewährleisten werden dazu die SDA und SCL Anschlüsse der beiden Bauteile miteinander verbunden. Vom Mikrocontroller ausgehend werden ebenfalls die Digitalen Pins 2 und 3 mit den PWM-fähigen Anschlüssen der H-Brücke verbunden. Dadurch können die DC-Motoren präzise angesteuert werden. Zusätzlich werden die Pins 8 - 11 vom Mikrocontroller mit den Anschlüssen 8 - 11 der H-Brücke verbunden. Diese Verbindungen ermöglichen die Steuerung der Drehrichtungen an den DC-Motoren.
Unter Zuhilfenahme eines Netzteils mit Transformator wird die H-Brücke mit Spannung versorgt. Der Arduino Mega bezieht die benötigte Versorgungsspannung ebenfalls von der H-Brücke, da diese durch Anschluss 6 über einen 5 V Ausgang verfügt.
Das Mini-Segway wird zum Schluss in ein Gehäuse aus Karton Eingehaust um die Bauteile vor äußeren Einflüssen zu schützen.
-
Draufsicht des Mini-Segways
-
Vorderansicht des Mini-Segways
-
Ansicht auf MPU5060 & H-Brücke
Software
Komponententest
Ergebnis
Zusammenfassung
Lessons Learned
Projektunterlagen
Projektplan
Projektdurchführung
YouTube Video
Weblinks
Literatur
→ zurück zur Übersicht: WS 20/21: Fachpraktikum Elektrotechnik (MTR)