Déplacer la scène automatique THORLABS avec Python [pour recherche]

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

introduction

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.

Comportement automatique de la scène Thorlabs

stage.gif

Environnement de développement

Matériel à utiliser

Installation

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

Contrôle de fonctionnement

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

Déplacer la scène automatique THORLABS avec Python [pour recherche]
La caméra THORLABS CS2100M-USB fonctionne sur Python [pour recherche]
Premiers pas avec Python pour les classes PHPer
Premiers pas avec Python pour les fonctions PHPer
[Jouons avec Python] Viser la génération automatique de phrases ~ Achèvement de la génération automatique de phrases ~
Extraction de mots-clés facile avec TermExtract pour Python
INSÉRER dans MySQL avec Python [Pour les débutants]
Grattage WEB avec Python (pour mémo personnel)
Enregistrement SSH manuel pour coreserver avec python
Utiliser DeepL avec python (pour la traduction d'articles)
Mémo pour demander des KPI avec python
Amplifiez les images pour l'apprentissage automatique avec Python
Méthode de mise à jour automatique par python Pyinstaller exe
Conseils pour utiliser python + caffe avec TSUBAME
[Shakyo] Rencontre avec Python pour l'apprentissage automatique
Traiter plusieurs listes avec for en Python
Premiers pas avec Python pour PHPer-Super Basics
[Jouons avec Python] Viser la génération automatique de phrases ~ Effectuer une analyse morphologique ~
déboguer la connexion mysql avec python mysql.connector
[Python] Lire des images avec OpenCV (pour les débutants)
Création WebApi avec Python (création CRUD) Pour les débutants
Préparation au grattage au python [Saveur chocolat]
[Pour les débutants] Essayez le web scraping avec Python
Raisonnement causal et recherche causale par Python (pour les débutants)
Fonctionnement automatique de Chrome avec Python + Sélénium + pandas
[Français] Premiers pas avec Rust pour les programmeurs Python
Construire un environnement Anaconda pour Python avec pyenv
Utilisez Logger avec Python pour le moment
Envelopper C avec Cython pour une utilisation à partir de Python
~ Conseils pour les débutants de Python donnés avec amour par Pythonista ① ~
Django avec Python Tools 2.2 pour Visual Studio (PTVS 2.2)
[Python] Collectez des images avec Icrawler pour l'apprentissage automatique [1000 feuilles]
Traitement d'image avec la configuration de l'environnement Python pour Windows
Remarque pour le formatage des nombres avec la fonction de format python
Commandes pour créer un environnement python3 avec virtualenv
Envelopper C ++ avec Cython pour une utilisation à partir de Python
Mémo pour l'édition de scènes avec Blender python (W.I.P.)
~ Conseils pour les débutants de Python donnés avec amour par Pythonista ② ~
[Introduction pour les débutants] Manipuler MySQL avec Python
[# 1] Créez Minecraft avec Python. ~ Recherche préliminaire et conception ~
Paramètres pour démarrer avec MongoDB avec python
30/10/2016 else pour Python3> pour:
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Analyse de données pour améliorer POG 1 ~ Web scraping avec Python ~