Mikroskop

CZJ

Ansichten CZJ-Mikroskop

Fehlerbild: Verstellknöpfe sitzen fest, Objektivrevolver und Lichtfilter extrem schwergängig. Elektrischer Antrieb des Objektivrevolvers versagt.

Diagnose: Verharzt.

Reparatur (02/17): Alles auseinandernehmen, in Petroleum waschen, Optiken nicht waschen, leicht ölen, zusammenbauen, fertig.

Erneute Reparatur (08/17): Lampenkontakt abgefallen; neu angelötet.

Weitere Reparatur (09/17): Versteinerte Gummifüße, durch Schaumgleitfüße ersetzt, aber das ist auf Dauer nicht die richtige Lösung, da Gerät zu schwer. Neue Füße sind aus POM zu fertigen:

Schrauben (M4×11 mit Bund ⌀5,5×5 und Kopf ⌀8,5×3) sind noch da.

Weitere Reparatur (02/19): Objektivrevolver und Querschieber etwas schwergängig: Jammerndes Motorgeräusch. Nochmal alles nachgeölt. Erst jetzt wurde sichtbar, dass das (schnell laufende) Zahnradgetriebe einen Ölnebel in der Optik produziert: Konstruktionsfehler und/oder Fett statt Öl benutzen!

Leica Autofocus

Leica-Mikroskop und Steuereinheit (= Blechkiste rechts)

Fehlerbild: Kein Autofokus, Laser-LED aus. Kein Verstellgeräusch.

Diagnose: 2 Sicherungen T1A in Steuergerät durchgebrannt (für ±12 V). Motorantrieb für Höhenverstellung fest sitzend. Eine Madenschraube (M2,5?) fiel aus dem Gehäuse, kein passendes Gewindeloch gefunden. Antrieb auf Endlage festgebrummt, von Hand lösbar, dann leichtgängig. Schrecklich viele Adern zum Laser. Funktionsprinzip der Fokusbestimmung unklar: Auf jeden Fall keine Bilderkennung.

Vermutung: Absturz des Controllerprogramms, das die Endschalter auswertet, ließ den Motor mit Vollgas über den Endschalter fahren. Mechanische Begrenzung blockiert den Antrieb (Konstruktionsfehler). Stromaufnahme mit blockiertem Motor zu hoch, dadurch kommt eine Sicherung, danach sofort die zweite, da Zweiweggleichrichtung mit Mittelanzapfung (mehrere Konstruktionsfehler).

Funktionsprinzip: Diese alte Steuerung aus den 80ern verwendet keine Vollbrücke und vmtl. kein PWM sondern einen Leistungs-OPV (wie LM165) und symmetrische Speisespannung, auf ±12 V stabilisiert. Funktion der Tasten v.l.n.r.:

  1. Autofokus: Motor fährt hin und her bis Fokus gefunden, danach leuchtet grüne LED
  2. Tischabsenkung: Motor fährt zum Endschalter, wenn auf Endschalter, leuchtet grüne LED (Beobachtungsobjekt kann sicher gewechselt werden)
  3. Tisch manuell herunter bewegen
  4. Tisch manuell hoch bewegen

Der Stellweg für den Tisch beträgt schätzungsweise 1 mm.

Reparatur (06/17): Motor von Endlage freidrehen, Sicherungen ersetzen.

Lampennetzteil Leitz

Zum Mikroskop Leitz Ergolux AMC

Fehlerbild: Lampe flackert. Mikroskopieren unerträglich. Zeiger des Voltmeters zittert entsprechend. Auch ohne Lampe, ohne Last.

Diagnose: Gehäuse war verkehrtherum zusammengeschraubt (Füße oben). Großer Trafo, dahinter Triac-Steller mit Ansteuerschaltkreis Telefunken U111B. Elko 10 µF / 40 V hat Kapazitätsverlust auf 2 µF. Das ist alles. Zum Testbetrieb ist nunmehr eine Mindestlast erforderlich, sonst zündet der Triac in einer Halbwelle nicht durch; Traforattern durch Gleichstrom.

Motorisierung eines Raman-Spektrometers

Sieht aus wie ein Mikroskop, ist jedoch ein Raman-Spektrometer. Vielleicht das hier.

Es soll motorisiert und damit automatisiert werden:

Zur Auswahl kommen 2 Servomotoren und 1 Getriebe-Schrittmotor 64:1, dazu 2 Zahnräder und 2 IMHO unsinnige Kugellager. Und ein Arduino Pro Micro zur Steuerung vom PC. Alles von Eckstein. Pfostenstecker und -buchsen, einen ULN2003 sowie eine Lochrasterplatte hat der Bastler vorrätig bzw. anderswo vorsorglich abgeschrottet. Auf dem Arduino wird die 5-V-Lötbrücke J1 geschlossen. Somit kommt die 5 V vom USB auf dem UCC-Anschluss des Arduinos heraus, über eine (auf dem Arduino befindliche) selbstrückstellende Sicherung 500 mA. Das reicht für die Motoren geradeso aus. Externe Stützkondensatoren erspare ich mir hier, da es keine taktempfindliche Logik gibt.

Verschaltung ohne Fritzing; rechts das Innenleben des ULN2003
Anschlussbelegung des „Pro Micro“ inklusive Portadressen und Zusatzfunktionen

Software:

Verwendung: Die Software generiert über USB eine serielle Schnittstelle, sogenannt USB-CDC. Damit das unter Windows funktioniert, muss eine INF-Datei die Verbindung zwischen USB-CDC und einem COM-Port herstellen. Am besten mit der o.a. INF-Datei. Unter Linux geschieht das ohne weiteres Zutun.

Die Steuerung der beiden Servomotoren und des Schrittmotors geschieht über zeilenweise ASCII-Daten, etwas angelehnt an SCPI, nach folgender Tabelle:

Steuerbefehle (Jedes Kommando und jede Antwort mit CR LF)
SendedatenAntwortKommentar
*IDN?Firmwarebezeichnung und Datum"IDN?" wird ignoriert, die Firmware wertet nur den Stern aus
?pos0,pos1,pos2Alle 3 Istpositionen in der Reihenfolge vorderer Servomotor, hinterer Servomotor, Schrittmotor
Mindex,position[,richtung+geschwindigkeit]- Index 0 = vorderer Servomotor, 0..4400 (Konstante MAXSERVO)
Index 1 = hinterer Servomotor, 0..4400
Index 2 = Schrittmotor, 0..20479 (Konstante N-1)

Enthält position ein Vorzeichen, gibt dies den Verfahrweg an. Dieser darf größer als 20479 sein; dann werden mehrere Umläufe generiert.
Der dritte Parameter gibt die Richtung und die Geschwindigkeit an.

WOK Wartet auf das Ende der Schrittmotorbewegung und schickt dann das OK.
Bei stehendem Motor wird sofort OK geantwortet.
Z-Setzt die momentane Schrittmotorposition auf Null, ohne den Motor zu bewegen.
H-Hält den Schrittmotor an. Steht dieser bereits, passiert nichts.
alles andereError kodeFehlermeldung. Kodes siehe Quelltext.

Und so etwa kann es in Matlab angewendet werden (siehe Doku):

com=serial('COM4'); fopen(com);			% Schnittstelle öffnen
 fprintf(com,'M0,%d\n',[0 4400](bf));		% Fahre vorderen Servomotor (brightfield) zu einem der beiden Endanschläge
 fprintf(com,'M1,%d\n',[0 4400](cbs));		% Fahre hinteren Servomotor (camera beam splitter) zu einem der beiden Endanschläge
 fprintf(com,'M2,%d\n',newpos);			% Fahre Schrittmotor (polarization) zu "newpos"
 fprintf(com,'M2,%+d\n',delta);			% Bewege Schrittmotor um "delta" Schritte vor oder zurück
 fprintf(com,'?\n');
 A = fscanf(com,'%i,%i,%i',[3 1]);		% Positionen abfragen (ungetestet!)

Die Firmware akzeptiert als Zeilenende sowohl "\n" als auch "\r" als auch "\r\n". Dabei ist "\n" das gängigste und unter Linux üblich (und ausreichend), während ein Terminal "\r" bei der Entertaste generiert — konfus.

Probeweise kann putty zum Herumspielen verwendet werden. Dabei sollte das Terminal mit eingeschaltetem lokalen Echo und lokalen Zeileneditor vorkonfiguriert werden. Ein Zurückholen vorausgehender Zeilen ist damit leider nicht möglich.

Das Anspringen des Arduino-Urladers (Kommando BL) klappt nicht. Auch funktioniert es nicht, avrdude mit einer elf-Datei zu füttern: avrdude programmiert zwar irgendetwas, aber das Programm kommt nicht an. Also doch der alte Umweg über die HEX-Datei und avr-objcopy.

Hardware: Der Anbau der Servomotoren erfolgt zweckmäßigerweise mit einem Kurbelgestänge, nicht nach dem Prinzip Scheibenwischer. Da die Servoarme sich etwa 180° bewegen, können gerade in den Endlagen enorme Schub- bzw. Zugkräfte erreicht werden. Dazu muss der Arm der Servos (d.h. das Loch für den Pleuel) auf 23 mm bzw. 13 mm verlängert werden, ein Fall für den 3D-Drucker. Am Bedienteil wird ebenfalls ein 3D-gedrucker Adapter aufgesetzt, der das andere Loch bietet. Dazwischen ein steifer Draht als Pleuel, fertig.

So sieht's aus (ungelistetes YouTube-Video, 9 Sekunden)

Zuständig: Susanne Hartmann, 35330

Motorisierung sowie schaltbares Laserlicht

Etwa wie soeben, aber ohne Schrittmotor.

Arduino-Grundaufbau

Diesmal ist das Board ein Pro Micro 8 MHz mit 3,3 V. Ein Bestell-Unfall? (Von mir verursacht.) Wurde auf 5 V umgefrickelt: Brücke gebrückt; Firmware umgestellt.
Diesmal ist der zweite Servo ein Umlaufservo. Ein Bestell-Unfall?

Probeaufbau

Mit der Firmware ist die erprobte Ruhe-Mittelstellung des Umlaufservos bei 190. 0 ergibt maximale Drehzahl rechtsherum, 400 linksherum. Die Zahlenwerte sind diesmal exakt Mikrosekunden Pulslänge für die Servos, bei einer Wiederholperiode von 20 ms.

Der große Servomotor links im Bild oben wurde verworfen und zurückgeschickt.

Laserdiode

Dimmen einer Laserdiode aus einem Laserpointer. Natürlich auch mit einem Arduino und PWM. Da man das Datenblatt einer x-beliebigen Laserdiode aus einem x-beliebigen Laserpointer nicht bekommen kann, erst mal ein Datenblatt als Groborientierung. Daraus ergeben sich folgende (sinnvollen) Betriebswerte:

Daher genügt für einen 5-V-Arduino ein Vorwiderstand von (4,2 V2,1 V) ÷ 20 mA ≈ 100 Ω, um den Maximalstrom nicht zu überschreiten. Überwacht man den Fotostrom mit einem 10-kΩ-Widerstand an einem A/D-Wandler, ist die maximale Analogspannung 0,3 mA × 10 kΩ = 3 V.

Der tatsächliche Laserpointer leuchtet auf Papier blau und auf sonstigen Flächen violett und schluckt bei 3,2 V 230 mA. Das erfordert (zumindest) einen Transistor: Ein BC337 wurde als Emitterfolger mit Vorwiderstand 3,9 Ω an den Laserpointer angeschlossen, siehe Bild. Frank Philippczyk hat dafür einen hübschen Batterieadapter kreiert.

Endaufbau: Der Halter des Laserpointers muss den Knopf permanent gedrückt halten

Achtung! Die beiden Metallteile des Laserpointers liegen auf (geschaltetem) Plus-Potenzial! Der Transistor und der Vorwiderstand schwächt die Wirkung eines Erdschlusses. Das ist so beabsichtigt.

com=serial('COM4'); fopen(com);			% Schnittstelle öffnen
 fprintf(com,'M2,%d\n',0);			% Laser aus
 fprintf(com,'M2,%d\n',1000);			% Laser ein
 fprintf(com,'M2,%d\n',500);			% Laser halb
 fprintf(com,'?\n');
 A = fscanf(com,'%i,%i,%i,%i',[4 1]);		% Istwerte abfragen (ungetestet!) - letzter Istwert vom Fotodetektor

Der Laser wird in Promille angesteuert: 0 = aus und 1000 = ein. Zwischenwerte aktivieren den PWM-Generator an Timer4 mit 8 kHz Wiederholfrequenz bzw. 125 µs Wiederholrate. Jeder Schritt entspricht einer Impulsverlängerung um 125 ns entsprechend der Quarzfrequenz 8 MHz. Der Timer4 könnte auch von der 64-MHz-PLL gespeist werden, wenn die Impulse bei der Messung stören sollten. Der Emitterfolger scheint zudem recht träge zu sein. Über dem 3,9-Ω-Widerstand wurde eine Spannung von knapp 1 V gemessen, somit stimmt der Strom von 250 mA.

Lichtmessung

Mit Fotodiode OSD5.8-7Q (jaja, irrsinnig teuer) im Kurzschlussbetrieb und I/U-Wandler zum Eingang ADC11 = PB4. Als Operationsverstärker kam ein vorgefundener Rail-To-Rail-Typ OPA347 zum Einsatz. Ein billiger LM358 täte es hier aber genauso.

Ein steckbarer Widerstand legt die Steilheit des I/U-Wandlers fest. Zurnächst waren es 470 kΩ für Umgebungslicht. Bei Laserbeschuss sind nun 1 kΩ richtig für nahezu Vollausschlag. Höhere Werte machen den Lichtdetektor empfindlicher. Maximal verträgt der A/D-Wandler 2,56 V (= innere Referenzspannung). Da 10 Bit zu knapp erscheinen, werden 64 Messwerte akkumuliert, bevor sie ausgegeben werden. Daher ist der maximal mögliche Messwert 1023×64 = 65472. Der Zusammenhang zwischen Lichtstärke und Messwert sollte linear sein. Wie das bei ungleichmäßiger Lichtverteilung auf der Sensorfläche aussieht kann ich nicht sagen. Das Datenblatt dazu ist ohnehin unter aller Kanone. Der I/U-Wandler sollte jedoch für perfekte Lichtintegration (bezogen auf die Sensorfläche) sorgen, da der Quasikurzschluss Irrströme durch Dunkelbereiche der Sensorfläche verhindert.

Aufbaufotos

Neu hinzugekommen ist eine Advise-Funktion, die DdeAdvise entspricht: Das Kommando A („advise“) schaltet diese Funktion ein, das Kommando U („unadvise“) aus. Bei eingeschaltetem Advise spuckt der A/D-Wandler mit rund 75 Sa/s stetig Messwerte zeilenweise in ASCII aus. Die genaue Rate ist 8 MHz / 128 / 13 / 64 = 75,1202 Sa/s.

Zuständig: Susanne Hartmann, 35330; Martin Hartmann, 32347

Elektronenstrahlmikroskop Zeiss

Meldung: Netzteil-Lüfter macht Klappergeräusche. In der Netzteil-Box, die 3 Netzteile enthält. (Puh! Wer macht denn sowas? Deswegen überholen uns die Chinesen.) (Kein Intrusion-Kontakt. Box an Wand per Schlüssellöcher eingehängt.) Alle 3 Netzteile liefern 2× 15 V, 24 V und 5 V in unterschiedlichen Stromstärken und werden angeblich bei Bedarf (Maschinenstatus) zugeschaltet.

Ursache: Öl, oder eben kein Öl; Staub und Dreck. Typ: ebmpapst 40 × 40 × 19 mm³, 12 V= 80 mA 1 W (2 Stück) im sog. Standby-Netzteil. Ersatzbeschaffung angeraten.

Fummel- und Bastelbilder

Zuständig: Conny, 801