Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
projektewise24:projekt2:doku [2025/03/30 21:44] Hannah_Blanca |
projektewise24:projekt2:doku [2025/03/30 23:08] (aktuell) Hannah_Blanca |
||
---|---|---|---|
Zeile 20: | Zeile 20: | ||
Die Aufgabenverteilung sah folgendermaßen aus: | Die Aufgabenverteilung sah folgendermaßen aus: | ||
- | - Nummerierter ListenpunktQuiz Fragen erstellen und aufnehmen | + | - Quiz Fragen erstellen und aufnehmen |
- | - Nummerierter ListenpunktQuiz programmieren (ein Arduino Programm, das in der Lage ist, Fragen aufzurufen, Input zu registrieren, Hauspunkte zu zählen und einen Gewinner bekannt zu geben. Dazu gehörten: | + | - Quiz programmieren (ein Arduino Programm, das in der Lage ist, Fragen aufzurufen, Input zu registrieren, Hauspunkte zu zählen und einen Gewinner bekannt zu geben. Dazu gehörten: |
- | * Listenpunkt„Ja/Nein-“, beziehungsweise „Entweder/Oder-" Knöpfe * Listenpunktprogrammieren | + | * „Ja/Nein-“, beziehungsweise „Entweder/Oder-" Knöpfe * Listenpunktprogrammieren |
- | * ListenpunktWärmesensorik & Resetknopf programmieren | + | * Wärmesensorik & Resetknopf programmieren |
- | * ListenpunktAudio Hard- & Software | + | * Audio Hard- & Software |
- | * ListenpunktLEDs Hard- & Software | + | * LEDs Hard- & Software |
- | - Nummerierter ListenpunktHardwareaufbau fertigstellen | + | - Hardwareaufbau fertigstellen |
- | - Nummerierter ListenpunktProjektpräsentation | + | - Projektpräsentation |
- | - Nummerierter ListenpunktProjektdokumentation | + | - Projektdokumentation |
Aufgrund von Zeitmangel und großem Fehlerpotential entschlossen wir uns als Gruppe den Wärmesensor zu streichen. Die Befürchtung war, dass das Quiz nicht zuverlässig starten und schwer zu “resetten” sein würde. | Aufgrund von Zeitmangel und großem Fehlerpotential entschlossen wir uns als Gruppe den Wärmesensor zu streichen. Die Befürchtung war, dass das Quiz nicht zuverlässig starten und schwer zu “resetten” sein würde. | ||
Zeile 37: | Zeile 37: | ||
Als wir uns im Prozess der Projektfindung für den Sprechenden Hut entschieden haben, war uns sofort klar, dass der Hut nicht einfach nur zufällig agieren soll, sondern dass wir seine Magie und Weisheit auch in der User*innen Experience deutlich spürbar machen wollen. Essentiell dafür sind unserer Meinung nach | Als wir uns im Prozess der Projektfindung für den Sprechenden Hut entschieden haben, war uns sofort klar, dass der Hut nicht einfach nur zufällig agieren soll, sondern dass wir seine Magie und Weisheit auch in der User*innen Experience deutlich spürbar machen wollen. Essentiell dafür sind unserer Meinung nach | ||
- | * ListenpunktFragen, die gleichzeitig effektiv zur Entscheidungsfindung beitragen, realistisch anwendbar sind, aber dennoch dem Ganzen nicht die Magie nehmen | + | * Fragen, die gleichzeitig effektiv zur Entscheidungsfindung beitragen, realistisch anwendbar sind, aber dennoch dem Ganzen nicht die Magie nehmen |
- | * Listenpunktmagische Formulierungen, die den Hut einerseits lebendig wirken lassen und andererseits den Verlauf des Quiz leicht verständlich machen und reibungslos wirken lassen | + | * magische Formulierungen, die den Hut einerseits lebendig wirken lassen und andererseits den Verlauf des Quiz leicht verständlich machen und reibungslos wirken lassen |
- | * Listenpunkteine sinnvolle Reihenfolge und Logistik der verschiedenen Formulierungen, Fragen und Effekte | + | * eine sinnvolle Reihenfolge und Logistik der verschiedenen Formulierungen, Fragen und Effekte |
- | * Listenpunkteine passende Stimme | + | * eine passende Stimme |
Um unsere Entscheidungen in diesen Bereichen nachvollziehen zu können, ist es wichtig, erstmal einen Überblick über die grundsätzliche Stimmung der Harry-Potter-Saga zu schaffen. Es handelt sich um eine von J.K.Rowling geschriebene Fantasy-Roman Buchreihe, die von der titelgebenden Figur Harry Potter erzählt. Harry ist ein 11-Jähriger Junge, der unerwartet von seiner magischen Begabung erfährt und fortan eine Schule für Hexen und Zauberer namens Hogwarts besucht. In dieser Schule gibt es vier Häuser, in die Schülerinnen und Schüler in ihrem ersten Schuljahr zugeordnet werden. Die Zuteilung auf die Häuser wird vom “Sprechenden Hut" vorgenommen. Ein magischer Hut, der den Schülerinnen und Schülern aufgesetzt wird, in ihre Köpfe hinein blickt und je nach Vorlieben, Eigenschaften, Stärken und Schwächen, entscheidet in welches Haus er oder sie gehört. Der folgenden Tabelle kann man die wichtigsten Informationen zu den jeweiligen Häusern entnehmen: | Um unsere Entscheidungen in diesen Bereichen nachvollziehen zu können, ist es wichtig, erstmal einen Überblick über die grundsätzliche Stimmung der Harry-Potter-Saga zu schaffen. Es handelt sich um eine von J.K.Rowling geschriebene Fantasy-Roman Buchreihe, die von der titelgebenden Figur Harry Potter erzählt. Harry ist ein 11-Jähriger Junge, der unerwartet von seiner magischen Begabung erfährt und fortan eine Schule für Hexen und Zauberer namens Hogwarts besucht. In dieser Schule gibt es vier Häuser, in die Schülerinnen und Schüler in ihrem ersten Schuljahr zugeordnet werden. Die Zuteilung auf die Häuser wird vom “Sprechenden Hut" vorgenommen. Ein magischer Hut, der den Schülerinnen und Schülern aufgesetzt wird, in ihre Köpfe hinein blickt und je nach Vorlieben, Eigenschaften, Stärken und Schwächen, entscheidet in welches Haus er oder sie gehört. Der folgenden Tabelle kann man die wichtigsten Informationen zu den jeweiligen Häusern entnehmen: | ||
Zeile 46: | Zeile 46: | ||
{{:projektewise24:projekt2:bildschirmfoto_2025-03-30_um_19.46.08.png?nolink|}} | {{:projektewise24:projekt2:bildschirmfoto_2025-03-30_um_19.46.08.png?nolink|}} | ||
- | ===Das Quiz=== | + | ==Das Quiz== |
Unser Quiz besteht aus 13 „Entweder/Oder-" Fragen. Wir haben die Fragen so gestellt, dass die Antwortmöglichkeiten für jeweils ein Haus stehen. Zum Beispiel: Bleibst du der Wahrheit stets treu (dies wäre die Antwort für Hufflepuff) oder ergreifst du manchmal den Weg der Täuschung (dies für Slytherin)? | Unser Quiz besteht aus 13 „Entweder/Oder-" Fragen. Wir haben die Fragen so gestellt, dass die Antwortmöglichkeiten für jeweils ein Haus stehen. Zum Beispiel: Bleibst du der Wahrheit stets treu (dies wäre die Antwort für Hufflepuff) oder ergreifst du manchmal den Weg der Täuschung (dies für Slytherin)? | ||
Insgesamt gibt es sechs Kombinationen zwischen den vier Häusern. Wir haben zu jeder Kombination zwei Fragen formuliert, aber da es dann die Möglichkeit gibt, dass jedes Haus am Ende des Quizzes gleich oft gewählt wurde, haben wir noch eine dritte Frage zu der Slytherin-Gryffindor-Kombination formuliert. So ist es etwas zwar etwas wahrscheinlicher, einem dieser Häuser zugeordnet zu werden, allerdings entspricht dies auch dem Geist des Buches, da dies die Häuser mit den meisten Protagonisten sind. Diese 13 Fragen ordneten wir dann so, dass alle Häuser gleich viele Möglichkeiten haben gewählt zu werden, sodass die Chancen, ein Haus zu bekommen, bei allen Häusern möglichst gleich sind. Der User bekommt sein Haus verkündet, wenn er oder sie viermal eine Antwort für ein bestimmtes Haus gewählt hat. | Insgesamt gibt es sechs Kombinationen zwischen den vier Häusern. Wir haben zu jeder Kombination zwei Fragen formuliert, aber da es dann die Möglichkeit gibt, dass jedes Haus am Ende des Quizzes gleich oft gewählt wurde, haben wir noch eine dritte Frage zu der Slytherin-Gryffindor-Kombination formuliert. So ist es etwas zwar etwas wahrscheinlicher, einem dieser Häuser zugeordnet zu werden, allerdings entspricht dies auch dem Geist des Buches, da dies die Häuser mit den meisten Protagonisten sind. Diese 13 Fragen ordneten wir dann so, dass alle Häuser gleich viele Möglichkeiten haben gewählt zu werden, sodass die Chancen, ein Haus zu bekommen, bei allen Häusern möglichst gleich sind. Der User bekommt sein Haus verkündet, wenn er oder sie viermal eine Antwort für ein bestimmtes Haus gewählt hat. | ||
Zeile 57: | Zeile 57: | ||
Diese Formulierungen wurden dann dem erfahrenen Schriftsteller Till S. präsentiert, mit dessen Hilfe wir unsere Ideen in magische, elegante und altmodische Formulierungen umgewandelt haben. So spricht unser Hut nun um die 700 Wörter. | Diese Formulierungen wurden dann dem erfahrenen Schriftsteller Till S. präsentiert, mit dessen Hilfe wir unsere Ideen in magische, elegante und altmodische Formulierungen umgewandelt haben. So spricht unser Hut nun um die 700 Wörter. | ||
- | ===Die Stimme=== | + | ==Die Stimme== |
Um eine magische Atmosphäre zu schaffen, braucht der Hut eine passende Stimme, die unsere erdachten Fragen, Reaktionen und Formulierungen ausspricht. | Um eine magische Atmosphäre zu schaffen, braucht der Hut eine passende Stimme, die unsere erdachten Fragen, Reaktionen und Formulierungen ausspricht. | ||
Um die Audiodateien für die Stimme aufzunehmen, haben wir uns mit Synchronsprecher Casper L. getroffen, der sich bereit erklärt hat, die Stimme unseres Hutes zu werden. Mit ihm haben wir uns für eine bestimmte Stimmlage entschieden, mit der innerhalb von insgesamt sieben Stunden das Intro, alle Fragen mit Reaktionen, die Fehlermeldung und die Hausverkündung aufgenommen wurden. Diese Stimmlage sollte den alten, weisen und magischen Charakter des Hutes reflektieren. | Um die Audiodateien für die Stimme aufzunehmen, haben wir uns mit Synchronsprecher Casper L. getroffen, der sich bereit erklärt hat, die Stimme unseres Hutes zu werden. Mit ihm haben wir uns für eine bestimmte Stimmlage entschieden, mit der innerhalb von insgesamt sieben Stunden das Intro, alle Fragen mit Reaktionen, die Fehlermeldung und die Hausverkündung aufgenommen wurden. Diese Stimmlage sollte den alten, weisen und magischen Charakter des Hutes reflektieren. | ||
Zeile 68: | Zeile 68: | ||
https://harrypotter.fandom.com/de/wiki/Ravenclaw | https://harrypotter.fandom.com/de/wiki/Ravenclaw | ||
- | ===Technische Bauteile & Programmablauf=== | + | ==Technische Bauteile & Programmablauf== |
Detailbeschreibung einzelner Systembestandteile | Detailbeschreibung einzelner Systembestandteile | ||
- | ===Arduino=== | + | ==Arduino== |
Ein Arduino besteht aus Hard- und Software. Dabei gehören die Arduino-Boards, welche einen Mikrocontroller enthalten, zu der Hardware. Über einen Mikrocontroller sind alle Komponenten des Roboters verknüpft. Die Software umfasst eine Programmierumgebung, welche es dem Benutzer ermöglicht, einen eigenen Code zu schreiben. Durch das Schreiben eines Programms kann der Mikrocontroller auf Eingabesignale reagieren und gewünschte Aktionen ausführen. | Ein Arduino besteht aus Hard- und Software. Dabei gehören die Arduino-Boards, welche einen Mikrocontroller enthalten, zu der Hardware. Über einen Mikrocontroller sind alle Komponenten des Roboters verknüpft. Die Software umfasst eine Programmierumgebung, welche es dem Benutzer ermöglicht, einen eigenen Code zu schreiben. Durch das Schreiben eines Programms kann der Mikrocontroller auf Eingabesignale reagieren und gewünschte Aktionen ausführen. | ||
- | ===Lautsprecher : DFP-Player Mini=== | + | ==Lautsprecher : DF-Player Mini== |
Der DF-Player Mini dekodiert MP3-Dateien von einer Mikro SD Karte. Wir verwenden das Modul in Kombination mit einem 3 Watt Lautsprecher über den der zuvor professionell eingesprochenen Text ausgegeben werden kann. Diese Konstruktion verleiht dem Hut seine Stimme und bildet so das Herzstück des Roboters. | Der DF-Player Mini dekodiert MP3-Dateien von einer Mikro SD Karte. Wir verwenden das Modul in Kombination mit einem 3 Watt Lautsprecher über den der zuvor professionell eingesprochenen Text ausgegeben werden kann. Diese Konstruktion verleiht dem Hut seine Stimme und bildet so das Herzstück des Roboters. | ||
{{:projektewise24:projekt2:bildschirmfoto_2025-03-30_um_21.15.25.png?nolink|}} | {{:projektewise24:projekt2:bildschirmfoto_2025-03-30_um_21.15.25.png?nolink|}} | ||
- | //https://wolles-elektronikkiste.de/dfplayer-mini-ansteuerung-mit-dem-arduino//, letzter Zugriff: 29.3.25 | + | https://wolles-elektronikkiste.de/dfplayer-mini-ansteuerung-mit-dem-arduino, letzter Zugriff: 29.03.2025 |
(Hier auf dem Bild ist die Verkabelung an einem Arduino UNO dargestellt, in unserem Roboter arbeiten wir allerdings mit dem Arduino NANO.) | (Hier auf dem Bild ist die Verkabelung an einem Arduino UNO dargestellt, in unserem Roboter arbeiten wir allerdings mit dem Arduino NANO.) | ||
- | ===Motor==== | + | ==Motor== |
Der Motor ist im Hut eingebaut, um ihn weniger starr und unecht wirken zu lassen. Mit Hilfe der „random” Funktion wurden im Code beliebige starke und beliebig schnelle Drehungen des Motors eingebaut, die nacheinander ausgegeben werden sollen. Da der Motor mit Hilfe von Nylonschnüren an der Innenseite des Hutes befestigt ist, tragen die unregelmäßigen Bewegungen dazu bei, dem Hut ein lebensechtes Erscheinungsbild zu verleihen und so das magische Element des Sprechenden Hutes einzufangen, wie man auch in der Skizze sehen kann. | Der Motor ist im Hut eingebaut, um ihn weniger starr und unecht wirken zu lassen. Mit Hilfe der „random” Funktion wurden im Code beliebige starke und beliebig schnelle Drehungen des Motors eingebaut, die nacheinander ausgegeben werden sollen. Da der Motor mit Hilfe von Nylonschnüren an der Innenseite des Hutes befestigt ist, tragen die unregelmäßigen Bewegungen dazu bei, dem Hut ein lebensechtes Erscheinungsbild zu verleihen und so das magische Element des Sprechenden Hutes einzufangen, wie man auch in der Skizze sehen kann. | ||
{{:projektewise24:projekt2:dersprechendehut_selbstgemaltebilder_2.png?nolink|}} | {{:projektewise24:projekt2:dersprechendehut_selbstgemaltebilder_2.png?nolink|}} | ||
+ | |||
+ | https://www.circuits-diy.com/wp-content/uploads/2023/03/Potentiometer-Triggers-Servo-Motor-Arduino-Tutorial.png, letztere Zugriff: 29.03.2025 | ||
Als Motor haben wir einen Servo-Motor vorgesehen, da diese nur Strom bei Drehung verbrauchen und weil diese durch ihr kleines und sehr leichtes Exterieur gut im Hut verbaubar sind. | Als Motor haben wir einen Servo-Motor vorgesehen, da diese nur Strom bei Drehung verbrauchen und weil diese durch ihr kleines und sehr leichtes Exterieur gut im Hut verbaubar sind. | ||
- | ===Wärmesensor=== | + | ==Wärmesensor== |
Durch die Vorstellungsrunde der Sensoren zum Anfang des Kurses kannten wir den Wärmesensor, der ursprünglich als elegante Lösung für den Start des Quizzes geplant war. Durch den Wärmesensor erkennt der Roboter, dass der Hut aufgesetzt wurde und er ist bereit, Fragen zu stellen. Um allerdings mögliche Fehler ausräumen zu können (bspw. der Hut startet das Quiz nicht oder nur zu stark verzögert) und auch aus zeitlichen Gründen, haben wir vorerst nur einen reset-Knopf eingeführt, der ein manuelles Starten ermöglicht. | Durch die Vorstellungsrunde der Sensoren zum Anfang des Kurses kannten wir den Wärmesensor, der ursprünglich als elegante Lösung für den Start des Quizzes geplant war. Durch den Wärmesensor erkennt der Roboter, dass der Hut aufgesetzt wurde und er ist bereit, Fragen zu stellen. Um allerdings mögliche Fehler ausräumen zu können (bspw. der Hut startet das Quiz nicht oder nur zu stark verzögert) und auch aus zeitlichen Gründen, haben wir vorerst nur einen reset-Knopf eingeführt, der ein manuelles Starten ermöglicht. | ||
- | ===Knöpfe=== | + | ==Knöpfe== |
Der Hut beinhaltet drei Knöpfe. Zwei Knöpfe für die Antwortmöglichkeiten, sowie ein „Start/Reset-” Knopf, der den Wärmesensor ersetzt und für den Start oder eine Unterbrechung des Quizzes sorgt. Die „Antwort-” Knöpfe sollen in den, für den sprechenden Hut typischen, Stofflappen versteckt sein, wo der Benutzer/die Benutzerin sie gut erreichen kann. Der „Start/Reset-” Knopf soll in der Hutspitze versteckt sein. | Der Hut beinhaltet drei Knöpfe. Zwei Knöpfe für die Antwortmöglichkeiten, sowie ein „Start/Reset-” Knopf, der den Wärmesensor ersetzt und für den Start oder eine Unterbrechung des Quizzes sorgt. Die „Antwort-” Knöpfe sollen in den, für den sprechenden Hut typischen, Stofflappen versteckt sein, wo der Benutzer/die Benutzerin sie gut erreichen kann. Der „Start/Reset-” Knopf soll in der Hutspitze versteckt sein. | ||
Für die Stofflappen haben wir bereits ein Schnittmuster erstellt. Nach dem Schnittmuster ist an der Seite des Lappens (in die Naht integriert) auch ein Reißverschluss. Dieser soll ein Austauschen der Kabel bei möglichen Kabel Defekten erleichtern. | Für die Stofflappen haben wir bereits ein Schnittmuster erstellt. Nach dem Schnittmuster ist an der Seite des Lappens (in die Naht integriert) auch ein Reißverschluss. Dieser soll ein Austauschen der Kabel bei möglichen Kabel Defekten erleichtern. | ||
Zeile 100: | Zeile 103: | ||
{{:projektewise24:projekt2:dersprechendehut_selbstgemaltebilder_3.png?nolink|}} | {{:projektewise24:projekt2:dersprechendehut_selbstgemaltebilder_3.png?nolink|}} | ||
- | ===LED=== | + | ==LED== |
Sobald am Ende des Quizzes das Ergebnis feststeht, dienen LEDs an der Hutkrempe zur Visualisierung der Zuordnung zu einem der vier Häuser: Gryffindor, Hufflepuff, Slytherin und Ravenclaw. | Sobald am Ende des Quizzes das Ergebnis feststeht, dienen LEDs an der Hutkrempe zur Visualisierung der Zuordnung zu einem der vier Häuser: Gryffindor, Hufflepuff, Slytherin und Ravenclaw. | ||
===Code=== | ===Code=== | ||
- | ===Hardware-Zuweisung=== | + | ==Hardware-Zuweisung== |
{{:projektewise24:projekt2:screenshot_2025-03-30_at_17.53.52.png?nolink|}} | {{:projektewise24:projekt2:screenshot_2025-03-30_at_17.53.52.png?nolink|}} | ||
Zeile 111: | Zeile 114: | ||
Der erste Abschnitt des Codes legt die Grundstruktur des Programms fest. Zunächst werden notwendige Bibliotheken eingebunden. Zum Beispiel die "Adafruit_NeoPixel-Bibliothek", welche für die Steuerung der RGB-LEDs benötigt wird. Anschließend werden die Hardware Pins für die Buttons und den Lautsprecher festgelegt. Da wir es leider zeitlich nicht mehr geschafft haben, den gesamten physischen Aufbau des Hutes fertigzustellen, fehlt im Code noch eine Zuweisung der Pins für die LEDs und den Motor. Die Zuweisung der übrigen Pins würde erst nach der praktischen Erprobung erfolgen, um sicherzustellen, dass die Verkabelung und das gesamte Layout optimal funktionieren. | Der erste Abschnitt des Codes legt die Grundstruktur des Programms fest. Zunächst werden notwendige Bibliotheken eingebunden. Zum Beispiel die "Adafruit_NeoPixel-Bibliothek", welche für die Steuerung der RGB-LEDs benötigt wird. Anschließend werden die Hardware Pins für die Buttons und den Lautsprecher festgelegt. Da wir es leider zeitlich nicht mehr geschafft haben, den gesamten physischen Aufbau des Hutes fertigzustellen, fehlt im Code noch eine Zuweisung der Pins für die LEDs und den Motor. Die Zuweisung der übrigen Pins würde erst nach der praktischen Erprobung erfolgen, um sicherzustellen, dass die Verkabelung und das gesamte Layout optimal funktionieren. | ||
- | ===Definition der Variablen=== | + | ==Definition der Variablen== |
Nach der Hardware-Zuweisung werden die wesentlichen Variablen des Programms definiert. Dazu gehören die Punktestände der vier Häuser, genannt: int g_count, s_count, r_count, h_count, sowie eine Variable namens: int current_question, die speichert welche Frage gerade aktiv ist. Zu Beginn des Quizes sind alle Variablen auf 0 gesetzt. Eine Variable namens unsigned long input_timer ist noch als Kommentar im Code zu finden und sollte ursprünglich genutzt werden, um zu messen, wie lange ein Benutzer braucht, um sich zwischen den Antwortmöglichkeiten zu entscheiden. Der Hut sollte dann je nach Reaktionszeit reagieren. Aus Zeitgründen entschieden wir uns, diese Idee zu verwerfen. | Nach der Hardware-Zuweisung werden die wesentlichen Variablen des Programms definiert. Dazu gehören die Punktestände der vier Häuser, genannt: int g_count, s_count, r_count, h_count, sowie eine Variable namens: int current_question, die speichert welche Frage gerade aktiv ist. Zu Beginn des Quizes sind alle Variablen auf 0 gesetzt. Eine Variable namens unsigned long input_timer ist noch als Kommentar im Code zu finden und sollte ursprünglich genutzt werden, um zu messen, wie lange ein Benutzer braucht, um sich zwischen den Antwortmöglichkeiten zu entscheiden. Der Hut sollte dann je nach Reaktionszeit reagieren. Aus Zeitgründen entschieden wir uns, diese Idee zu verwerfen. | ||
Zeile 118: | Zeile 122: | ||
{{:projektewise24:projekt2:screenshot_2025-03-30_at_17.54.11.png?nolink|}} | {{:projektewise24:projekt2:screenshot_2025-03-30_at_17.54.11.png?nolink|}} | ||
- | ===Setup()=== | + | ==Setup()== |
Der nächste Abschnitt ist die setup() Funktion. Sie wird beim Start des Arduino einmal ausgeführt und dient dazu, die Hardware-Komponenten und die Kommunikation vorzubereiten. Serial.begin(9600); startet die serielle Kommunikation, um zu ermöglichen, dass Debugging-Informationen über den seriellen Monitor ausgegeben werden können. Anschließend werden die drei Buttons mit pinMode() als Eingänge definiert und durch die Nutzung von INPUT_PULLUP mit einem internen Pull-Up-Widerstand versehen. Das bedeutet, dass die Tasten standardmäßig HIGH sind und beim Drücken auf LOW wechseln. | Der nächste Abschnitt ist die setup() Funktion. Sie wird beim Start des Arduino einmal ausgeführt und dient dazu, die Hardware-Komponenten und die Kommunikation vorzubereiten. Serial.begin(9600); startet die serielle Kommunikation, um zu ermöglichen, dass Debugging-Informationen über den seriellen Monitor ausgegeben werden können. Anschließend werden die drei Buttons mit pinMode() als Eingänge definiert und durch die Nutzung von INPUT_PULLUP mit einem internen Pull-Up-Widerstand versehen. Das bedeutet, dass die Tasten standardmäßig HIGH sind und beim Drücken auf LOW wechseln. | ||
Zeile 127: | Zeile 132: | ||
{{:projektewise24:projekt2:screenshot_2025-03-30_at_17.54.31.png?nolink|}} | {{:projektewise24:projekt2:screenshot_2025-03-30_at_17.54.31.png?nolink|}} | ||
- | ===Fragen und Sprachaufnahmen Struct=== | + | ==Fragen und Sprachaufnahmen Struct== |
Anschließend an die setup()-Funktion folgt ein Struct, in dem die Fragen und weiteren Sprachaufnahmen des Quiz gespeichert sind. Jede Frage ist mit dem Namen der zugehörigen MP3-Datei sowie den Häusern verknüpft, die für eine linke oder rechte Antwort Punkte erhalten. Aufgrund des begrenzten Speichers des Arduino Nano war es nicht möglich, den vollständigen Fragetext zu speichern. Wir hätten ein größeres Board nutzen können, sahen dies aber als Herausforderung und entwickelten stattdessen eine alternative Lösung. Dazu kürzten wir die Fragen stark ab, um den Speicherbedarf zu reduzieren. | Anschließend an die setup()-Funktion folgt ein Struct, in dem die Fragen und weiteren Sprachaufnahmen des Quiz gespeichert sind. Jede Frage ist mit dem Namen der zugehörigen MP3-Datei sowie den Häusern verknüpft, die für eine linke oder rechte Antwort Punkte erhalten. Aufgrund des begrenzten Speichers des Arduino Nano war es nicht möglich, den vollständigen Fragetext zu speichern. Wir hätten ein größeres Board nutzen können, sahen dies aber als Herausforderung und entwickelten stattdessen eine alternative Lösung. Dazu kürzten wir die Fragen stark ab, um den Speicherbedarf zu reduzieren. | ||
Zeile 134: | Zeile 140: | ||
{{:projektewise24:projekt2:screenshot_2025-03-30_at_17.54.59.png?nolink|}} | {{:projektewise24:projekt2:screenshot_2025-03-30_at_17.54.59.png?nolink|}} | ||
- | * Hier ein Ausschnitt des structs* | + | *Hier ein Ausschnitt des structs* |
Im Anschluss an den Struct werden alle Funktionen definiert, die für den Hauptcode benötigt werden. Diese Funktionen steuern verschiedene Abläufe des Quiz, darunter das Stellen von Fragen, die Eingabeerkennung, das Vergeben von Punkten und die Verkündung des Gewinners. Um die Bedeutung und Funktionsweise dieser Funktionen besser zu verstehen, ist es hilfreich, die “main loop” des Programms zu betrachten. Diese bildet das Herzstück des Codes und ruft die einzelnen Funktionen in der richtigen Reihenfolge auf. | Im Anschluss an den Struct werden alle Funktionen definiert, die für den Hauptcode benötigt werden. Diese Funktionen steuern verschiedene Abläufe des Quiz, darunter das Stellen von Fragen, die Eingabeerkennung, das Vergeben von Punkten und die Verkündung des Gewinners. Um die Bedeutung und Funktionsweise dieser Funktionen besser zu verstehen, ist es hilfreich, die “main loop” des Programms zu betrachten. Diese bildet das Herzstück des Codes und ruft die einzelnen Funktionen in der richtigen Reihenfolge auf. | ||
Zeile 140: | Zeile 146: | ||
Die folgende Grafik veranschaulicht den Ablauf des Programms und zeigt, wie die verschiedenen Funktionen miteinander verbunden sind: | Die folgende Grafik veranschaulicht den Ablauf des Programms und zeigt, wie die verschiedenen Funktionen miteinander verbunden sind: | ||
- | ===Main loop()=== | + | ==Main loop()== |
{{:projektewise24:projekt2:main_code_zeichnung_schwarz_weiss.png?nolink|}} | {{:projektewise24:projekt2:main_code_zeichnung_schwarz_weiss.png?nolink|}} | ||
Zeile 160: | Zeile 165: | ||
{{:projektewise24:projekt2:screenshot_2025-03-30_at_17.56.27.png?nolink|}} | {{:projektewise24:projekt2:screenshot_2025-03-30_at_17.56.27.png?nolink|}} | ||
- | Nach frage_stellen folgt die Funktion detect_input. Diese läuft in einer Dauerschleife, bis sie einen Button-Input erhält. | + | Nach Frage_stellen folgt die Funktion detect_input. Diese läuft in einer Dauerschleife, bis sie einen Button-Input erhält. |
{{:projektewise24:projekt2:screenshot_2025-03-30_at_17.56.46.png?nolink|}} | {{:projektewise24:projekt2:screenshot_2025-03-30_at_17.56.46.png?nolink|}} | ||
Zeile 195: | Zeile 200: | ||
Ebenfalls könnten die Bewegungen des Hutes noch vielseitiger gestaltet werden und vielleicht könnten noch mehr Motoren, ergänzend zu dem bereits existierenden, verbaut werden. Alles in allem sind die Grundlagen für einen funktionierenden Roboter gelegt und könnten im nächsten Semester durch eine andere Gruppe ausgebaut werden. | Ebenfalls könnten die Bewegungen des Hutes noch vielseitiger gestaltet werden und vielleicht könnten noch mehr Motoren, ergänzend zu dem bereits existierenden, verbaut werden. Alles in allem sind die Grundlagen für einen funktionierenden Roboter gelegt und könnten im nächsten Semester durch eine andere Gruppe ausgebaut werden. | ||
Im vergangenen Semester haben wir viel gelernt – von der Hardware-Planung über die Verkabelung und den Umgang mit Arduino-Boards bis hin zur Programmierung eines komplexen Codes. Wir haben erkannt, dass der Aufbau der Hardware oft genauso herausfordernd ist wie das Schreiben des Programms und dass besonders die letzten Feinschliffe unerwartet viel Zeit kosten können. Trotzdem sind wir stolz darauf, dass unser Quiz funktioniert und spielbar ist. | Im vergangenen Semester haben wir viel gelernt – von der Hardware-Planung über die Verkabelung und den Umgang mit Arduino-Boards bis hin zur Programmierung eines komplexen Codes. Wir haben erkannt, dass der Aufbau der Hardware oft genauso herausfordernd ist wie das Schreiben des Programms und dass besonders die letzten Feinschliffe unerwartet viel Zeit kosten können. Trotzdem sind wir stolz darauf, dass unser Quiz funktioniert und spielbar ist. | ||
+ | |||
+ | === Code und Rohdaten === | ||
+ | |||
+ | Abschlusspräsentation: {{:projektewise24:projekt2:der_sprechende_hut_praesentation.pdf|}} | ||
+ | |||
+ | Codes und Anhang: {{:projektewise24:projekt2:dersprechendehut_code.zip|}} | ||
+ | |||
+ | Bibliothek: {{:projektewise24:projekt2:adafruit_neopixel.zip|}} | ||
+ | |||
+ | Audiodokumente: {{:projektewise24:projekt2:sprechender_hut_sprachaufnahmen.zip|}} | ||
+ | |||
+ | Überblick über die selbst erstellten Graphiken: | ||
+ | {{:projektewise24:projekt2:dersprechendehut_selbstgemaltebilder.jpg?nolink|}} |