Neue Kamera für das AllSky Projekt

Nach dem es mir beim besten Willen nicht gelungen ist, mittels Python Skripten Bilder mit der Skyris Kamera aufzunehmen, habe ich sie durch eine ASI120MM-S ersetzt, deren Chip die gleiche Größe und Pixelzahl aufweist. ASI Kameras haben einen eigenen INDI Treiber und die USB 3 Versionen (bei dieser an dem -S erkennbar, im Gegensatz zur USB 2 Version dieser Kamera) sollen problemlos funktionieren. Natürlich war dem auf Anhieb nicht so, der indiserver gab nur Fehlermeldungen beim Start aus. Statt mich mit der Fehlersuche aufzuhalten, habe ich gemäß Anleitung auf der indilib Seite erstmal die aktuelle Version installiert, woraufhin keine Fehlermeldungen mehr ausgegeben wurden.

Nach nur ein paar Anpassungen eines Beispielskripts aus dem pyINDI-Sequence Projekt konnte ich ohne Weiteres meine ersten Aufnahmen ausschliesslich auf dem Pi Zero machen.

Wie schon bei der Skyris Kamera muss ich jetzt das Objektiv mittels Abstimmringen noch fokussieren, dann ist das System im Prinzip einsatzbereit. Die Kamera und den Pi Zero habe ich inzwischen montiert, dabei ist mir aufgefallen, dass das USB Kabel zu weit heraus ragt, hier benötige ich eines mit Winkelstecker.

Jetzt kann ich mich endlich an die Programmierung begeben:

  • Morgens soll ein Skript prüfen, ob in der Nacht Bilder aufgenommen wurden. Falls ja, soll mit ffmpeg eine Videosequenz erstellt werden, die dann automatisch auf der internen Webseite angezeigt wird. Die FITS Dateien werden gepackt. Genügt der verbleibende Speicherplatz nicht mehr für eine komplette Nacht, erfolgt eine Meldung. Auf welche Weise, weiss ich noch nicht. Wahrscheinlich werde ich relativ bald eine größere Speicherkarte einsetzen 🙂
    Falls nein, wird das Verzeichnis gelöscht.
  • Anschliessend wird ein neues Verzeichnis angelegt und der Link für das jeweils aktuelle hierauf verknüpft.
  • Kontinuierlich läuft ein Skript, welches die Ergebnisse des CloudWatcher ausliest. Bei überwiegend klarem Himmel und ausreichender Dunkelheit wird eine Sequenz von 20 min gestartet. Sollte der CloudWatcher nicht erreichbar sein, wird die Aufnahme einfach zeitgesteuert gestartet, wobei natürlich die jeweilige Nachtlänge zu berücksichtigen ist.
  • Wenn alles läuft, schaue ich mal, ob sich anhand der gemessenen Helligkeit die Belichtungszeit derart ermitteln lässt, dass auch in der Dämmerung Aufnahmen erfolgen können.

Einrichten des Pi Zero für die All Sky Kamera

Vorwort

Wie im ersten Teil beschrieben, soll der Pi lediglich die AllSky Kamera steuern und braucht dafür keine grafische Oberfläche. Für die Ersteinrichtung werden ein OTG Adapter zum Anschluss einer USB Tastatur sowie ein Mini HDMI -> HDMI Adapter benötigt. Falls beim Einrichten etwas schief geht und die SD Karte neu eingerichtet werden muss, ist es vorteilhaft, eine Linux Installation zu haben, z.B. in einer virtuellen Maschine, da Windows die Linux Partition nicht erkennt und somit auch nicht löschen kann. Auf diesem Weg lässt sich aber auch bestens auf der Mikro SD Karte arbeiten, sollte der Zugriff via SSH zu umständlich sein oder wegen Netzwerkproblemen ausfallen. Dies ist natürlich auch dann hilfreich, wenn durch eine falsche Konfiguration das System nicht mehr startet.
Einzugebende Kommandos sind in Anführungszeichen („“) geschrieben, diese werden nicht mit eingegeben.
Schritte, die evtl. im Nachhinein doch nicht erforderlich sind, habe ich in eckige Klammern gesetzt. Ggf. können diese Schritte jederzeit nachgeholt werden.
Was ich bereits hier beschrieben habe zur Einrichtung der Mikro SD Karte, wiederhole ich natürlich nicht mehr.

Bitte beachten: Wie bereits im vorigen Teil beschrieben, gelten die genannten Versionsnummern jetzt im März 2018. Zu einem späteren Zeitpunkt kann sich etliches geändert haben, vor allem natürlich Abhängigkeiten zwischen den Paketen. Dies ist einer der Gründe, warum ich möglicherweise mehr Pakete installiert habe, als ich zur Zeit benötige. Wer weiss, was ich in Zukunft alles updaten müsste, damit es funktioniert. Ich rechne eher damit, dass ich das System nicht mehr anrühren werde, wenn es einmal läuft, auch wenn dann einiges darauf veraltet. Wenn’s doch läuft…

Los geht’s

  • Download von Raspbian Stretch Lite https://www.raspberrypi.org/downloads/raspbian/ und Installation auf der Mikro SD Karte
  • Download von INDI Library (http://www.indilib.org/download/raspberry-pi/category/6-raspberry-pi.html) und kopieren des Archives auf die Mikro SD Karte
  • Anschluss der USB Tastatur und HDMI Display
    • Bei Verwendung eines kleinen Display muss evtl. erst die Konfiguration angepasst werden, z.B. 5“ Waveshare:
      Datei /boot/config.txt am Ende wie folgt ergänzen:
      max_usb_current=1
      hdmi_group=2
      hdmi_mode=87
      hdmi_cvt 800 480 60 6 0 0 0
      hdmi_drive=1
      Dies kann bereits auf der SD Karte nach deren Einrichtung erfolgen. Der Editor muss aber Unix Stil erkennen, der Windows Editor ist ungeeignet.
  • Pi Zero starten, Einloggen mit Benutzer pi und Passwort raspberry, wobei das US Layout voreingestellt ist, auf einer deutschen Tastatur muss also raspberrz eingegeben werden.
  • Anschliessend mittels „sudo raspi-config“ WLAN, Sprach- und Regionaleinstellungen, Tastaturlayout etc. einrichten und neu starten. Bei der Eingabe des Benutzernamens erst testen, ob das deutsche Tastaturlayout übernommen wurde (z/y).
    Unter „Interfacing Options“ ssh aktivieren für Fernzugang.
  • System aktualisieren: „sudo apt-get update“, „sudo apt-get upgrade“.
  • Webserver installieren: „sudo apt-get apache2“
  • PHP 7 installieren: „sudo apt-get install php7.0 php7.0-curl php7.0-gd php7.0-imap php7.0-json php7.0-mcrypt php7.0-mysql php7.0-opcache php7.0-xmlrpc libapache2-mod-php7.0“
  • [ MySQL installieren: „sudo apt-get install mysql-server mysql-client“
    ((Sicheres Passwort vergeben und merken! Wird im nächsten Schritt abgefragt.
    Falls die Abfrage nicht automatisch erscheint:
    mysqladmin -u root -p password [Passwort] <Enter>
    Passwort wiederholen (Klappt jedenfalls)
    Neustart: „sudo reboot“))
  • phpMyAdmin installieren: „sudo apt-get install -t stretch phpmyadmin“
  • „apache2“ auswählen mit Leertaste, mit Tabulator auf Ok und <Enter>
    Nächste Abfrage mit <Enter> bestätigen
  • Passwort für phpMyAdmin eingeben und noch einmal bestätigen
  • „sudo nano /etc/php/7.0/apache2/php.ini“ und am Ende „extension=mysql.so“ einfügen
  • „sudo nano /etc/apache2/apache2.conf“ und am Ende „Include /etc/phpmyadmin/apache.conf“ einfügen ]
  • „sudo /etc/init.d/apache2 restart“
  • Testen:
    • Apache:
      http://[Name_des_Pi oder IP_Adresse] im Browser auf einem anderen Rechner oder Mobilgerät im Netzwerk sollte eine Default Page anzeigen
    • PHP:
      Test-Datei anlegen: „echo „echo ‚<?php phpinfo();?>‘ >> /var/www/html/phpinfo.php“ | sudo bash“
      http://[Name_des_Pi oder IP_Adresse]/phpinfo.php sollte Infos zu PHP anzeigen
    • [ phpMyAdmin:
      http://[Name_des_Pi oder IP_Adresse]/phpmyadmin sollte die phpMyAdmin Loginseite anzeigen ]
  • Installation von python 3
    „sudo apt-get install python3-setuptools python3-dev python3-pip swig“
  • Installation von INDI (http://indilib.org/download/raspberry-pi.html)
    • „sudo apt-get install cdbs libcfitsio-dev libnova-dev libusb-1.0-0-dev libjpeg-dev libusb-dev libtiff5-dev libftdi1-dev fxload libkrb5-dev libcurl4-gnutls-dev libraw-dev libgphoto2-dev libgsl-dev dkms libboost-regex-dev libgps-dev libdc1394-22-dev“
    • In dem Verzeichnis mit dem INDI Archiv, siehe Schritt 2: „tar -xzf libindi_1.6.0_rpi.tar.gz“
      „cd libindi_1.6.0_rpi2“
      „sudo dpkg -i *.deb“
    • evtl. nötig: „sudo apt-get update“
      „sudo apt-get upgrade“
      „sudo apt –fix-broken install“
    • Installation von pyindi-client (nur für den aktuellen Benutzer)
      „pip3 install –user –install-option=“–prefix=“ pyindi-client“
    • Modul systemweit installieren, ist vielleicht erforderlich:
      „sudo -H pip3 install –system pyindi-client“
  • Samba für Verzeichnisfreigabe installieren (https://www.elektronik-kompendium.de/sites/raspberry-pi/2007071.htm)
    • „sudo apt-get update“
    • „sudo apt-get install samba samba-common samba-client“
    • Verzeichnis für die Aufnahmen anlegen: „sudo mkdir /home/shares/pictures“
    • Besitzer wechseln: „sudo chown root:root /home/shares/pictures“
    • Zugriffsrechte setzen: „sudo chmod 770 /home/shares/pictures“
    • Zugriffsrechte für Webseitenverzeichnis setzen: „sudo chmod 770 /var/www/html“
    • Neue smb.conf erstellen:
      • „sudo mv /etc/samba/smb.conf /etc/samba/smb.conf_alt“
      • „sudo nano /etc/samba/smb.conf“
        Folgenden Inhalt eingeben (alles zwischen den === Zeichen):
        ====================
        [global]
        workgroup = WORKGROUP
        security = user
        encrypt passwords = yes

        [Aufnahmen]
        comment = AllSky-Bilder
        path = /home/shares/pictures
        read only = no

        [Webseite]
        comment = Webseite
        path = /var/www/html
        read only = no
        ====================

      • sudo service smbd restart
      • sudo service nmbd restart
      • sudo smbpasswd -a pi
    • Damit können diese beiden Verzeichnisse von anderen Rechnern im Netzwerk gelesen und geschrieben werden können, z.B. also die Aufnahmen herunter geladen und der Speicherplatz freigegeben werden oder die Webseite mit einem beliebigen Editor remote bearbeitet und im Browser kontrolliert werden. Beim Verbinden muss wie bei jedem Netzlaufwerk eine auf dem Pi eingerichteter Benutzer mit Passwort angeben werden, standardmäßig also „pi“ und „raspberry“.
  • Für später ffmpeg installieren: http://blogs.warwick.ac.uk/mikewillis/entry/quick_and_easy/
    • Von https://johnvansickle.com/ffmpeg/ den armel build herunter laden, da der Pi Zero die gleiche Architektur wie der Pi 1 hat.
    • In dem Verzeichnis mit dem Archiv: „tar xvJf ffmpeg…“
    • Testen mit „ffmpeg…/ffmpeg“, es sollten diverse Ausgaben kommen, die mit „Use -h to get full help or, even better, run ‚man ffmpeg'“ enden.

Diesen letzten Download habe ich übrigens auf einem Mac gemacht und dann die Datei über das Netzlaufwerk in das Bilderverzeichnis kopiert und mir von dort auf dem Pi in das HOME Verzeichnis geholt. Ohne Samba müsste man auf dem Pi mit sftp arbeiten, was bei weitem nicht so benutzerfreundlich ist. Wie bereits mehrfach betont, sind aber einige Grundkenntnisse über Linux und die Kommandozeile unabdingbar, falls mal etwas nicht so funktioniert wie gewünscht oder aber in meiner Anleitung Fehler sind oder Schreibfehler beim Abtippen aufgetreten sind.

Nachtrag:

Leider musste ich feststellen, dass der Pi nach einiger Zeit ohne Aktivität nicht mehr erreichbar war, obwohl er einwandfrei lief. Eine Suche brachte nur mäßigen Erfolg, der Pi verfügt über keinerlei Power Management. Warum er dann trotzdem offenbar die WLAN Verbindung abschaltet, weiss anscheinend niemand. Die Lösung besteht darin, regelmäßig ein Skript laufen zu lassen, welches die Verbindung prüft und ggf. den Adapter neu startet. Seitdem habe ich keine Probleme mehr mit dem Zugriff.

  • „sudo nano /usr/local/bin/wifi_rebooter.sh“
  • Folgenden Inhalt eingeben:
    #!/bin/bash
    # The IP for the server you wish to ping (8.8.8.8 is a public Google DNS server)
    SERVER=8.8.8.8
    # Only send two pings, sending output to /dev/null
    ping -c2 ${SERVER} > /dev/null
    # If the return code from ping ($?) is not 0 (meaning there was an error)
    if [ $? != 0 ]
    then
    # Restart the wireless interface
    /sbin/ifdown –force wlan0
    /sbin/ifup wlan0
    fi
  • Datei ausführbar machen: „sudo chmod +x /usr/local/bin/wifi_rebooter.sh“
  • Folgende Zeile in /etc/crontab ergänzen:
    */10 * * * * root /usr/local/bin/wifi_rebooter.sh
    Dadurch wird das Skript alle 10 Minuten aufgerufen.

Astronomie mit dem Raspberry Pi 3

Da ich bereits einen PC-Stick mit Windows 10 und kompletter Astrosoftware habe, stellt sich natürlich die Frage, warum ich mir das hier überhaupt antue. Naja, vor allem natürlich, weil es Spass macht. Darüber hinaus muss ich jedoch nicht erwähnen, dass Windows gelegentlich so seine Macken hat. Beim Pi wiederum ist alles auf einer SD Karte. Bei Problemen wird die Backup Karte eingesteckt und weiter geht’s. Darüber hinaus bietet der Pi aber vor allem die Möglichkeit für eigene Projekte. So lassen sich mit Bordmitteln und/oder Erweiterungskarten Schrittmotoren ansteuern, Relais schalten oder eine Fernbedienung für DSLRs realisieren.
Zum Raspberry allgemein und zur Verwendung für die Astronomie gibt es eine Menge im Internet zu lesen, deswegen beschränke ich mich hier auf Quellenangaben, meine Arbeitsschritte und die dabei gemachten Erfahrungen. Für mich selbst soll es natürlich eine Gedächtnisstütze sein, falls ich das mal wiederholen muss 😉

Achtung

Rein vorsichtshalber hier noch folgender Hinweis (auch wenn der vermutlich jedem geläufig sein sollte): Die Vorgehensweise hat bei meinem System funktioniert und die einzelnen Schritte sind auf meine speziellen Wünsche bzw. Anforderungen zugeschnitten. Wer die gezeigten Schritte nachvollzieht, tut dies auf eigene Gefahr. Ich übernehme keine Verantwortung für Probleme und Schäden, falls die hier gemachten Angaben fehlerhaft, nicht vollständig oder falsch sind oder für jedermann ausreichend beschrieben sind. Wer keine oder nur wenig Erfahrung mit Linux, Softwareinstallationen und dergleichen hat, sollte besser andere Quellen zu Rate ziehen.

Los geht’s

Am Anfang stand die Entscheidung für KStars/Ekos und INDI Library sowie PHDGuiding. Das führt gleich dazu, statt Raspbian Ubuntu Mate aufzuspielen, siehe hier: http://indilib.org/download/raspberry-pi/all.html
Anschliessend bin ich diesem Tutorial gefolgt: http://indilib.org/support/tutorials/169-ekos-on-raspberry-pi-complete-guide.html
Für Mac User wie mich gibt es mit ApplePi Baker eine gute Alternative zu Win32diskimager, das Ubuntu Image auf eine SD Karte zu kopieren: https://www.tweaking4all.com/software/macosx-software/macosx-apple-pi-baker/

Meine erste Installation habe ich auf einer 64 GB Karte gemacht. Es lief alles wunderbar, später jedoch habe ich überlegt, von der Karte ein Backup anzulegen. Ein 1:1 Image ist aber immer genau so groß wie die Karte, auch wenn das Image gezipped werden kann. Wie ich festgestellt habe, passt das ganze System inkl. einiger Sternenkataloge etc. auf eine 16 GB Karte, weswegen ich mit solch einer einen weiteren Versuch unternommen habe. Das Image der kleineren Karte lässt sich problemlos auf eine größere ziehen und unter Ubuntu anschliessend die Root-Partition mittels gparted (siehe auch weiter unten) auf die gesamte Karte erweitern, so wie das System es auch beim ersten Starten von der Karte macht.

Nachdem alles auf dem Pi ordentlich gestartet ist, wird im Tutorial die Monitorauflösung angepasst. Das habe ich vorerst übersprungen. Den Grund erkläre ich weiter unten, wenn es um den Remotezugang geht. Ich bin direkt zum Update/Upgrade über das Terminalfenster übergegangen und dabei in die Falle gelaufen, dass Firefox anschliessend nicht mehr startete. Es gibt zwar das grafische Tool Software Updater (unter System – Systemverwaltung), bei dem sich das Update von Firefox abwählen lässt, leider gibt das aber eine Fehlermeldung über zu wenig Speicherplatz auf der unter /boot gemounteten Partition. Das passiert nicht im Terminal. Im Netz gibt es einige Seiten, die beschreiben, dass Firefox anscheinend seit Version 55 beim Starten abstürzt. Für den Downgrade auf Version 52 bin ich nach dieser Anleitung vorgegangen: https://www.raspberrypi.org/forums/viewtopic.php?t=190945
(Beitrag von GuinessStout vom Freitag 18.08.17 07:39 Uhr etwa in der Mitte der Seite). Dazu habe ich der Bequemlichkeit halber über System – Systemverwaltung – Software Boutique das Programm FileZilla installiert. Nachdem Firefox, nun in der Version 52, wieder lief, habe ich aus Firefox heraus noch das deutsche Sprachpaket installiert und konnte direkt auf dem Pi der o.g. Anleitung weiter folgen. Als fauler Mensch habe ich die Kommandos im Browser mit Ctrl-C kopiert und dann im Terminal mit Ctrl-Shift-V eingefügt (musste ich auch googeln). Natürlich klappt das auch mit der rechten Maustaste 😉

Weiter ging es mit dem ganzen Block der Installation der Astrosoftware von INDI bis PHD.

Feinheiten

Folgenden Schritt habe ich bei der letzten Installation vorgezogen, das macht aber keinen Unterschied: Nach meinen guten Erfahrungen mit RealVNC habe ich diesen erfolgreich installiert und in Betrieb genommen. Später habe ich gelesen, dass das Microsoft RDP Protokoll ebenfalls unterstützt wird: https://www.datenreise.de/raspberry-pi-remote-desktop-xrdp-installieren/
Wie ich von einem Bekannten gelernt habe, ist der große Vorteil von RDP, dass in der Verbindung gleich die FullHD Auflösung des HDMI Anschlusses zur Verfügung steht. Da ich meine Windows PCs bereits auf die Pro Versionen aufgerüstet habe, um dies zu nutzen, habe ich so z.B. auf meinem iPad die Verbindungen zu allen Rechnern in einer App gebündelt.

Hier die Ansicht auf einem iPhone 7 plus in der RD Client App:

RDP Verbindung

Für mich weiterhin von Vorteil ist, dass RDP ohne weiteres Zutun gleich nach dem Booten verfügbar ist, während RealVNC erst noch als Systemdienst eingerichtet werden muss.
Über das Tutorial hinaus habe ich mit der bereits erwähnten Software Boutique ein weiteres Programm installiert: gparted. Damit lässt sich sehr bequem nach erfolgreicher Übertragung das Images auf eine neue Karte die /root Partition auf die gesamte Karte ausdehnen.

Soviel zum Vorgeplänkel, als nächstes steht die Verbindung zur vorhandenen Ausrüstung und deren Steuerung auf dem Programm.

Fazit

Die erste Einrichtung mit sämtlichen Installationen hat bei meinem Kenntnisstand und meinen Hilfsmitteln gerade mal einen halben Tag gedauert. Dann kamen die Überlegungen zum Backup bzw. eines kompletten Systems zur Weitergabe. Das hat dann etwa einen Tag gedauert. Bestimmt kommen dazu im Laufe der Zeit noch weitere Änderungen, aber dennoch war das bedeutend schneller, als einen Windows Rechner mit allen Treibern und zugehöriger Software zu installieren 🙂 Und Spass gemacht hat es auch noch. Ich freue mich schon auf die weiteren Schritte und werde davon berichten.