[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]
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.
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
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