Bewegen Sie die automatische Stufe von THORLABS mit Python [für Forschungszwecke]

[Teil 1] Hochgeschwindigkeitswellenlängenumschaltung einer LED-Lichtquelle mit mehreren Wellenlängen für Mikroskope mit pySerial [Teil 2] Steuern der Kamera mit Python [Für Forschungszwecke]

Einführung

Ich möchte mit Python teilen, wie man automatische Stufen steuert. Ich habe nicht einmal nach einem Artikel gesucht, wie man die automatischen Stufen von Thorlabs Inc. in Python steuert. Deshalb habe ich beschlossen, es selbst zu schreiben, und einen Artikel über die Essenz des Know-hows geschrieben, das ich durch Versuch und Irrtum gewonnen habe. Die diesmal verwendete automatische Stufe ist die Stufe von Thorlabs Inc. Dieser Tisch kann in das Mikroskop des Unternehmens integriert werden. Das selbst hergestellte Mikroskop ist erweiterbar und bietet Ihnen mehr Freiheit. Durch die Zentralisierung von Messung und Analyse können analoge mikroskopische Beobachtungen automatisiert und multivariate Datenanalysen nahtlos eingeführt werden.

Thorlabs automatisches Bühnenverhalten

stage.gif

Entwicklungsumgebung

Zu verwendende Ausrüstung

Installation

Die folgenden zwei sind erforderlich, um die automatische Stufe von Thorlabs zu bedienen.

kinesis Installieren Sie kinesis von hier. kinesis ist eine Bibliothek, die GUI-basierte Software und DLL-Dateien (Dynamic Link Library) enthält, die in einer lokalen PC-Umgebung ausgeführt werden. Wählen Sie die Version aus, die zu Ihrer PC-Umgebung passt. Eine GUI-basierte Anwendung ist enthalten, aber dieses Mal ist es in Ordnung, wenn "Thorlabs.MotionControl.KCube.StepperMotor.dll" im folgenden Verzeichnis gespeichert wird. C:/Program Files/Thorlabs/Kinesis

Diesmal ist es Windows 10 x64, wählen Sie also "Kinesis 64-Bit-Software für 64-Bit-Windows". Klicken Sie auf Download.

Installieren. ..

Erledigt.

** MSL-Ausrüstungsmodul ** Installieren Sie das Modul MSL-Equipment, um die automatische Stufe von Thorlabas zu steuern. Diese Bibliothek wird vom neuseeländischen Forschungsinstitut Measurement Standards Laboratory in Neuseeland kostenlos veröffentlicht.

Kopieren Sie zunächst den folgenden Befehl und führen Sie ihn aus.

Erstellen Sie mit dem Befehl conda eine virtuelle Umgebung thorlabs_demo.

conda create -n thorlabs_demo python=3.6

Installieren Sie MSL-Equipment mit dem folgenden Befehl.

pip install https://github.com/MSLNZ/msl-equipment/archive/master.zip

Versuchen Sie beispielsweise Folgendes mit der Anaconda-Eingabeaufforderung. Die Installation ist abgeschlossen. Du bist bereit.

Installationsverfahren (Original) https://msl-equipment.readthedocs.io/en/latest/install.html

Funktionsprüfung

Das Beispielprogramm sucht im folgenden Verzeichnis nach "kst101.py". C: \ Benutzer \ Ihr Benutzername \ anaconda3 \ Lib \ Site-Pakete \ msl \ Beispiele \ Geräte \ Ressourcen \ Thorlabs Sie können das folgende Programm kopieren und einfügen. Schauen wir uns nun das Beispielprogramm an. Es scheint nur zu funktionieren, indem Sie den Teil von "serial =" 26001809 "in die Seriennummer des von Ihnen verwendeten Geräts ändern.

kst101.py


"""
This example shows how to communicate with Thorlabs KST101, KCube Stepper Motor.
"""

# this "if" statement is used so that Sphinx does not execute this script when the docs are being built
if __name__ == '__main__':
    import os
    from pprint import pprint

    from msl.equipment import EquipmentRecord, ConnectionRecord, Backend
    from msl.equipment.resources.thorlabs import MotionControl

    # ensure that the Kinesis folder is available on PATH
    os.environ['PATH'] += os.pathsep + 'C:/Program Files/Thorlabs/Kinesis'

    # rather than reading the EquipmentRecord from a database we can create it manually
    record = EquipmentRecord(
        manufacturer='Thorlabs',
        model='KST101',
        serial='26002319',  # update the serial number for your KST101
        connection=ConnectionRecord(
            backend=Backend.MSL,
            address='SDK::Thorlabs.MotionControl.KCube.StepperMotor.dll',
        ),
    )

    def wait():
        motor.clear_message_queue()
        while True:
            status = motor.convert_message(*motor.wait_for_message())['id']
            if status == 'Homed' or status == 'Moved':
                break
            position = motor.get_position()
            real = motor.get_real_value_from_device_unit(position, 'DISTANCE')
            print('  at position {} [device units] {:.3f} [real-world units]'.format(position, real))

    # avoid the FT_DeviceNotFound error
    MotionControl.build_device_list()

    # connect to the KCube Stepper Motor
    motor = record.connect()
    print('Connected to {}'.format(motor))

    # load the configuration settings (so that we can use the get_real_value_from_device_unit() method)
    motor.load_settings()

    # start polling at 200 ms
    motor.start_polling(200)

    # home the device
    print('Homing...')
    motor.home()
    wait()
    print('Homing done. At position {} [device units]'.format(motor.get_position()))

    # move to position 100000
    print('Moving to 100000...')
    motor.move_to_position(100000)
    wait()
    print('Moving done. At position {} [device units]'.format(motor.get_position()))

    # move by a relative amount of -5000
    print('Moving by -5000...')
    motor.move_relative(-5000)
    wait()
    print('Moving done. At position {} [device units]'.format(motor.get_position()))

    # jog forwards
    print('Jogging forwards by {} [device units]'.format(motor.get_jog_step_size()))
    motor.move_jog('Forwards')
    wait()
    print('Jogging done. At position {} [device units]'.format(motor.get_position()))

    # stop polling and close the connection
    motor.stop_polling()
    motor.disconnect()

    # you can access the default settings for the motor to pass to the set_*() methods
    print('\nThe default motor settings are:')
    pprint(motor.settings)

Auf der Rückseite des kst101 befand sich eine 8-stellige Seriennummer.

Ändern Sie "serial =" 26001809 "im obigen Programm in" serial = "26002319". Sobald Sie das Programm ausgeführt haben und es funktioniert, sind Sie fertig.

Wenn Sie weitere Fragen haben, können Sie uns gerne über das unten stehende Formular kontaktieren.

http://www.opto-line.co.jp/contact/

Recommended Posts

Bewegen Sie die automatische Stufe von THORLABS mit Python [für Forschungszwecke]
Die THORLABS-Kamera CS2100M-USB läuft auf Python [für Forschungszwecke]
Erste Schritte mit Python für PHPer-Klassen
Erste Schritte mit Python für PHPer-Funktionen
[Lass uns mit Python spielen] Ziel ist die automatische Satzgenerierung ~ Abschluss der automatischen Satzgenerierung ~
Einfache Schlüsselwortextraktion mit TermExtract für Python
INSERT in MySQL mit Python [Für Anfänger]
WEB-Scraping mit Python (für persönliche Notizen)
Manuelle SSH-Registrierung für Coreserver mit Python
Verwenden Sie DeepL mit Python (für die Artikelübersetzung)
Memo, um nach KPI mit Python zu fragen
Verstärken Sie Bilder für maschinelles Lernen mit Python
Automatische Update-Methode von Python Pyinstaller exe
Tipps zur Verwendung von Python + Caffe mit TSUBAME
[Shakyo] Begegnung mit Python zum maschinellen Lernen
Verarbeiten Sie mehrere Listen mit for in Python
Erste Schritte mit Python für PHPer-Super Basics
[Lass uns mit Python spielen] Ziel ist die automatische Satzgenerierung ~ Morphologische Analyse durchführen ~
Debuggen Sie die MySQL-Verbindung mit Python MySQL.connector
[Python] Bilder mit OpenCV lesen (für Anfänger)
WebApi-Erstellung mit Python (CRUD-Erstellung) Für Anfänger
Vorbereitung zum Schaben mit Python [Schokoladengeschmack]
[Für Anfänger] Versuchen Sie Web Scraping mit Python
Kausales Denken und kausale Suche von Python (für Anfänger)
Automatischer Betrieb von Chrome mit Python + Selen + Pandas
[Übersetzung] Erste Schritte mit Rust für Python-Programmierer
Erstellen einer Anaconda-Umgebung für Python mit pyenv
Verwenden Sie vorerst Logger mit Python
Wickeln Sie C mit Cython für Python ein
~ Tipps für Python-Anfänger mit Liebe von Pythonista ① ~
Django mit Python Tools 2.2 für Visual Studio (PTVS 2.2)
[Python] Sammeln Sie Bilder mit Icrawler für maschinelles Lernen [1000 Blatt]
Bildverarbeitung mit Python Environment Setup für Windows
Hinweis zum Formatieren von Zahlen mit der Python-Formatierungsfunktion
Befehle zum Erstellen einer Python3-Umgebung mit virtualenv
Wrap C ++ mit Cython zur Verwendung von Python
Memo zum Bearbeiten von Szenen mit Blender Python (W.I.P.)
~ Tipps für Python-Anfänger mit Liebe von Pythonista ② ~
[Einführung für Anfänger] Umgang mit MySQL mit Python
[# 1] Mach Minecraft mit Python. ~ Vorforschung und Design ~
Einstellungen für den Einstieg in MongoDB mit Python
2016-10-30 sonst für Python3> für:
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Datenanalyse zur Verbesserung von POG 1 ~ Web Scraping mit Python ~