最初にASI_linux_mac_SDK_V1.21をインストール
ダウンロードのリンク
Software and Drivers
ダウンロードして展開すると;
$ls ASI_linux_mac_SDK_V1.21
demo doc include lib license.txt
$ls ASI_linux_mac_SDK_V1.21/demo
Makefile bin main_SDK2_snap.cpp main_SDK2_video.cpp main_SDK2_video_mac main_SDK2_video_mac.cpp readme.txt
$cat readme.txt
Please install opencv2 at first, for example under Linux x86 OS, run:
make platform=x86
Below options is supported:
x86(Linux 32-bit)
x64(Linux 64-bit)
armv5
armv6
armv7
armv8
mac32
mac64
mac(32-bit and 64-bit)
If libASICamera2.so or (.dylib) can't be found at run time, resolve by delow two ways:
1.Add a .conf file that contains the path of the library to /etc/ld.so.conf.d/, run ldconfig.
2.Add compile option -Wl,-rpath=<library path>
raspberry pi4 64bit OSの場合 armv8
makeに先立って、demo/binの下へarmv8フォルダーを作る。
/usr/includeの下に、opencv2のファイル一式が必要。
root権限なしでカメラをアクセスできるようにするためのルールを追加
設定ファイル ASI_linux_mac_SDK_V1.21lib/asi.rulesをlib/udev/rules.d または/etc/udev/rules.dへCopyして、カメラを抜き差し。
$cd demo
$mkdir demo/bin/armv8
$make platform=armv8
$ ls demo/bin/armv8/
libASICamera2.so main_SDK2_video_mac test_gui2_snap test_gui2_video
libASICamera2.so を参照できるよう、適切なフォルダーへ配置しldconfig
(あまり良い方法ではないが、/lib の下へlibASICamera2.soをCopy)
Pythonから利用できるようにライブラーをインストール
https://github.com/python-zwoasi/python-zwoasi
#!/usr/bin/env python
import argparse
import os
import sys
import time
import zwoasi as asi
env_filename = os.getenv('ZWO_ASI_LIB')
ZWO_ASI_LIBには、次のパスを設定
$ echo $ZWO_ASI_LIB
/home/pi/python-zwoasi/build/lib/zwoasi
$ ls /home/pi/python-zwoasi/build/lib/zwoasi
__init__.py の内容
"""Interface to ZWO ASI range of USB cameras.
Calls to the `zwoasi` module may raise :class:`TypeError` or :class:`ValueError` exceptions if an input argument
is incorrect. Failure conditions from within the module may raise exceptions of type :class:`ZWO_Error`. Errors from
conditions specifically from the SDK C library are indicated by errors of type :class:`ZWO_IOError`; certain
:func:`Camera.capture()` errors are signalled by :class:`ZWO_CaptureError`."""
import ctypes as c
from ctypes.util import find_library
import logging
import numpy as np
import os
import six
import sys
import time
import traceback
__author__ = 'Steve Marple'
__version__ = '0.1.0.1'
__license__ = 'MIT'
def get_num_cameras():
"""Retrieves the number of ZWO ASI cameras that are connected. Type :class:`int`."""
return zwolib.ASIGetNumOfConnectedCameras()