Benzoltisch

29.10.2011

Drin! Meine Teensy / Arduino basierende Platine werkelt seit gestern Abend im interaktiven Benzoltisch im Deutschen Museum in Bonn (DMB). Dieses zentrale Exponat der Ausstellung “Kekulés Traum – Von der Benzolformel zum Bonner Chemiepalast” (Kurator der Ausstellung ist Ralph Burmester) veranschaulicht den Besuchern die ungeheure Spannbreite und Bedeutung der Verbindungen der Benzol-Chemie. In einer Broschüre zur Ausstellung ist der Tisch von der oberen Etage des Museums aus zu sehen.

Die Struktur des Benzols als Ring mit sechs Kohlenstoffatomen wurde ja bekanntlich vom Bonner Chemiker August Kekulé entschlüsselt. Am interaktiven Benzoltisch können die Besucher die Wasserstoffatome des Benzolringes durch andere Molekülgruppen ersetzen und dadurch verwandte Stoffe entstehen lassen. Darunter sind so bekannte Substanzen wie AnilinTNTAcetylsalicylsaeure (“Aspirin”), StyrolVanillin und noch einiger weiterer. Jedes Mal, wenn auf diese Art eine bekannte Substanz dargestellt wird, spielen die drei Monitore an der zentralen Säule des Tisches einen Informationsfilm zu dieser Substanz ab.

Die einzelnen Moleküle sind dabei – ebenso wie die gesamte Konstruktion des Tisches – über schön massive Multiplex-Platten repräsentiert. In jeder dieser Platten sind an der Unterseite für den Besucher unsichtbar kleine Magnete an insgesamt neun möglichen Positionen eingelassen. Diese Magnete dienen als Kodierung der Platten und steuern unter jeder Platte neun Reedschalter an. Diese Schalter sind über Flachbandkabel unter der Tischplatte mit einer zentralen Steuereinheit verbunden.

Diese Steuereinheit besteht hauptsächlich aus einem Video-Player (ein EYEZONE B1080P-2). Der ursprüngliche Ansatz für ein Gehirn des Tisches bestand aus einer geschickten Reihenschaltung der einzelnen Reedschalter und Ansteuerung des Players über eine Play-Button-Box mittels ein Infrarot-Signal. Leider verhinderte die interne Schaltung dieser Play-Button-Box bisher das Erkennen von mehr als vier unterschiedlichen Substanzen. Zufällig am Rande meiner Physical Computing Workshops im DMB kam ich im Sommer mit dem technischen Betreuer des Museums und auch Realisierer der Steuereinheit im Benzoltisch ins Gespräch und wir beschlossen, eine Microcontroller-basierende Lösung für die Erkennung der Molekülgruppen zu finden.

Eine Lösung auf PICAXE-Basis verwarf ich wegen des zu erwartenden Rechenaufwandes. Stattdessen entschied ich mich bei der Wahl der Hardware für ein Teensy USB Development Board, welches ich über die Arduino-Umgebung programmieren wollte.

Die Hardware war schnell in klassischer Manier, gefädelt auf einer Lochrasterplatine, aufgebaut und auch die Implementierung einer ersten Version des Steuerprogrammes ging schnell von der Hand. Die Reedschalter sollten in einer 6×9-Matrix vom Teensy-Board abgetastet werden.

Leider war der erste Test der Eingangsschaltung eine große Enttäuschung: Es gab Übersprechungen zwischen einzelnen Tafeln und die Molekülgruppen wurden nicht verlässlich erkannt. Ein wenig Grübeln brachte dann schnell die Lösung. An jedem Schalter musste eine Diode eingefügt werden, 54 Stück insgesamt.

Auch die Ansteuerung des Video-Players per Infrarot war zunächst nicht ganz offensichtlich. Erst das Auslesen der IR-Codes aus den Signalen der Button-Box per  IR-Sensor aus dem PICAXE AXE108k und einem Arduino Mini mit der genialen IR-Bibliothek von Ken Sheriff gab mir die Codes zur Ansteuerung des Video-Players.

Das alles und noch ein wenig Fine Tuning am Timing des Schalter-Scans und der Codes für die Molekülgruppen brachte eine komplette Lösung, die seit gestern Abend im interaktiven Benzoltisch aktiv ist und heute schon ein paar Führungen erfolgreich bedient hat. Die Krönung wird dann sein, wenn die noch fehlenden Filme ergänzt sind und der Tisch sein ganzes Potential ausspielen kann.

Das Steuerprogramm hat einige interessante Stellen. Es gibt einen Einzelschrittbetrieb, eingeleitet durch Druck auf die Taste und angezeigt über die serielle Schnittstelle. Die wesentliche Intelligenz des Programms steckt in der Funktion subst_code(), in der die gefundenen Molekülgruppen in sechs Positionen und dann noch einmal gespiegelt mit einer Tabelle möglicher Substanzen verglichen wird. Beim Anschluss an den Teenys habe ich dessen interne Pullup-Widerstände ausgenutzt, so dass die Beschaltung komplett ohne externe Widerstände auskommt.

Downloads:

Fotos

Projekte

- Anzeige -


comments powered by Disqus