====== Raspberry Pi ====== {{:schule:rasp_turn_around.gif?nolink|}} Der Raspberry Pi ist ein kleiner und kostengünstiger Einplatinencomputer. Er wird während der Ausbildung in verschiedenen Bereichen eingesetzt. ===== Inbetriebnahme ===== Die Inbetriebnahme wird ausführlich und aktueller im ITA-Wiki im [[https://it.tbs1.de/itawiki/index.php/Raspberry_Pi|Artikel zum Raspberry Pi]] beschrieben. ==== Direkter Anschluss ==== Der Pi kann direkt an einen Fernseher oder Monitor angeschlossen werden. Bei der Verwendung eines Adapters von HDMI auf [[wpde>DVI]] muss man auf den Typ des DVI-Anschlusses am Monitor achten. Es existieren DVI-A (analog), DVI-I (analog oder digital) und DVI-D (digital). Letzter ist erkennbar an den fehlenden Pins des seitlich angebrachten breiteren Pins. ==== Fernzugriff (SSH, RDP und WinSCP) ==== Falls noch nicht vorhanden: SSH-Server aktivieren mit $ raspi-config oder installieren mit $ sudo apt-get install openssh-server {{ :schule:putty.png?direct&200|}} Zugang mit einem ssh Client (ssh für Linux oder [[http://www.putty.org/|putty]] für Windows) und der notierten IP-Adresse testen. Damit wir auch eine grafische Oberfläche für den Fernzugriff haben, müssen wir noch einen RDP-Server installieren. RDP steht für [[wpde>Remote Desktop Protocol]] und es steckt in dem Paket ''xrdp''. $ sudo apt-get install xrdp {{ :schule:remotedesktop.png?direct&200|}} Danach prüfen, ob man sich mit einer Remote Desktopverbindung (Windows) bzw. xfreerdp (Linux) auf die IP-Adresse verbinden kann. Unter Windows ist das Programm bereits in der Standardinstallation vorhanden. RaspberryPi herunterfahren, neu starten und testen, ob die Verbindungen mit ssh und rdp weiterhin funktionieren. {{ :schule:winscpcommander.png?direct&200|}} Eine weitere Möglichkeit, sich mit dem Pi zu verbinden ist das Programm [[https://winscp.net/eng/docs/lang:de|WinSCP]]. Es bietet weniger Möglichkeiten als die beiden zuvor Genannten, reicht für Dateioperationen jedoch häufig vollkommen aus. ==== ipplayer: Audioausgabe der IP-Adresse ==== Wir wollen den Pi mit einer Fernwartung über ssh erreichen. Dazu müssen wir die IP-Adresse kennen. Damit wir nicht jedes mal ein Display anschließen müssen, um diese heraus zu bekommen, erstellen wir ein kleines Skript, das die aktuelle IP-Adresse auf dem Audio-Ausgang ausgibt. Wir müssen die Audio-Ausgabe auf analog umstellen. Dies gelingt mit einem Rechtsklick auf das Lautsprechersymbol oben rechts. Das Paket espeak und die Sprachfiles (espeak-data) müssen installiert werden. Hiermit wird der Pi um eine Sprachausgabe erweitert. $ sudo apt-get install espeak espeak-data Das Skript im Verzeichnis ''~/bin'' des Users anlegen. Hierfür muss der Pi mit dem Internet verbunden sein. Wenn dies nicht möglich ist, kann der [[https://raw.githubusercontent.com/pintman/scripts/master/bin/ipplayer.sh|Inhalt der Datei ippplayer.sh]] mit einem anderen Computer heruntergeladen und händisch eingetragen werden. [[debman>mkdir]], [[debman>curl]] $ mkdir ~/bin $ curl https://raw.githubusercontent.com/pintman/scripts/master/bin/ipplayer.sh > ~/bin/ipplayer.sh Das Skript machen wir mit [[debman>chmod]] ausführbar, indem wir die Rechte (''+x'' für e//x//ecute) entsprechend setzen. $ chmod +x ~/bin/ipplayer.sh Nun können wir es testweise ausführen und mit Kopfhörern die korrekte Funktionsweise prüfen. Über den Audioausgang sollte nun die aktuelle IP-Adresse angesagt werden. $ ~/bin/ipplayer.sh Damit das Skript beim Neustart in regelmäßigen Abständen - z. B. jede Minute - ausgeführt wird, fügen wir einen [[wpde>Cron]]job hinzu. $ crontab -u pi -e Folgende Zeile müssen wir im Editor eintragen. * * * * * /home/pi/bin/ipplayer.sh ==== Zugriff über Zeroconf ==== Mit Zeroconf lassen sich Netzwerke ohne zentrale Konfiguration verwalten. Für DNS existiert mit mDNS ein multicast DNS. Die Microsoftimplementierung ist leider wenig verbreitet und wurde von Apples Bonjourdienst abgelöst. Um Bonjour auch unter Windows zu betreiben, muss z.B. iTunes oder der [[https://support.apple.com/kb/DL999?locale%3Dde_DE|Bonjour Druckdienst für Windows (von Apple)]] installiert sein. Danach ist der Pi unter ''hostname.local'' erreichbar - also standardmäßig ''raspberrypi.local''. Weitere Informationen stehen im [[https://www.elektronik-kompendium.de/sites/raspberry-pi/1912251.htm|elektronik-kompendium]]. Der hostname des Pi kann über ''raspi-config'' in den erweiterten Einstellungen geändert werden. ===== Raspberry Pi Blog ===== Die letzten Artikel zum Raspberry Pi im offiziellen Blog: {{rss>http://www.raspberrypi.org/blog/feed/ 2d}} ===== Links ===== ==== Allgemein ==== * [[https://www.raspberrypi.org/blog/coding-on-raspberry-pi-remotely-with-visual-studio-code/|Coding on Raspberry Pi remotely with Visual Studio Code]] * [[itawiki>Raspberry_Pi|Raspberry Pi im ITA-Wiki]] - Hier stehen Informationen zur Beschaffung und zur ersten Inbetriebnahme. * [[https://www.raspberrypi.org/|Webseite von RaspberryPi]] * [[https://www.raspbian.org/|Raspian]] - Das Betriebssystem für den RaspberryPi. Es basiert auf dem Betriebssystem Debian. * [[http://sourceforge.net/projects/win32diskimager/|Win32 Disk Imager]] schreibt unter Windows Disk-Images auf SD-Karten. Unter Linux klappt dies mit dem dd-Befehl. * [[wpde>Raspberry Pi]] bei Wikipedia * [[https://www.raspberrypi.org/magpi-issues/MagPi36.pdf|The MagPi (Ausgabe 36)]] - in dieser Ausgabe werden die ersten Schritte mit dem Raspberry Pi ab Seite 16 ausführlich beschrieben. * [[https://www.rheinwerk-verlag.de/raspberry-pi_4466/|Raspberry Pi - Das umfassende Handbuch]] ist ein dickes Buch über den Raspberry Pi. Die ersten Kapitel stellt der Verlag kostenlos zur Verfügung. Für den Einstieg reichen sie. * [[http://elinux.org/RPi_Hub|RPi Hub (eLinux.org)]] bietet viele technische Details und Informationen zur Kompatibilität von Hardware für den Pi. Im Linux-Magazin 01/2015 wurden verschiedene [[http://www.linux-magazin.de/Ausgaben/2015/01/Raspi-Extensions|Erweiterungen für den Pi]] vorgestellt. * [[http://www.forum-raspberrypi.de|forum-raspberrypi.de]] ist ein deutschsprachiges Forum mit einer regen Beteiligung. Hier können Fragen gestellt und natürlich auch beantwortet werden. \\ [[https://www.raspberrypi.org/forums|raspberrypi.org/forums]] ist das offizielle Forum der RaspberryPi-Foundation. * Der Kollege Reinhard Gummlich sammelt in seinem Wiki auch [[http://elektro.schule/doku.php/raspberry|Informationen zum RaspberryPi]]. * [[https://medienistik.wordpress.com/2013/03/27/neues-themenheft-unterrichten-mit-dem-raspberry-pi/|Themenheft: Unterrichten mit dem Raspberry Pi]] * Vortrag [[https://www.elektormagazine.de/articles/raspberry-pi-einfuehrung-und-grundlagen|Raspberry Pi - Einführung und Grundlagen]] von elektor. * In [[http://www.cs.unca.edu/~bruce/Fall14/360/RPiUsersGuide.pdf|Upton, Halfacree: Raspberry Pi - User Guide]] beschreibt der Erfinder des Raspberry Pi im Vorwort seine Motivation und die spannende Entstehungsgeschichte des Kleincomputers. * Bei Problemen jeder Art hilft ein Blick in den [[http://elinux.org/R-Pi_Troubleshooting|Troubleshooting-Artikel von elinux.org]]. * [[http://www.vaachar.de|VaaChar]] ist das Unternehmen eines Fachinformatikers unserer Schule. Er bietet auch Gehäuse als 3D-Druck an. * [[https://pypi.python.org/pypi/fakeRPiGPIO/|fakeRPiGPIO]] ist eine Bibliothek, die bei der Entwicklung von Anwendungen hilft, wenn keine GPIO Ports zur Verfügung stehen. * [[http://sonic-pi.net/|Sonic Pi]] ist ein Synthesizer für den Raspberry Pi, der über eine Programmiersprache gesteuert wird. ==== Projekte ==== Die bevorzugte Programmiersprache auf dem Raspberry Pi ist [[schule:Python]]. Sie ist einfach im Aufbau und leicht erlernbar. * Das [[https://www.raspberrypi.org/blog/official-raspberry-pi-projects-book|offizielle Raspberry Pi Projektbuch]] stellt viele verschiedene Projekte vor (auch kostenlos als PDF verfügbar). * [[MagPi]] stellt in einem Magazin regelmäßig unterschiedliche Projekte vor. * [[http://fritzing.org/|Fritzing]] ist ein Programm, mit dem Schaltungen entworfen und in verschiedenen Darstellungen gezeichnet werden können. * [[Raspberry Pi als Server]] * [[raspberrypi-programmierung_mit_c-sharp|RaspberryPi-Programmierung mit C#]] * [[Raspberry Pi als DHCP-Server]] * [[schule:GPIO auslesen]] * [[blog>auf-raspberrypi-mit-serieller-schnittstelle-verbinden|Mit dem RaspberryPi über eine serielle Schnittstelle verbinden]]. In //Raspberry Pi - Das umfassende Handbuch//, Kap. 14.5 wird die Verbindung zwischen zwei Pis über die serielle Schnittstelle beschrieben. * [[http://www.linux-magazin.de/Ausgaben/2015/01/Flask|Raspberry Pi mit Python, Flask und Bootstrap kontrollieren]] * [[http://www.icrobotics.co.uk/wiki/index.php/Turning_the_Raspberry_Pi_Into_an_FM_Transmitter|pifm]] bzw. die umfangreichere Variante [[https://github.com/F5OEO/rpitx|rpitx]] machen aus einem Raspberry Pi einen Radiosender bzw. Empfänger. * Die [[http://www.netzmafia.de/skripten/hardware/RasPi/RasPi_OnboardLED.html|OnBoard-LED des Pi]] können auch über ein Skript angesteuert werden. * [[https://jasperproject.github.io/|Jasper]] ist eine Open Source Variante einer Sprachsteuerung, wie man sie von Siri oder Google kennt. * [[https://www.dexterindustries.com/grovepi/|GrovePi]] ist eine Sammlung von Aktoren und Sensoren mit standardisierten Schnittstellen.((Eine Einführung findet sich in //Raspberry Pi - Das umfassende Handbuch//, Kap. 16.12.)) * [[http://nodered.org/|Node-RED]] ermöglicht die Verknüpfung verschiedener Dienste oder Schnittstellen über ein Web-Interface. * Neben dem Raspberry Pi gibt es noch weitere Kleincomputer: z.B. den [[ESP8266]] * [[https://www.pidramble.com/|Pidramble]] beschreibt, wie man eine Cloud-Installation aus 5 Pis aufbaut (ein Load Balancer, zwei Webserver, ein DB master und ein DB replica) - inkl. Videos. ==== Administration ==== * [[https://learn.adafruit.com/read-only-raspberry-pi|Read-Only Raspberry Pi]] * [[https://www.raspberrypi.org/forums/viewtopic.php?t=26394|Copy image to multiple SD Cards]] - Thema im RaspberryPi-Forum * [[http://www.rockandscissor.com/projects/osid/|Open Source Image Duplicator]] ([[https://github.com/aaronnguyen/osid-python3|Nachfolger]], seit März 2022 ebenfalls archiviert) * [[http://pinet.org.uk/|PiNet]] - Centralised user accounts and file storage for a Raspberry Pi classroom * Der [[https://www.raspberrypi.org/guides/teachers/|Classroom Guide]] von RaspberryPi beschreibt, was für den Unterricht mit dem Pi benötigt wird. * Eine SD-Karte kann von einer Raspian-Installation befreit werden, indem die Partitionstabelle mit dem Windowstool diskpart gelöscht wird. Ein [[http://www.heise.de/ct/hotline/Raspi-SD-Karte-unter-Windows-loeschen-2618228.html|Artikel von heise]] beschreibt das genaue Vorgehen.