Arduino Ballbalancierer
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
-
Abb. 1: Technischer Systementwurf
-
Abb. 2: Funktionaler 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. x: Regelkreis
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. x: Einheitssprung und Sprungantwort
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. x: Berechnung des Reglers
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.[1]
Infrarotsensor
Der Infrarotsesnsor misst die Entfernung zum Ball mittels Triangulation. Triangulation bedeutet Abstandsmessung durch Winkelberechnung. Ein 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.[2]
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. [3]
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. [4]
Verdrahtungsplan
Nachfolgend ist der Verdrahtungsplan für den Ballbalancierer gezeigt:
-
Abb. 3: Funktionaler Systementwurf/Technischer Systementwurf
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. 4: Simulink Modell Gesamtsystem
-
Abb. 5: Simulink Modell Einzelkomponenten
-
Abb. 6: Simulink Modell IR-Sensor
-
Abb. 7: Simulink Modell LED Steuerug
-
Abb. 8: Simulink Modell PDT1 Regler
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 in die Wippenmitte.
-
Abb. 3: Regelung des Balls nach anstoßen
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. 3: Projektplan Arduino Ballbalancierer
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)
- ↑ 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