[Partie 1] Commutation de longueur d'onde à grande vitesse d'une source de lumière LED multi-longueurs d'onde pour microscopes utilisant pySerial [Partie 2] Contrôle de la caméra avec Python [Pour la recherche]
Je voudrais partager comment contrôler les étapes automatiques avec Python. Je n'ai même pas cherché un article sur la façon de contrôler les étapes automatiques de Thorlabs Inc. en Python. J'ai donc décidé de l'écrire moi-même et j'ai écrit un article sur l'essence du savoir-faire que j'ai acquis par essais et erreurs. La scène automatique utilisée cette fois est la scène de Thorlabs Inc. Cette étape peut être intégrée au microscope de l'entreprise. Le microscope fait maison est extensible, vous donnant plus de liberté. En centralisant la mesure et l'analyse, les observations microscopiques analogiques peuvent être automatisées et l'analyse de données multivariée peut être introduite de manière transparente.
Les deux éléments suivants sont nécessaires pour faire fonctionner la platine automatique Thorlabs.
kinesis
Installez kinesis depuis ici.
kinesis est une bibliothèque qui comprend des logiciels basés sur l'interface graphique et des fichiers DLL (Dynamic Link Library) qui fonctionnent dans un environnement PC local.
Sélectionnez la version qui convient à votre environnement PC. Une application basée sur l'interface graphique est incluse, mais cette fois, il est acceptable si Thorlabs.MotionControl.KCube.StepperMotor.dll
est enregistré dans le répertoire suivant.
C:/Program Files/Thorlabs/Kinesis
Cette fois, il s'agit de Windows 10 x64, alors sélectionnez Logiciel Kinesis 64 bits pour Windows 64 bits
. Cliquez sur Télécharger.
Installation. ..
Terminé.
** Module d'équipement MSL ** Installez le module MSL-Equipment pour contrôler la platine automatique Thorlabas. Cette bibliothèque est publiée gratuitement par l'institut de recherche néo-zélandais Measurement Standards Laboratory of New Zealand.
Tout d'abord, copiez et exécutez la commande suivante.
Créez un environnement virtuel thorlabs_demo avec la commande conda.
conda create -n thorlabs_demo python=3.6
Installez MSL-Equipment avec la commande suivante.
pip install https://github.com/MSLNZ/msl-equipment/archive/master.zip
Par exemple, essayez ce qui suit avec l'invite Anaconda. L'installation est terminée. Tu es prêt.
Procédure d'installation (d'origine) https://msl-equipment.readthedocs.io/en/latest/install.html
L'exemple de programme recherche «kst101.py» dans le répertoire suivant.
C: \ Users \ votre nom d'utilisateur \ anaconda3 \ Lib \ site-packages \ msl \ examples \ equipment \ resources \ thorlabs
Vous pouvez copier et coller le programme ci-dessous.
Jetons maintenant un œil à l'exemple de programme.
Cela semble fonctionner simplement en remplaçant la partie de `serial = '26001809' par le numéro de série de l'appareil que vous utilisez.
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)
Il y avait un numéro de série à 8 chiffres au dos du kst101.
Remplacez «serial = '26001809» dans le programme ci-dessus par «serial =» 26002319 ». Une fois que vous exécutez le programme et que cela fonctionne, vous avez terminé.
Si vous avez d'autres questions, n'hésitez pas à nous contacter en utilisant le formulaire ci-dessous.
http://www.opto-line.co.jp/contact/
Recommended Posts