ステラショット2から SS-one AutoGuider pro を動かしてみる。 #3 [Open DHCP Server]

今回は、SS-oneのIPアドレスを設定します。

ステラショット2からSS-oneに接続する際、SS-oneのIPアドレスを固定しておいた方が便利です。
SS-oneはできるだけ変更せずに使いたいため、SS-oneの外から設定する方法をとります。
SS-oneは DHCP クライアントとして動いていますので、ステラショットがインストールされているWindows PCにDHCP サーバ を立てて、DHCP サーバからSS-oneのIPアドレスを設定するようにします。

DHCPサーバはこちらの Open DHCP Server を使用します。
オープンソースDHCP サーバで、設定もわかりやすいツールです。
Windowsのサービスとして動きます。

ja.osdn.net

まずは、OpenDHCPServerInstallerV1.75.exe (2020年8月20日時点の最新版)をダウンロードして、Windows PCにインストールします。
インストール方法はいろいろなWebページで説明されていますので、Google先生に聞いてみてください。

インストールが終わったら、DHCP Serverの設定を行います。

Windowsのスタートメニューをクリックし、Open DHCP Server / Configure から OpenDHCPServer.ini を変更します。直接、インストールされたフォルダの「OpenDHCPServer.ini」というファイルを変更してもOKです。
ここでは、SS-oneのIPアドレスを192.168.1.41にする設定を行います。
Open DHCP Serverが稼働しているWindows PCのIPアドレスは 192.168.1.40です。
また、192.168.1.41から192.168.1.49までのIPアドレスの払い出しされるようにします。

[LISTEN_ON]
192.168.1.40

[LOGGING]
LogLevel=All

[RANGE_SET]
DHCPRange=192.168.1.41-192.168.1.49
Router=192.168.1.1

[GLOBAL_OPTIONS]
SubnetMask=255.255.255.0
DomainServer=192.168.1.1
AddressTime=360
Router=192.168.1.1

# SS-oneのMACアドレスを指定する。
[b8:27:**:**:**:**]
IP=192.168.1.41


次に、Open DHCP Serverが稼働しているWindows PCのIPアドレスを 192.168.1.40に固定します。

  1. コントロール パネル / ネットワークとインターネット / ネットワーク接続 / イーサネットのプロパティ を選択します。
  2. インターネットプロトコル(TCP/IPv4)を選択して、プロパティボタンをクリックします。
  3. 「次のIPアドレス」の各項目を設定します

SS-oneは DHCP クライアントとして動いていますので、
Open DHCP Serverから振られたIPアドレスが設定されるようになります。

ステラショット2から SS-one AutoGuider pro を動かしてみる。#2 [ 機器構成 ]

SS-oneを中心とした機器構成です。

鏡筒:セレストロンC5
赤道儀:EM-200B+SS-one
電子ファインダー:EOS Kiss X3+標準ズームレンズ(55mm-250mm)
CMOSカメラ:ZWO ASI224MC

ソフトウェア:
 ステラショット2
 HW VSP3
 OpenDHCP Server
 リモートデスクトップ


f:id:cloudynight:20200817233218j:plain


使用する機器をできるだけ少なくするために、WiFi環境はステラショットが動作するPCのモバイルホットスポットを使っています。もう一台のPCからリモートデスクトップでこのPCに接続し、リモート操作できるようにしています。
また、ステラショットからSS-oneを制御するために、HW VSP3というソフトを使っています。

SS-oneを動かしてみると、電力不足の傾向があり赤緯軸のモーターで「ガガッ」と音がして脱調することがありました。
SS-oneの消費電力を抑えるために、極軸カメラのUSBケーブルをSS-oneから外し、当初使用していたエレコムWiFiアダプタも外すと脱調しなくなったため、この2つは使用しないことにしました。WiFiアダプタが使用できないので、SS-oneとPCはLANクロスケーブルでつないでいます。

Open DHCP Server を使用して、SS-oneのIPアドレスをPCのネットワークセグメント(192.168.1.*)に合わせるようにしています。

SS-one autoguider pro で使える エレコム USB WiFi アダプタ(その2)

エレコム WDC-150U2MBKドライバをss-oneに組み込む

それでは、
エレコム WDC-150U2MBK
のUSB WiFiアダプタをss-oneに組み込む方法です。

ユーザ sspi でss-one(ラズパイ Raspberry Pi)にログインします。
(sspiユーザについては、以前の記事を参照してください。)

初めにファームウェアやOSの確認を行います。

$ cat /boot/.firmware_revision
b2f5782d2a61cdfa1967942d34eae48900266ae1

$ uname -a
Linux raspberrypi 4.0.7-v7+ #1 SMP PREEMPT Sat Jul 11 20:44:05 CEST 2015 armv7l GNU/Linux

$ lsmod
r8188eu               433274  0

$ modinfo r8188eu
filename:       /lib/modules/4.0.7-v7+/kernel/drivers/staging/rtl8188eu/r8188eu.ko
version:        v4.1.4_6773.20130222
author:         Realtek Semiconductor Corp.
description:    Realtek Wireless Lan Driver
license:        GPL
・・・

次に
http://downloads.fars-robotics.net/wifi-drivers/8188eu-drivers/
からドライバをダウンロードして、ss-oneの適当な場所に置きます。
ダウンロードするファイルは、先ほどのunameコマンドで確認したLinuxカーネルのバージョンに合ったファイル名のものを探します。4.0.7-v7で探して、その後ろの枝番は...すみません。不明です。

$ ls
8188eu-4.0.7-v7-801.tar.gz
$ tar -xvzf 8188eu-4.0.7-v7-801.tar.gz
8188eu.ko
8188eu.conf
install.sh
$ ls
8188eu-4.19.75-1270.tar.gz  8188eu.conf  8188eu.ko  install.sh
$ ./install.sh 
sudo install -p -m 644 8188eu.ko /lib/modules/4.0.7-v7+/kernel/drivers/net/wireless
sudo depmod 4.19.75+

Reboot to run the driver.

If you have already configured your wifi it should start up and connect to your
wireless network.

If you have not configured your wifi you will need to do that to enable the wifi.

$ sudo vi /etc/modprobe.d/blaklist-rt8xxxu.conf
blacklist r8188eu

ss-oneを再起動して、ドライバが組み込まれたことを確認します。

$ lsmod | grep 8188
8188eu                859650  0
cfg80211              417277  1 8188eu

$ modinfo 8188eu
filename:       /lib/modules/4.0.7-v7+/kernel/drivers/net/wireless/8188eu.ko
version:        v4.3.0.8_13968.20150417
author:         Realtek Semiconductor Corp.
description:    Realtek Wireless Lan Driver
license:        GPL
・・・

確認できましたか。
これでエレコムWiFiアダプタが使えるようになります。

退屈なことはPythonにやらせよう の望遠鏡版 その2~ss-oneの時刻を設定する

第2弾は、SS-one AutoGuider proの時刻を設定する。です。

ss-oneの時刻設定はちょっと大変
ss-oneに限らず、raspberry pi (ラズパイ)は内蔵時計を持っていないため、時刻がずれてしまいがちです。
インターネットに接続できる環境であればNTPサーバと時刻同期できるのですが、そもそも、ss-oneは単独で使うことが多いので対策が必要です。

方法その1: SkySafariを使って、スマホの時刻と同期する方法
 これが一番簡単かも。でも、SkySafari Plus or Proを購入しなければなりません。

方法その2: ss-oneにログインして、dateコマンドで設定する方法
 一番ベーシックな方法ですが、少し面倒です。

  1. TeraTermで ss-one にSSHでログイン。ユーザは前に説明したsspiを使います。
  2. dateコマンドで時刻を設定します。
$ sudo date -s "2020/08/09 10:00:00 JST"
[sudo] password for sspi: <パスワードを入力>
Sun Aug  9 01:00:00 UTC 2020

 ちなみに、ss-oneはタイムゾーンUTC協定世界時)なので、JST日本標準時)で設定すると-9時間の時間差で表示されます。

ss-oneの時刻をPCと同期する。
というわけで、今回はss-oneの時刻設定を自動化します。

このPythonのプログラムで、ss-oneの時刻とPCの時刻を同期します。
実行する際にはparamikoがないとエラーで怒られますので、その際には pip でparamikoをインストールしてください。

import paramiko
import datetime

with paramiko.SSHClient() as ssh:
    hostname = '192.168.2.102'
    port=22
    username='sspi'
    password='<パスワード>'

    def __exec_command(command, mode = ''):
        if mode == 'sudo':
            # eg. echo <password> | sudo -S <command>
    	    command = 'echo ' + password + ' | sudo -S ' + command;

        print('\n$ ' + command)
        stdin, stdout, stderr = ssh.exec_command(command)

        for o in stdout:
            print(' ', o, end='')
        for e in stderr:
            if '[sudo] password for' not in e:
                print('[err]', e, end='')

if __name__ == "__main__":

    # paramikoの初期設定(SSH)
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    # sshで接続
    ssh.connect(hostname, port, username, password)

    # hostnameを表示
    __exec_command('hostname')

    # raspberry pi の時刻設定
    dt_now = datetime.datetime.now()
    str_time = dt_now.strftime('%Y/%m/%d %H:%M:%S')
    __exec_command('date -s "' + str_time + ' JST"', 'sudo')

    # 設定された時刻を表示
    __exec_command('date')

    print('\ndate & time changed.')
    input(' Press ENTER to exit.')

このpyファイルを実行すると、実行結果は、こんな感じです。
f:id:cloudynight:20200809074648g:plain

前回同様、デスクトップ等にショートカットを作っておくと便利です。

では。

ステラショット2から SS-one AutoGuider pro を動かしてみる。#1 [HW VSP3 Virtual Serial Port]

タカハシのEM-200B を SS-one 化したので、ステラショット2から制御できるようにしてみました。
f:id:cloudynight:20200808192501g:plain

ss-oneはミードのLX200互換で動作するのですが、ネットワーク経由でLX200のコマンドを受け取ります。
それに対し、ステラショット2はシリアルCOMポートにLX200のコマンドを出力します。
ステラショット2が動作するPC内でシリアルポートとネットーワークをうまくつないであげれば、ステラショット2からss-oneが使えるようになります。
今回はHW VSP3というソフトでシリアルポートとネットーワークをつないで、仮想的なシリアルポートを作成します。

それでは、その手順です。

HW VSP3 - Virtual Serial Portの入手
HW VSP3 - Virtual Serial Portを次のURLから入手します。

SingleとMulti-portの2つのバージョンがありますが、Singleの方はfreeで利用可能です。

HW VSP3 - Virtual Serial Portの設定
ステラショットがインストールされているPCにVSP3をセットアップします。 

ちなみに、
インストールの途中で、
 Confirm:
 Will you agree with adding HW VSP to the list of exceptions for Windows Firewall.
 Permission is necessary for correct operation.

と聞かれるので、Yesと答えましょう。
そうでない場合、手動でFirewallの設定が必要になります。

VSP3をインストールして、その後にVSP3を設定します。
VSP3の設定はこんな感じ。

[Virtual Serial Port]タブ
Port Name: COM3
IP Address: 192.168.2.102 Port 4001
External NVT: Off
[Setting]タブ
Log Enabled: On
Create VSP Port when HW VSP startu-up: On
Connected to Device if Virtual COM is closed: On
NVT Enabled : Off
[Advanced]タブ
Local Machine: 172.0.0.1 1231

[Virtual Serial Port]タブのCreate Com ボタンでCOM3を作成すると、COM3ポートとSS One のネットワークが仮想的につながります。

ステラショット2の設定
ステラショット側は、[設定]タブの選択ボタンをクリックしてから、

設定項目  設定値 
 メーカー   ミード 
 機種   LX200 
 ポート   COM3 

を指定して、OKボタンをクリックするとつながります。
f:id:cloudynight:20200808191321g:plain

【補足】
1)
C:\Users\***\AppData\Roaming\HW group\HW VSP3s に iniファイルが作成されると、VSP3にadminでログインできなくなるようです。
そんな時は、このファイルを削除すると adminモードでログイン可能になります。
2)
Visual Serial Port で、Loginボタンをクリックしてログインしても、
なかなか Create Com ボタンがグレー表示のままクリックできない状態になってしまったら、
一度Uninstallしてインストールから再挑戦した方が良さそうです。

SS-one autoguider pro で使える エレコム USB WiFi アダプタ(その1)とSS-oneにユーザを追加する話

ss-one で使えるUSB WiFiアダプタの情報

ELECOM WDC-150U2MBK
のUSB WiFiアダプタが使えます。

ss-oneのUSBポートに差し込むだけでWiFiが使えるようになります。と以前書きましたが、
密かにWiFiアダプタのドライバを組込んでいたことを忘れていました。
(前に組込みを行った時のメモが出てきました...。)
WiFiアダプタドライバの組込み方法は別の記事で説明します。
(2020/8/13追記)

ss-oneには、
SSID: ssoneguider
IP: 192.168.2.102
でつながります。

ss-oneにユーザを追加する方法

初期状態のss-oneにsspiというユーザを追加して、
SSHでログインできるようにします。

有線LANで接続した状態で、TeraTerm等を使い piユーザでログイン

$ su
# adduser sspi
 password: <パスワードを指定>
# gpasswd -a sspi sudo
# visudo
sspi ALL = (ALL) ALL
を最後に追加。

これで WiFi経由でsspi ユーザがSSHログインできるようになります。
そして、sspi ユーザでも sudo ができるようになるはず。

退屈なことはPythonにやらせよう の望遠鏡版 その1~SSIDを切替える

第1弾は、ss-one とWifiでつなぐためにPCの SSID切替えを自動化する。です。

  1. Windows10に Python 3.x をインストールします。
  2. 次のコードを適当なところに置きます。
import subprocess
from subprocess import PIPE

ssid = "ssoneguider"

def __switch_network():
    subprocess.run(["netsh", "wlan", "disconnect"])
    subprocess.run(["netsh", "wlan", "connect", 'name=' + ssid])
    
__switch_network()

input('\n Press ENTER to exit.')


このpyファイルをダブルクリックすると ssoneguider のSSIDに切り替わります。
あとは、デスクトップ等にショートカットを作っておくと便利かも。

では。