Lichttechnik digital – Laborgeräte mit dem Arduino-Controller

Junger Mann schraubt an Hardware
Mit den geeigneten Elektronik- und Informatik-Kenntnissen ist es heute ohne weiteres möglich, anwendungsspezifische Gerätelösungen zu quasi vernachlässigbaren Hardwarekosten selbst zu entwickeln.
© istockphoto.com/vgajic

Nachdem im ersten Teil dieser Veröffentlichungsreihe zwei aktuelle Augenoptik-Apps der Hochschule Aalen vorgestellt wurden, soll es in dieser Ausgabe um selbst entwickelte Laborgeräte gehen, die mit PCs angesteuert werden. Das klingt schwieriger, als es tatsächlich ist.

Arduino Uno R3
Abb. 1: Das Board Arduino Uno R3 [2]

Heutzutage gibt es Dutzende verschiedener Mini-Controller im Preissegment von zehn bis 60 Euro, mit denen sich Mess- und Steuerungsaufgaben auf einfache Weise realisieren lassen. Diese Controller können mit einem vom Nutzer geschriebenen Steuerprogramm geladen werden, sie können digitale Signale mit anderen Bauteilen austauschen und über eine einfache USB-Verbindung mit einem PC kommunizieren. Mit ein wenig Kreativität und Phantasie (und natürlich auch einigen Programmierkenntnissen) kann man auf diese Weise kostengünstige Mess- und Prüfsysteme aufbauen.

Für Studenten der Augenoptik / Optometrie in Aalen sind Programmierkenntnisse kein Problem, denn das ist eine Schlüsselkompetenz für alle technischen Berufe der Zukunft. Und so kamen in jüngster Zeit eine ganze Reihe von Ideen zur Realisierung, häufig im Rahmen von Abschlussarbeiten. Im Folgenden werden die dabei entstandenen Geräte vorgestellt, die in lichttechnischen Messlabors eingesetzt werden können. Sie basieren auf einem kleinen Einplatinen-Rechner von der Größe einer Zigarettenschachtel, dem Arduino-Controller.

Arduino-Controller – ein kostengünstiges Erfolgsrezept

Arduino (seit März 2015 auf dem europäischen Markt unter dem Namen Genuino vertrieben) ist eine quelloffene Entwicklungsplattform. Die Platine von der Größe einer Zigarettenschachtel basiert auf einem preisgünstigen Atmel-Mikrocontroller. Die Hardware ist Open Source, kann also für eigene Projekte beliebig nachgebaut und verändert werden. Das Programm, das der Controller ausführen soll, wird auf dem PC geschrieben in einer an C und C++ angelehnten Programmiersprache, die leicht zu erlernen ist. Die Entwicklungsumgebung auf dem PC basiert auf Processing und ist ebenfalls Open Source, also kostenlos und lizenzfrei verfügbar. Es gibt sie für Mac, Windows und Linux. Einer der Leitgedanken der Entwickler war es, ein System zu schaffen, mit dem auch technisch weniger Versierte einen einfachen Zugang zur Programmierung von Mikrocontrollern bekommen können. Die Kosten eines aktuellen Arduino Uno R3 liegen bei rund 20 Euro.

Software-Programm
Abb. 2: Die Entwicklungsumgebung – das gezeigte Programm
lässt eine LED auf dem Board im Sekundentakt blinken.

Ein Arduino-Board kommuniziert mit weiteren Peripheriebausteinen (zum Beispiel Textdisplays, Schaltern, Sensoren) über eine Reihe von digitalen I/O-Pins. Die Verbindung zum PC erfolgt in der Regel über eine USB-Schnittstelle, aber auch Netzwerkverbindungen zum Beispiel über WLAN sind mit passenden Erweiterungsbausteinen möglich.
Das erste Board wurde 2005 von Massimo Banzi und David Cuartielles am Ivrea Interaction Design Institute in Italien entwickelt. Benannt wurde das Projekt Arduino nach einer Bar in Ivrea, in der sich einige der Projektgründer häufig trafen. Die Name der Bar geht auf Arduin von Ivrea zurück, der von 1002 bis 1014 König von Italien war. Bereits 2008 wurden rund 50.000 Boards verkauft. Interaktive Designobjekte, Messgeräte, 3D-Drucker, Wetterstationen, Roboter – es gibt fast nichts, was nicht schon auf der Basis von Arduino realisiert worden ist. Die Maker-Szene – Studenten, Bastler, Künstler, Programmierer und Schüler – hat diese neue Kreativ-Plattform begeistert aufgenommen. Der Einstieg ist leicht, auf der Webseite www.arduino.cc finden sich zahlreiche Tutorials, Projektbeispiele und die komplette Dokumentation [3].

Breakout-Board GY-30
Abb. 3: Das Breakout-­Board
GY-30 mit dem
Helligkeitssensor BH1750FVI
[6]

Viele elementare Funktionen, die sich mit einfachen digitalen Signalen realisieren lassen (zum Beispiel das Blinken einer LED, das Einlesen eines Tasters) können ohne weitere Hardware direkt mit einem Arduino-Board realisiert werden. Auch analoge Signale, wie das Auslesen eines Drehreglers, können direkt verarbeitet werden. Häufig aber möchte man komplexere Baugruppen ansteuern, um beispielsweise einen Lichtsensor auszulesen oder eine Hochleistungs-LED zu dimmen. Viele dieser Baugruppen lassen sich über eine einfache Schnittstelle ansprechen, die nur zwei Signalleitungen erfordert: den I²C-Bus. Diese Schnittstelle wurde 1982 von Philips erfunden, um die Kommunikation verschiedener Baugruppen in Fernsehern und in CD-Playern zu vereinfachen. Heute gibt es eine Vielzahl von Bausteinen, die über I²C-Signale gesteuert werden können, zum Beispiel mehrzeilige Textdisplays, Sensoren für Temperatur und Luftdruck oder Kompass-Sensoren. Jeder einzelne Baustein hat eine eigene Adressnummer. Dadurch wird es möglich, viele Bausteine gleichzeitig an die beiden Signalleitungen anzuschließen. Der Mikrocontroller startet die Kommunikation mit dem gewünschten Baustein dadurch, dass er die Bausteinadresse über die Leitungen sendet – so kann man mit nur zwei Leitungen viele Komponenten ansteuern, ohne dass die Bausteine sich gegenseitig stören. Und wahrscheinlich haben Sie es schon vermutet: Der Arduino-Controller kann über den I²C-Bus kommunizieren und in der Entwicklungsumgebung sind einfache Befehle enthalten, mit denen man diese Vorgänge programmieren kann.

Verschiedene Anwendungsbeispiele

Hier nun einige Beispiele von Geräten, die auf der Basis eines Arduino-Controllers im Studiengang Augenoptik / Optometrie in Aalen realisiert wurden.

Luxmeter für das Messlabor

Arduino-Luxmeter
Abb. 4: Arduino-Luxmeter mit USB-Anschluss

Im Laborpraktikum Technische Optik existiert ein Goniometer-­Versuchsaufbau, der im Rahmen einer Diplomarbeit im Studien­gang Optoelektronik der Hochschule Aalen entstanden ist [4]. Hierbei wird eine Lichtquelle von einem Rechner gesteuert und schrittweise vertikal und horizontal verschwenkt, dabei wird die Beleuchtungsstärke von einem auf einem Stativ gehalterten, ortsfesten Sensor erfasst. Die Messwerte werden von dem PC, der auch die Verschwenkung der Lichtquelle steuert, aufgenommen. Auf diese Weise kann man das räumliche Abstrahlprofil der Quelle aufnehmen. Durch den Bedarf in einem anderen Projekt stand aber das ursprünglich eingesetzte kommerzielle Mess­gerät nicht mehr zur Verfügung und es sollte auf einfache Weise Ersatz geschaffen werden. Eine Recherche in den Arduino-­Foren auf www.arduino.cc lieferte recht schnell die Idee zur Realisierung eines von einem PC auslesbaren Luxmeters: Es gibt eine Photodiode mit annähernd V()-förmigem Empfindlichkeitsspektrum, die über eine I²C-Schnittstelle verfügt: Der Baustein BH1750FVI von Rohm Semiconductor kann Beleuchtungsstärken im Bereich von 1 Lux bis 65535 Lux messen [5]. Diesen Baustein gibt es fertig aufgelötet auf der in Abbildung 3 gezeigten kleinen Platine GY-30 (zahlreiche Bezugsquellen, zum Beispiel [6]), so dass aufwändige SMD-Lötungen entfallen. Ein Beispielprogramm zum Auslesen des Sensors fanden wir im Arduino-Forum und nach nur wenigen Entwicklungsstunden war das handliche Luxmeter mit LC-Display und USB-Schnittstelle fertig – das Goniometer konnte wieder im Praktikum eingesetzt werden.

Prüfgerät zur visuellen Bewertung der wahrgenommenen Helligkeit dreier Leuchtflächen

Infineon RGB Shield
Abb. 5: Das Infineon RGB Shield zur Steuerung
von Hochleistungs-­LEDs mit dem Arduino [nach 8]

Durch einen Artikel in der Zeitschrift c‘t [7] wurden wir aufmerksam auf eine kleine Leiterkarte zur Ansteuerung von Hoch­leistungs-LEDs für Lichtsteueranlagen: das Infineon RGB Shield. Diese Leiterkarte lässt sich direkt auf eine Arduino-Leiterkarte aufstecken, so dass alle erforderlichen Leitungsverbindungen automatisch hergestellt werden. Lediglich eine eigene Versorgungsspannung muss noch zusätzlich angeschlossen werden. Diese kann bis zu 48 V betragen. Die Leiterkarte kann maximal drei LED-Module mit einem Maximalstrom von jeweils 700 mA ansteuern. Durch eine Pulsweitensteuerung kann jedes der drei Module unabhängig in 4.096 Stufen gedimmt werden. Das Infineon RGB-Shield wird vom Arduino über den I²C-Bus gesteuert. Die Adresse des Boards kann umprogrammiert werden, so dass sich auch mehrere Boards gleichzeitig an einen Arduino anschließen lassen, wenn mehr als drei unabhängige LED-Module angesteuert werden sollen. Ausführliche Informationen findet man im Board Manual des Herstellers [8].

Angeregt durch diese einfache Möglichkeit zur LED-Ansteuerung, entstand die Idee zu einem Versuchsgerät für das Laborpraktikum Wahrnehmungspsychologie, bei dem die Helligkeiten dreier steuerbarer flächiger Lichtquellen visuell bewertet werden sollen. Nicole Lowack entwickelte das in Abbildung 6 gezeigte Gerät in ihrer Bachelorarbeit [9]. Die drei Flächenstrahler werden realisiert durch die Reihenschaltung von jeweils vier handelsüblichen 12V-LED-Arrays (Abb. 6 A). Die maximale Versorgungsspannung einer solchen Reihenschaltung beträgt 48 V. Diese Spannung muss als Versorgungsspannung des Infineon RGB Shields zur Verfügung stehen, sie wird mit einem Step-Up-Converter aus der Versorgungsspannung des Arduino (12 V) erzeugt. Um eine hinreichend homogene Verteilung der Leuchtdichte der Flächenstrahler zu erreichen, werden Streuscheiben vor den drei Vierer-Gruppen eingesetzt.

Farbmischung aus 2x2 Grundfarben

Versuchsgerät
Abb. 6: Versuchsgerät mit drei
steuerbaren Weißlicht-Flächenstrahlern
[9]. LED-Module eines Flächenstrahlers
(A), Innenansicht des Geräts (B),
Außenansicht (C)

Im Laborpraktikum Lichttechnik sollte ein neues Versuchsgerät eingesetzt werden, bei dem verschiedene Farben durch additive Farbmischung des Lichtes einfarbiger LEDs erzeugt werden sollten. Hierbei soll jeweils der gleiche Farbeindruck bei der Mischung aus Cyan mit Rot und aus Blau mit Gelb hervorgerufen werden. Da ein einzelnes Infineon RGB Shield nur drei unabhängige Ausgänge zur Verfügung stellt, mussten in diesem Fall zwei Infineon Shields gleichzeitig an den Arduino angeschlossen werden. Hierzu musste die Adresse eines der beiden Shields zunächst (einmalig) umprogrammiert werden. Danach konnten beide Shields an die I²C-Schnittstelle des Arduino angeschlossen werden und unabhängig voneinander betrieben werden. Das von Annika Pausch in ihrer Bachelor­arbeit [10] entwickelte Versuchsgerät ist in Abbildung 7 gezeigt. Die farbigen LEDs sind bei diesem Gerät in zwei weiß beschichtete Hohlzylinder eingebaut, die jeweils mit einer Streuscheibe abgeschlossen sind.

Hochleistungs-Lichtquelle mit steuerbarem Durchmesser

Im Forschungsprojekt ContrastVal soll in einem Fahrsimulator eine Lichtquelle genau an der Stelle positioniert werden, an der sich die blendenden Scheinwerfer eines entgegenkommenden Fahrzeugs befinden. Diese Blendlichtquelle soll der Bewegung des entgegenkommenden Fahrzeugs synchron folgen und dabei bezüglich Durchmesser und Leuchtdichte die Situation in einer realen Verkehrsszene möglichst genau nachbilden [11]. Hierzu wurde als Versuchsmuster eine dimmbare LED-Lichtquelle entwickelt, deren Durchmesser mit einer motorisch gesteuerten Irisblende variiert werden kann.

Eine Verstellung der Irisblende mit genauer Positionskon­trolle wird im einfachsten Fall mit einem Schrittmotor realisiert. Ein Schrittmotor enthält einen Permanentmagneten als Rotor, der durch ein gesteuertes, schrittweise rotierendes, elektromagnetisches Feld der Statorspulen schrittweise gedreht werden kann. Die Funktionsweise ist in Abbildung 8 gezeigt.

Versuchsgerät
Abb. 7: Versuchsgerät zur additiven Farbmischung
[10], Innenansicht ohne Streuscheiben

Im gezeigten Beispiel ist die am Schalter S3 angeschlossene Statorspule eingeschaltet und der Rotor richtet sich entsprechend zu dieser Spule aus.
Schrittmotoren haben den Vorteil, dass man gezielt kleine schrittweise Bewegungen vorwärts oder rückwärts erzeugen und auf diese Weise präzise Positionierungen vornehmen kann. Die Ansteuerung von Motoren zur Bewegung von Geräte­komponenten unter der Kontrolle eines Rechners ist eine in der Praxis häufig auftretende Aufgabe, und so verwundert es nicht, dass es auch hierfür eine mit einem Arduino realisierbare Lösung gibt. Das Adafruit Motor Shield V2 kann direkt auf einen Arduino aufgesteckt werden, so dass sich ein minimaler Verdrahtungsaufwand ergibt. Die Ansteuerung erfolgt wieder auf einfache Weise über den I²C-Bus, bis zu zwei Motoren können angeschlossen werden. Infos finden sich unter [13].

Zur Regelung der Leuchtdichte des eingesetzten LED-­Arrays kommt wieder das Infineon RGB Shield zum Einsatz. Das verwendete LED-Array Cree 3070N (mit Streuscheibe zur Homo­genisierung) kann bei maximalem Strom von 660 mA eine Leuchtdichte von 1,18 Mcd / m² erreichen – fast fünfmal heller als zur Simulation des Abblendlichts eines entgegenkommenden Fahrzeugs erforderlich. Abbildung 10 zeigt das LED-Array, den Prototypen der Lichtquelle und die erforderliche Ansteuerelektronik: ein Arduino-Board mit zwei aufgesteckten Leiterkarten und ein Step-Up-Converter zur Erzeugung der erforderlichen Versorgungsspannung von 36 V.

Motor
Abb. 8: Funktionsweise eines Schrittmotors [12]

Vielseitiger Einsatz der Arduino-Controller

Die dargestellten Gerätebeispiele zeigen eindrucksvoll, wie vielseitig ein Arduino-Controller beim Aufbau von Laborgeräten eingesetzt werden kann. Durch die Verwendung des standardisierten I²C-Bus-Anschlusses ist es möglich, eine Vielzahl von externen Baugruppen, zum Beispiel dimmbare LED-Treiber, Schrittmotor-Controller oder digital auslesbare Lichtsensoren, anzusprechen. Die Verbindung zu einem PC ist dabei über das USB-Interface des Controllers möglich, so dass sich Geräte konzipieren lassen, die wahlweise autark oder aber unter Steuerung durch einen PC betrieben werden können. Auch lassen sich so Messwerte automatisiert mit dem PC erfassen.

Ebenso beeindruckend ist das niedrige Preisniveau der erforderlichen Bausteine. Einige aktuelle Preisbeispiele der in den hier vorgestellten Laborgeräten eingesetzten

  • Komponenten (Circapreise, Stand April 2018, jeweils ohne Versandkosten):
  • Controller Elegoo Uno R3 (kompatibel zu Arduino / Genuino); 12 Euro
  • Infineon RGB Shield mit XMC 1202; 40 Euro
  • Adafruit Motor Shield V2 (Kit); 25 Euro
  • GY-30 BH1750FVI Lichtsensor; 1,50 Euro
  • DC-DC-Netzteil Converter 8-32V auf 9-46V, 150 W; 12,50 Euro
  • Schaltnetzteil 12V, 8A; 20 Euro
Adafruit
Abb. 9: Adafruit Schrittmotor-­Controller [14]

Mit den geeigneten Elektronik- und Informatik-Kenntnissen ist es also heute ohne weiteres möglich, anwendungsspezifische Gerätelösungen zu quasi vernachlässigbaren Hardwarekosten zu entwickeln. Und wenn höhere Anforderungen an die Leistungsfähigkeit und Flexibilität gestellt werden, so dass ein Arduino nicht mehr ausreicht, steht im Raspberry-Pi-Modul ein vollwertiges Linux-System in der Größe einer Scheckkarte zum Preis von knapp 40 Euro zur Verfügung, mit dem dann zum Beispiel auch ein Touchscreen angesteuert werden kann.

Lichtquelle
Abb. 10: Lichtquelle mit steuerbarer Leuchtdichte und Apertur [15],
links: LED-Array Cree 3070N, rechts: Prototyp

Auto: Jürgen Nolting

Alle Fotos: Hochschule Aalen

Literaturverzeichnis: online unter www.doz-verlag.de