Buchempfehlung:
Roboter-Autos mit dem Raspberry Pi

Roboter Autos mit dem Raspberry Pi

Ich hatte schon 2017 das erste mal mit Jupyter-Notebooks gearbeitet und fand die Möglichkeiten sehr schön. So ist es möglich Dokumentation und Programmcode sehr schön übersichtlich zu schreiben und so die Erklärungen sehr gut zum Code dazu zu verfassen. Daher möchte ich in diesem Post beschreiben wie Jupyter auf einem Raspberry Pi installiert werden kann.

Die Idee die ich damit verfolge ist meine verschiedenen Sensoren zu testen und die Beschreibung und den Code in Jyputer-Notebooks auszuprobieren und zu dokumentieren.

Jupyter Notebook Raspberry Pi

Jupyter Notebook Raspberry Pi

Eine sehr gute online Dokumentation findet sich hier: https://jupyter-notebook.readthedocs.io/en/stable/index.html

Software Installation – Jupyter-Notebook

Ich installiere alles auf einem Raspberry Pi 3 Model B+. Damit alles reibungslos funktioniert wird die neueste version der Paketverwaltung pip als erstes installiert.

Befehl: sudo pip3 install --upgrade pip

Nach dem die Paketverwaltung auf dem neuesten Stand ist kann Jupyter als solches auf dem Raspberry Pi mit dem folgenden Befehl installiert werden.

Befehl: sudo pip3 install jupyter

Die Installation hat bei mir ca. 20 Minuten gedauert da meine Internetanbindung auch nicht wirklich schnell war. Danach war die Software komplett auf meinem Raspberry Pi installiert.

Jupyter-Notebook ausführen

Da ich eigentlich an meinen Raspberry Pi Computer nie einen Monitor angeschlossen habe, da sich diese meistens verbaut in Roboter Autos befinden stelle ich zwei Varianten vor wie das Programm Jupyter-Notebook gestartet werden kann.

Jupyter-Notebook – grafische Oberfläche

Mit dem folgenden Befehl wird das Programm Jupyter-Notebook über die Konsole auf der grafischen Oberfläche von Raspbian gestartet.

Befehl: jupyter notebook

Es öffnet sich auch gleich ein Browser in dem das Jupyter-Notebook ausgeführt zu sehen ist.

Jetzt ist es auch möglich das Jupyter-Notebook so zu starten das der Browser nicht sofort ausgeführt wird. Dazu bitte den folgenden Befehl erweitert um –no-broswer starten.

Befehl: jupyter notebook --no-browser

Für den Fall das es mit dem Standard Port 8888 von Jupyter-Notebook zu problemen kommt kann auch beim ausführen ein individueller Port mitgegeben werden. Der Befehl sieht dann wie folgt aus.

Befehl: jupyter notebook --no-browser --port 9000

Jupyter-Notebook – remote von einem anderen Rechner

Nach dem wir im vorherigen Abschnitt schon kennen gelernt haben welche Parameter ganz einfach an den Aufruf des Jupyter-Notebooks angehängt werden können ist wohl schon fast klar wie es gehen kann das ein remote Rechner auf den Raspberry Pi zugreift auf dem das Jupyter-Notebook ausgeführt wird. Dazu muss man eigentlich nur die IP-Adresse des Rechners auf dem Jupyter Notebook ausgeführt wird mit dem Parameter –ip=<IP-Adresse> an den Befehl anhängen.

Befehl: jupyter notebook --no-browser --ip=192.168.1.44 --port 9000

Wer nicht immer via Commandline immer IP-Adresen freigeben möchte kann dies auch über die Konfiguration erledigen. Eine gute Beschreibung wie das config File erzeugt wird und welcher Wert auf True gesetzt werden muss findet sich hier: https://jupyter-notebook.readthedocs.io/en/stable/config.html?highlight=config

Eigenes Notebook starten

Jetzt möchte man ja sicher auch mal ein schon vorhandenes Notebook mit den eigenen Programmen und Dokumentation starten. Dazu ergänzt man die obigen Befehle einfach um den Namen des Notebooks z. B. my_notebook.ipynb das gestartet werden soll. Der Befehl sähe dann wie folgt aus.

Befehl: jupyter notebook my_notebook.ipynb --no-browser --ip=192.168.1.44 --port 9000

Jupyter Notebook remote Zugriff aktivieren

Im folgenden Abschnitt erkäre ich wie der Zugriff auf Jupyter einfacher gelingt ohne das immer umständlich die Konsole bemüht werden muss. Dazu muss mit dem folgenden Befehl erst einmal eine Jupyter Konfigurations-Datei angelegt werden.

Befehl: jupyter notebook --generate-config

Damit remote via Passwort auf Jupyter zugegriffen werden kann muss ein SHA1 Hash des zu verwendenden Passwortes erzeugt werden. Dazu bitte ipython starten mit dem folgenden Befehl.

Befehl: ipython

In ipython müssen dann die folgenden Befehle nacheinander eingegeben werden.

Befehl:from notebook.auth import passwd

Befehl: passwd()

Jetzt bitte bei der Aufforderung das zu verwendende Passwort eingeben das der Anwender nutzen soll wenn er sich remote mit dem Jupyter Notebook verbinden möchte.

Der erzeugte SHA1 Hash wird jetzt kopiert und erst einmal z. B. in eine Text Datei zwischengespeichert.

Jupyter config

Jupyter config

Jetzt folgt die Konfiguration in der anfangs erzeugten Konfigurationsdatei von Jupyter Notebook. Diese ist im folgenden Pfad zu finde wenn alle Einstellungen unter dem User Pi durchgeführt wurden.

Pfad: /home/pi/.jupyter/jupyter_notebook_config.py

Die Datei z. B. mit Nano öffnen und an den folgenden zwei Stellen editieren.

Passwort ergänzen

Das Passwort muss als SHA1 Hash ergänzt werden damit es möglich ist sich remote am Jupyter Notebook anmelden zu können.

Jupyter config passwd

Jupyter config passwd

Host IP-Adresse ergänzen

Die Host IP-Adresse muss ergänzt werden, damit Jupyter Notebook nicht auf localhost hört sondern auf die IP Adresse die der Jupyther Notebook Server / Computer erhalten hat.

Jupyter config IP

Jupyter config IP

Nach demm alles konfiguert ist muss Jupyter Notebook nur noch mit dem folgenden Befehl gestartet werden. Es wäre auch denkbar diesen automatisch nach jedem Neustart auszuführen.

Befehl: jupyter notebook --no-browser

So sieht dann Jupyter Notebook in der Konsole ausgeführt aus.

Jupyter config start server

Jupyter config start server

Zusammenfassung

Jupyter Notebooks sind einfach ideal um kleine Programm auszuprobieren und um anderen Interessierten den Quellcode samt Beschreibung zukommen zu lassen.

(Visited 450 times, 11 visits today)