Servo-Labyrinth: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(65 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 14: Zeile 14:


== Einleitung ==
== Einleitung ==
Als Schlüssel zum Rätsel könnte man z.B. eine Batterie erhalten, welche für die Spannungsversorgung des Arduinos dient.  
Als Schlüssel zum Rätsel muss eine Spannungsversorgung für die Servomotoren hergestellt werden.  
Es gibt ein 3D-gedrucktes Labyrinth, in welchem sich eine Kugel befindet. Ziel des Spieles ist es, die Kugel in 4 Ziele in dem Labyrinth zu befördern. Die Kugel wird durch die Neigung des Labyrinths bewegt. Die Neigung wird durch Servomotoren bestimmt, welche durch Potentiometer bewegt werden. Die Potentiometer müssen allerdings erst durch eine Rätselaufgabe freigeschaltet werden. Dies geht mit einer Widerstandsrechenaufgabe, in der man den passenden Widerstand ausrechnen muss, der den Arduino und somit die Schaltung mit Spannung versorgt.
Es gibt ein 3D-gedrucktes Labyrinth, in welchem sich eine Kugel befindet. Ziel des Spieles ist es, die Kugel in 4 Ziele in dem Labyrinth zu befördern. Die Kugel wird durch die Neigung des Labyrinths bewegt. Die Neigung wird durch Servomotoren bestimmt, welche durch Potentiometer bewegt werden. Die Potentiometer müssen allerdings erst durch eine stabile Spannungsversorgung freigeschaltet werden.
In jeder Ecke des Labyrinths wird ein kapazitiver Sensor sein, welcher bei Schaltung eine Ziffer auf dem Display ausgibt. Die 4 Ziffern zusammen ergeben dann den Code für das nächste Rätsel.
In jeder Ecke des Labyrinths wird ein kapazitiver Sensor sein, welcher bei Schaltung eine Ziffer auf dem Display ausgibt. Die 4 Ziffern zusammen ergeben dann den Code für das nächste Rätsel.
Das Schwierigkeitslevel lässt sich durch die Widerstandsaufgabe beliebig bestimmen. Wir werden vorerst auf ein einfaches Rätsel zurückgreifen.
Das Schwierigkeitslevel ist als mittelschwer anzusehen.


== Anforderungen ==
== Anforderungen ==
Zeile 25: Zeile 25:
! Nr  !! Inhalt !! Prüfbarkeit !! Prio!! Ersteller !! Datum !! Geprüft von !! Datum
! Nr  !! Inhalt !! Prüfbarkeit !! Prio!! Ersteller !! Datum !! Geprüft von !! Datum
|-
|-
| 1  || Die Servomotoren sollen das Spielbrett bewegen können. || Sichtkontrolle auf Bewegung || 1 || Linus Sauermann ||10.10.2024 || ||  
| 1  || Die Servomotoren sollen das Spielbrett bewegen können. || Sichtkontrolle auf Bewegung || 1 || Linus Sauermann ||10.10.2024 || Torben Moratz || 13.01.2025
|-
|-
| 2  || Die kapazitiven Sensoren müssen die Kugel erkennen können. || Auswerten der Sensorsignale || 1 || Linus Sauermann ||10.10.2024 || ||  
| 2  || Die kapazitiven Sensoren müssen die Kugel erkennen können. || Auswerten der Sensorsignale || 1 || Linus Sauermann ||10.10.2024 || Torben Moratz || 13.01.2025
|-
|-
| 3  || Ein Display soll bei aktiviertem Sensor den nächsten Code anzeigen. || Auslesen des Displays || 1 || Torben Moratz ||10.10.2024 || ||  
| 3  || Ein Display soll bei aktiviertem Sensor den nächsten Code anzeigen. || Auslesen des Displays || 1 || Torben Moratz ||10.10.2024 || Torben Moratz || 13.01.2025
|-
|-
| 4  || Servomotoren sollen funktionieren, sobald der richtige Widerstand ausgewählt und verbaut wurde. || Verfahren der Servos || 1 || Torben Moratz ||10.10.2024 || ||  
| 4  || Servomotoren sollen funktionieren, sobald der richtige Widerstand ausgewählt und verbaut wurde. || Verfahren der Servos || 1 || Torben Moratz ||10.10.2024 || Torben Moratz || 13.01.2025 
|-
|-
| 5  || Aufbau erfolgt in Größe eines Schuhkartons. || Ausmessen der Größe des Aufbaus || 1 || Linus Sauermann ||13.11.2024 || ||  
| 5  || Aufbau erfolgt in Größe eines Schuhkartons. || Ausmessen der Größe des Aufbaus || 1 || Linus Sauermann ||13.11.2024 || Torben Moratz || 13.01.2025
|-
|-
| 6  || Die Eingabe der Servostellungen erfolgt durch die Potentiometer. || Auswerten der Eingangssignale im Arduino || 1 || Linus Sauermann ||13.11.2024 || ||  
| 6  || Die Eingabe der Servostellungen erfolgt durch die Potentiometer. || Auswerten der Eingangssignale im Arduino || 1 || Linus Sauermann ||13.11.2024 || Torben Moratz || 13.01.2025
|-
|-
| 7  || Die Verarbeitung der Werte erfolgt durch den Arduino. || Auslesen der Ausgangssignale des Arduinos || 1 || Linus Sauermann ||13.11.2024 || ||  
| 7  || Die Verarbeitung der Werte erfolgt durch den Arduino. || Auslesen der Ausgangssignale des Arduinos || 1 || Linus Sauermann ||13.11.2024 || Torben Moratz || 13.01.2025 
|-
|-
| 8  || Die Ausgabe der Werte und die Neigung des Labyrinthes erfolgt durch die Servomotoren. || Vergleichen der Ausgabewerte mit den Stellungen der Servomotoren || 1 || Linus Sauermann ||13.11.2024 || ||  
| 8  || Die Ausgabe der Werte und die Neigung des Labyrinthes erfolgt durch die Servomotoren. || Vergleichen der Ausgabewerte mit den Stellungen der Servomotoren || 1 || Linus Sauermann ||13.11.2024 || Torben Moratz || 13.01.2025 
|-
|-
| 9  || Die Ausgabe der Ziffern des Zahlencodes erfolgt durch das LCD-Display. || Auslesen der Ziffern auf dem Display || 1 || Linus Sauermann ||13.11.2024 || ||  
| 9  || Die Ausgabe der Ziffern des Zahlencodes erfolgt durch das LCD-Display. || Auslesen der Ziffern auf dem Display || 1 || Linus Sauermann ||13.11.2024 || Torben Moratz || 13.01.2025 
|-
|-
| 10  || Die Spannungsversorgung erfolgt durch 9v-Blockbatterien. || Messen der Eingangsspannung am Arduino und Hardwarekontrolle,<br> ob korrekte Batterien verwendet werden || 1 || Linus Sauermann ||13.11.2024 || ||  
| 10  || Die Spannungsversorgung erfolgt durch 9v-Blockbatterien. || Messen der Eingangsspannung am Arduino und Hardwarekontrolle,<br> ob korrekte Batterien verwendet werden || 1 || Linus Sauermann ||13.11.2024 || Torben Moratz || 13.01.2025
|-
|-
| 11  || Erreichen der Kapazitiven Sensoren bedingt die Freischaltung je einer neuen Ziffer des Codes. || Auslösen der Sensoren durch die Stahlkugel || 1 || Linus Sauermann ||13.11.2024 || ||  
| 11  || Erreichen der Kapazitiven Sensoren bedingt die Freischaltung je einer neuen Ziffer des Codes. || Auslösen der Sensoren durch die Stahlkugel || 1 || Linus Sauermann ||13.11.2024 || Torben Moratz || 13.01.2025 
|-
|-
| 12  || Die vier Ziffern des Codes ergeben den Code des nächsten Schlosses. || Einstellen des Codes in das Zahlenschloss || 1 || Linus Sauermann ||13.11.2024 || ||  
| 12  || Die vier Ziffern des Codes ergeben den Code des nächsten Schlosses. || Einstellen des Codes in das Zahlenschloss || 1 || Linus Sauermann ||13.11.2024 || Torben Moratz || 13.01.2025
|-
|-
| 13  || Der Widerstandswert für die Spannungsversorgung kann berechnet und der korrekte<br> Widerstand mithilfe einer Tabelle ausgewählt werden. || Formel nachrechnen und mit Tabelle auslesen || 1 || Linus Sauermann ||13.11.2024 || ||  
| 13  || Der Widerstandswert für die Spannungsversorgung kann berechnet und der korrekte<br> Widerstand mithilfe einer Tabelle ausgewählt werden. || Formel nachrechnen und mit Tabelle auslesen || 1 || Linus Sauermann ||13.11.2024 || Torben Moratz || 13.01.2025 
|-
|-
|}
|}
Zeile 65: Zeile 65:
|3  || 4 || Servomotor JAMARA 033212 ||  https://www.reichelt.de/servo-high-end-micro-analog-jamara-033212-p238316.html?&trstct=pos_7&nbc=1,
|3  || 4 || Servomotor JAMARA 033212 ||  https://www.reichelt.de/servo-high-end-micro-analog-jamara-033212-p238316.html?&trstct=pos_7&nbc=1,
|-
|-
|4  || ? || Widerstände
|4  || 1 || 7805 || https://cdn.sparkfun.com/assets/1/7/7/3/2/LM7805.pdf
|-
|-
|5  || ? || Leitungen
|5  || 1 || Kondensator 0,33µF || https://www.reichelt.de/de/de/shop/produkt/subminiatur-elko_radial_330_nf_63_v_rm_1_5_85_c_1000h_20_-18159?PROVID=2788&gad_source=1&gclid=Cj0KCQiAkJO8BhCGARIsAMkswyhrOkxm5c9xCuq98eWDJ9X3VULyN3ZeTa64bmH7ODA5kUfJgtDpJHoaAuYjEALw_wcB&q=%2Fsubminiatur-elko-radial-330-nf-63-v-rm-1-5-85-c-1000h-20--sm-0-33-63rad-p18159.html
|-
|-
|6  || 1 || Breadboard || https://www.reichelt.de/experimentier-steckboard-set-830-kontakte-power-modul-breadboard-set1-p282601.html?&trstct=pos_7&nbc=1
|6  || 1 || Kondensator 0,1µF || https://www.pollin.de/p/elko-0-1-f-50v-radial-rm-5mm-210811?etcc_med=fshopping&etcc_ori=google&et_cmp_seg2=sea-fshopping&channelid=fshopping&utm_medium=fshopping&utm_source=google&etcc_med=CPC&etcc_par=Google&etcc_cmp=PMax-DE-CSS-Shopping-VP-5&et_cmp_seg2=SEA-CSS&etcc_var=Cj0KCQiAkJO8BhCGARIsAMkswyjggdykntN-163Jv7nBZ-pufL46ZLEBI9dQGSme-Ie6QWSRuFcV30UaAgpdEALw_wcB&et_cmp_seg1=20281414516&etcc_grp=&etcc_bky=&etcc_mty=&gad_source=1&gclid=Cj0KCQiAkJO8BhCGARIsAMkswyjggdykntN-163Jv7nBZ-pufL46ZLEBI9dQGSme-Ie6QWSRuFcV30UaAgpdEALw_wcB
|-
|-
|7  || 1 || Spannungsversorgung/Netzteil
|7  || ? || Leitungen
|-
|-
|8  || 1 || Stahlkugel ø10mm
|8  || 1 || Breadboard || https://www.reichelt.de/experimentier-steckboard-set-830-kontakte-power-modul-breadboard-set1-p282601.html?&trstct=pos_7&nbc=1
|-
|-
|9  || 1 || 3D-gedrucktes Labyrinth
|9  || 1 || Spannungsversorgung/Netzteil || https://www.elektroshopwagner.de/product_info.php?info=p264627&utm_campaign=froogle_264627&utm_source=froogle&utm_medium=CPC&utm_content=textanzeige&campaign=froogle&gad_source=1&gclid=Cj0KCQiAkJO8BhCGARIsAMkswyiXBG5RhCHzIrnvz26-E2WORFHguntAM2KpaynEcXYjlPJ_Nd9YyiUaAvswEALw_wcB
|-
|-
|10  || 1 || LCD-Display mit I2C-Schnittstelle DEBO LCD 16X2 BL || https://www.reichelt.de/entwicklerboards-display-16-x-2-zeichen-blau-debo-lcd-16x2-bl-p192143.html?&trstct=pol_13&nbc=1
|10 || 1 || Stahlkugel ø10mm || https://www.ebay.de/itm/251999804089?_skw=stahlkugel+10mm&itmmeta=01JHFXNTQ4KK2GDHQ6G0SW1RH3&hash=item3aac5bdab9:g:sCgAAOSw3xJVcZtN&itmprp=enc%3AAQAJAAAA8HoV3kP08IDx%2BKZ9MfhVJKneuXP%2FKAmu9TnKoKNzP3Vg6nfSegPIg%2B2Wo8DulFcwa9GHvCcq%2BvIfZ08LcbXkobNTAKwP83OTJ1TTRucZEuvTo%2FutKFBEvAdB6ds8rdAHW3mwo27zaY5TdbAnoERirPFn771at0Li48991cNYh6Fl6iJg9RqD4TguBThETq6%2BgVDaWPO1jjMQUaj6y%2BBUHGkn12DNDxOAIJbsSJPkH3o%2FUw%2FRQ7NwwY38TJDZhviapBkZOnBieXLYdxWIS0pWHrE07E6Ej5J%2Fyz0imDcCWlYJwhGiAwKIH5S2Fq3D%2BVTAyQ%3D%3D%7Ctkp%3ABFBM6KvX_Ytl
|-
|11  || 1 || 3D-gedrucktes Labyrinth || Eigenkonstruktion
|-
|12 || 1 || LCD-Display mit I2C-Schnittstelle DEBO LCD 16X2 BL || https://www.reichelt.de/entwicklerboards-display-16-x-2-zeichen-blau-debo-lcd-16x2-bl-p192143.html?&trstct=pol_13&nbc=1
|-
|-
|}
|}
Zeile 83: Zeile 87:
Aufgabenstellung:
Aufgabenstellung:


Ziel ist es, alle Berührungssensoren im Labyrinth nacheinander zu triggern. Dafür steht euch die Kugel bereit. Die Kugel könnt ihr durch die Neigung des Labyrinths steuern. Zuvor muss die Steuerung allerdings erst aktiviert werden. Der Arduino läuft am besten mit 9V. Platzieren Sie an dargestellter Stelle denn richtigen Widerstand um den Arduino mit 9V zu versorgen (falls Sie einen falschen Widerstand auswählen zerstört sich das Rätsel eventuell von selbst).
Ziel ist es, alle Berührungssensoren im Labyrinth nacheinander zu triggern. Dafür steht euch die Kugel bereit. Die Kugel könnt ihr durch die Neigung des Labyrinths steuern. Zuvor muss die Steuerung allerdings erst aktiviert werden. Die Servos laufen mit 5V. Aus einer Auswahl an Bauteilen inkl. Datenblättern muss eine stabile Spannungsversorgung mit 5V hergestellt werden. (Im folgenden ist die Musterlösung dargestellt


[[Datei:Arduinorätselschaltung.png|1000px|thumb|left|Widerstandsnetzwerk-Rästel]]
[[Datei:Spannungsversorgung_Aufbau.png|1000px|thumb|left|Widerstandsnetzwerk-Rästel]]


<br>
<br>
Zeile 162: Zeile 166:
<br>
<br>


Es soll ein Kugellabyrinth wie dieses gebaut werden. Es wird 3D-gedrduckt. Statt der Drehknöpfe werden Servomotoren genutzt, welche durch Potis angesteuert werden.
Es soll ein Kugellabyrinth wie dieses gebaut werden. Es wird 3D-gedruckt. Statt der Drehknöpfe werden Servomotoren genutzt, welche durch Potis angesteuert werden.


== Komponentenspezifikation ==
== Komponentenspezifikation ==
Zeile 182: Zeile 186:
'''Ausgabe:'''<br>
'''Ausgabe:'''<br>
Um die Ziffern der Zahlenkombination auszugeben wird ein LCD-Display der Firma Debo verwendet. Dieses besitzt eine I2C-Schnittstelle, eine Spannungsversorgung von 5V, wird über den R3 angesteuert und kann zwei Zeilen mit jeweils 16 Zeichen anzeigen.
Um die Ziffern der Zahlenkombination auszugeben wird ein LCD-Display der Firma Debo verwendet. Dieses besitzt eine I2C-Schnittstelle, eine Spannungsversorgung von 5V, wird über den R3 angesteuert und kann zwei Zeilen mit jeweils 16 Zeichen anzeigen.


== Umsetzung (HW/SW) ==
== Umsetzung (HW/SW) ==


Die Umsetzung hat mit der Konstruktion eines Labyrinthes und der Basis angefangen. Bei der Basis wurde sofort beachtet, dass zwei Servomotoren montiert werden müssen. Die Bauteile sind nicht fest miteinander verbunden, da das Labyrinth nur mit einer Halbkugel in einer Halbkugelaufnahme der Basis liegt
Mechanik:
 
Die Umsetzung hat mit der Konstruktion eines Labyrinthes und der Basis angefangen. Bei der Basis wurde sofort beachtet, dass zwei Servomotoren montiert werden müssen. Die Bauteile sind nicht fest miteinander verbunden, da das Labyrinth nur mit einer Halbkugel in einer Halbkugelaufnahme der Basis liegt. Unter folgenden Links sieht man, wie die Dateien gedruckt wurden:
 
https://youtu.be/3s5a0_mib68
<br>
https://youtu.be/KijWvp9GWoU


[[Datei:LabBild1.jpg|400px|thumb|left|Labyrinth+Basis Bild 1]]
[[Datei:LabBild1.jpg|400px|thumb|left|Labyrinth+Basis Bild 1]]
[[Datei:LabPlusBasis2.jpg|400px|thumb|rig|Labyrinth+Basis Bild 2]]
[[Datei:LabPlusBasis2.jpg|400px|thumb|right|Labyrinth+Basis Bild 2]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
 
 
Die Servos konnten nun mit leichtem Druck eingepresst (die Sticker an den Servos mussten aufgrund der niedrigen Toleranz entfernt werden) und zusätzlich mit in den Kunststoff verschraubt werden. Um das Moment des Servos in eine lineare Kraft auf das Labyrinth zu übertragen und es somit steuern zu können, müssen passende Hebel entworfen werden. Der erste Versuch bestand daraus, direkt den Hebel auf den Servomotor zu schrauben. Der Motor hat sich dabei allerdings stets durchgedreht und der Hebel wurde nicht mitbewegt. Um dieses Problem zu lösen haben wir die bestehenden Hebel genommen, welche durch ihre Zähne deutlich besser in den Servomotor greifen und ein Durchrutschen nicht ermöglichen, und ihn in unseren Hebel eingelassen. Diese wurden zusätzlich verklebt, um ein Lösen der Hebel voneinander zu verhindern. Folgende Konstruktion ist dabei nach einigen Versuchen entstanden:
 
Link zum Druckvideo: https://youtu.be/gk-wfAy2J7Y
<br>
 
[[Datei: HebelServolabyrinth.zip |mini|links|Hebel Servolabyrinth]]
[[Datei:Hebel_als_Baugruppe_1.png|400px|thumb|left|Hebel Vollansicht Bild 1]]
[[Datei:Hebel_als_Baugruppe_2.png|500px|thumb|right|Hebel Vollansicht Bild 2]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
 
Der Hebel wurde mittels "Print-In-Place-Konstruktion" 3D-gedruckt. Dies bedeutet, dass man bei der Konstruktion darauf achtet, dass die Bauteile einen gewissen Abstand zueinander haben (in diesem Fall sind die Abstände im Gelenk selbst meistens 0,4 mm). Somit kann man den ganzen Hebel samt Gelenk in einem Stück drucken. Der Hebel sieht im Detail und im Schnitt wie folgt aus:
 
[[Datei: HebelServolabyrinth.zip |mini|links|Hebel Servolabyrinth]]
[[Datei:Hebel_als_Baugruppe_3.png|400px|thumb|left|Gelenk Detailansicht]]
[[Datei:Hebel_als_Baugruppe_4.png|500px|thumb|right|Gelenk Schnittansicht]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
 
 
Die Elektrik wird in einem Kasten unter dem Labyrinth versteckt. Der Kasten hat Einlässe für die Leitungen von den Servos, Sensoren, Strom und für das Gamepad. Hier ein Video, wie der Kasten gedruckt wurde:https://youtu.be/GTLqi6yRiPU
 
[[Datei: ElektronikgehaeuseServolabyrinth.zip |mini|links|Elektronikgehäuse Servolabyrinth]]
[[Datei:Elektronikgehaeuse.png|800px|thumb|left|Gelenk Detailansicht]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
 
 
Um die Ränder des Displays zu verdecken, wurde ein Rahmen konstruiert, welcher von außen aufgesetzt wird. Unter folgendem Link ist der Druck zu sehen:https://youtu.be/seOFa7FvqpA
 
[[Datei: DisplayabdeckungServolabyrinth.zip |mini|links|Displayabdeckung Servolabyrinth]]
[[Datei:Displayabdeckung.png|800px|thumb|left|Gelenk Detailansicht]]
 
 
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
 
 
 
Um die Servos ansteuern zu können, wurde ein Gamepad aus zwei Teilen entwickelt. Unter folgenden Links sehen Sie, wie die Teile gedruckt wurden: https://youtu.be/Kqq0jZhlYXE
<br>
https://youtu.be/hIuBtpjJ3dE
<br>
[[Datei: ControllerServolabyrinth.zip |mini|links|Controller Servolabyrinth]]
[[Datei:Gamepad-Baugruppe.png|800px|thumb|left|Gelenk Detailansicht]]
 
 
 
 
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
 
 
Elektrik:
 
Die Elektrik sieht mit der Planung von Multisim wie folgt aus:
 
[[Datei: Ablauf_ServolabyrinthPAP.zip |mini|links|Schaltung Servolabyrinth]]
[[Datei:Schaltung_ServoLabyrinth.png|800px|thumb|left|Schaltung Servolabyrinth]]
 
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
Software:
Die Software wurde mittels eines Programmablaufplans vor strukturiert und sieht wie folgt aus:
[[Datei: Ablauf_ServolabyrinthPAP.zip |mini|links|Abb. 01: Servolabyrinth PAP]]
[[Datei:Programmablaufplan_Servolabyrinth.png|800px|thumb|left|Voraussichtlicher Ablauf des Programms]]
<br>
<br>
<br>
<br>
Zeile 198: Zeile 430:
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
Im fertigen Simulinkprogramm sieht sie dann wie folgt aus:
[[Datei: MatlabServoLabyrinth.zip |mini|links|Matlabdatei]]
[[Datei:Simulink_Screenshot.png|800px|thumb|left|Simulinkprogrammierung]]
<br>
<br>
<br>
<br>
Zeile 228: Zeile 501:


== Komponententest ==
== Komponententest ==
Ziel des Testes ist die funktionale Überprüfung und Validierung der folgenden Komponenten:
Zwei Servomotoren,
Zwei Potentiometer,
Vier kapazitive Sensoren
Ein I2C Display
Testaufbau:
    Testplattform: Arduino Uno
    Spannungsversorgung: 5V DC
    Software: Für Tests eigens entwickelte Software
Testdurchführung:
Schritt eins: Initialisierung udn elektrische Prüfung:
                  ->Kurzschlussprüfung: Statische Widerstandmessung der Anschlüsse
                  ->Firmware-Initialisierung: Mikrocontroller startet mit der Testfirmware, I2C- Bus Kommunikation wird (falls vorhanden) getestet
Schritt zwei: Funktionstest einzelner Komponenten:
{| class="wikitable"
|+ style = "text-align: left"|Tabelle 3: Funktionstest der Komponenten
|-
! Nr  !! Bauteil !! Anzahl der Prüfvorgänge !! Prüfmethode !! Bestanden/nicht bestanden !! Datum !! Geprüft von
|-
| 1  || Servomotor || 1000 || Servomotoren werden von 0 bis 180 Grad in jeweils 30 Grad Schritten angesteuert, danach wird geschaut, ob ein Drift erkennbar ist || Bestanden, kein Drift erkennbar || 01.12.2024 || Torben Moratz
|-
| 2  || Potentiometer || 100 || Potentiometer werden von 0 bis 180 Grad in jeweils 30 Grad Schritten angesteuert, dabei wird geschaut, ob jeweils passende Werte angezeigt werden|| Bestanden, kein Drift erkennbar || 01.12.2024 || Torben Moratz
|-
| 3  || kapazitive Sensoren || 100 || kapazitive Sensoren werden in das Labyrinth eingelegt und die Stahlkugel wird ihnen genähert. Geprüft wird, ob der Sensor schaltet || Bestanden, jede einzelne Berührung erkannt || 01.12.2024 || Torben Moratz
|-
| 4  || I2C Display || 48 Stunden || Das Display soll wechselnde Texte auf dem Display ausgeben. Zur Prüfung wird mittels Sichtkontrolle geschaut, ob Fehler im Display vorhanden sind || Bestanden, keine Fehler erkannt erkannt || 01.12.2024 || Torben Moratz
|-
|}
Alle zu testenden Komponenten wurde somit getestet und haben bestanden.


== Ergebnis ==
== Ergebnis ==
Zeile 233: Zeile 539:
== Zusammenfassung ==
== Zusammenfassung ==
=== Lessons Learned ===
=== Lessons Learned ===
Im Verlauf des Projekts konnten wir wertvolle Erfahrungen und Erkenntnisse sammeln, die unsere Fähigkeiten und unser Wissen erweitert haben:
Effizientes Zeitmanagement: Durch den Einsatz des Programms GANTT haben wir gelernt, komplexe Projektphasen besser zu strukturieren, Aufgaben klar zu priorisieren und Deadlines realistisch zu planen.
Technisches Verständnis: Wir haben ein fundiertes Verständnis für die Funktionsweise und den Einsatz des Spannungsreglers 7805 erlangt, insbesondere im Hinblick auf seine Zuverlässigkeit und Leistungsgrenzen in verschiedenen Schaltungen.
Komponentenauswahl: Eine wichtige Erkenntnis war, dass die verwendeten Servomotoren in der Anwendung unterdimensioniert waren. Dies wird in zukünftigen Projekten durch eine sorgfältigere Auswahl leistungsfähigerer Komponenten berücksichtigt.
Konstruktion: Wir haben gelernt wie man ein Print in Place fähiges Bauteil konstruiert.
Diese Learnings bilden eine solide Grundlage für zukünftige Herausforderungen und tragen dazu bei, Projekte noch effizienter und zielgerichteter umzusetzen.


== Projektunterlagen ==
== Projektunterlagen ==
=== Projektplan ===
=== Projektplan ===
Die folgende Abbildung zeigt die Zeitplanung des Projektes zum Stand vom 06.12.2024:<br>
Die folgende Abbildung zeigt die Zeitplanung des Projektes zum Stand vom 13.01.2025:<br>
[[Datei:Zeitplanung_aktuell_2024_12_06.png|1000px|thumb|left|Zeitplanung Stand 13.11.2024]]<br>
[[Datei:Zeitplanung_aktuell2025_01_13.png|1000px|thumb|left|Zeitplanung Stand 13.01.2025]]<br>
<br>
<br>
<br>
<br>
<br>
Zeile 256: Zeile 575:
<br>
<br>
<br>
<br>
=== Projektdurchführung ===
== YouTube Video ==
== Weblinks ==


== Literatur ==
== Literatur ==

Aktuelle Version vom 13. Januar 2025, 15:39 Uhr

Autor: Linus Sauermann, Torben Moratz
Betreuer: Marc Ebmeyer


Einleitung

Als Schlüssel zum Rätsel muss eine Spannungsversorgung für die Servomotoren hergestellt werden. Es gibt ein 3D-gedrucktes Labyrinth, in welchem sich eine Kugel befindet. Ziel des Spieles ist es, die Kugel in 4 Ziele in dem Labyrinth zu befördern. Die Kugel wird durch die Neigung des Labyrinths bewegt. Die Neigung wird durch Servomotoren bestimmt, welche durch Potentiometer bewegt werden. Die Potentiometer müssen allerdings erst durch eine stabile Spannungsversorgung freigeschaltet werden. In jeder Ecke des Labyrinths wird ein kapazitiver Sensor sein, welcher bei Schaltung eine Ziffer auf dem Display ausgibt. Die 4 Ziffern zusammen ergeben dann den Code für das nächste Rätsel. Das Schwierigkeitslevel ist als mittelschwer anzusehen.

Anforderungen

Tabelle 1: Anforderungen an das Servo-Labyrinth
Nr Inhalt Prüfbarkeit Prio Ersteller Datum Geprüft von Datum
1 Die Servomotoren sollen das Spielbrett bewegen können. Sichtkontrolle auf Bewegung 1 Linus Sauermann 10.10.2024 Torben Moratz 13.01.2025
2 Die kapazitiven Sensoren müssen die Kugel erkennen können. Auswerten der Sensorsignale 1 Linus Sauermann 10.10.2024 Torben Moratz 13.01.2025
3 Ein Display soll bei aktiviertem Sensor den nächsten Code anzeigen. Auslesen des Displays 1 Torben Moratz 10.10.2024 Torben Moratz 13.01.2025
4 Servomotoren sollen funktionieren, sobald der richtige Widerstand ausgewählt und verbaut wurde. Verfahren der Servos 1 Torben Moratz 10.10.2024 Torben Moratz 13.01.2025
5 Aufbau erfolgt in Größe eines Schuhkartons. Ausmessen der Größe des Aufbaus 1 Linus Sauermann 13.11.2024 Torben Moratz 13.01.2025
6 Die Eingabe der Servostellungen erfolgt durch die Potentiometer. Auswerten der Eingangssignale im Arduino 1 Linus Sauermann 13.11.2024 Torben Moratz 13.01.2025
7 Die Verarbeitung der Werte erfolgt durch den Arduino. Auslesen der Ausgangssignale des Arduinos 1 Linus Sauermann 13.11.2024 Torben Moratz 13.01.2025
8 Die Ausgabe der Werte und die Neigung des Labyrinthes erfolgt durch die Servomotoren. Vergleichen der Ausgabewerte mit den Stellungen der Servomotoren 1 Linus Sauermann 13.11.2024 Torben Moratz 13.01.2025
9 Die Ausgabe der Ziffern des Zahlencodes erfolgt durch das LCD-Display. Auslesen der Ziffern auf dem Display 1 Linus Sauermann 13.11.2024 Torben Moratz 13.01.2025
10 Die Spannungsversorgung erfolgt durch 9v-Blockbatterien. Messen der Eingangsspannung am Arduino und Hardwarekontrolle,
ob korrekte Batterien verwendet werden
1 Linus Sauermann 13.11.2024 Torben Moratz 13.01.2025
11 Erreichen der Kapazitiven Sensoren bedingt die Freischaltung je einer neuen Ziffer des Codes. Auslösen der Sensoren durch die Stahlkugel 1 Linus Sauermann 13.11.2024 Torben Moratz 13.01.2025
12 Die vier Ziffern des Codes ergeben den Code des nächsten Schlosses. Einstellen des Codes in das Zahlenschloss 1 Linus Sauermann 13.11.2024 Torben Moratz 13.01.2025
13 Der Widerstandswert für die Spannungsversorgung kann berechnet und der korrekte
Widerstand mithilfe einer Tabelle ausgewählt werden.
Formel nachrechnen und mit Tabelle auslesen 1 Linus Sauermann 13.11.2024 Torben Moratz 13.01.2025

Funktionaler Systementwurf/Technischer Systementwurf

Tabelle 2: Materialliste
Nr. Anz. Beschreibung Link
1 1 Arduino UNO R3 https://www.reichelt.de/arduino-uno-rev-3-smd-variante-atmega328-usb-arduino-uno-p119045.html?&trstct=pos_0&nbc=1
2 4 kapazitive Sensor Debo Touch https://www.reichelt.de/entwicklerboards-kapazitiver-beruehrungssensor-debo-touch-p253985.html?PROVID=2788&gad_source=1&gclid=CjwKCAjw9p24BhB_EiwA8ID5BsTQKrMjGzJcKi61M2cvp7j0F9U90IqD4a1lsk3y7piSMFPesvBU2xoCtZwQAvD_BwE
3 4 Servomotor JAMARA 033212 https://www.reichelt.de/servo-high-end-micro-analog-jamara-033212-p238316.html?&trstct=pos_7&nbc=1,
4 1 7805 https://cdn.sparkfun.com/assets/1/7/7/3/2/LM7805.pdf
5 1 Kondensator 0,33µF https://www.reichelt.de/de/de/shop/produkt/subminiatur-elko_radial_330_nf_63_v_rm_1_5_85_c_1000h_20_-18159?PROVID=2788&gad_source=1&gclid=Cj0KCQiAkJO8BhCGARIsAMkswyhrOkxm5c9xCuq98eWDJ9X3VULyN3ZeTa64bmH7ODA5kUfJgtDpJHoaAuYjEALw_wcB&q=%2Fsubminiatur-elko-radial-330-nf-63-v-rm-1-5-85-c-1000h-20--sm-0-33-63rad-p18159.html
6 1 Kondensator 0,1µF https://www.pollin.de/p/elko-0-1-f-50v-radial-rm-5mm-210811?etcc_med=fshopping&etcc_ori=google&et_cmp_seg2=sea-fshopping&channelid=fshopping&utm_medium=fshopping&utm_source=google&etcc_med=CPC&etcc_par=Google&etcc_cmp=PMax-DE-CSS-Shopping-VP-5&et_cmp_seg2=SEA-CSS&etcc_var=Cj0KCQiAkJO8BhCGARIsAMkswyjggdykntN-163Jv7nBZ-pufL46ZLEBI9dQGSme-Ie6QWSRuFcV30UaAgpdEALw_wcB&et_cmp_seg1=20281414516&etcc_grp=&etcc_bky=&etcc_mty=&gad_source=1&gclid=Cj0KCQiAkJO8BhCGARIsAMkswyjggdykntN-163Jv7nBZ-pufL46ZLEBI9dQGSme-Ie6QWSRuFcV30UaAgpdEALw_wcB
7 ? Leitungen
8 1 Breadboard https://www.reichelt.de/experimentier-steckboard-set-830-kontakte-power-modul-breadboard-set1-p282601.html?&trstct=pos_7&nbc=1
9 1 Spannungsversorgung/Netzteil https://www.elektroshopwagner.de/product_info.php?info=p264627&utm_campaign=froogle_264627&utm_source=froogle&utm_medium=CPC&utm_content=textanzeige&campaign=froogle&gad_source=1&gclid=Cj0KCQiAkJO8BhCGARIsAMkswyiXBG5RhCHzIrnvz26-E2WORFHguntAM2KpaynEcXYjlPJ_Nd9YyiUaAvswEALw_wcB
10 1 Stahlkugel ø10mm https://www.ebay.de/itm/251999804089?_skw=stahlkugel+10mm&itmmeta=01JHFXNTQ4KK2GDHQ6G0SW1RH3&hash=item3aac5bdab9:g:sCgAAOSw3xJVcZtN&itmprp=enc%3AAQAJAAAA8HoV3kP08IDx%2BKZ9MfhVJKneuXP%2FKAmu9TnKoKNzP3Vg6nfSegPIg%2B2Wo8DulFcwa9GHvCcq%2BvIfZ08LcbXkobNTAKwP83OTJ1TTRucZEuvTo%2FutKFBEvAdB6ds8rdAHW3mwo27zaY5TdbAnoERirPFn771at0Li48991cNYh6Fl6iJg9RqD4TguBThETq6%2BgVDaWPO1jjMQUaj6y%2BBUHGkn12DNDxOAIJbsSJPkH3o%2FUw%2FRQ7NwwY38TJDZhviapBkZOnBieXLYdxWIS0pWHrE07E6Ej5J%2Fyz0imDcCWlYJwhGiAwKIH5S2Fq3D%2BVTAyQ%3D%3D%7Ctkp%3ABFBM6KvX_Ytl
11 1 3D-gedrucktes Labyrinth Eigenkonstruktion
12 1 LCD-Display mit I2C-Schnittstelle DEBO LCD 16X2 BL https://www.reichelt.de/entwicklerboards-display-16-x-2-zeichen-blau-debo-lcd-16x2-bl-p192143.html?&trstct=pol_13&nbc=1

Aufgabenstellung:

Ziel ist es, alle Berührungssensoren im Labyrinth nacheinander zu triggern. Dafür steht euch die Kugel bereit. Die Kugel könnt ihr durch die Neigung des Labyrinths steuern. Zuvor muss die Steuerung allerdings erst aktiviert werden. Die Servos laufen mit 5V. Aus einer Auswahl an Bauteilen inkl. Datenblättern muss eine stabile Spannungsversorgung mit 5V hergestellt werden. (Im folgenden ist die Musterlösung dargestellt

Widerstandsnetzwerk-Rästel





























Kugellabyrinth












































Es soll ein Kugellabyrinth wie dieses gebaut werden. Es wird 3D-gedruckt. Statt der Drehknöpfe werden Servomotoren genutzt, welche durch Potis angesteuert werden.

Komponentenspezifikation

In diesem Kapitel werden die benötigten Komponenten für die Umsetzung des Projekts beschrieben. In der obigen Tabelle 2 sind alle verwendeten Kaufteile aufgelistet.

Hardware Board:
Für die Umsetzung wurde ein Arduino Uno R3 benötigt.

Sensoren:
Damit die Positionen der Stahlkugel im Labyrinth erkannt werden können, um so die Ziffern des Passwortes freischalten zu können, werden vier kapazitive Sensoren des Herstellers DEBO verwendet. Diese besitzen drei Anschlüsse. Neben der Spannungsversorgung (VCC) und dem Massekontakt (GND) besitzt jeder der Sensoren einen Signalausgang (I/O), welche an die digitalen Eingänge am Arduino angeschlossen werden.

Aktuatoren:
Um die Neigungen des Labyrinthes schnell und präzise einstellen zu können, werden zwei Servomotoren "JAMARA Servo High End Micro" mit einer Betriebsspannung von 4.8 - 6V verwendet. Diese besitzen eine Stellkraft von 1.2 - 1.4 kg/cm bei einer Stellzeit von 0.09 - 0.11 Sek/60° und werden über den Arduino R3 angesteuert.

Steuerung:
Um die Servos anzusteuern, werden zwei Potentiometer mit einem einstellbaren Bereich von 0 - 10 kΩ verwendet.

Ausgabe:
Um die Ziffern der Zahlenkombination auszugeben wird ein LCD-Display der Firma Debo verwendet. Dieses besitzt eine I2C-Schnittstelle, eine Spannungsversorgung von 5V, wird über den R3 angesteuert und kann zwei Zeilen mit jeweils 16 Zeichen anzeigen.


Umsetzung (HW/SW)

Mechanik:

Die Umsetzung hat mit der Konstruktion eines Labyrinthes und der Basis angefangen. Bei der Basis wurde sofort beachtet, dass zwei Servomotoren montiert werden müssen. Die Bauteile sind nicht fest miteinander verbunden, da das Labyrinth nur mit einer Halbkugel in einer Halbkugelaufnahme der Basis liegt. Unter folgenden Links sieht man, wie die Dateien gedruckt wurden:

https://youtu.be/3s5a0_mib68
https://youtu.be/KijWvp9GWoU

Labyrinth+Basis Bild 1
Labyrinth+Basis Bild 2




























Die Servos konnten nun mit leichtem Druck eingepresst (die Sticker an den Servos mussten aufgrund der niedrigen Toleranz entfernt werden) und zusätzlich mit in den Kunststoff verschraubt werden. Um das Moment des Servos in eine lineare Kraft auf das Labyrinth zu übertragen und es somit steuern zu können, müssen passende Hebel entworfen werden. Der erste Versuch bestand daraus, direkt den Hebel auf den Servomotor zu schrauben. Der Motor hat sich dabei allerdings stets durchgedreht und der Hebel wurde nicht mitbewegt. Um dieses Problem zu lösen haben wir die bestehenden Hebel genommen, welche durch ihre Zähne deutlich besser in den Servomotor greifen und ein Durchrutschen nicht ermöglichen, und ihn in unseren Hebel eingelassen. Diese wurden zusätzlich verklebt, um ein Lösen der Hebel voneinander zu verhindern. Folgende Konstruktion ist dabei nach einigen Versuchen entstanden:

Link zum Druckvideo: https://youtu.be/gk-wfAy2J7Y

Datei:HebelServolabyrinth.zip

Hebel Vollansicht Bild 1
Hebel Vollansicht Bild 2


































Der Hebel wurde mittels "Print-In-Place-Konstruktion" 3D-gedruckt. Dies bedeutet, dass man bei der Konstruktion darauf achtet, dass die Bauteile einen gewissen Abstand zueinander haben (in diesem Fall sind die Abstände im Gelenk selbst meistens 0,4 mm). Somit kann man den ganzen Hebel samt Gelenk in einem Stück drucken. Der Hebel sieht im Detail und im Schnitt wie folgt aus:

Datei:HebelServolabyrinth.zip

Gelenk Detailansicht
Gelenk Schnittansicht





















Die Elektrik wird in einem Kasten unter dem Labyrinth versteckt. Der Kasten hat Einlässe für die Leitungen von den Servos, Sensoren, Strom und für das Gamepad. Hier ein Video, wie der Kasten gedruckt wurde:https://youtu.be/GTLqi6yRiPU

Datei:ElektronikgehaeuseServolabyrinth.zip

Gelenk Detailansicht

























Um die Ränder des Displays zu verdecken, wurde ein Rahmen konstruiert, welcher von außen aufgesetzt wird. Unter folgendem Link ist der Druck zu sehen:https://youtu.be/seOFa7FvqpA

Datei:DisplayabdeckungServolabyrinth.zip

Gelenk Detailansicht
















Um die Servos ansteuern zu können, wurde ein Gamepad aus zwei Teilen entwickelt. Unter folgenden Links sehen Sie, wie die Teile gedruckt wurden: https://youtu.be/Kqq0jZhlYXE
https://youtu.be/hIuBtpjJ3dE
Datei:ControllerServolabyrinth.zip

Gelenk Detailansicht

























Elektrik:

Die Elektrik sieht mit der Planung von Multisim wie folgt aus:

Datei:Ablauf ServolabyrinthPAP.zip

Schaltung Servolabyrinth































Software:

Die Software wurde mittels eines Programmablaufplans vor strukturiert und sieht wie folgt aus:

Datei:Ablauf ServolabyrinthPAP.zip

Voraussichtlicher Ablauf des Programms










































Im fertigen Simulinkprogramm sieht sie dann wie folgt aus: Datei:MatlabServoLabyrinth.zip

Simulinkprogrammierung





























Komponententest

Ziel des Testes ist die funktionale Überprüfung und Validierung der folgenden Komponenten: Zwei Servomotoren, Zwei Potentiometer, Vier kapazitive Sensoren Ein I2C Display

Testaufbau:

   Testplattform: Arduino Uno
   Spannungsversorgung: 5V DC
   Software: Für Tests eigens entwickelte Software

Testdurchführung: Schritt eins: Initialisierung udn elektrische Prüfung:

                 ->Kurzschlussprüfung: Statische Widerstandmessung der Anschlüsse
                 ->Firmware-Initialisierung: Mikrocontroller startet mit der Testfirmware, I2C- Bus Kommunikation wird (falls vorhanden) getestet

Schritt zwei: Funktionstest einzelner Komponenten:

Tabelle 3: Funktionstest der Komponenten
Nr Bauteil Anzahl der Prüfvorgänge Prüfmethode Bestanden/nicht bestanden Datum Geprüft von
1 Servomotor 1000 Servomotoren werden von 0 bis 180 Grad in jeweils 30 Grad Schritten angesteuert, danach wird geschaut, ob ein Drift erkennbar ist Bestanden, kein Drift erkennbar 01.12.2024 Torben Moratz
2 Potentiometer 100 Potentiometer werden von 0 bis 180 Grad in jeweils 30 Grad Schritten angesteuert, dabei wird geschaut, ob jeweils passende Werte angezeigt werden Bestanden, kein Drift erkennbar 01.12.2024 Torben Moratz
3 kapazitive Sensoren 100 kapazitive Sensoren werden in das Labyrinth eingelegt und die Stahlkugel wird ihnen genähert. Geprüft wird, ob der Sensor schaltet Bestanden, jede einzelne Berührung erkannt 01.12.2024 Torben Moratz
4 I2C Display 48 Stunden Das Display soll wechselnde Texte auf dem Display ausgeben. Zur Prüfung wird mittels Sichtkontrolle geschaut, ob Fehler im Display vorhanden sind Bestanden, keine Fehler erkannt erkannt 01.12.2024 Torben Moratz

Alle zu testenden Komponenten wurde somit getestet und haben bestanden.

Ergebnis

Zusammenfassung

Lessons Learned

Im Verlauf des Projekts konnten wir wertvolle Erfahrungen und Erkenntnisse sammeln, die unsere Fähigkeiten und unser Wissen erweitert haben:

Effizientes Zeitmanagement: Durch den Einsatz des Programms GANTT haben wir gelernt, komplexe Projektphasen besser zu strukturieren, Aufgaben klar zu priorisieren und Deadlines realistisch zu planen.

Technisches Verständnis: Wir haben ein fundiertes Verständnis für die Funktionsweise und den Einsatz des Spannungsreglers 7805 erlangt, insbesondere im Hinblick auf seine Zuverlässigkeit und Leistungsgrenzen in verschiedenen Schaltungen.

Komponentenauswahl: Eine wichtige Erkenntnis war, dass die verwendeten Servomotoren in der Anwendung unterdimensioniert waren. Dies wird in zukünftigen Projekten durch eine sorgfältigere Auswahl leistungsfähigerer Komponenten berücksichtigt.

Konstruktion: Wir haben gelernt wie man ein Print in Place fähiges Bauteil konstruiert.

Diese Learnings bilden eine solide Grundlage für zukünftige Herausforderungen und tragen dazu bei, Projekte noch effizienter und zielgerichteter umzusetzen.

Projektunterlagen

Projektplan

Die folgende Abbildung zeigt die Zeitplanung des Projektes zum Stand vom 13.01.2025:

Zeitplanung Stand 13.01.2025





















Literatur


→ zurück zur Übersicht: WS 24/25: Escape Game