Servo-Labyrinth: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(20 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 15: Zeile 15:
== 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 könnte man z.B. eine Batterie erhalten, welche für die Spannungsversorgung des Arduinos dient.  
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 für die Potentiometerschaltung benötigt wird.
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.
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 lässt sich durch die Widerstandsaufgabe beliebig bestimmen. Wir werden vorerst auf ein einfaches Rätsel zurückgreifen.
Zeile 23: Zeile 23:
|+ style = "text-align: left"|Tabelle 1: Anforderungen an das Servo-Labyrinth
|+ style = "text-align: left"|Tabelle 1: Anforderungen an das Servo-Labyrinth
|-
|-
! Nr  !! Inhalt !! 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. || 1 || Linus Sauermann ||10.10.2024 || ||  
| 1  || Die Servomotoren sollen das Spielbrett bewegen können. || Sichtkontrolle auf Bewegung || 1 || Linus Sauermann ||10.10.2024 || ||  
|-
|-
| 2  || Die kapazitiven Sensoren müssen die Kugel erkennen können. || 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 || ||  
|-
|-
| 3  || Ein Display soll bei aktiviertem Sensor den nächsten Code anzeigen || 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 || ||  
|-
|-
| 4  || Servomotoren sollen funktionieren, sobald der richtige Widerstand ausgewählt und verbaut wurde || 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 || ||
|-
| 5  || Aufbau erfolgt in Größe eines Schuhkartons. || Ausmessen der Größe des Aufbaus || 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 || ||
|-
| 7  || Die Verarbeitung der Werte erfolgt durch den Arduino. || Auslesen der Ausgangssignale des Arduinos || 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 || ||
|-
| 9  || Die Ausgabe der Ziffern des Zahlencodes erfolgt durch das LCD-Display. || Auslesen der Ziffern auf dem Display || 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 || ||
|-
| 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 || ||
|-
| 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 || ||
|-
| 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 || ||  
|-
|-
|}
|}
Zeile 39: Zeile 57:
|+ style = "text-align: left"| Tabelle 2: Materialliste
|+ style = "text-align: left"| Tabelle 2: Materialliste
|-
|-
! Nr. !! Anz.    !! Beschreibung  
! Nr. !! Anz.    !! Beschreibung !! Link
|-
|-
|1 || 1 || Arduino|Funduino Arduino UNO
|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
|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 || Servomotoren/Linearaktuatoren
|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  || ? || Widerstände
Zeile 51: Zeile 69:
|5  || ? || Leitungen  
|5  || ? || Leitungen  
|-
|-
|6  || 1 || Breadboard  
|6  || 1 || Breadboard || https://www.reichelt.de/experimentier-steckboard-set-830-kontakte-power-modul-breadboard-set1-p282601.html?&trstct=pos_7&nbc=1
|-
|-
|7  || 1 || Spannungsversorgung/Netzteil  
|7  || 1 || Spannungsversorgung/Netzteil  
|-
|-
|8  || 1 || Stahlkugel  
|8  || 1 || Stahlkugel ø10mm
|-
|-
|9  || 1 || 3D-gedrucktes Labyrinth  
|9  || 1 || 3D-gedrucktes Labyrinth  
|-
|-
|10  || 1 || LCD-Display mit I2C-Schnittstelle
|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
|-
|-
|}
|}
Zeile 67: Zeile 85:
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. 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).


[[Datei:Arduinorätselschaltung.png|400px|thumb|left|Alternativer Text]]
[[Datei:Arduinorätselschaltung.png|1000px|thumb|left|Widerstandsnetzwerk-Rästel]]
 
<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>
 
[[Datei:Kugellabyrinth.png|1000px|thumb|left|Kugellabyrinth]]
 
<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>
<br>
<br>
<br>
 
Es soll ein Kugellabyrinth wie dieses gebaut werden. Es wird 3D-gerduckt. Statt der Drehknöpfe werden Servomotoren genutzt, welche durch Potis angesteuert werden.


== Komponentenspezifikation ==
== 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:'''<br>
Für die Umsetzung wurde ein Arduino Uno R3 benötigt.
'''Sensoren:'''<br>
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:'''<br>
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:'''<br>
Um die Servos anzusteuern, werden zwei Potentiometer mit einem einstellbaren Bereich von 0 - 10 kΩ verwendet.
'''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.


== Umsetzung (HW/SW) ==
== Umsetzung (HW/SW) ==
Zeile 82: Zeile 192:
== Projektunterlagen ==
== Projektunterlagen ==
=== Projektplan ===
=== Projektplan ===
Die folgende Abbildung zeigt die Zeitplanung des Projektes zum Stand vom 13.11.2024:<br>
[[Datei:Zeitplanung_aktuell2.png|1000px|thumb|left|Zeitplanung Stand 13.11.2024]]<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
=== Projektdurchführung ===
=== Projektdurchführung ===



Aktuelle Version vom 23. November 2024, 10:53 Uhr

Autor: Linus Sauermann, Torben Moratz
Betreuer: Marc Ebmeyer


Einleitung

Als Schlüssel zum Rätsel könnte man z.B. eine Batterie erhalten, welche für die Spannungsversorgung des Arduinos dient. 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. 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.

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
2 Die kapazitiven Sensoren müssen die Kugel erkennen können. Auswerten der Sensorsignale 1 Linus Sauermann 10.10.2024
3 Ein Display soll bei aktiviertem Sensor den nächsten Code anzeigen. Auslesen des Displays 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
5 Aufbau erfolgt in Größe eines Schuhkartons. Ausmessen der Größe des Aufbaus 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
7 Die Verarbeitung der Werte erfolgt durch den Arduino. Auslesen der Ausgangssignale des Arduinos 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
9 Die Ausgabe der Ziffern des Zahlencodes erfolgt durch das LCD-Display. Auslesen der Ziffern auf dem Display 1 Linus Sauermann 13.11.2024
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
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
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
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

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 ? Widerstände
5 ? Leitungen
6 1 Breadboard https://www.reichelt.de/experimentier-steckboard-set-830-kontakte-power-modul-breadboard-set1-p282601.html?&trstct=pos_7&nbc=1
7 1 Spannungsversorgung/Netzteil
8 1 Stahlkugel ø10mm
9 1 3D-gedrucktes Labyrinth
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

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).

Widerstandsnetzwerk-Rästel



























Kugellabyrinth












































Es soll ein Kugellabyrinth wie dieses gebaut werden. Es wird 3D-gerduckt. 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)

Komponententest

Ergebnis

Zusammenfassung

Lessons Learned

Projektunterlagen

Projektplan

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

Zeitplanung Stand 13.11.2024




















Projektdurchführung

YouTube Video

Weblinks

Literatur


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