Quizbuzzer

Zwei Buzzer mit Pilzschaltern. Die zentrale Box beim Quizmaster steuert das System mit einem Arduino und erlaubt das Starten einer neuen Runde. Nur der, der als erstes drückt, darf antworten. Natürlich mit LED-Effekten.

Ein Bild des fertigen Quizbuzzers.

Da dies mein erstes Semester als Betreuer ist, wollte ich ein Projekt bauen mit dem ich nochmal bei all den beliebtesten Geräten meine Kenntnisse auffrischen kann. Daher also mein erstes Elektonikprojekt, das nicht dauerhaft auf einem Breadboard lebt: Viel besteht aus Resten von anderen Projekte oder Teilen von Projektideen, die ich nie wirklich umgesetzt habe. Am Ende des Beitrags habe ich einige der genutzten Dateien angehängt.

Gehäuse

Sowohl das Arduino- als auch die Knopf-Gehäuse habe ich in SketchUp modelliert. Nach der Fertigstellung konnte ich mithilfe des Plugins „FaceSVG“ direkt die Seiten des 3D-Modells in eine SVG exportieren, um diese dem Lasercutter zu füttern. Als Material habe ich 4mm Pappel-Sperrholz verwendet, da ich da welches rumliegen hatte.

Ein kleiner „Tisch“ am Boden dient als Schiene für den Schalterstamm und als Wand, gegen die die Feder des Schalters drücken kann. Da sie auch von unten gegen den Deckel drücken muss, muss ich diesen (im Gegensatz zum Arduino-Gehäuse, bei dem es reicht, den Deckel einfach darauf zu legen) von außen befestigen können. Dafür habe ich an den Ecken Muttertaschen gebaut, in die dann eine Mutter gesteckt werden kann. Danach kann der Acryldeckel von außen angeschraubt werden.

Da ich wie eingangs erwähnt einmal jede der beliebtesten Maschinen im FabLab verwenden wollte, steckt hier auch meine Entschuldigung dafür, den Schneideplotter zu benutzen: Eine kleine Pinübersicht für das Einstecken der Stifte, falls ich den Arduino für ein anderes Projekt benutzt habe und danach den Buzzer wieder zusammenbauen will.

Ein Screenshot des Gehäuses für einen der Knöpfe in SketchUp.

Ein Bild des Inneren der beiden Gehäuse.

Schalter

Der Schalter besteht aus drei Teilen: Der Schirm, auf den gehauen wird, der Stamm, der durch den Deckel ins Innere führt, und der eigentliche Taster, auf den der Stamm drückt. Die Taster sind zwei Reste von einem vorherigen Projekt, die sich gut dafür eignen da sie relativ wenig Kraft zum Drücken benötigen – ein anderer, taktiler Taster den ich ausprobiert hatte benötigte zu viel Kraft und fühlte sich nicht so gut an. Ist wahrscheinlich Geschmackssache.

Der Stamm besteht aus vier 3mm-Acryl-Teilen, die einfach zusammengesteckt werden und mit Acrifix geklebt werden. Die Kreuzform soll verhindern, dass der Stamm sich drehen kann oder herumrutscht. Zwei ebenso geformte Löcher im Gehäuse sorgen dafür, dass der Stamm nur minimal wackeln kann. Dabei habe ich keinerlei Toleranz beim Lasercutter einberechnet – die Menge an Material, die er entlang dem Schnitt weglasert, ist genug um perfekt hineinzupassen. Kleinere Abweichungen bei Acryldicke oder Unschönheiten des Acrylklebers können weggefeilt werden.

Der Schirm besteht aus PLA-Filament und wurde im FDM-3D-Drucker erstellt. Das Filament ist milchig transparent und streut das Licht der LEDs schon bei niedrigeren Dicken sehr schön. Das Infill, das hier das Licht blockiert, sieht meiner Meinung nach sogar ziemlich cool aus, es gibt dem Schirm eine Art LED-Matrix-Aussehen.

Da das Filament, das ich gekauft habe, nur 1,75mm dick ist statt den für den Ultimaker üblichen 2,85mm, habe ich zuerst Probleme gehabt, es im FabLab zu verwenden, aber schlussendlich hat eine kleine Einstellung am Drucker selbst gereicht: Unter Material > Change > Customize > Diameter kann der Materialdurchmesser auf 1,75mm gestellt werden, und keine weiteren Änderungen sind nötig, auch nicht in Cura. Beim nächsten Materialwechsel wird der Durchmesser automatisch wieder auf 2,85mm zurückgesetzt. Der Druck hat dennoch nur beim mittleren Ultimaker geklappt – der Feeder des linken hat es nicht geschafft, das Filament fortzubewegen.

(Ich denke, ich werde noch einige Zeit das Filament hier haben, da 1kg halt viel zu viel war… wer’s mal ausprobieren will kann sich bei mir melden 🙂 )

Für die Verbindung zwischen Stamm und Schirm habe ich einen kleinen Adapter im SLA-3D-Drucker erstellt, da ich mit dachte, dass ein transparenterer Knopf hier weniger Licht blockiert. Ich denke aber, das hat keinen so großen Unterschied gemacht – den Adapter aus 3-4 Schichten 2mm Acryl zu bauen oder gleich beim Schirm mitzudrucken sollte genau so gut funktionieren.

Ein wenig Klebefilm hilft beim Halt nach: ich wollte den Schirm nicht festkleben, da der Schalter mir so erlaubt, ihn wieder zu zerlegen und komplett im Inneren des Gehäuses zu verpacken, was den Transport des Systems viel einfacher macht.

Ein Bild des Stamms und Schirms des Pilzschalters.

Ein animiertes Bild eines Tests des transparenten Filaments. <– für animiertes GIF klicken

Elektronik

Für die Steuerung des Systems verwende ich einen Arduino Uno R3 SMD, für die Beleuchtung zwei Adafruit NeoPixel Rings. Das kommt alles aus dem Vorrat. Der Rest ist größenteils Kleinmist: Die NeoPixel wurden wie vom Hersteller empfohlen mit einem Widerstand auf dem Datenkabel und einem Kondensator zwischen 5V und GND angeschlossen, und alle Anschlüsse auf der Arduino-Seite haben Stiftleisten angelötet bekommen. Im Gehäuse wurde ein Loch für den USB-Anschluss des Arduino gelassen, um ihn darüber (und den Rest des Systems über den 5V-Ausgang) mit Strom zu versorgen.

Da ich nicht erwarte, dass ich die Quizbuzzer regelmäßig verwende, und ich eventuell die NeoPixel für andere Experimente nutzen will, habe ich mich entschieden, diese nicht fest anzulöten, sondern nur mit Buchsen zu verbinden. Dafür habe ich einzelne Stifte an den Ring angelötet, die nicht nur das Prototyping z.B. an einem Breadboard einfacher machen, sondern auch eben diese Verbindung mit Buchsen, die im Inneren der Knopfgehäuse bleiben, erlauben. Da beim Hauen auf den Knopf schon einige Kraft auf das Gehäuse einwirkt, müssen diese irgendwie fixiert sein, damit der NeoPixel Ring nicht herumhüpft – ich habe die Buchen innen mit Heißkleber festgemacht.

Es fehlt noch die Verbindung zwischen dem Arduino-Gehäuse und den Buzzern. Da jedes der Knopfgehäuse vier Verbindungen braucht – 5V, GND, Taster und NeoPixel – habe ich nach vieradrigen Kabeln Ausschau gehalten. Schließlich habe ich Telefonkabel verwendet: es hat genau die benötigte Anzahl an Leitungen, erfüllt die Anforderungen ohne Problem, und ist vor allem gut als Meterware erhältlich. Ich habe meins in einem großen, blauen Elektronikmarkt für 50 Cent bekommen.

Ein Bild eines NeoPixel Ring mit Stiften an den Kontaktstellen angelötet.

Ein Bild des zusammengebauten Quizbuzzers, ohne den Schirm des Schalters. Die Buchsen, an denen die LEDs angesteckt werden können, sowie der Stamm des Schalters, ragen durch den Deckel.

Programmierung

Das Programm für den Mikrocontroller ist im Konzept ziemlich simpel und beliebig erweiterbar. Die Grundfunktion, „lass den Knopf leuchten der zuerst gedrückt wird“, kann sehr einfach mit zwei Zuständen implementiert werden:

Darstellung der Software als Zustandsdiagramm. Sie besteht grundsätzlich aus zwei Zuständen: Im Startzustand wartet das System, dass einer der Spieler-Knöpfe gedrückt wird. Sobald dies geschieht, wird die zugehörige LED angeschalten und in den zweiten Zustand übergegangen. In diesem neuen Zustand werden Betätigungen der Spieler-Knöpfe ignoriert - nur der Reset-Knopf kann gedrückt werden, wodurch alle LEDs abgeschalten werden und man zurück in den Startzustand kommt.

Aber natürlich wäre da der Arduino komplett unterfordert, also hatte ich meinen Spaß mit ein paar Zusatzfunktionen.

  • LED-Animationen! Dafür hat man schließlich einzeln addressierbare LEDs! Der Knopf, der zuerst gedrückt wird, pulsiert kurz, und geht dann in eine Art „Ladeanimation“ über bis der Quizmaster den Reset-Knopf drückt.
  • Den zeitlichen Abstand zwischen den Betätigungen der Knöpfe messen – damit man erkennen kann, wie knapp es war.
  • Da der Mikrocontroller sowieso über USB verbunden ist, kann man auch die serielle Schnittstelle verwenden, um Informationen an den PC (Schrägstrich Quizmaster) zu senden. Dazu gehört die Information darüber, wer wann gedrückt hat (um z.B. Soundeffekte abzuspielen), aber auch der eben erwähnte Zeitabstand.
  • Das geht natürlich auch in die andere Richtung: man kann dem Mikrocontroller ein Zeichen senden, um einen der zwei Buzzer die Regenbogenanimation abspielen zu lassen. So als Feiereffekt für den Sieger am Ende oder sowas. RGB halt.

Und so sieht schließlich das Endprodukt aus – fertig für beliebige Quizspiele oder Reaktionstests!

Was würde ich anders machen?

  • Ich war anscheinend kein Freund des Prinzip „zweimal messen, einmal schneiden“. Vor allem habe ich bei der Erstellung des Gehäuses für den Mikrocontroller dem 3D Warehouse vertraut: ich habe mir ein Modell für meinen Arduino Uno R3 SMD runtergeladen und das für das Design verwendet, und erst nach Fertigstellung des Gehäuses bemerkt, dass die ganzen Abstände nicht stimmen. Beim Runterladen fertiger Modelle, auch wenn sie sagen sie wären genau, selber nochmal messen.
  • Der Stamm ist der schwächste Punkt des Schalters. Ich habe damit experimentiert, wie heftig ich auf den Button hämmern kann – nach 4-5 Malen mit voller Kraft ist das Acryl dort gebrochen. Da er auch der Teil ist, der am einfachsten zu ersetzen ist, bin ich da nicht all zu traurig… dickeres Acryl hier zu verwenden wäre aber auch nicht falsch.
  • NeoPixel Rings sind toll, aber ziemlich teuer (12 LEDs für 8€) und mehr als genug für das Ausleuchten des Schirms. Wer auf Spaß mit Animationen verzichten kann spart mit normalen RGB-LEDs deutlich, sonst gibt es NeoPixel als SMD-LEDs auch wesentlich günstiger (10 LEDs für 2,50€).
  • Falls ihr das hier nachbauen wollt, bin ich mir nicht sicher, ob es sich lohnt, überhaupt die Schalter selber zu bauen. Es gibt mehr als genug Pilzschalter und Arcadebuttons, die vielleicht ohne Beleuchtung kommen, aber sofort ohne Probleme eingebaut werden können. Wer experimentieren will, kann auch mal nach welchen suchen, die z.B. Fassungen haben und so LEDs reinschleichen.
  • Wie oben beschrieben habe ich Telefonkabel gewählt, aber es gäbe noch ein anderes, beliebtes 4-adriges Kabel: USB 2.0! Da es damit auch Stecker wie Sand am Meer gibt, könnte man Steckverbindungen einbauen – damit wären die einzelnen Gehäuse nicht fest verbunden und einfacher zu transportieren, und es wäre auch möglich, das System erweiterbar zu machen, indem man z.B. frei 2 bis 4 Knöpfe anschließen kann, wie gerade nötig. Bestimmt hat man auch noch unbenutzte USB-Verlängerungskabel daheim, die man hier verwenden kann.
  • Auch wenn man eine Powerbank verwenden kann, ist die nötige USB-Verbindung für die Stromversorgung doch ein wenig suboptimal. Hätte ich Platz für einen Akku oder ein Batteriefach im Arduino-Gehäuse gelassen, hätte ich die Option offen halten können.

Werkzeuge:

Materialien:

  • Mikrocontroller: Arduino Uno R3 SMD
  • Beleuchtung: 2x Adafruit NeoPixel Ring (12 RGB-LEDs)
  • Gehäuse: 4mm Pappel-Sperrholz (aus FabLab)
  • Gehäusedeckel: 3mm Acryl rot-/blau-transparent (aus FabLab)
  • Gehäusefüße: Antirutsch-Pads 10mm Durchmesser (aus FabLab)
  • Gehäusebefestigung: M4 Muttern und Zylinderkopfschrauben (aus FabLab)
  • Pilzschalter-Taster: 2x irgendwelche Taster die ich rumliegen hatte, nur wenig Kraft zum Drücken nötig
  • Pilzschalter-Stamm: 3mm Acryl transparent (aus FabLab)
  • Pilzschalter-Federn: Druckfeder mit Länge 28,5mm und Durchmesser 10,5mm
  • Pilzschalter-Schirm: Transparentes PLA-Filament (1.75mm)
  • Reset-Schalter: Adafruit Tactile Switch Button 12mm x 12mm
  • Kabel zwischen Boxen: 4-adriges Telefonkabel
  • Diverses Elektronikzeugs aus dem FabLab (Litze, Widerstände, Kondensatoren, Stift-/Buchsenleisten für Stecker, Schrumpfschlauch)

Kosten:

  • Gehäuse: gesamt ~15€ (das teuerste ist das Acrylmaterial: 2x Viertelplatte für zusammen 7,50€)
  • Schalter: je ~7€ (Filament für Schirm (1kg Spule) hat 20€ gekostet, hier ist nur der Verbrauch eingerechnet)
  • Mikrocontroller und LEDs: Arduino ~20€, NeoPixel Ring je ~8€
  • Elektronik: ~11€ (Telefonkabel, Klein-Elektronik-Zeugs und Lötkosten)
  • Gesamt: ~80€ (da ich diverse Komponenten (u.a. Arduino und NeoPixel) bereits vorher hatte, habe ich tatsächlich nur ~40€ gezahlt.)

Beteiligte Benutzer: Suyooo
Zeitaufwand: Geschätzt 15-20h
Lizenziert unter: CC BY-NC-SA 4.0

Diverse Downloads: https://suyo.be/dump/quizbuzzer/