Nachdem das Projekt „Multitouch-Surface“ 2009 ein voller Erfolg war, und die nächste Projektwoche (2010) anstand, dachte ich mir, man sollte die neu gewonnenen Erkenntnisse aus dem letzten Jahr dazu nutzen, die Technik zu verbessern und das ganze für Normalverbraucher bedienbar zu machen.
Also initiierte ich wieder mit meinem Freund „Simon Grätzer“ das Projekt „NUI – Multitouch-Table“. Ziel war dieses mal, eine Multitouch Oberfläche in einem Tisch zu entwickeln und darauf anstatt wie letztes Jahr Windows 7, Googles Android zu portieren.
Allgemeines zum Projekt
Ziel des Projektes war es, mit Hilfe eines LCD-Screens, Infrarot-LEDs und einer PS3-Kamera mit Infrarotfilter, in einen Tisch einen sogenannte Multitouch-Oberfläche zu integrieren. Nähere Informationen dazu weiter unten (siehe Umsetzung).
Material
Software
Wir verwendeten größtenteils bereits vorhandene Open Source Software. Das Umwandeln des Kamerabildes erfolgt über die Tracking-Software der NUIGroup Community Core Vision. Dies wandelt die sichtbaren Finger in Punkte um die über das standardisierte TUIO Protokoll an Anwendungen gesendet wird. Die Anwendung bzw. der TUIO Client ist im unserem Fall eine Virtual Machine in der Android läuft. Windows kam nicht in Frage, da es zwar einerseits vergleichsweise leicht zu bedienen ist, jedoch andererseits keinen offenen Quellcode hat und bis Windows 7 kein Multitouch-Betriebssystem war.
Prinzip
Die Methode, mit der wir unser Projekt dieses Jahr angehen wollten, nannte sich FTIR (Frustrated Total Internal Reflection).
Wie auf dem Bild zu sehen ist, wird das Infrarotlicht bei Berührung der Plexiglasscheibe nach unten gebrochen.Die Infrarotkamera, eine Kamera die ausschließlich Infrarotlicht wahrnimmt, erkennt diese Strahlen als sogenannte Blobs, welche von einem Programm interpretiert werden können.
(Die weißen Punkte an den Fingerspitzen, sind die sog. Blobs)
Wenn man nun die Blobs mit seiner Kamera sehen kann, müssen diese natürlich interpretiert werden und verarbeitet werden, sodass man letztendlich einen PC damit bedienen kann. Dafür kann man z.B. die kostenlose freie (Open Source) Software „Tbeta“ benutzen, welche die Blobs als solche erkennt und als Koordinaten ausgibt. Daraufhin braucht man noch einen Maus-Treiber, der aus diesen Koordinaten Bewegungen auf den Bildschirm bringt. Dazu benötigt man jedoch ein Betriebssystem, welches ebenfalls Open Source ist, also freien bzw. offenen Quellcode bietet.
Umsetzung
Case
Das Case bzw. die Halterung ist natürlich nötig um die einzelnen Bauteile zueinander zu bingen. Als Halterung kann man z.B. einen alten Tisch benutzen. In diesen Tisch muss ein Loch gesägt werden, welches in etwa der Größe des LCD-Screens entspricht, den man zur Verfügung stehen hat. Dazu sollte man sich das Rechteck vorher aufzeichnen und dann in die Ecken mit einem möglich großen Bohrer je ein Loch bohren. Dann kann man mit einer Stichsäge sägen.
LCD-Screen
Dieser besteht im wesentlichen aus einem TFT-Bildschirm. Um daraus nur den LCD-Screen zu bekommen, müssen wir den TFT von seinem Gehäuse befreien und alle Bauteile von ihren Plastik- oder Metallhalterungen demontieren. Außer der Hintergrundbeleuchtung, werden alle anderen Bauteile benötigt. Man sollte sich also merken wie diese angeschlossen waren. Außerdem muss man sehr vorsichtig mit dem LCD-Screen und der daran befestigten Platine umgehen.
Beleuchtung
Da man die Hintergrundbeleuchtung des TFT-Monitors nicht verwenden kann, weil diese die Infrarotstrahlen nicht durchlässt, muss man sich Abhilfe schaffen. Unzwar mit Neonröhren, Kaltlichtkathoden oder den Leuchtstoffröhren des Hintergrundbeleuchtung des TFTs. Man benötigt so viel Licht, dass man auf dem LCD-Screen ein Bild sehen kann. Wichtig ist, dass man Kaltlicht verwendet, da „warmes“ Licht Infrarotstrahlen sendet, welche zu Stöhrstrahlung führt.
IR-Kamera
Als Kamera eignet sich prinzipiel jede Webcam mit USB-Anschluss. Die Kamera sollte allerdings eine Framrate von mindestens 30fps aufweisen und selbstverständlich mit dem verwendeten Rechner funktionieren. Dazu eignet sich z.B. eine Playstation 3-Kamera. Diese muss man öffnen, sodass man sonah wie möglich an die Linse herankommt. Dann muss man den IR-Filter der Kamera entfernen, welcher Infrarotlich blockt und einen anderen Filter einbauen, der außer der IR-Strahlung kein Licht durchlässt. Einen solchen Filter kann man sich aus einer alten Diskette bauen, genauer gesagt aus der Kunststoffscheibe in der Diskette.
IR-Lichtquelle
Dazu eignen sich IR-LEDs, von denen man so viele haben sollte, dass man min. 3 der 4 Kanten der Plexiglasscheibe beleuchten kann. Eine Möglichkeit ist, dafür einen Infrarot-LED-Streifen zu benutzen, bei dem die LEDs schon auf einem flexiblem Streifen befestigt und verlötet sind, sodass man nur noch an ein Ende eine Stromquelle anschließen muss.
Plexiglas
Die Plexiglasscheibe sollte etwa 1cm dick sein, damit die Infrarotstrahlen an den Seiten wirklich in die Scheibe gestrahlt werden (siehe oben) und etwas größer sein als der LCD-Screen. Die Kanten die beleuchtet werden muss man polieren, sodass man eine glänzende Fläche bekommt.
Rechner
An den Rechner werden hardwaretechnisch keine hohen Ansprüche gestellt. Er muss lediglich über einen USB-Port für die Kamera verfügen und seine Leistung sollte einen problemlosen Betrieb mit dem gewünschten Betriebssystem (siehe Software) ermöglichen.
Zusammenbau
Wenn man alle oben beschriebenen Teile besorgt und bearbeitet hat, kann die Endmontage beginnen. Zuerst sollte man sich mit der Befestigung des LCD-Screens und allen Teilen unter der Oberseite des Cases befassen. Denn dafür kann man sein Case noch auf den Kopf stellen. Bei der Befestigung des LCD_Screen’s muss man sehr aufpassen, da dieser ansich und die daran hängenden Kabel sehr empfindlich sind. Als Stromquelle haben wir ein Netzteil genommen, was den Vorteil hat, dass man nachher nur eine Steckdose braucht. Allerdings sind dafür elektrotechnische Kenntnisse notwendig und man muss sehr vorsichtig mit einem offenen Netzteil umgehen.
Als nächstes wird die Plexiglasscheibe eingebaut. Wenn man z.B. wie wir einen Holztisch als Case hat, erhält man mit Hilfe einer Oberfräse und etwas handwerklichem Geschik, eine sehr saubere und elegante Lösung. So ermöglich man sich, die Plexiglasscheibe in der Tischplatte zu versenken. Dabei muss man beachten, dass man so breit ausfräst, das die LED’s noch Platz haben. Wenn man einen LED-Streifen benutzt empfiehlt es sich, diesen vorher an den Kanten der Plexiglasscheibe zu befestigen. Klebeband eignet sich eigentlich ausreichend als Fixierung. Um die LED’s mit Strom zu versorgen, sollte man ein kleines Loch in den Tisch bohren, da es optisch mehr her macht den Kabelsalat unter dem Tisch, am besten hinter einer Verkleidung, abzuwickeln.
Danach kann man die restlichen Bauteile nacheinander einbauen und an die Stromquelle anschließen, d.h. die Lichtquelle, die Kamera und evtl. auch den Computer. Dafür haben wir an den Tischbeinen Schienen angebracht und Holzplatten als Ablagen eingeschoben. Zwischenzeitlich solte man immer wieder funktionstests machen, z.B. ob der LCD-Screen noch immer ein Bild anzeigt.
Kosten
Insgesamt hat uns das Projekt 136,50€ gekostet (exklusive der Arbeitsstunden die wir investiert haben).
Ergebnis
Das Ergebnis kann sich sehen lassen, die Fingereingabe funktionierte tadelos, die Android-Portierung nicht perfekt, aufgrund von Problemen mit uinput: http://groups.google.com/group/android-porting/browse_thread/thread/3a069ff939b5cbc1 , jedoch war Single-Touch Input auch auf Android möglich. 😉
Die Ergebnisse sieht man ab 4:41 in dem folgenden Video:
Bevor es nun zu den Fotos geht, möchte ich an dieser Stelle nochmal das gesamte Team benennen:
-
Patrick Hütter
-
Simon Grätzer
-
Abdullah Tekin
-
Angelo Zagarella
-
Thomas Kopp
-
Adem Özkan
-
Christopher Schmidt
-
David Grüne
-
Fabian Kreienbrink
-
Fabian Kreienbrink
-
Malte Kleimann
-
Michael Szymanski
-
Tim Hollander
-
Bernhard Hinz
-
Marco Höher
-
Lars Schiffer
-
Michael Dobmeier
-
Fabian Henßchen
-
Nikolas Weger
-
Tobias Exner