In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre
In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre
Die Pomodoro-Methode ist eine bewährte Technik, um konzentriert und effizient zu arbeiten. Sie basiert auf einem Wechsel aus festen Arbeits- und Pausenintervallen (25 min Arbeit, 5 min Pause), um Fokus und Produktivität zu steigern. Besonders für Studierende kann ein interaktiver Timer eine wertvolle Unterstützung sein, um leichter in einen strukturierten Workflow zu kommen. Deshalb habe ich mit Neopixel-Hardware, Arduino-Code und 3D-Druck einen eigenen Pomodoro-Timer entwickelt und gebaut. Die LEDs zeigen dabei an, ob sich der Nutzer in einer Arbeits- oder Pausenphase befindet. Am Ende eines Intervalls gibt es ein visuelles Signal, um den Wechsel zu erleichtern. Durch die physische Umsetzung ist der Timer eine praktische Alternative zu Smartphone-Apps, da er hilft, Ablenkungen zu vermeiden.
Fun-Fact: Die Methode trägt den Namen „Pomodoro“, weil ihr Erfinder Francesco Cirillo einen tomatenförmigen Küchenwecker benutzte, um seine Arbeitsintervalle zu messen. Da „Pomodoro“ auf Italienisch „Tomate“ bedeutet, blieb dieser Name für die Zeitmanagement-Technik erhalten.
- basiert auf den Codes darunter
Problem: LEDs leuchten zu schwach durch - sind nur im Dunkeln sichtbar auf maximaler Helligkeit
Lösung: Innen ausfeilen um die Schicht dünner zu machen
Test 2: nach dem Ausfeilen
LEDs leuchten viel heller durch
Nebeneffekt: man sieht die Struktur des 3D Drucks - als Diffusor ganz interessant
Nachteil: durch das Feilen sind unsaubere Kanten entstanden, die eventuell stören könnten
Diese ursprüngliche Verkabelung war nicht gut geeignet für das Gehäuse, da sich durch den begrenzten Platz manche Kabel berührten, die es nicht tun sollten und andere Kabel so verbogen wurden, dass Wackelkontakte entstanden. Durch die Bewegung, die für die Interaktion nötig ist wurden die Probleme verstärkt. Manche Kabel hielten auch einfach nicht gut.
Dafür musste ich ein paar Anpassungen vornehmen…
Also habe ich die alten Lötpunkte abgetrennt, ein Stück des zu langen Kabels abgeschnitten und diese neu gelötet.
abgerundetes Modell mit Drehverschluss
Problem: Aussparung für Kabel muss ziemlich groß sein, damit die gröbsten Teile vom Anschluss (1 x 1 cm) rein passen
Drehverschluss funktioniert sehr gut
Problem: Boden wurde nicht mit gedruckt
Lösung: Boden dicker machen und nochmal drucken
Vollständig gedruckt, Drehverschluss funktioniert
Problem: Boden zu dick, Licht scheint schlecht durch
Lösung: Boden an den Stellen, wo die Ringe hinkommen mit Drehfeile wegfeilen
ein funktionelles Modell mit einer runden Form (passgenau für LED Ring), Deckel mit Klickverschluss, Aussparung für Kabel und Kerbe zum hinstellen
Problem: Klickverschluss funktioniert nicht wie gadacht, Teile sind starr und brechen ab bzw. gehen gar nicht erst rein.
Lösung: Alternativen Verschluss suchen - Drehverschluss, Bajonettverschluss, ?
1. Wie dünn kann der 3D Drucker maximal drucken?
2. Wie dünn muss der 3D Druck sein, damit LED's durch scheinen?
3. Wie verkabel ich den zweiten LED Ring richtig und wie verknüpfe ich die Animationen und den Accelerometer im Code?
Ein Durchlauf (komplett)
Story 1: User möchte Timer einschalten (3 Varianten)
Story 2: User möchte den Timer pausieren
Story 3: User möchte sehen in welchem Intervall er sich befindet und nach zwei Intervallen den Timer stoppen
Ich habe mich letztendlich für einen aktiveren Flow entschieden, um die NutzerInnen bei der Sache zu halten. Interaktionen im Wechsel zwischen hinstellen und hinlegen, die mithilfe des Accelerometers umgesetzt werden, sollen die Phasen jeweils einleiten.
Bild 1: aktivere User Flows
Bild 2: mehr passive User Flows
Aus Pappe habe ich mir schnell einen Prototypen zusammengebastelt, um zu veranschaulichen wie das Produkt am Ende aussehen könnte, vor allem aber auch, um zu schauen, wie ich die ganzen Bestandteile mit den Kabeln in dem Gehäuse unterbringen kann.
Timer hinstellen -> Aktiv -> Arbeitszeit beginnt -> Animation -> Arbeitszeit rum -> Animation ändert sich -> Timer hinlegen -> Pause beginnt -> Animation -> Pause rum -> Animation ändert sich -> Timer hinstellen -> Arbeitszeit beginnt
Figma Visualisierung
28.10.24
Piktogramme - Pilz und Herz
Hey, whats up? - Typoanimation
21.10.24
Jasmin N. und ich haben den Lichtsensor so eingestellt, dass dieser im Schatten/Dunkeln blau leuchtet. Bei normalem Licht im Zimmer leuchtet es rot. Wenn man die Taschenlampe drauf hält, gelb.
Die Kühlschranktür offen stehen zu lassen und das Kühlschranklicht dauerhaft brennen zu lassen verbraucht unnötig Strom. Um zu überprüfen, dass das nicht passiert, nutzen wir eine LED Leuchte und einen Lichtsensor.
Ist die Kühlschranktür geschlossen, ist alles gut. Die LED leuchtet blau.
Ist die Kühlschranktür offen, leuchtet die LED rot.
Ist Licht im Kühlschrank an (simuliert durch die Taschenlampenfunktion eines Fitnesstrackers), so leuchtet die LED gelb.
14.10.24
Jasmin N. und ich haben 2 verschiedene Animationen für den NeoPixel Ring erstellt. Eine manuell, die andere im Loop.
(Beschreibung siehe Beitrag Jasmin N.)
02.2
Meine Idee war es, eine Art Ladekreis zu gestalten, bei dem sich ein heller Pixel im Kreis bewegt und dabei einen verblassenden Schweif hinter sich herzieht.
Zunächst habe ich versucht, die Sinusfunktion so anzupassen, dass sich der Pixel nicht mehr hin und her bewegt, sondern kontinuierlich im Kreis läuft. Das stellte sich als schwierig heraus, weshalb ich mich schließlich von der Sinusfunktion verabschiedet habe und stattdessen mit einer Kombination aus Geschwindigkeit und der fmod-Funktion (Zeilen 17-18) weitergearbeitet habe. Diese Lösung funktionierte auf Anhieb ziemlich gut.
Anschließend habe ich über ein „else if“-Statement einen zweiten Pixel hinzugefügt und diesem eine andere Farbe zugewiesen. Hier bin ich auf ein Verständnisproblem gestoßen: Der zweite Pixel bewegte sich unerwarteterweise nicht hinter dem ersten, sondern vor ihm (siehe Video 2 unten).
Zuvor hatte ich die „else if“-Bedingung nicht korrekt formuliert, weshalb das gewünschte Ergebnis ausblieb. Es hat eine Weile gedauert, bis ich herausfand, dass ich (int)fmod vor (current_pixel + 1) schreiben musste und außerdem die NUMPIXELS mit in die Klammer einbeziehen musste.
Nach und nach habe ich weitere Pixel hinzugefügt und schließlich die Farben so angepasst, dass eine Abstufung von hell nach weniger hell entsteht. Ursprünglich wollte ich dies über die Helligkeitseinstellungen (brightness) umsetzen, was mir jedoch nicht gelang. Stattdessen ließ sich der Effekt einfacher über verschiedene Farbwerte realisieren.
Video 1 - Endergebnis
Code - Zwischenstand
07.10.2024