pySerial을 이용한 현미경 용 다 파장 LED 광원의 고속 파장 전환에 대해서
소개
왜 이 내용으로 쓰려고 했는가라고 하면, 프로그래밍 언어 Python(파이썬)으로의 화상 처리의 기사는 잘 보입니다만, 하드웨어의 제어에 대해서 쓰여진 기사는 거의 없었기 때문입니다. 파이썬에서도 하드웨어 제어를 할 수 있어요, 흠흠, 라고 느낄 수 있으면 다행입니다.
이 페이지에서는 Python을 사용하여 현미경 용 다 파장 LED 광원을 제어하는 방법을 공유합니다.
현미경(특히 형광 현미경)을 사용하고 있는 바이오계의 연구자나 학생을 이미지하면서 기사를 쓰고 있습니다.
물론 전기계의 분야에서도 응용 가능합니다.
Python을 사용하면 각 제조업체의 표준 소프트웨어에서 지원되지 않는 제품을 동기화할 수 있습니다. 또한 이미지 획득에서 이미지 분석까지 자동화할 수 있습니다. 많은 양의 이미지를 수집하고 통계 분석하는 분야의 연구자들에게 특히 도움이 될 것입니다.
도움이되면 다행입니다.
개발 환경
현미경 용 다 파장 LED 광원의 고속 파장 전환
바이오 과학 분야 및 의료 분야에서 세포를 관찰하기 위해 광학 현미경이 일반적으로 사용됩니다. 광학 현미경용 LED 광원은 기본적으로 부속의 표준 소프트웨어로 조작됩니다만, 안에는 자신 나름대로 커스터마이즈 하고 싶다고 하는 요망도 있을까 생각합니다. 그래서 이번에는 Python을 이용하여 LED의 파장을 고속(밀리초 정도)으로 전환하는 방법에 대해 씁니다.
사용할 장비
시스템 구성
현미경용 다파장 LED 광원에 TTL(Transistor-transistor-logic) 신호를 입력할 수 있으면 괜찮습니다. 즉 0V의 전압을 입력한 경우는 LED가 OFF, 5V의 전압을 입력한 경우는 LED가 ON이 됩니다. 이것을 고속으로 전환하여 파장을 전환합니다.
시스템의 개요는 아래 그림을 참조하십시오.
PC에서 Python을 사용하여 신호 변환기에 시리얼 신호를 보냅니다. 그 신호를 신호 컨버터에 의해 TTL 신호로 변환하여 현미경용 다파장 LED 광원으로 보내는 흐름입니다. 전기 배선은 생략합니다.
실제 사진은 여기
프로그램
먼저 시리얼 통신용 라이브러리 "pySerial"을 설치합니다.
다음 프로그램을 실행하십시오. LED가 깜박이면 성공입니다.
함수 LED_ON()의 인수 gpio_number를 변경하여 빛나는 파장을 선택할 수 있습니다.
LED.py
import datetime
import serial.tools.list_ports
import time
# COMポートに接続されている機器の情報を取得
coms = serial.tools.list_ports.comports()
# シグナルコンバーターの名前を設定
signal_converter_name = 'Numato Lab 2 Channel USB Powered Relay Module'
# シグナルコンバーターの名前を検索
print('[{}] searching the COM list...'.format(datetime.datetime.now()))
for com in coms:
flag = signal_converter_name in com.description
# 該当の名前が見つかったらCOMポートの番号を格納
if flag is True:
COM_PORT = com.device
print('[', datetime.datetime.now(), ']', 'connected COM ports is: ', com.description)
else:
pass
def led_on(gpio_number=0):
"""
LED ON function.
Serial command to TTL signal conversion. TTL ON.
Parameters
----------
gpio_number : GPIO port number. Default is 0.
Returns
-------
HIGH(5V) signal output from GPIO pin.
"""
# シグナルコンバーターからTTL信号を出力するピン番号の設定
gpio_port = str(gpio_number).encode()
# ONに設定
gpio_command = b'set' # 'set' means HIGH(5V)
# Open port for communication
serPort = serial.Serial(COM_PORT, 19200, timeout=1)
# Send the serial command
serPort.write(b'gpio' + b' ' + gpio_command + b' ' + gpio_port + b'\n\r')
print('[', datetime.datetime.now(), ']', 'LED_on')
# Close the port
serPort.close()
def led_off(gpio_number=0):
"""
LED OFF function.
Serial command to TTL signal conversion. TTL OFF.
Parameters
----------
gpio_number : GPIO port number. Default is 0.
Returns
-------
LOW(0V) signal output from GPIO pin.
"""
# シグナルコンバーターからTTL信号を出力するピン番号の設定
gpio_port = str(gpio_number).encode()
# OFFに設定
gpio_command = b'clear' # 'clear' means LOW(0V)
# Open port for communication
serPort = serial.Serial(COM_PORT, 19200, timeout=1)
# Send the serial command
serPort.write(b'gpio' + b' ' + gpio_command + b' ' + gpio_port + b'\n\r')
print('[', datetime.datetime.now(), ']', 'LED_off')
# Close the port
serPort.close()
if __name__ == '__main__':
for i in range(20):
# LED ON
led_on(0)
# wait 1sec
time.sleep(1)
# LED OFF
led_off(0)
# wait 1sec
time.sleep(1)
# LED ON
led_on(1)
# wait 1sec
time.sleep(1)
# LED OFF
led_off(1)
# wait 1sec
time.sleep(1)
동작 예 동영상
다음 HP에 동영상이 있습니다. 참고하십시오.
h tp // w w. 오, 그리고. 이. jp / ch 또는 l / ch 78. HTML
참조
pyserial 공식 HP
htps : // py 텐호 s 테 d. rg / py seria l / py seria l. html #오오 rゔぃ에 w
pyserial short introduction
htps : // py seria l. Red d. cs. 이오 / 엔 / 아 st / 쇼 r t t. HTML
다음 기사
파이썬으로 카메라를 제어하는 【연구용】
자세한 내용은 아래 양식에서 부담없이 문의하십시오.
Reference
이 문제에 관하여(pySerial을 이용한 현미경 용 다 파장 LED 광원의 고속 파장 전환에 대해서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/opto-line/items/3be4e0a1f8ac00442807텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)