Introduction: Ein Raspberry Pi Kamera Basiertes Mikroskop Aus LEGO Teilen
Please note: This is the German "sister" site to the English presentation of the LEGOscope, which you can find here: https://www.instructables.com/id/A-Raspberry-Pi-camera-based-microscope-built-from-/
I had desided to prepare a German version as well, as it is nice to be able to present an idea worldwide in English, but ridiculous that my sons schoolfriends would not be able to follow the instructions, as they are in English.
I will try to keep both versions at the same version status, but there might ber some differences.
----------------------------------------------------------------------------
Diese ist eine "Schwester"-Seite der entsprechenden englischsprachenden Präsentation des "LEGOscopes" (s.o.).
Ich finde es zwar toll wenn ich mit einer englischen Version eine Idee weltweit vorstellen kann. Auf der anderen Seite finde ich es dann aber unbefriedigend wenn die Schulfreunde meines Sohnes es nicht nachbauen können, weil die Beschreibung auf englisch ist. In der Regel wird die englische Version jedoch aktueller und ausführlicher sein.
-----------------------------------------------------------------------------
In folgenden möchte ich meinen Entwurf eines einfachen Mikroskops unter Verwendung eines Raspberrry Pi, einer speziellen Pi Kamera und diverser Legoteile aus dem Zimmer meines Sohnes vorstellen. Ich hatte schon seit längerem vor zu versuchen ob sich der Raspi für einen bestimmten Zweck als preisgünstiges Mikroskop mit anschließender Bildauswertung eignet. Ich habe von André Maia Chagas den Tip erhalten es mit einer PiCam von WaveShare zu probieren, welche einen Objektiv mit verstellbarem Fokus besitzt. AVC-shop.de in Berlin hat dann die Kamera besorgt und bietet sie jetzt auch über ihren Webshop an.
Ich stand dann vor den Problem wie ich meinen Entwurf für ein Mikroskop in einen Prototypen umsetzen könnte und hatte dann die Idee es einfach mit LEGO Teilen aus dem Kinderzimmer zu versuchen.
Das Ergebnis funktioniert erstaunlich gut, so dass ich es in folgenden vorstellen möchte.
Aufbau:
Da Mikroskop ist in der derzeitigen Version ein Auflichtmikroskop. Es besitzt einen beweglichen Objektträger und ein rechtwinklig dazu bewegbaren Halter für die Kamera, sodass die interessanten Regionen auf einen Objekt exakt angefahren werden können. Der Fokus wird durch Drehen des Objektivs eingestellt. Der Abstand von Objektträger und Kamera, und damit die Größe der abgebildeten Region, lässt sich durch Verkürzung oder Verlängerung der Säulen einstellen, auf denen der TRägerrahmen für die Kamera steht.
Material und Kosten:
Die WaveShare Model B-Kamera kostet derzeit (Okt. 2015) ca. 25 €. Für einen Raspberry Pi 2 mit SD-Karte und Netzteil und Gehäuse sollte man mit ca. 50 € rechnen. Desweiteren benötigt man noch ein etwas längeres Kabel (50 cm) für die Kamera.
Zudem braucht man noch eine Tastatur und eine Maus (ich verwende eine Logitech K400R mit Touchpad) und einen Bildschirm mit HDMI-Anschluß, ein Fernseher mit HDMI-Anschluß geht auch.
Die meisten der verwendeten LEGO-Teile sind Standardteile, allerdings habe ich für die Mechanik einige speziellere LEGO Technik-Teile verwendet. Ggf. lassen sich diese Teile bei den entsprechenden Websites auch einzeln beziehen. Die beschriebene Mechanik ist zwar nicht zwingend erforderlich, aber praktisch. Grundsätzlich lassen sich Objekt und Kameraschlitten auch einfach von Hand verschieben. Wie hoch die effektiven Kosten für die LEGOs sind hängt damit davon ab, wieviele der benötigten Teile schon vorhanden sind.
Fähigkeiten und Begrenzungen:
Die maximale Auflösung ist etwa 5 µm/Pixel. Das Mikroskop ist daher der Lage sehr kleine Objekte bis zu einer Größe eines Staubkorns (20-100 µm) abzubilden. Die Auflösung reicht jedoch nicht für Zellen (ca. 5-10 µm).
Da die Linse eigentlich nicht für diesen Zweck gebaut ist kommt es zu einem Effekt namens "chromatische Abberation", der dazu führt, dass in der Mitte des Bildes ein gelber Fleck ist, die äußeren Bereiche sind dafür lila. Der scharf abgebildete Bereich des Bildes begrenzt sich auf die Bildmitte.
In seiner gezeigten Konfiguration ist das Mikroskop ein Auflichtmikroskop.
Es ist jedoch möglich, es zu einem Durchlichtmikroskop umzubauen, so dass man dann auch Objekte auf Glasobjektträgern ansehen kann. Allerdings habe ich dazu auch nicht-Legoteile verwendet. Beschreibung und Bilder folgen.
An der Beleuchtung sollte noch gearbeitet werden, bislang verwende ich einen LED Spot mit Schwanenhals und ggf. noch eine Milchglassscheibe aus Plexiglas davor. Für das Durchlichtelement habe einen schwaches 1,5 W LED-Element leicht modifiziert und mit einer 9V Blockbatterie betrieben. Schon das macht mehr Licht als notwendig.
Weitere Optimierung:
Schick wäre eine leichtere Einstellbarkeit des Fokus sowie des Abstands von Objekt und Kamera (z-Achse). Dies sollte sich zwar auch mit Lego umsetzen lassen, dürfte aber etwas aufwendiger werden.
.
Step 1: Der Objektträgerschlitten Und Die Objektträgerschlittenbahn
Das gesamte Konstrukt steht auf einer etwas größeren LEGO-Platte. Als Objektträger verwende ich einen "Schlitten", der auf zwei Bahnen aus flachen Legosteinen läuft. Die Bahn des Schlittens ist seitlich durch Wände beschränkt. Auf der Unterseite des Schlittens befinden sich konvexe runde Steine, auf der Oberseite links und rechts Zahnstangen. In diese greift je ein Zahnrad, das mit einem größeren Rad verbunden ist. Somit lässt sich der Schlitten durch Drehen an den größeren Rädern sehr leicht und präzise bewegen. Zudem sorgen die Zahnräder dafür, dass der Abstand von Objektträger und Kamera auch beim Verschieben gleich bleibt. Als Basis Platte für den Schlitten habe ich eine 6 x 12 Platte verwendet. Ein vergleichbares Konstrukt findet sich beim LEGO Star Wars MTT.
Auf dem Objektträgerschlitten habe ich noch einige kleine klare LEGO Teile angebracht, welche die Objekte in Position halten sollen. Auf den Begrenzungsmauern stehen die Säulen, auf denen die Mechanik für die Kamera ruht. Durch Veränderung der Zahl und Art der Steine kann dann der Abstand von Kamera und Objekt eingestellt werden. Ob ihr hierfür nun runde oder eckige Steine nehmt ist eigentlich egal.
Step 2: Die Kamera Und Der Kameraschlitten
Wie bereits erwähnt verwende ich eine WaveShare Model B Kamera. Es geht grundsätzlich auch mit der Model F Kamera, allerdings muss man dann mit dem Objektiv wesentlich näher ans Objekt. Ich habe als Abstandhalter vier 10 mm M2 Schrauben verwendet, die mit je zwei M2 Muttern an der Kameraplatine befestigt sind. Hierzu war es erforderlich die in der Platine vorhandenen Löcher vorsichtig auf 2 mm aufzubohren. Die Schraubenköpfe wurden dann mit Heisskleber mit einer 4x4 Legoplatte verklebt. Dieses Konstrukt erlaubt es die Kamera ggf. auch auszubauen oder ihre Ausrichtung etwas zu verändern.
Die 4x4 Platte wird dann an einer 6x14 oder 6x12 Platte angebracht. Diese Kameraschlittenplatte ist beweglich in einem viereckigen Rahmen untergebracht, wobei sie links und rechts auf einer Reihe glatter Steine aufliegt. Oben auf der Platte befindet sich eine Zahnstange und nochmals glatte flache Steine. Die Platte kann dann über ein Schneckengewinde bewegt und so die Kamera relativ genau positioniert werden. Das Schneckengewinde fixiert die Platte gleichzeitig an der eingestellten Position. Damit die Einstellung schneller und exakter erfolgen kann habe ich hier noch ein kleines Getriebe eingebaut.
Die Einstellung des Fokus erfolgt durch Drehen der Linse. Um dies etwas einfacher zu gestalten habe ich ein LEGO-Gummirad etwas angepasst, damit es auf den Kopf des Objektivs passt. Damit lässt dieses sich jetzt deutlich leichter und exakter einstellen.
Wie schon gesagt kann der Abstand zwischen Kamera und Objekt durch Änderung der Höhe der Säulen eingestellt werden. Das "B" Objektiv hat eine Fokuslänge von 6 mm d.h. der Mindestabstand von Linse zu Objekt ist etwa 8 mm. Es gibt auch noch eine WaveShare "F" Kamera mit einer Fokuslänge von 3,8 mm, deren Linse aber nicht so stark vergrößert und mit der man deutlich näher an das Objekt kann und muß.
Es gibt für die Steuerung der RaspiCam neben den Tools Raspistill und Raspivid auch einige einfacher zu bedienende Programme und Python-Scripte. PiVision funktioniert recht gut. Daneben lässt sich die Kamera z.B. auch über Mathematica ansteuern, und die Aufnahmen können dann über geeignete Mathematica Scripte bearbeitet und auswertet werden. Ich habe auf der Basis eines Mathematica-Scripts, das BobTheChemist für sein Raspiscope entwickelt hat, selbst einige Scripte erstellt. Ich werde diese nochmals überarbeiten und dann irgendwann dieser Anleitung beifügen.
Step 3: Beispielaufnahmen: Fotos Und Filme
Hier finden sich einige der Aufnahmen, die ich mit dem Mikroskop gemacht habe.
Da wären:
- eine Feder;
- eine Fruchtfliege;
- 2x eine 1 Cent-Münze (1x auch mit Barthaar);
- das LEGO-Logo auf dem Knopf einer LEGO-Platte;
- ca. 100 µm größe Glasperlen. Diese haben im Inneren noch kleine Kanäle und sind daher nicht klar;
- eine eingetrocknete Suspension von Hefe-Zellen (die kleinen bunten Punkte) mit einer der 100 µm Glaskugeln als Größenvergleich;
- die Spitze einer Insulin-Nadel (die sind feiner als eine Stecknadel) und ein Video, in welchem mit der Nadelspitze 100 µm Glaskugeln verschoben werden;
- ein Stück zerbrochene CD und die Spitze eines fossilen Haifischzahns;
- Aufnahmen eines Satzes von ELISpot Reaktionen (Negativ-Kontrolle, Antigen A, Antigen B, Positiv-Kontrolle).
Attachments
Step 4: Scripte Für Aufnahme Und Bildauswertung
Wie schon gesagt möchte ich hier später einige der Mathematica-Scripte einstellen, die ich für die Bearbeitung und Auswertung der Aufnahmen entwickelt habe. Mathematica ist ein sehr mächtiges aber vergleichsweise einfach zu programierendes Werkzeug für mathematische Aufgaben (wozu auch Bildverarbeitung gehört) und ist in der Raspian-Distribution für den Raspberry kostenfrei enthalten.
Mein Augenmerk lag dabei auf einer bestimmten Anwendung, bei der es darum geht die Anzahl, Größe, Form und Intensität ca. 30-120 µm kleiner Flecken (Spots) auf einen ca. 5-6 mm großen runden Membran zu erfassen. Der wissenschaftliche Hintergrund hierfür ist das ELISpot-Verfahren, mit dem man z.B. die Stärke der zellulären Immunantwort einer Person oder eines Tiers gegen Krankheitserreger oder Impfstoffe messen kann.
Für die Auswertung muss dabei erstmal die auszuwertende Region ("region of interest", ROI) möglichst sauber ausgewählt werden. Hierzu ist es nützlich die Aufnahme zunächst auf den relevanten Bereich zu beschneiden.
Dann wird versucht die relevanten Signale in der ROI vom Hintergrund zu unterscheiden. Hierzu wird meist ein Schwellwert (Threshold) Verfahren eingesetzt, d.h. es wird ein Intensitätswert definiert der Signal und Hintergrund von einander trennt. Hieraus wird dann eine schwarz-weiße Maske erstellt, in der die Signale als Blobs abgebildet sind. Anhand von Parametern wie Größe und Form wird dann versucht "echte" von Störsignalen zu unterscheiden. Durch den Einsatz eines Wasserscheiden (watershed) Verfahrens kann auch noch versucht werden jene Blobs, die eigentlich aus zwei oder mehr benachbarten Flecken bestehen, in diese Teile zu zerlegen. Zuletzt wird die überarbeitete Maske dann wieder auf die Aufnahme angewendet, die als "echte" Signale beurteilten Spots markiert und deren Eigenschaften in der Aufnahme wie z.B. Intensität und Intensitätsverteilung oder Farbe analysiert.
Für solche Aufgaben gibt es zwar auch großartige und sehr mächtige Programme wie ImageJ, welches auch auf dem Raspi läuft. Der Arbeitsablauf ist dort aber meist relativ komplex und besteht aus mehreren Einzelschritten. Ich hätte aber gerne eine einfach zu bedienende und integrierte Lösung, mit der auch Nicht-Spezialisten arbeiten könnten.