Arduino Ballbalancierer: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 94: | Zeile 94: | ||
<gallery widths="750" heights="400"> | <gallery widths="750" heights="400"> | ||
Datei:Technischer Systementwurf Ballbalancierer.jpg|600px|mini|Abb. | Datei:Technischer Systementwurf Ballbalancierer.jpg|600px|mini|Abb. 2: Technischer Systementwurf <ref> Eigenes Dokument </ref> | ||
Datei:Funktionaler Systementwurf Ballbalancierer.jpg|600px|mini|Abb. | Datei:Funktionaler Systementwurf Ballbalancierer.jpg|600px|mini|Abb. 3: Funktionaler Systementwurf <ref> Eigenes Dokument </ref> | ||
</gallery> | </gallery> | ||
<!-- Füllen Sie Ihre Projektskizze bis hierher aus. Fügen Sie einen Projektplan unten ein. --> | <!-- Füllen Sie Ihre Projektskizze bis hierher aus. Fügen Sie einen Projektplan unten ein. --> | ||
Zeile 111: | Zeile 111: | ||
'''2. Regelkreis''' | '''2. Regelkreis''' | ||
<gallery widths="600" heights="300"> | <gallery widths="600" heights="300"> | ||
Datei:Regelkreis Ballbalancierer 2022.jpg|Abb. | Datei:Regelkreis Ballbalancierer 2022.jpg|Abb. 4: Regelkreis <ref> Eigenes Dokument </ref> | ||
</gallery> | </gallery> | ||
Zeile 130: | Zeile 130: | ||
<gallery widths="1200" heights="450"> | <gallery widths="1200" heights="450"> | ||
Datei:Einheitssprung.jpg|Abb. | Datei:Einheitssprung.jpg|Abb. 5: Einheitssprung und Sprungantwort <ref> Eigenes Dokument </ref> | ||
</gallery> | </gallery> | ||
Zeile 139: | Zeile 139: | ||
<gallery widths="1200" heights="400"> | <gallery widths="1200" heights="400"> | ||
Datei:Regler Berechnung.jpg|Abb. | Datei:Regler Berechnung.jpg|Abb. 6: Berechnung des Reglers <ref> Eigenes Dokument </ref> | ||
</gallery> | </gallery> | ||
Mit dem ermittelten Verhalten der Regelstrecke Gs wurde das Gesamtübertragungsverhalten Gw mit einem PDT1 Regler berechnet. Als Ergebnis kam ein Xstat Wert von 1 heraus, welcher uns bescheinigt, dass der gewählte Regler unserer Regelung passt. | Mit dem ermittelten Verhalten der Regelstrecke Gs wurde das Gesamtübertragungsverhalten Gw mit einem PDT1 Regler berechnet. Als Ergebnis kam ein Xstat Wert von 1 heraus, welcher uns bescheinigt, dass der gewählte Regler unserer Regelung passt. | ||
Zeile 215: | Zeile 215: | ||
<gallery widths="750" heights="400"> | <gallery widths="750" heights="400"> | ||
Datei:Funktionaler SystementwurfTechnischer Systementwurf.pdf|mini|Abb. | Datei:Funktionaler SystementwurfTechnischer Systementwurf.pdf|mini|Abb. 7: Funktionaler Systementwurf/Technischer Systementwurf <ref> Eigenes Dokument </ref> | ||
</gallery> | </gallery> | ||
Zeile 225: | Zeile 225: | ||
<gallery widths="750" heights="400"> | <gallery widths="750" heights="400"> | ||
Datei:Simulink Modell Gesamtsystem.png|mini|Abb. | Datei:Simulink Modell Gesamtsystem.png|mini|Abb. 8: Simulink Modell Gesamtsystem <ref> Eigenes Dokument </ref> | ||
Datei:Simulink Modell Einzelkomponenten.png|mini|Abb. | Datei:Simulink Modell Einzelkomponenten.png|mini|Abb. 9: Simulink Modell Einzelkomponenten <ref> Eigenes Dokument </ref> | ||
Datei:Simulink Modell IR-Sensor.png|mini|Abb. | Datei:Simulink Modell IR-Sensor.png|mini|Abb. 10: Simulink Modell IR-Sensor <ref> Eigenes Dokument </ref> | ||
Datei:Simulink Modell LED Steuerung.png|mini|Abb. | Datei:Simulink Modell LED Steuerung.png|mini|Abb. 11: Simulink Modell LED Steuerug <ref> Eigenes Dokument </ref> | ||
Datei:Simulink Modell PDT1 Regler.png|mini|Abb. | Datei:Simulink Modell PDT1 Regler.png|mini|Abb. 12: Simulink Modell PDT1 Regler <ref> Eigenes Dokument </ref> | ||
</gallery> | </gallery> | ||
Zeile 241: | Zeile 241: | ||
<gallery widths="750" heights="400"> | <gallery widths="750" heights="400"> | ||
Datei:Regelung des Balls nach anstoßen.png|mini|Abb. | Datei:Regelung des Balls nach anstoßen.png|mini|Abb. 13: Regelung des Balls nach anstoßen <ref> Eigenes Dokument </ref> | ||
</gallery> | </gallery> | ||
Zeile 262: | Zeile 262: | ||
<gallery widths="1200" heights="500"> | <gallery widths="1200" heights="500"> | ||
Datei:Projektplan Ballbalancierer.jpg|Abb. | Datei:Projektplan Ballbalancierer.jpg|Abb. 14: Projektplan Arduino Ballbalancierer <ref> Eigenes Dokument </ref> | ||
</gallery> | </gallery> | ||
Version vom 23. Dezember 2022, 18:09 Uhr
Autoren: Niklas Reeker & Marius Erdmann
Betreuer: Prof. Dr.-Ing. Mirek Göbel & Prof. Dr.-Ing. Ulrich Schneider
→ zurück zur Übersicht: WS 22/23: Angewandte Elektrotechnik (BSE)
Einleitung
Im Rahmen des GET-Fachpraktikums ensteht das Projekt Arduino Ballbalancierer. Bei diesem wird ein Ball mithilfe von Steuerungs- und Regelungsalgorithmen in der Mitte einer Wippe ausbalanciert. Auf externe Störeinflüsse soll das mechatronische System reagieren und den Ball schnellstmöglich an seine urspüngliche Position zurückbewegen. Eine RGB-LED zeigt zudem an ob das System Betriebsbereit ist.
Anforderungen
ID | Inhalt | Ersteller | Datum | Geprüft von | Datum |
---|---|---|---|---|---|
1 | Entwerfen einer mechanischen Konstruktion, welche als Wippe fungiert. | Marius Erdmann | 13.10.2022 | Niklas Reeker | 14.10.2022 |
2 | Herstellen einer Stromversorgung für Servomotor, Sensor, LED und Arduino. | Marius Erdmann | 13.10.2022 | Niklas Reeker | 14.10.2022 |
3 | Automatisches starten des Arduino Programms bei vorhandener Stromversorgung. | Marius Erdmann | 13.10.2022 | Niklas Reeker | 14.10.2022 |
4 | Die LED soll einen Status anzeigen (System mit Spannung versorgt, System aktiv). | Marius Erdmann | 13.10.2022 | Niklas Reeker | 14.10.2022 |
5 | Der Sensor soll die Entfernung zum Ball korrekt erfassen. | Marius Erdmann | 13.10.2022 | Niklas Reeker | 14.10.2022 |
6 | Der Arduino soll den Servomotor ansteuern. | Marius Erdmann | 13.10.2022 | Niklas Reeker | 14.10.2022 |
7 | Es soll ein passender Regler ausgewählt werden. | Marius Erdmann | 13.10.2022 | Niklas Reeker | 14.10.2022 |
8 | Die gewählte Regelung muss passend parametriert werden. | Marius Erdmann | 13.10.2022 | Niklas Reeker | 14.10.2022 |
9 | Die LED soll eine visuelle Rückmeldung geben, wenn der Ball in der Mitte ist. | Marius Erdmann | 13.10.2022 | Niklas Reeker | 14.10.2022 |
Tabelle 1 zeigt die funktionalen Anforderungen.
Funktionaler Systementwurf/Technischer Systementwurf
Reglerauslegung
Bei der Reglerausöegung wurde nach den in der Vorlesung vorgegebenen Schritten vorgegangen:
1. Regelziel formulieren
Die Regelgröße dist, welche die Entfernung vom Sensor zum Ball angibt, soll möglichst genau mit der Sollentfernung dsoll übereinstimmen. Das heißt, die Regeldifferenz soll möglichst gering sein, sodass der Ball an der Stelle der Sollentfernung durch das System gehalten wird.
2. Regelkreis
-
Abb. 4: Regelkreis [3]
dsoll: optimale Entfernung (Entfernung Sensor zur Mitte der Wippe)
dDiff: Differenz aktuelle Entfernung (r) und Sollentfernung (w)
α: Winkel für den Servomotor
F: äußere Krafteinwirkung auf den Ball
dmess: gemessene Entfernung
dist: aktuelle Entfernung
3. Verhalten der Regelstrecke ermitteln
-
Abb. 5: Einheitssprung und Sprungantwort [4]
Um das Verhalten der Regelstrecke zu bestimmen wurde ein Einheitssprung durchgeführt. Dazu wurde bei dem Servomotor ein WInkel von 3° eingestellt und die Entfernung des Balls vom Sensor gemessen und aufgezeichnet.
4. Zur Regelstrecke und den Regelzielen passenden Regler bestimmen
-
Abb. 6: Berechnung des Reglers [5]
Mit dem ermittelten Verhalten der Regelstrecke Gs wurde das Gesamtübertragungsverhalten Gw mit einem PDT1 Regler berechnet. Als Ergebnis kam ein Xstat Wert von 1 heraus, welcher uns bescheinigt, dass der gewählte Regler unserer Regelung passt.
5. Regler-Parameter ermitteln
Die Regler-Parameter wurden durch ausprobieren eingestellt. Dabei wurden immer wieder Analysen anhand der in Simulink erzeugten Messwerte vorgenommen.
Komponentenspezifikation
ID | Komponente | Bezeichnung |
---|---|---|
1 | Konstruktion mit Wippe | Eigenbau |
2 | Arduino Uno Rev. 3 | A000073 |
3 | Sharp Entfernungssensor | GP2Y0A21YK0F |
4 | Futaba Servomotor | S3003 |
4 | RGB-LED | LL 5-8000RGB |
Tabelle 2 zeigt die benötigten Komponenten für den Aufbau des Ballbalancierers.
Umsetzung (Hardware)
Wippe
Für die Wippe wurde als Grundplatte eine Multiplex Holzplatte verwendet. Auf diese wurde ein Kantholz festgeschraubt. An dem Kantholz ist auf der Oberseite ein Scharnier angebracht, welches als Verbindung zu dem U-Profil aus Kunststoff dient und dabei die Wippfunktion ermöglicht. Außerdem ist an dem Kantholz der Servomotor mittels einer Halterung befestigt. Auf dem U-Profil auf welchem sich später der Ball bewegen soll befindet sich der Infrarotsensor. Dieser ist über eine Halterung aus Holz an dem U-Profil angebracht. Das Breadboard sowie der Mikrocontroller sind auf der Grundplatte befestigt.
Netzteil
Ein Netzteil wandelt die zugeführte Wechselspannung, die am Eingang anliegt, in die benötigte Gleichspannung um. In diesem Fall versorgt das Netzteil den Ballbalancierer mit einer 5V Gleichspannung.
Arduino Uno
Der Arduino Uno SMD R3 ist ein Mikrocontroller-Board, das auf dem ATmega328 basiert. Es hat 14 digitale Input/Output-Pins (von denen 6 als PWM-Outputs genutzt werden können), 6 analoge Eingänge, einen 16-MHz-Schwingquarz, einen USB-Anschluss, einen Netzstecker, einen ISP-Anschluss und eine Rückstelltaste. Der Arduino steuert das Gesamtsystem und wird von dem Netzteil mit einer 5V Gleichspannung versorgt.[6]
Infrarotsensor (IR)
Der Infrarotsesnsor misst die Entfernung zum Ball mittels Triangulation. Triangulation bedeutet Abstandsmessung durch Winkelberechnung. Der Sensor projiziert einen Laserpunkt auf das Messobjekt. Das dort reflektierte Licht trifft abhängig von der Entfernung unter einem bestimmten Winkel auf ein Empfangselement. Anhand des Winkels kann dann die Entfernung zum Messobjekt bestimmt werden. Die analogen Messwerte sind an der Port A0 mit dem Arduino Uno verbunden.[7]
RGB LED
Eine RGB-LED kann verschiedene Farben ausgeben, indem sie die 3 Grundfarben Rot, Grün und Blau mischt und auch die Intensität ändert. Sie besteht also aus 3 separaten LEDs, Rot, Grün und Blau, die in einem einzigen Gehäuse untergebracht sind. Deshalb gibt es 4 Leitungen, eine Leitung für jede der 3 Farben und eine gemeinsame Kathode oder Anode, abhängig vom RGB-LED-Typ. Um andere Farben zu erzeugen, können Sie die drei Farben in verschiedenen Intensitäten kombinieren. Bei dem Ballbalancierer leuchtet die LED beim einschalten zunächst rot, da das System einige Zeit benötigt um hoch zu fahren. Anschließend leuchtet die LED grün, wenn der Ball in der Mitte der Wippe liegt oder blau wenn dies gerade nicht der Fall ist. [8]
Servomotor
Ein Servomotor ist ein Elektromotor samt seiner Steuerelektronik. Dieser kann durch ein PWM Signal einen bestimmten Winkel ansteuern und so über den Hebel die Wippe bewegen. [9]
Verdrahtungsplan
Nachfolgend ist der Verdrahtungsplan für den Ballbalancierer gezeigt:
-
Abb. 7: Funktionaler Systementwurf/Technischer Systementwurf [10]
Umsetzung (Software)
Die Software für den Ballbalancierer wurde in Matlab Simulink erstellt und getestet. Anschließend wurde das Programm in den Arduino hochgeladen und dort ausgeführt. Nachfolgend werden die einzelnen Softwarekomponenten gezeigt:
-
Abb. 8: Simulink Modell Gesamtsystem [11]
-
Abb. 9: Simulink Modell Einzelkomponenten [12]
-
Abb. 10: Simulink Modell IR-Sensor [13]
-
Abb. 11: Simulink Modell LED Steuerug [14]
-
Abb. 12: Simulink Modell PDT1 Regler [15]
Komponententest
Die Komponenten wurden nach erhalt auf äußere Beschädigungen überprüft und anschließend in Simulink angesteuert um die Funktionsfähigkeit der einzelnen Komponenten zu gewährleisten. Die Sensorkennline wurde Eingemessen und die eigenen Messwerte in Simulink übertragen, um Messfehlern vorzubeugen. Zusätzlich wurden bei verschiedenen Testläufen regelmäßig die Einzelkomponenten erneut auf ihre Funktion überprüft.
Ergebnis
Der Ballbalancierer erfüllt die oben beschriebenen Anforderungen und regelt den Ball schnell in die Wippenmitte zurück. Die LED zeigt dabei den Status des Gesamtsystems an. In der nachfolgenden Abbildung sieht man die Regelung von dem P-Anteil (Gelb) und dem D-Anteil (Orange). Dies zeigt die schnelle und erfolgreiche Regelung des Balls nach dem anstoßen zurück zur Sollentfernung
-
Abb. 13: Regelung des Balls nach anstoßen [16]
Zusammenfassung
Lessons Learned
Das Projekt hat uns gelehrt, ein System von der Projektplanung über die Konstruktion und Programmierung bis hin zu den Komponententests und dem Gesamttest zu entwickeln. Die bereits im Grundstudium gelernten Studieninhalte konnten dabei angewendet und die einzelnen Lehrveranstaltung besser verknüpft werden. Als Lessons Learned sind folgende Punkte besonders hervorzuheben:
- Notwendigkeit einer guten Projektplanung
- Anforderungsorientiertes Arbeiten
- Umgang mit Microcontroller (insbesondere mit Simulink), Sensoren und Aktoren sowie dessen Auswahl
- Schaltplanerstellung mit QElektroTech
- Auswahl von Reglern
- Erstellen und einstellen eines Reglers mit Simulink
- Messdaten lesen, deuten und verarbeiten
- Erstellen von Artikeln im Wiki
Projektunterlagen
Projektplan
-
Abb. 14: Projektplan Arduino Ballbalancierer [17]
Projektdurchführung
Nach Erstellung eines Projektplans erfolgt die Auswahl und Beschaffung der Sensoren und Aktoren sowie aller weiteren Bauelemente/Bauteile. Anschließend soll der Aufbau der Konstruktion erfolgen. Nach dem Zusammenbau sollen die elektronischen Einzelkomponenten angeschlossen und getestet werden. Die dafür zu schreibenden Einzelprogramme werden später für das Gesamtprogramm zusammengeführt. Nach dem Einbau aller elektrischen Komponenten in das Gesamtsystem wird der PID-Regler programmiert und parametriert. Zum Schluss wird die Funktionalität des Gesamtsystems überprüft, ein YouTube-Video gedreht und das Projekt auf der Projektmesse vorgestellt.
YouTube Video
Ein Video des fertigen Projektes kann bald hier angeschaut werden.
Weblinks
Literatur
→ zurück zur Übersicht: WS 22/23: Angewandte Elektrotechnik (BSE)
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ https://www.digikey.de/reference-designs/en/open-source-mcu-platforms/open-source-mcu-platforms/2762?utm_adgroup=General&utm_source=google&utm_medium=cpc&utm_campaign=Dynamic%20Search_EN_RLSA_Product_Site%20Visitor&utm_term=&productid=&gclid=EAIaIQobChMIiJ_Mr46Q_AIV7I9oCR3WUgR9EAAYASAAEgJuiPD_BwE, abgerufen am 23.12.2022
- ↑ https://docs.rs-online.com/998e/A700000008623644.pdf, abgerufen am 23.12.2022
- ↑ https://www.reichelt.de/rgb-led-5-mm-bedrahtet-4-pin-rt-gn-bl-8000-mcd-25--led-ll-5-8000rgb-p156358.html, abgerufen am 23.12.2022
- ↑ https://pdf1.alldatasheet.com/datasheet-pdf/view/1221444/ETC1/S3003.html/, abgerufen am 23.12.2022
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument