countr dokumentation

8
Ein Arduino Projekt Oliver Hannemann | Medienkunst und -gestaltung (Master) | WS 2014/15 | Dozent: Johannes Deich | Bauhaus Universität Weimar

Upload: linda-ford

Post on 21-Dec-2015

228 views

Category:

Documents


5 download

DESCRIPTION

by Oliver Hannemann

TRANSCRIPT

Page 1: CountR Dokumentation

Ein Arduino Projekt Oliver Hannemann | Medienkunst und -gestaltung (Master) | WS 2014/15 | Dozent: Johannes Deich | Bauhaus Universität Weimar

Page 2: CountR Dokumentation

Die Idee

Vor ein paar Wochen haben ein paar Freunde und ich einen Club aufgemacht. Da wir zu jedem Zeitpunkt und vor allem am Ende jeder Veranstaltung wissen müssen wie viele Menschen sich im Club aufhalten, ist es notwendig, jeden Gast beim Betreten und Verlassen des Lokals zu zählen. So entstehen zwei Werte: Die Zahl der Leute, die sich aktuell im Club aufhalten, und die Summe aller Leute, die über den Abend an der Veranstaltung teilgenommen haben. Außerdem ist es auch von Interesse, die Zahlen genderspezifisch zu kennen bzw. separat zu zählen.

Bisher haben wir anhand einer Strichliste gezählt. Eine andere Möglichkeit wäre ein sogenannter „Einhandzähler“. Aber bei keiner der beiden Varianten können Personen, die den Club verlassen, übersichtlich von dem Zählwert abgezogen werden und ein genderspezifisches Zählen würde zusätzliche Listen bzw. Einhandzähler bedeuten. Deshalb musste eine Alternative her.

Aufgrund der vielseitigen Einsetzbarkeit und der umfangreichen Dokumentation habe ich mich für das Arduino Uno entschieden, um einen Zähler zu codieren und zu bauen, der unseren Ansprüchen gerecht wird.

Unser Club „Gneis und Glimmer“ wärend der Aufbauphase.

Ein Einhandzähler Ein Arduino Uno

Page 3: CountR Dokumentation

Anforderungen und Lösungsansätze

Den folgenden Anforderungen und Funktionen sollte der Einlasszähler gerecht werden:

- männliche und weibliche Gäste getrennt von einander zählbar [„M“ und „F“ auf der Anzeige]- Gäste, die den Club verlassen, wieder vom Zählwert abzuziehen- eine Anzeige, die den aktuellen Zählwert darstellt (erschienene Gäste - gegangene Gäste = aktueller Zählwert) [„Now“ auf der Anzeige]- eine Anzeige die die Anzahl der Gäste dastellt, die im Verlaufe der Veranstaltung den Club betreten haben [„TOTAL“ auf der Anzeige]- ohne externe Stromversorgung funktionsfähig- Displaybeleuchtung regulierbar- so kompakt und benutzerfreundlich wie möglich

Aufgrund der guten Dokumentation, seiner vielseitigen Einsetzbarkeit und der geringen Größe entschied ich mich für das „Arduino Uno“ und dessen Programierumgebung „Arduino“. Im Internet stieß ich auf das 45 x 45mm große „Nokia 5110“ LCD-Display, das die Möglichkeit hat, Grafiken mit bis zu 48 x 84 Pixel darzustellen. Mehr Pixel waren zum darstellen der entsprechenden Zählerwerte nicht notwendig und die geringe Größe kommt dem Anspruch der Kompaktkeit des Zählers entgegen. Zudem sind in dem Display vier LEDs verbaut, die zur Beleuchtung dienen.

Um die LCD-Beleuchtung zu regulieren, wurde ein „Push Encoder“ benutzt. Mit diesem kann man nicht nur durch Rotation Signale an das Arduino senden, sondern auch über den eingebauten Push-Button. Mit der Button-Funktion kann man sich den aktuellen Ladezustand der Batterien des Zählers anzeigen lassen.

Die Stromversorgung wird mit einem Batteriepack und vier AA-Batterien (4x 1,2V) gewährleistet. Wenn der Ladezustand der Batterien unter 10% fällt, blinkt alle 60 Sekunden im Display eine Warnung auf, die den Benutzer auffordert bald die Batterien zu wechseln. Um das einfache Ausschalten des Zählers zu gewährleisten, wurde an der Außenseite ein An/Aus-Schalter angebracht und mit dem Batteriepack verbunden.

Nokia 5110 LCD-Display und Push Encoder Arduino Uno und Batteriepack

Page 4: CountR Dokumentation

Processing

Als Erstes habe ich mich mit dem LCD-Display auseinandergesetzt, um dessen Leistungsvermögen einschätzen und die Ansteuerung verstehen zu können. Dabei waren diverse YouTube-Tutorials und letztendlich die „LCD5110_Graph.h“ Library von großer Hilfe.Das gleiche gilt für den Push Encoder. Bei den Buttons, die zum Gästezählen vorgesehen waren, stellte sich mir anfangs das Problem, dass keine korrekten Werte ausgegeben wurden und der Mechanismus sich von alleine auslöste. Das ist jedoch normal und wird duch elektronische Spannung in der Umgebung ausgelöst. Um diesem entgegenzuwirken, habe ich eine sogenannten „Debouncer“Library in den Code einfließen lassen. Die Werte wurden nun korrekt ausgelesen und gesendet.Um nicht schon während der Testphase Verbindungen zusammen und auseinander löten zu müssen, war ein „Breadboard“ sehr hilfreich.

Der Code für den Counter umfasst in der finalen Version 556 Zeilen. Zusätzlich wurden fünf Librarys in den Code mit eingebunden: „ClickEncoder.h“ (zum Verarbeiten der Werte des Push Encoders), „TimerOne.h“ (um Events zeitbasiert zu steuern, z. B. eine Warnung alle 60 Sekunden anzuzeigen), „LCD5510_Graph.h“, „Boune2.h“ (zuständig fürs „debouncen“ der Buttons) und „Vcc.h“ (zum Checken der Batterieleistung).

Auszüge aus dem finalen Arduino Code.

Page 5: CountR Dokumentation

Test in progress

Kontaktstifte werden an das Display gelötet Funktionstest des Nokia 5110 Displays

Warnhinweis bei niedrigem Batterieladezustand Testumgebung mit Breadbord und Brotbrett

Finales Layout des Zählers

Page 6: CountR Dokumentation

Sketch it up!

Um besser einschätzen zu können, welchen Ansprüchen das Gehäuse gerecht werden muss, habe ich mich dafür entschieden, ein 3D-Modell aller Komponenten mit dem Programm „SketchUp“ zu erstellen. So konnte ich testen, wo und wie die einzelnen Komponenten am besten eingebaut werden. Aus diesen Erkenntnissen resultiert auch die letztendliche Größe des Gehäuses.

Alle Hardwearkomponenten am Computer nachgebaut.

Rückansicht ohne Case, mit Deckplatte Frontansicht ohne Case, mit Deckplatte Bodenansicht ohne Case, mit Deckplatte

Page 7: CountR Dokumentation

Closing the case

Das Fenster für das Display wird ausgesägt.

Die Gehäusewände wurden zusammengeleimt. Kabelsalat im Gehäuse.

Die Löcher für die Buttons werden gebohrt.Genutete und gesägte Gehäusewände mit Schnittplan.

Ursprünglich wollte ich die Wände für das Gehäuse mit dem Laser-Cutter schneiden. Da dieser jedoch für mehrere Monate aufgefallen ist, bin ich auf 5 Millimeter starkes Fichtensperrholz ausgewichen und habe dies per Hand bearbeitet.

Page 8: CountR Dokumentation

This is it.

Eine kurze Videopräsentation des Zählers „CountR“ gibt es unter folgendem Link zu sehen: http://youtu.be/Tr07gajVIqo Abschließend ist zu sagen, dass mir dieses Projekt sehr viel Spaß gemacht hat und ich völlig neue Dinge kennen gelernt und verstanden habe. Um dem „CountR“ den finalen Touch zu geben und um ihn haltbarer zu machen, werde ich ihn noch lackieren und die Kabel sauber verlegen. Um das Leben der Batterie zu verlängern, könnte man im Code noch ein Sleep-Funktion einbauen. Diese drosselt das Arduino auf minimalen Energieverbrauch, wenn es nicht in Benutzung ist, sprich keine Gäste den Club betreten bzw. verlassen. – Ein Stammplatz in unserem Club „Gneis und Glimmer“ ist „CountR“ auf jeden Fall sicher.

Begrüßungsbildschirm