RASPBERRY PI MACH S EINFACH DIE KOMPAKTESTE GEBRAUCHSANWEISUNG MIT FÜR ALLE MODELLE SCHNELLER ALS GOOGELN CPU

Größe: px
Ab Seite anzeigen:

Download "RASPBERRY PI MACH S EINFACH DIE KOMPAKTESTE GEBRAUCHSANWEISUNG MIT FÜR ALLE MODELLE SCHNELLER ALS GOOGELN CPU"

Transkript

1 C H R I S T I A N I M M L E R RASPBERRY PI MACH S EINFACH DIE KOMPAKTESTE GEBRAUCHSANWEISUNG MIT A N L E I T U N G E N FÜR ALLE MODELLE SCHNELLER ALS GOOGELN CPU

2 Christian Immler Raspberry Pi Mach s einfach

3 RASPBERRY PI MACH S EINFACH DIE KOMPAKTESTE GEBRAUCHSANWEISUNG MIT A N L E I T U N G E N FÜR ALLE MODELLE CPU

4 Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte Daten sind im Internet über abrufbar. Hinweis: Alle Angaben in diesem Buch wurden vom Autor mit größter Sorgfalt erarbeitet bzw. zusammengestellt und unter Einschaltung wirksamer Kontrollmaßnahmen reproduziert. Trotzdem sind Fehler nicht ganz auszuschließen. Der Verlag und der Autor sehen sich deshalb gezwungen, darauf hinzuweisen, dass sie weder eine Garantie noch die juristische Verantwortung oder irgendeine Haftung für Folgen, die auf fehlerhafte Angaben zurückgehen, übernehmen können. Für die Mitteilung etwaiger Fehler sind Verlag und Autor jederzeit dankbar. Internetadressen oder Versionsnummern stellen den bei Redaktionsschluss verfügbaren Informationsstand dar. Verlag und Autor übernehmen keinerlei Verantwortung oder Haftung für Veränderungen, die sich aus nicht von ihnen zu vertretenden Umständen ergeben. Evtl. beigefügte oder zum Download angebotene Dateien und Informationen dienen ausschließlich der nicht gewerblichen Nutzung. Eine gewerbliche Nutzung ist nur mit Zustimmung des Lizenzinhabers möglich. 05 Franzis Verlag GmbH, Haar bei München Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Das Erstellen und Verbreiten von Kopien auf Papier, auf Datenträgern oder im Internet, insbesondere als PDF, ist nur mit ausdrücklicher Genehmigung des Verlags gestattet und wird widrigenfalls strafrechtlich verfolgt. Die meisten Produktbezeichnungen von Hard- und Software sowie Firmennamen und Firmenlogos, die in diesem Werk genannt werden, sind in der Regel gleichzeitig auch eingetragene Warenzeichen und sollten als solche betrachtet werden. Der Verlag folgt bei den Produktbezeichnungen im Wesentlichen den Schreibweisen der Hersteller. Satz & Layout: DTP-Satz A. Kugge, München, Matthias Vietmeier Konzept: Christian Immler, Dr. Markus Stäuble, Jenny Pfeiffer Programmleitung: Dr. Markus Stäuble Lektorat: Jenny Pfeiffer, Dr. Markus Stäuble art & design: Druck: FIRMENGRUPPE APPL, aprinta druck GmbH, Wemding ISBN

5 Wie funktioniert das Buch? Dieses Buch enthält Lösungen, die im Umgang mit dem Minicomputer Raspberry Pi unabdingbar sind. Der Übersicht halber sind die Lösungen in verschiedene Themenbereiche aufgeteilt, die mit Farben gekennzeichnet sind: Betriebssystem: Praxiseinsatz: Hardware: Server: Programmierung: Elektronik: rot orange violett grün gelbgrün blau Die einzelnen Lösungen in den Kategorien sind alleinstehend; sollten sie auf eine andere Lösung im Buch aufbauen, ist das vermerkt. Zusatzmaterial: Einige Lösungen haben es nicht ins Buch geschafft - bei Lösungen muss man Prioritäten setzen. Wir möchten dieses Zusatzmaterial aber niemandem vorenthalten, deshalb gibt es die Lösungen als kostenlosen Download unter 5

6 Inhalt Betriebssystem Betriebssystem mit NOOBS installieren... 0 Raspbian installieren Erste Konfiguration mit raspi-confi g... 4 Rastrack alle Raspberry Pis auf der Welt... 5 Wichtige Unterschiede gegenüber Windows bei Dateinamen und Verzeichnissen... 6 Speicherkarte komplett sichern und duplizieren Speicherkarte aus Image-Datei duplizieren Pidora Linux Arch Linux ARM Betriebssysteme ohne NOOBS installieren... 5 PiBang Linux... 6 Moebius, Minimal-Linux ha-pi ha(ck with raspberry)pi ChameleonPi das Spiele-Linux Spiele in ChameleonPi installieren RISC OS installieren und einrichten Tipps zur Bedienung von RISC OS... 8 Anwendungen unter RISC OS installieren... 9 Raspberry Pi-Emulator für Windows... 0 Betriebssystem im Raspberry Pi-Emulator aktualisieren... 3 Praxis Der Raspbian-Desktop... 4 Der LXDE-Dateimanager Wichtige Befehle auf der Linux- Kommandozeile Der Superuser root Dateimanager mit root-rechten nutzen Eigenes Hintergrundbild für den Desktop Fan-Art als Hintergrundbild Diashow im Vollbildmodus Bilder aus dem Dateimanager standardmäßig mit dem Bildbetrachter anzeigen Fotos von PC oder Netzwerkfestplatte auf dem Raspberry Pi anzeigen Desktopverknüpfungen für Programme aus dem Startmenü anlegen Die wichtigsten Standardverzeichnisse in Linux LXTerminal mit weißem Hintergrund Software aus dem Pi Store installieren Software als Linux-Paket installieren Software über Synaptic installieren Ziffernblock aktivieren Freien Speicherplatz anzeigen Speicherkarte aufräumen, wenn der Raspberry Pi nicht mehr bootet Screenshots vom Raspbian-Desktop erstellen LibreOffice auf dem Raspberry Pi installieren Tipps zu LibreOffice Schlanke Alternative: AbiWord Texteditoren für Konfigurationsdateien Einfache Bildbearbeitung mit Mirage xfce4-goodies nützliche Erweiterungen für den Desktop Wissenschaftlicher Taschenrechner Drucker einrichten Drucken aus einem Linux-Programm Epiphany-Browser verwenden DNT (Do Not Track) ein Politikum im Internet Epiphany-Browser auf älterem Raspbian nachinstallieren Tipps zum Midori-Browser Chrome-Browser Sync mit PC/ Smartphone Firefox synchronisiert mit Iceweasel Werbe-Pop-ups in Iceweasel blockieren Standardbrowser ändern Dillo der schnellste Browser r CloudMe auf dem Raspberry Pi nutzen

7 Inhalt 60 mit Claws Mail Gmail in Claws Mail nutzen Icedove Thunderbird für Linux Raspbmc Media Center einrichten Nur Ton, kein Bild was nun? Webradio in Raspbmc YouTube und Mediatheken in Raspbmc nutzen Fotos im Raspbmc-Mediacenter Wetter im Raspbmc-Mediacenter Raspbmc per WLAN nutzen Fernbedienung des Fernsehers über HDMI-CEC nutzen Smartphone als Fernbedienung für Raspbmc Raspbmc im Browser auf einem anderen PC fernsteuern ASCII-Art Pi Presents für Präsentationen Eigene Präsentationen mit Pi Presents erstellen Minecraft Schnelles 3-D-Spiel mit Pinguin The little crane that could Alte Debian-Spiele auf dem Raspberry Pi Textadventures interaktive Fiktion Klassische Point-and-Click-Adventures Python Games Atari800-Emulator... r Sinclair ZX Spectrum-Emulator rpix86 PC DOS-Emulator Deutsche Tastatur im PC-Emulator rpix86 in einem Fenster auf dem Linux-Desktop RetroPie Sammlung von Emulatoren Der RetroPie-Adapter... r 89 3 Hardware 90 Die Anschlüsse des Raspberry Pi B Die Anschlüsse des Raspberry Pi A Die Anschlüsse des Raspberry Pi B (und A) Die Anschlüsse des Raspberry Pi Compute-Moduls Was unterscheidet die verschiedenen Raspberry Pi-Modelle? Netzteil anschließen Audio einrichten WLAN einrichten Nicht jeder WLAN-Stick funktioniert am Raspberry Pi Mehr Leistung durch Speichertuning Aktuelle Speicherauslastung anzeigen Raspberry Pi übertakten Raspberry Pi-Kamera anschließen Firmware-Upgrade bei Kameraproblemen Fotografieren mit der Raspberry Pi-Kamera Video mit der Raspberry Pi-Kamera Mit der Raspberry Pi-Kamera aufgenommene Videos abspielen TBOPlayer grafische Oberfläche für den OMXPlayer USB-Sticks mounten Die Linux-Dateisysteme Komfortable Festplatteneinrichtung mit GParted...03 Gehäuse für den Raspberry Pi bauen Server IP-Adresse und MAC-Adresse des Raspberry Pi anzeigen Feste IP-Adresse über statisches DHCP vergeben Feste IP-Adresse auf dem Raspberry Pi eintragen Vom PC aus über SSH auf dem Raspberry Pi anmelden Daten per SSH vom PC aus auf den Raspberry Pi kopieren und umgekehrt... 7

8 Inhalt 7 Dateiübertragung mit dem Total Commander... 8 Dateiverwaltung mit dem Midnight Commander... 9 SSH-Client für Smartphones und Tablets Grafische Anwendungen vom Raspberry Pi auf dem PC nutzen...4 Raspbian-Desktop per VNC auf den PC übertragen...5 VNC-Server beim Booten automatisch mit starten Notebook als Tastatur und Monitor für Raspberry Pi nutzen VNC-Konfiguration bei NOOBS- Installation VNC vom Tablet aus verbinden Fernsteuerung mit Synergy... 7 Synergy auf dem Raspberry Pi automatisch starten... 8 Externe Festplatten für Serverbetrieb mounten... 9 Webserver installieren Webserver über No-IP ins Internet bringen Portweiterleitung auf dem Router einrichten LionWiki eigene kleine Wissensdatenbank einrichten Fotogalerie auf dem Webserver r Samba-Server installieren Samba-Server im Windows-Netzwerk nutzen Samba-Statusanzeige im Browser r CloudServer BarracudaDrive einrichten BarracudaDrive im Netzwerk nutzen DLNA-Streamingserver MediaTomb Medien auf Android-Smartphones oder Tablets streamen Spielestreaming mit Limelight Pi Freeciv-Spieleserver r Serverstatusanzeige htop RasPi Check Statusanzeige auf dem Smartphone Raspcontrol Nagios-Netzwerkmonitor... r Pi-Point-Raspberry Pi als WLAN- Zugangspunkt Pi-Point automatisch starten WPA-Verschlüsselung in Pi-Point einrichten arkos Cloudserver-Betriebssystem Programmierung 5 Python-Programme nutzen Python-Programme über die Kommandozeile starten Python Ausgabe auf dem Bildschirm Python Variablen vom Typ Number Python Variablen vom Typ String Python Eingabe durch den Benutzer Python Bedingungen mit if Python Bedingungen mit if else Python Bedingungen mit if elif else Python Bedingungen mit and und or verknüpfen Python Schleifen mit for Python Schleifen mit while Python Funktionen ohne Parameter Python Funktionen mit Parametern Python Funktionen mit Rückgabewert Boolesche Wahr- und Falsch-Werte Einfaches Programmierbeispiel: Zahlen raten Farbige Texte im Terminal-Fenster... r Uhrzeiten in Python verarbeiten Analoguhr mit PyGame programmieren Raspberry Pi-Kamera mit Python steuern Raspberry Pi-Kamera als Webcam Programmieren in Scratch Programmieren in Java Programmieren in C und C

9 Inhalt 6 Elektronik 76 Elektronik über GPIO anschließen Elektronische Schaltungen ohne Löten aufbauen LEDs an die GPIO-Ports anschließen GPIO-Ports über Python ansteuern LED-Lauflicht Desktopsymbol für IDLE mit GPIO- Unterstützung Taster am GPIO-Anschluss LED-Würfel Fußgängerampel mit LEDs und Taster IP-Adresse mit blinkender LED anzeigen Python-Programme auf dem LXDE-Desktop automatisch starten IP-Adresse auf LED-Streifen anzeigen Segment-Anzeige zur Darstellung von Ziffern Segment-Anzeige mit Python ansteuern Kamera mit Selbstauslöser und GPIO-Taste Mehrstellige 7-Segment-Anzeigen Zeitmultiplex der Trick mit dem Nachleuchten Mehrstellige 7-Segment-Anzeige mit Python ansteuern Uhr auf der 7-Segment-Anzeige IP-Adresse auf der 7-Segment-Anzeige LED-Punktmatrixanzeigen LED-Punktmatrixanzeige mit Python ansteuern Zeichensatz für die LED- Punktmatrixanzeige Zeichen auf der LED-Punktmatrixanzeige ausgeben Zeichenorientiertes LCD-Display anschließen Zeichenorientiertes LCD-Display mit Python ansteuern... 0 IP-Adresse und Uhr auf dem LCD-Display Statusanzeige für Server oder USB-Sticks Pi_Scratch GPIO mit Scratch Pi_Scratch auf Raspbian nachinstallieren Pi_Scratch unterstützte Hardware LED-Würfel mit Scratch LCD-Display mit Scratch steuern Digitaluhr mit Scratch-LCD-Display LCD-Display für Mediacenter...39 ic-unterstützung auf dem Raspberry Pi aktivieren...4 ic-geräte adressieren und finden Der Portexpander MCP Portexpander sind eine gute Erweiterung zum Raspberry Pi bei Elektronikprojekten Sensorkontakte selbst bauen Spiel mit Sensorkontakten steuern WebIOPi Erweiterungsplatine BerryClip Erweiterungsplatine John Jay s 8 LED & Button Breakout Board Erweiterungsplatine Slice of Pi/O...54 Erweiterungsplatine PiFace digital...54 Erweiterungsplatine Pi-LITE Arduino mit dem Raspberry Pi programmieren

10 Betriebssystem Betriebssystem mit NOOBS installieren NOOBS (New Out Of the Box Software) ist ein besonders einfacher Installer für Raspberry Pi-Betriebssysteme, bei dem kein spezielles Image-Tool nötig ist NOOBS herunterladen: Zip-Archiv auf die Festplatte entpacken. Die Dateien des Hauptverzeichnisses und die Unterverzeichnisse auf eine neue SD-Karte kopieren. Wurde die SD-Karte bereits benutzt, mit SD-Formatter im PC neu formatieren: Dabei Format Size Adjustment einschalten. SD-Karte aus dem PC nehmen, in den Raspberry Pi stecken und booten. Die wichtigsten Neuerungen in NOOBS.3. Deutlich kleinerer Download nur Raspbian ist noch offline installierbar, die anderen Betriebssysteme müssen während der Installation heruntergeladen werden. Der Epiphany-Browser ist als Standardbrowser vorinstalliert. Unterstützt den BCM n-WLAN-Chip. Raspbian installieren berry Pi. Nach dem Booten mit der NOOBS-Speicherkarte erscheint ein Auswahlmenü. Ganz unten Deutsch als Installationssprache wählen. Damit wird automatisch auch die deutsche Tastatur ausgewählt. Das Häkchen beim vorausgewählten Raspbian-Betriebssystem setzen. 0

11 Betriebssystem 3 4 Nach Bestätigung einer Sicherheitsabfrage, die darauf hinweist, dass die Speicherkarte überschrieben wird, startet die Installation, die einige Minuten dauert. Nach abgeschlossener Installation bootet der Raspberry Pi neu und startet automatisch das Konfigurationstool raspi-config. 3 Erste Konfiguration mit raspi-config Das Konfigurationstool raspiconfig wird beim ersten Start automatisch mitgestartet. Später kann es über sudo raspi-config aufgerufen werden. raspi-config wird mit den Pfeiltasten und der [Tab]-Taste bedient Sprache und Tastatur sind bei der Installation mit NOOBS automatisch ausgewählt. Unter 3 Enable Boot to Desktop/ Scratch die Option Desktop Log in as user pi at the graphical desktop auswählen. Unter 4 Internationalisation Options die Option Change Timezone auswählen und die Zeitzone auf Europa/Berlin stellen. Unter 8 Advanced Options die Option Audio wählen und hier den verwendeten Audioanschluss HDMI oder 3.5 mm / headphone auswählen. <Finish> wählen und Raspberry Pi neu booten.

12 Rastrack alle Raspberry Pis auf der Welt 4 Rastrack alle Raspberry Pis auf der Welt Die Webseite rastrack.co.uk zeigt, wie viele Raspberry Pis auf der ganzen Welt im Einsatz sind. Der Schwerpunkt liegt natürlich, wie zu erwarten, in Großbritannien, der Heimat des Raspberry Pi Terminal starten: sudo raspi-config Add to Rastrack Eigenen Nicknamen ausdenken und eintragen. -Adresse eintragen. (Mit jeder -Adresse kann nur ein Raspberry Pi eingetragen werden.) Nach kurzer Zeit bekommt man eine , in der man die Anmeldung bestätigen muss. Die enthält Links, über die man zusätzliche Informationen veröffentlichen oder den Standort präzisieren kann. 5 Wichtige Unterschiede gegenüber Windows bei Dateinamen und Verzeichnissen Wer Dateien zwischen Raspberry Pi und Windows übertragen möchte, muss die Unterschiede bezüglich der Namensregeln kennen. Linux unterscheidet bei Dateinamen zwischen Groß- und Kleinschreibung.

13 Betriebssystem Die Dateinamen sollten aussagekräftig sein, aber bei 8 Stellen ist Schluss. Leerzeichen dürfen nicht verwendet werden. Linux kennt das Backslash-Zeichen \ für Pfadangaben nicht. Zur Angabe von Verzeichnissen wird immer der normale Schrägstrich / verwendet. Bei Linux kann jeder beliebige Name für eine Datei verwendet werden. Es gibt keinen Unterschied zwischen dem Dateinamen und der Dateiendung. 6 Speicherkarte komplett sichern und duplizieren Eine Komplettsicherung der Speicherkarte in eine Image-Datei auf dem PC bietet die Möglichkeit, diese bei einem Ausfall wiederherzustellen oder auch identisch zu duplizieren. 3 USB Image Tool von auf dem PC installieren. Speicherkarte in den Kartenleser des PCs stecken. Im linken Fenster Speicherkarte auswählen, Backup anklicken und Dateinamen festlegen. Platzbedarf auf der Festplatte Die Image-Datei wird durch Komprimierung etwas kleiner sein als die Speicherkarte. Während der Sicherung sollte aber Speicherplatz in der kompletten Größe der Speicherkarte auf der Festplatte vorhanden sein. 7 Speicherkarte aus Image-Datei duplizieren Im USB Image Tool den Device Mode wählen und die Speicherkarte auswählen. Auf Restore klicken, Image-Datei auswählen und Kopiervorgang starten. 3

14 Pidora Linux 8 Pidora Linux Pidora basiert auf dem beliebten Fedora-Linux, der Communityversion von Red Hat Linux. 3 Pidora ist im NOOBS-Installer enthalten, muss aber während der Installation direkt auf dem Raspberry Pi aus dem Internet heruntergeladen werden. Nach der Installation startet ein Konfigurationstool für die wichtigsten Einstellungen. Hier muss ein Benutzer mit Passwort anlegt werden. Pidora bootet mit dem xfce-desktop, der sich in der Desktopgestaltung eher an Mac OS orientiert, wogegen der Lxde-Desktop an Windows erinnert. Auf dem xfce-desktop befindet sich die Taskleiste am oberen Bildschirmrand, ein Klick ganz links öffnet das Applications Menu mit allen installierten Programmen. Wichtige Programme sind als Schnellstartsymbole am unteren Bildschirmrand zu finden. Weitere Informationen unter pidora.ca. 9 Arch Linux ARM Arch Linux ARM ist eine besonders schlanke, ressourcensparende Linux- Distribution, die für den Raspberry Pi über NOOBS angeboten wird. Arch Linux ARM ist nicht im NOOBS-Archiv enthalten, sondern muss während der Installation heruntergeladen werden. 4

15 Betriebssystem Dank der flexiblen Architektur können genau die Komponenten installiert werden, die man wirklich braucht. Allerdings fehlen die einsteigerfreundlichen Tools von Raspbian, wie z. B. raspi-config. Arch Linux ARM basiert nicht auf Debian. Die Paketinstallation läuft über das AUR (Arch User Repository). Standardmäßig gibt es keinen grafischen Desktop. Der LXDE-Desktop kann nachinstalliert werden. Weitere Informationen unter archlinuxarm.org und wiki.archlinux.org. 0 Betriebssysteme ohne NOOBS installieren Betriebssysteme, die nicht bei NOOBS enthalten sind, werden über Image- Dateien auf dem PC auf die Speicherkarte übertragen. Speicherkarte mit SD-Formatter im PC neu formatieren: downloads/formatter. Dabei Format Size Adjustment einschalten. USB Image Tool von auf dem PC installieren. 3 4 Im USB Image Tool den Device Mode wählen, Speicherkarte auswählen. Auf Restore klicken, Image-Datei auswählen, Kopiervorgang starten. 5

16 PiBang Linux PiBang Linux PiBang Linux wendet sich speziell an diejenigen, die den Raspberry Pi als kostengünstigen, stromsparenden Alltags-PC verwenden. Statt Programmier- und Bildungstools sind diverse Desktopanwendungen vorinstalliert Image-Datei bei sourceforge.net/projects/pibang herunterladen und mit dem USB Image Tool auf eine Speicherkarte übertragen. Raspberry Pi mit der Speicherkarte booten. Benutzer und Passwort anlegen. Es gibt keinen Standardbenutzer. PiBang Linux verwendet eine speziell angepasste Version der extrem ressourcensparenden Openbox-Desktopoberfläche. Ein Rechtsklick auf den zunächst leeren Desktop öffnet ein Menü mit den installierten Programmen. Alle wichtigen Tastenkombinationen sowie die aktuelle Ressourcenauslastung werden rechts oben auf dem Desktop angezeigt. Über den Menüpunkt Settings/Choose Wallpaper kann ein anderes Hintergrundbild gewählt werden. Eine Unterstützung für Windows-Netzwerke ist standardmäßig eingerichtet. Windows-Freigaben im Netzwerk sind im Dateimanager zu sehen. 6

17 Betriebssystem Moebius, Minimal-Linux Moebius ist ein Minimal-Linux ohne grafische Oberfläche, das selbst auf der kleinsten Speicherkarte Platz findet. 3 Image-Datei bei moebiuslinux.sourceforge.net herunterladen und mit dem USB Image Tool auf eine Speicherkarte übertragen. Raspberry Pi mit der Speicherkarte booten. Der Standardbenutzer ist root das Passwort ist raspi. Beim ersten Start startet automatisch ein einfaches Konfigurationstool. Dieses kann später jederzeit über moebius.config aufgerufen werden. 3 ha-pi ha(ck with raspberry)pi ha-pi (hack with raspberry pi) ist eine spezielle Linux-Distribution mit Hackertools, um verschiedene Angriffe auf andere Computer im Netzwerk zu simulieren und so eigene Netzwerke und Server sicherer zu machen. Es gibt keine grafische Oberfläche. Alle Tools laufen über die Kommandozeile. Zur Automatisierung von Prozessen werden die Skriptsprachen Ruby, Python und Perl mitgeliefert. Weitere Informationen unter sourceforge.net/projects/ha-pi. 4 ChameleonPi das Spiele-Linux Wer mit Emulatoren auf dem Raspberry Pi spielen möchte, braucht keinen Linux-Desktop. ChameleonPi ist eine spezielle Linux-Distribution mit Emulatoren für Retrospielkonsolen und ältere Home-Computer. 7

18 ha-pi ha(ck with raspberry)pi Emulatoren in ChameleonPi Amstrad CPC 464 Apple II Arcade Atari 600 Atari 800 Atari ST/STE/TT/Falcon Commodore 8 Commodore 64 Commodore PET Commodore VC-0 DOS/Windows 3.x Mame Nintendo GameBoy Nintendo NES Oric Atmos Oric- ScummVM Sega genesis-megadrive Sinclair ZX Spectrum Sinclair ZX80/ZX8 Sony MSX Super Nintendo zwei Emulatoren: CAPRICE, ARNOLD LINAPPLE zwei Emulatoren: ADVMAME, RetroArch STELLA auch Atari 400, 800 XL, 30 XE HATARI VICE VICE VICE zwei Emulatoren: DOSBOX, rpix zwei Emulatoren: gnuboy, VisualBoyAdvance RetroArch ORICUTRON ORICUTRON dgen with selector drei Emulatoren: FUSE, UNREAL SPECCY, FBZX SZ8 openmsx (rom selector) RetroArch 3 4 Auf chameleon.enging.com die aktuelle Version des ChameleonPi- Image herunterladen. Das bz-komprimierte Archiv entpacken, unter Windows z. B. mit dem Packer 7-Zip ( Image mit dem USB Image Tool, wie bei Anleitung 7 beschrieben, auf eine mindestens 8 GByte große Speicherkarte übertragen und den Raspberry Pi damit booten. Auf der ChameleonPi-Oberfläche vor dem ersten Start eines Emulators mit der Taste [O] das Optionsmenü aufrufen. Mit den Pfeiltasten die Zeile Resize roms partition wählen. Damit wird die Datenpartition für die Spiele auf die volle Größe der Speicherkarte ausgeweitet. 8

19 Betriebssystem Danach weiter unten im Menü Raspbian config starten. Tastatur, Sprache und Zeitzone auswählen. Im Menü Audio den verwendeten Lautsprecherausgang HDMI oder 3.5mm socket wählen. Über den Menüpunkt Open terminal ein Kommandozeilenfenster öffnen, um das System mit folgenden Befehlszeilen auf den aktuellen Stand zu bringen: sudo apt-get update sudo apt-get upgrade sudo apt-get autoclean Kommandozeilenebene mit exit verlassen und ChameleonPi mit dem Menüpunkt Reboot now neu starten. 5 Spiele in ChameleonPi installieren ChameleonPi bietet zwei Möglichkeiten zur Installation von Spielen. Diese müssen in Unterverzeichnisse von /roms auf die Speicherkarte kopiert werden: Speicherkarte in den PC stecken und Spieledateien kopieren. ChameleonPi enthält einen Samba-Server und legt automatisch eine Windows-Freigabe im Netzwerk an. So können Spieledateien in die jeweiligen Unterverzeichnisse unter RPICHAMELEON/roms kopiert werden. Beim ersten Mal ist eine Anmeldung erforderlich: Benutzername zx, Passwort spectrum. 6 RISC OS installieren und einrichten RISC OS ist ein extrem schlankes und schnelles Betriebssystem, das nicht auf Linux basiert, sondern bereits in den 80er-Jahren speziell für ARM-Prozessoren entwickelt wurde. Unter dem Namen RISC OS OPEN ( org) wurde es auf den Raspberry Pi portiert. 9

20 Spiele in ChameleonPi installieren RISC OS ist im NOOBS-Installer enthalten, muss aber während der Installation direkt auf dem Raspberry Pi aus dem Internet heruntergeladen werden. RISC OS startet standardmäßig mit einer englischen Tastaturbelegung. Um diese auf Deutsch umzustellen, doppelt auf das Symbol!Configure auf dem Desktop klicken. Es erscheint ein Fenster mit verschiedenen Konfigurationsmöglichkeiten. Hier auf das Symbol Keyboard klicken Im nächsten Fenster ganz oben rechts auf das Listensymbol klicken. Es öffnet sich eine Liste mit Sprachen. Hier Germany auswählen und unten im Dialogfeld auf Set klicken. Internetverbindung einrichten: Im Konfigurationsdialog auf das Symbol Network klicken und im nächsten Fenster auf Internet. Im folgenden Fenster den Schalter Enable TCP/IP Protocol Suite aktivieren und das Fenster mit Close verlassen. Auf Save klicken und das Betriebssystem neu booten. 0

21 Betriebssystem 7 Tipps zur Bedienung von RISC OS RISC OS war das erste Betriebssystem mit einer Taskleiste am unteren Bildschirmrand, die Microsoft später für Windows 95 bei den RISC OS-Entwicklern lizenzierte. Auf der linken Seite der Taskleiste befinden sich ein Speicherkartensymbol, das den Dateimanager öffnet, sowie ein Apps-Symbol. Dieses öffnet ein Fenster mit allen Apps und dient sozusagen als Startmenü. RISC OS verwendet keine Menüs in den Fenstern, sondern setzt auf Kontextmenüs, die mit der mittleren Maustaste aufgerufen werden. Die Menüs haben eine Titelleiste, über die sie sich auf dem Bildschirm verschieben lassen. Menüpunkte lassen sich mit der linken oder rechten Maustaste aufrufen, wobei bei einem Rechtsklick das Menü stehen bleibt, um einen Menüpunkt schnell ein zweites Mal aufrufen zu können. Laufende Programme legen Symbole auf der rechten Seite der Taskleiste an. Auch hier gibt es Menüs, die über einen Klick mit der mittleren Maustaste aufgerufen werden. RISC OS setzt voll auf Drag-and-drop. Dateien werden per Doppelklick aus dem Dateimanager heraus mit der passenden Anwendung geöffnet. Es gibt keine Dateiendungen, die Dateiformate werden im Dateisystem gespeichert. Beim Speichern einer Datei aus einer Anwendung heraus erscheint kein Dialogfeld zur Auswahl eines Verzeichnisses. Man zieht das Dateisymbol aus dem Speichern-Dialog direkt in das gewünschte Fenster des Dateimanagers. Klickt man mit der linken Maustaste auf den Pfeil am Ende einer Bildlaufleiste, scrollt der Fensterinhalt wie erwartet in diese Richtung. Klickt man jedoch mit der rechten Maustaste, scrollt der Fensterinhalt in die umgekehrte Richtung, was beim Blättern in einem Text sehr bequem ist. 8 Anwendungen unter RISC OS installieren RISC OS liefert einen eigenen App-Store mit (bis jetzt noch relativ wenigen) Anwendungen speziell für dieses Betriebssystem. Klassische Linux-Anwendungen lassen sich auf RISC OS nicht installieren.

22 Raspberry Pi-Emulator für Windows 3 PlingStore über das Symbol!Store auf dem Desktop öffnen. Die Anwendungen lassen sich nach Kategorien oder Herstellern filtern, um bestimmte Anwendungen besser zu finden. Aus dem Store installierte Anwendungen erscheinen nicht in der Liste der Apps, sondern in Unterverzeichnissen des eigenen Home-Verzeichnisses. Dieses wird mit einem Klick auf das Speicherkartensymbol links unten in der Symbolleiste geöffnet. 9 Raspberry Pi-Emulator für Windows Wer (noch) keinen Raspberry Pi hat, kann im Emulator unter Windows ein älteres Raspbian-Betriebssystem ausprobieren. Natürlich läuft der emulierte Raspberry Pi deutlich langsamer als ein echter. 3 Den Raspberry Pi-Emulator bei sourceforge.net/projects/rpiqemuwindows herunterladen und das Zip-Archiv auf die Festplatte entpacken (etwa GByte). run.bat starten. In einem Windows-Fenster bootet ein simulierter Raspberry Pi und ruft beim ersten Start automatisch raspi-config auf.

23 Betriebssystem Hier über change_locale die deutsche Sprache für die Oberfläche und die deutsche Tastaturbelegung auswählen. Über change_timezone die Zeitzone Berlin wählen. Am Ende raspi-config verlassen und den simulierten Raspberry Pi neu booten lassen. Die grafische Oberfläche startet aus Performancegründen nur in VGA-Auflösung. Die meisten Programme können aber genutzt werden. Der Mauszeiger bleibt während der Arbeit im Qemu-Fenster gefangen. [Strg]+[Alt] drücken, um wieder andere Windows-Fenster zu nutzen. 0 Betriebssystem im Raspberry Pi-Emulator aktualisieren Die im Emulator installierte Raspian-Version ist relativ alt, sie lässt sich aber zumindest in Grenzen aktualisieren. sudo apt-get update sudo apt-get upgrade Damit ist die Größe der simulierten Speicherkarte auch schon fast ausgeschöpft. sudo apt-get clean schafft noch etwas freien Speicherplatz. 3

24 Praxiseinsatz Der Raspbian-Desktop Der LXDE-Dateimanager Raspbian bringt einen Dateimanager mit, der dem Windows-Explorer täuschend ähnlich sieht. Der Dateimanager wird über das Symbol in der Taskleiste neben dem Startmenü oder mit der Tastenkombination [Win]+[E] gestartet. Standardmäßig zeigt er nur das Home-Verzeichnis an. Unter Linux legt man alle eigenen Dateien grundsätzlich nur unterhalb des eigenen Home-Verzeichnisses ab. Hier heißt es /home/pi nach dem Benutzernamen pi. Um mehr zu sehen, im Dateimanager oben links von Orte auf Verzeichnisbaum umschalten und dann im Menü unter Ansicht die Option Detailansicht wählen. Um wirklich alles zu sehen, im Menü Ansicht/Verborgene Dateien anzeigen einschalten. 4

25 Praxiseinsatz Dateien lassen sich mit der rechten Maustaste oder den Tastenkombinationen [Strg]+[C] und [Strg]+[V] kopieren. Drag-and-drop zwischen zwei Dateimanagerfenstern funktioniert ebenfalls. 3 Wichtige Befehle auf der Linux- Kommandozeile Linux-Kommandos werden im Terminal-Fenster direkt auf der Terminal-Ebene ohne grafische Oberfläche oder per SSH von einem anderen Computer im Netzwerk eingegeben. man [Befehlsname] ls [OPTION]... [DATEI]... Ausführliches Handbuch zu jedem Befehl. Listet Dateien in einem Verzeichnis auf. 5

26 Der Superuser root cd [Verzeichnisname] pwd cat [OPTION] [DATEIEN]... cp [OPTION]... QUELLE ZIEL mv [OPTION]... QUELLE ZIEL rm [OPTION]... DATEI... mkdir [OPTION] VERZEICHNIS... rmdir [OPTION] VERZEICHNIS... chmod [OPTION]... MODUS... DATEI... chown [OPTION]... DATEI... adduser [OPTION]... BENUTZER Wechselt in das angegebene Verzeichnis. Zeigt das aktuelle Verzeichnis an. Zeigt den Inhalt von Dateien. Kopiert Dateien und Verzeichnisse. Verschiebt Dateien und Verzeichnisse. Löscht Dateien und Verzeichnisse. Legt ein Verzeichnis an. Löscht ein leeres Verzeichnis. Ändert Datei- und Verzeichnisberechtigungen. Ändert den Eigentümer einer Datei. Fügt einen Benutzer hinzu. addgroup [OPTION]... BENUTZER... Fügt eine Benutzergruppe hinzu oder [GRUPPE] fügt einen Benutzer in eine Gruppe ein. 4 Der Superuser root Der auf dem Raspberry Pi standardmäßig angemeldete Benutzer pi ist ein typischer eingeschränkter Linux-Benutzer. Für administrative Arbeiten am System werden Superuserrechte benötigt. Diese bekommt man mit einem vorangestellten sudo vor einem Linux-Kommando. Auf einem»großen«linux-system muss dabei das root-passwort eingegeben werden, auf dem Raspberry Pi hat der Superuser root dagegen kein Passwort. Vorsicht! Der Benutzer root darf alles, auch das komplette System zerstören. 5 Dateimanager mit root-rechten nutzen Der Superuser root darf alle Dateien sehen, bearbeiten und löschen, auch mit dem Dateimanager. Im Menü des Dateimanagers Werkzeuge/Aktuellen Ordner als»root«öffnen wählen. 6

27 Praxiseinsatz 6 Eigenes Hintergrundbild für den Desktop Anstelle der schlichten Himbeere kann man sich eine andere Grafik, ein Strandmotiv oder einen ganzen Himbeerkuchen, als Hintergrund auf den Desktop legen. Bildgröße Idealerweise hat das Hintergrundbild, wenn es sich nicht um ein kleines Logo handelt, sondern den ganzen Desktop bedecken soll, auch genau dessen Auflösung. Es ergibt keinen Sinn, ein Originalfoto einer hochauflösenden Digitalkamera mit mehreren Tausend Pixeln Auflösung jedes Mal vom Raspberry Pi auf Monitorauflösung herunterskalieren zu lassen Foto zunächst am PC auf die vom Raspberry Pi verwendete Bildschirmauflösung skalieren und in das Home-Verzeichnis /home/pi übertragen. Die Bildschirmauflösung wird über das Startmenü unter Einstellungen/Bildschirmeinstellungen angezeigt. Rechtsklick auf den Desktop und im Kontextmenü Einstellungen der Arbeitsfläche wählen. Auf desktop-background und dann auf den Namen des aktuellen Hintergrundbilds klicken. Im nächsten Fenster das gewünschte Bild auswählen. Auf Öffnen klicken. Das Bild wird sofort als Desktophintergrund angezeigt. Das Dialogfeld Einstellungen der Arbeitsfläche bleibt geöffnet. Hier stehen verschiedene Optionen für die Ausrichtung zur Wahl. Hat das Bild genau die Auflösung des Bildschirms, gibt es keinen Unterschied zwischen den verschiedenen Ausrichtungen. Ausrichtung für Hintergrundbilder Mit Hintergrundfarbe füllen Bildschirm füllen Skalieren Es wird kein Bild dargestellt. Der ganze Desktop wird mit der ausgewählten Hintergrundfarbe gefüllt. Das Bild wird so skaliert, dass es den gesamten Bildschirm ohne freie Ränder ausfüllt. Dabei kann sich unter Umständen das Seitenverhältnis ändern. Das Bild wird so skaliert, dass es den Bildschirm in der Höhe oder Breite ausfüllt, aber das Seitenverhältnis unverändert bleibt. Freie Flächen an den Rändern werden mit der ausgewählten Hintergrundfarbe gefüllt. 7

28 Fan-Art als Hintergrundbild Ausrichtung für Hintergrundbilder Zentriert Kacheln Das Bild wird in Originalgröße dargestellt. Freie Flächen an den Rändern werden mit der ausgewählten Hintergrundfarbe gefüllt. Ist das Bild kleiner als der Bildschirm, wird es nach rechts und unten gekachelt wiederholt. Das Original-Raspberry Pi-Hintergrundbild liegt im Verzeichnis /etc/ alternatives. Der LXDE-Desktop liefert weitere Hintergrundbilder im Verzeichnis /usr/share/lxde/wallpapers. 7 Fan-Art als Hintergrundbild Viele Raspberry Pi-Fans haben in der letzten Zeit eigene Hintergrundbilder mit Raspberry Pi-Motiven entworfen und bieten sie zum Download an. Eine gute Quelle ist das Künstlerportal deviantart, wo sich diverse Hintergrundbilder in verschiedenen HDMI-Auflösungen finden lassen: bit.ly/l7uxu 8

29 Praxiseinsatz 8 Diashow im Vollbildmodus Der Bildbetrachter in Raspbian zeigt auf einem angeschlossenen Fernseher eine Diashow im Großformat Alle Bilder für die Diashow in ein Verzeichnis auf dem Raspberry Pi kopieren am besten in ein Unterverzeichnis von /home/pi. Im Startmenü unter Zubehör den Bildbetrachter wählen. Mit dem Symbol Datei öffnen oder der Taste [O] ein Bild auswählen. Das Symbol Vollbildmodus oder die Taste [F] schaltet in den Vollbildmodus. Sollte das Bild nur teilweise zu sehen sein, skaliert es die Taste [F] auf Bildschirmgröße. Ein Rechtsklick blendet ein Menü zur Steuerung im Vollbildmodus ein. Die Taste [W] startet die Diashow und beendet sie auch wieder. Über das Symbol Einstellungen oder die Taste [P] lassen sich die Geschwindigkeit der Diashow und die Hintergrundfarbe im Vollbildmodus einstellen. 9

30 BilderausdemDateimanagerstandardmäßigmitdemBildbetrachteranzeigen 9 Bilder aus dem Dateimanager standardmäßig mit dem Bildbetrachter anzeigen Leider öffnet ein Doppelklick auf ein Foto dieses standardmäßig im Netsurf- Browser, der sich zum Betrachten von Fotos nur wenig eignet und auch keine Diashow-Funktion bietet. So lässt sich dieses Standardverhalten ändern: 3 4 Rechtsklick auf ein Bild im Dateimanager. Im Kontextmenü Öffnen mit wählen. Unter Zubehör den Bildbetrachter auswählen. Schalter Gewählte Anwendung als Vorgabe für diesen Dateityp benutzen aktivieren. Mit OK bestätigen. 30 Fotos von PC oder Netzwerkfestplatte auf dem Raspberry Pi anzeigen Der Raspberry Pi im Wohnzimmer am Fernseher kann die Fotos, die auf dem PC im Arbeitszimmer liegen, anzeigen. Ein lokales Netzwerk macht es möglich. 3 Das Bilderverzeichnis oder die ganze Festplatte des PCs bzw. die Netzwerkfestplatte muss über eine klassische Windows-Freigabe freigegeben sein. Die Windows-Heimnetzgruppen werden nicht unterstützt. Im Dateimanager Gehe zu/netzwerk wählen. Netzlaufwerk auswählen und mit Benutzernamen und Passwort der Windows-Freigabe anmelden, also nicht pi und raspberry verwenden. 30

31 Praxiseinsatz 3 Desktopverknüpfungen für Programme aus dem Startmenü anlegen Mit der rechten Maustaste auf ein Programm im Startmenü klicken und im Kontextmenü Dem Desktop hinzufügen wählen. 3 Die wichtigsten Standardverzeichnisse in Linux Diese Verzeichnisstruktur ist auf oberen Ebenen in allen Unix-basierten Systemen gleich. Die Free Standards Group ( veröffentlicht bei den aktuellen Filesystem Hierarchy Standard (deutsche Version: bit.ly/zhgov7). / Unter dem Wurzelverzeichnis sind alle anderen Verzeichnisse angeordnet. Dies bezieht sich hier nicht auf ein Laufwerk, sondern auf die gesamte Verzeichnisstruktur. /bin Wichtige, immer verfügbare Programme, zum Beispiel die Unix-Shells und die Shell-Kommandos. /boot Der Linux-Kernel vmlinuz und Konfigurationsdateien, die zum Booten benötigt werden. /dev Abkürzung für Devices, sogenannte Gerätedateien. Hier werden für alle Geräte virtuelle Dateien angelegt, über die auf die Geräte zugegriffen werden kann. 3

32 Die wichtigsten Standardverzeichnisse in Linux /etc /home /lib /lost+found /media /mnt /opt /proc /root /run /sbin /selinux /srv /sys /tmp Konfigurationsdateien für das System oder einzelne Programme. Unterhalb dieses Verzeichnisses besitzt jeder Benutzer sein Home-Verzeichnis. In einer Raspbian-Installation ist neben dem Superuser root nur ein Standardbenutzer pi vorhanden. Wenn keine speziellen Zugriffsrechte vergeben wurden, kann ein Benutzer die Verzeichnisse der anderen Benutzer nicht sehen. Der Benutzer root hat sein Home-Verzeichnis direkt unter dem Hauptverzeichnis und nicht unter /home. Funktionsbibliotheken des Betriebssystems. In diesem Verzeichnis sollte auf keinen Fall irgendetwas verändert werden. Auf dieses Verzeichnis hat nur das System selbst Zugriff. Hier werden Dateien abgelegt, die bei einem Programmabsturz oder Hardwarefehler entstehen und keinem anderen Verzeichnis mehr zugeordnet werden können. In Unterverzeichnissen dieses Verzeichnisses werden externe Festplatten, Speicherkarten, CD-ROM-Laufwerke und USB- Sticks gemountet. Hier kann man selbst andere Dateisysteme in die Verzeichnisstruktur mounten. Optionale Software; in diesem Verzeichnis werden vor allem große Programmpakete installiert. Jedes laufende Programm erhält hier automatisch ein Unterverzeichnis mit Dateien, die genaue Informationen zum jeweiligen Prozess geben. Dieses Verzeichnis ist als Schnittstelle zum Kernel gedacht, sodass Programme auf Systemfunktionen und Funktionen anderer Programme zugreifen können. Das Home-Verzeichnis des Benutzers root. Es liegt traditionell im Hauptverzeichnis, damit der Administrator auch dann auf seine Dateien zugreifen kann, wenn durch einen Fehler der Zugriff auf andere Partitionen nicht mehr möglich ist. Der Standardbenutzer pi sieht hier nur ein leeres Verzeichnis. Dieses Verzeichnis enthält Informationen über das System seit seinem Start. Wichtige Systemprogramme, auf die nur der Administrator root Zugriff hat. Verzeichnis für die Kernel-Erweiterung Security Enhanced Linux. Diese wird auf dem Raspberry Pi standardmäßig nicht genutzt. Spezielle Dateien laufender Dienste. Virtuelles Verzeichnis für Systeminformationen. Das Temporärverzeichnis zur Ablage temporärer Dateien und zum Datenaustausch zwischen Benutzern. 3

33 Praxiseinsatz /usr /var In diesem Verzeichnis liegen die Unterverzeichnisse für die installierten Programme. Da dieses Verzeichnis üblicherweise mit Abstand das größte auf einem System ist, ist eine detaillierte Unterteilung nötig. Linux verwendet diverse Unterverzeichnisse, in denen die einzelnen Programme, Bibliotheken und Systemkommandos eingeordnet sind. Abkürzung für variabel; ein Verzeichnis für Dateien, die sich ständig ändern. Hier liegen in Unterverzeichnissen z. B. Browsercache und Druckerspooler. 33 LXTerminal mit weißem Hintergrund LXTerminal-Fenster sind mit schwarzer Schrift auf weißem Hintergrund deutlich besser lesbar als in der Standardeinstellung mit grauer Schrift auf schwarzem Grund. 3 Bearbeiten/Einstellungen im LXTerminal-Fenster. Vordergrundfarbe auf Schwarz und Hintergrundfarbe auf Weiß einstellen. Mit OK bestätigen. 34 Software aus dem Pi Store installieren 3 4 Doppelklick auf das Pi Store-Symbol auf dem Desktop. Über den Link Register auf der Startseite ein kostenloses Benutzerkonto anlegen. Die Anmeldung muss über einen Link in einer bestätigt werden. Programme im Pi Store über Sort by Most Played sortieren, um die beliebtesten und kostenlosen Programme besser finden zu können. Ein Klick auf eines der Vorschaubilder zeigt eine Programmbeschreibung und oft auch weitere Bilder sowie Links auf die Webseiten der Entwickler. Ein Klick auf Download lädt das gewünschte Programm herunter und installiert es auch gleich. 33

34 Software als Linux-Paket installieren 5 Der Pi Store zeigt unter My Library oben links eine Liste aller aus dem Store installierten Programme und Spiele. Programm auswählen und mit einem Klick auf Launch starten. Die meisten Programme (nicht alle) legen bei der Installation zusätzlich einen Eintrag im Startmenü an. 35 Software als Linux-Paket installieren sudo apt-get update liest die neuesten Paketlisten ein, damit die Möglichkeit besteht, aktuelle Versionen der Pakete herunterzuladen und zu installieren. Die Pakete selbst werden dabei nicht aktualisiert. sudo apt-get install [Paketname] installiert ein neues Paket. Dazu muss der Paket name bekannt sein. Abhängige Pakete werden automatisch mit installiert. sudo apt-get upgrade aktualisiert installierte Pakete. sudo apt-get purge [Paketname] entfernt ein installiertes Paket einschließlich seiner Konfigurationsdateien restlos. sudo apt-get dist-upgrade aktualisiert die gesamte Distribution. 36 Software über Synaptic installieren Die kommandozeilenbasierte Paketverwaltung apt-get eignet sich gut für skriptgesteuerte automatisierte Prozesse, ist aber alles andere als benutzerfreundlich. Wesentlich mehr Komfort und weitere Möglichkeiten bietet die grafische Paketverwaltung Synaptic. sudo apt-get update sudo apt-get install synaptic 34

35 Praxiseinsatz Nach der Installation trägt sich Synaptic automatisch im Startmenü unter Einstellungen ein. Beim Start mit Passwort raspberry autorisieren. Beim ersten Start von Synaptic einmal auf Neu laden klicken, um die lokale Paketdatenbank zu aktualisieren. Gewünschtes Programm suchen und zur Installation vormerken. Abhängige Pakete werden automatisch mit ausgewählt. Alle Befehle, wie Installation, Deinstallation oder vollständige Entfernung, werden zunächst zur Ausführung vorgemerkt und mit einem Klick auf Anwenden unbeaufsichtigt nacheinander ausgeführt. Warten Logo Die Installation mehrerer großer Pakete kann durch Abhängigkeiten mit anderen Paketen manchmal sehr lange dauern. 37 Ziffernblock aktivieren Leider schaltet Linux von sich aus den Ziffernblock der Tastatur nicht automatisch ein, was besonders in Office-Anwendungen lästig ist. Man tippt gewohnheitsmäßig Zahlen über den Ziffernblock ein, ohne vorher [NumLock] zu drücken. Statt der Zahlen bewegt sich aber der Cursor über den Bildschirm. Das Problem lässt sich mit einem kleinen Programmpaket lösen: sudo apt-get install numlockx Dieses Paket braucht nur installiert zu sein, damit sich der Ziffernblock beim nächsten Neustart des Raspberry Pi automatisch aktiviert. 38 Freien Speicherplatz anzeigen Der Dateimanager auf dem Desktop zeigt unten rechts den freien Speicherplatz auf der Speicherkarte an. Ist auf der Speicherkarte zu wenig Platz frei, kann es passieren, dass die grafische Oberfläche nicht mehr startet. Spätestens jetzt muss über die Kommandozeile die Speicherkarte aufgeräumt werden. 35

36 Speicherkarte aufräumen, wenn der Raspberry Pi nicht mehr bootet df -h zeigt den benutzten und freien Speicherplatz in allen Dateisystemen auf dem Raspberry Pi an. Entscheidend ist die oberste Zeile rootfs. 39 Speicherkarte aufräumen, wenn der Raspberry Pi nicht mehr bootet Wird der freie Speicherplatz auf der Speicherkarte zu knapp, startet die grafische Oberfläche nicht mehr, und man hat oft keine Möglichkeit, direkt auf dem Raspberry Pi aufzuräumen PuTTY auf dem PC starten und über die IP-Adresse am Raspberry Pi anmelden (siehe Projekt 6). sudo du -sch /* zeigt an, welches Verzeichnis wie viel Platz verbraucht. Überflüssige Dateien unter /home löschen. Meist ist /usr das größte Verzeichnis. Hier nichts unbedacht löschen! sudo apt-get clean löscht den Cache von apt-get, ohne installierte Pakete zu löschen. Alte Protokolldateien löschen: sudo rm -f /var/log/ {*.gz,*.[0-9]} dpkg -l >pakete.txt erzeugt eine Liste aller installierten Pakete. Diese Liste auf den PC übertragen oder direkt im PuTTY-Fenster öffnen: nano pakete.txt 36

37 Praxiseinsatz 7 Nicht benötigte Pakete mit sudo apt-get purge <paketname> deinstallieren. Vorsicht! Keine unbekannten Pakete planlos deinstallieren. Viele Pakete werden von Raspbian zum normalen Betrieb benötigt. Am besten nur bekannte und selbst installierte Pakete entfernen. Abhängige Pakete werden automatisch mit entfernt. Auf aktuellen Systemen mit dem Epiphany-Webbrowser kann der Midori-Browser bedenkenlos entfernt werden. Wer das vorinstallierte Mathematica und Wolfram nicht nutzt, kann mit dem Entfernen von wolfram-engine viel Platz gewinnen. 8 apt-get zeigt beim Entfernen automatisch installierte Pakete an, die nach der Entfernung eines Pakets ebenfalls nicht mehr benötigt werden. Diese danach mit sudo apt-get autoremove entfernen. 40 Screenshots vom Raspbian-Desktop erstellen Das Kommandozeilentool scrot erstellt Screenshots des gesamten Bildschirms oder von Teilbereichen. 3 sudo apt-get install scrot scrot ohne weitere Parameter erstellt nach einer Wartezeit von etwa zwei Sekunden einen Screenshot des gesamten Desktops. Die Datei liegt im Home-Verzeichnis. Der Name setzt sich aus Datum, Uhrzeit und Bildschirmauflösung zusammen. Zusätzlich lassen sich Optionen und ein Dateiname angeben: scrot [Optionen]... [Dateiname] 37

38 LibreOffice auf dem Raspberry Pi installieren 4 Die Tabelle zeigt die möglichen Optionen: Parameter -b Funktion -c Countdown vor dem Screenshot. -d Wartezeit vor dem Screenshot in Sekunden. -e Führt anschließend einen Linux-Befehl oder ein Programm mit dem Bild aus. -h Zeigt einen Hilfetext, erzeugt aber keinen Screenshot. -m Gesamt-Screenshot von mehreren Bildschirmen erstellen. -q Bildqualität ( 00, Standard: 75). -s Interaktiv Fenster oder Rechteck auswählen. -t Zusätzlich Thumbnail generieren (Größe in Prozent angeben). -u Screenshot des aktiven Fensters erstellen. -v Zeigt die Versionsnummer, erzeugt aber keinen Screenshot. -z Stille Ausführung ohne Piepton. Der Dateiname kann über Parameter definiert werden. Näheres dazu auf der Hilfeseite: scrot -h 4 LibreOffice auf dem Raspberry Pi installieren LibreOffice bietet alle Funktionen eines modernen Office-Pakets: Textverarbeitung, Präsentation, Grafik und eine Tabellenkalkulation, die selbst anspruchsvolle wissenschaftliche oder statistische Funktionen beherrscht. Libre Office kann sowohl Dokumente im Open-Document-Format als auch in den bekannten Office-Formaten lesen und schreiben. Warten Logo LibreOffice aus dem Pi Store installieren. Auf der Speicherkarte muss mindestens GByte Speicher frei sein. Deutsches Sprachpaket nachinstallieren: sudo apt-get install libreoffice-l0n-de 3 LibreOffice erscheint im Startmenü unter Büro. 38

39 Praxiseinsatz 4 Tipps zu LibreOffice Ein paar Einstellungen unter Extras/Optionen erleichtern den Umstieg von Microsoft Office: Unter LibreOffice/Allgemein den Schalter LibreOffice-Dialoge verwenden unter Dialoge zum Öffnen/Speichern deaktivieren. Dann verwendet LibreOffice die gewohnten Dateidialoge der anderen Anwendungen auf dem Raspberry Pi. Der gleiche Schalter unter Dialoge zum Drucken sollte eingeschaltet bleiben. Der Druckdialog von LibreOffice bietet mehr Möglichkeiten. Um auf dem Raspberry Pi Arbeitsspeicher zu sparen, unter LibreOffice/ Arbeitsspeicher die Anzahl der Schritte, die rückgängig gemacht werden können, herabsetzen. Niemand merkt in einer Textverarbeitung einen Fehler erst 00 Schritte später. Grafik-Cache auf die Hälfte herabsetzen. 39

40 Schlanke Alternative: AbiWord Unter LibreOffice/Zugänglichkeit die Schalter Animierte Grafiken zulassen und Animierten Text zulassen deaktivieren. Diese Optionen bremsen die Darstellung auf dem Raspberry Pi unnötig aus. Zur Kompatibilität mit Microsoft Office das Standardformat für neue Dateien unter Laden/Speichern/Allgemein auf Microsoft Word umschalten und Immer warnen, wenn nicht im ODF-Format ausschalten. 43 Schlanke Alternative: AbiWord LibreOffice ist ein vollständiges Office-Paket mit einem riesigen Funktionsumfang, den viele Anwender gerade auf dem Raspberry Pi nicht brauchen. Um einfach nur ein paar Texte zu schreiben, reicht die Textverarbeitung Abi- Word völlig aus. 3 AbiWord installieren: sudo apt-get install abiword AbiWord trägt sich automatisch im Startmenü unter Büro ein. Die Sprache wird selbsttätig an die Sprache des Betriebssystems angepasst. Die Texte lassen sich außer in den AbiWord-eigenen Formaten auch als DOC, DOCX, RTF, ODT für LibreOffice und OpenOffice sowie als reiner Text oder HTML speichern. Außerdem sind direkte Ausgabefunktionen für PDF und das E-Book-Format EPUB integriert, die vielen professionellen Textverarbeitungen unter Windows bis heute fehlen. 40

41 Praxiseinsatz 44 Texteditoren für Konfigurationsdateien Die meisten Linux-Konfigurationsdateien liegen in reinem ASCII-Format vor und können direkt mit einem Texteditor bearbeitet werden. Leafpad ist ein Texteditor auf dem grafischen Desktop, der über das Startmenü Zubehör oder über die Kontextmenüs beim Rechtsklick auf eine Textdatei aufgerufen wird. nano ist ein einfacher Texteditor, der ohne grafische Oberfläche auskommt. Er läuft auf Kommandozeilenebene und damit auch in einem PuTTY-Fenster. Der nano-editor hat keine grafische Oberfläche und dementsprechend auch kein Menü. Die Steuerung erfolgt ausschließlich über Tastenkombinationen. Die wichtigsten sind am unteren Fensterrand angegeben. Die Tabelle zeigt noch deutlich mehr nützliche Befehle zur Steuerung des nano-editors: Tastenkombination Alternative Tastenkombination Aktion [Strg]+[G] [F] Hilfe anzeigen [Strg]+[X] [F] aktuellen Dateipuffer schließen/nano beenden [Strg]+[O] [F3] Datei speichern [Strg]+[J] [F4] Absatz ausrichten [Strg]+[R] [F5] Datei einfügen [Strg]+[W] [F6] nach einer Zeichenkette oder einem regulären Ausdruck suchen [Strg]+[Y] [F7] zum vorhergehenden Bildschirm springen [Strg]+[V] [F8] zum folgenden Bildschirm springen 4

42 Texteditoren für Konfigurationsdateien 4 Tastenkombination Alternative Tastenkombination Aktion [Strg]+[K] [F9] die aktuelle Zeile ausschneiden und in der Zwischenablage speichern [Strg]+[U] [F0] aus der Zwischenablage einfügen [Strg]+[C] [F] die aktuelle Cursorposition anzeigen [Strg]+[T] [F] Rechtschreibprüfung aufrufen (wenn verfügbar) [Alt]+[\] [Alt]+[ ] zur ersten Zeile der Datei springen [Alt]+[/] [Alt]+[?] zur letzten Zeile der Datei springen [Strg]+[_] [Alt]+[G] zu einer bestimmten Zeile und Spalte springen [Strg]+[\] [Alt]+[R] eine Zeichenkette oder einen regulären Ausdruck ersetzen [Strg]+[^] [Alt]+[A] Text an der Cursorposition markieren [Alt]+[W] [F6] letzte Suche wiederholen [Alt]+[^] [Alt]+[6] die aktuelle Zeile kopieren und in der Zwischenablage speichern [Alt]+[}] die aktuelle Zeile einrücken [Alt]+[{] die aktuelle Zeile ausrücken [Strg]+[F] ein Zeichen vorwärts gehen [Strg]+[B] ein Zeichen rückwärts gehen [Strg]+ ein Wort vorwärts gehen [Leertaste] [Alt]+ ein Wort rückwärts gehen [Leertaste] [Strg]+[P] zur vorhergehenden Zeile gehen [Strg]+[N] zur folgenden Zeile gehen [Strg]+[A] zum Anfang der aktuellen Zeile springen [Strg]+[E] zum Ende der aktuellen Zeile springen [Alt]+[ ] [Alt]+[9] zum Anfang des aktuellen Absatzes springen, dann zum Anfang des vorigen Absatzes [Alt]+[»] [Alt]+[0] hinter das Ende des aktuellen Absatzes springen, dann hinter das Ende des vorigen Absatzes [Alt]+[ ] zur passenden Klammer springen [Alt]+[-] [Alt]+[_] eine Zeile hochrollen, ohne den Cursor zu bewegen

43 Praxiseinsatz Tastenkombination Alternative Tastenkombination Aktion [Alt]+[+] [Alt]+[=] eine Zeile hinunterrollen, ohne den Cursor zu bewegen [Alt]+[<] [Alt]+[,] zum vorhergehenden Dateipuffer umschalten [Alt]+[>] [Alt]+[.] zum folgenden Dateipuffer umschalten [Alt]+[V] nächstes Zeichen direkt (nicht interpretiert) einfügen [Strg]+[I] einen Tabulator an der Cursorposition einfügen [Strg]+[M] einen Zeilenumbruch an der Cursorposition einfügen [Strg]+[D] Zeichen an der Cursorposition löschen [Strg]+[H] Zeichen links vom Cursor löschen [Alt]+[T] vom Cursor bis zum Dateiende ausschneiden [Alt]+[J] die gesamte Datei ausrichten [Alt]+[D] die Zahl der Wörter, Zeilen und Zeichen zählen [Strg]+[L] Bildschirm auffrischen (neu zeichnen) [Strg]+[Z] den Editor in den Hintergrund schieben (wenn»suspend«angeschaltet ist) [Alt]+[X] Hilfe-Modus aktivieren/deaktivieren [Alt]+[C] Cursorposition ständig anzeigen aktivieren/deaktivieren [Alt]+[O] Verwendung einer Zeile mehr zum Editieren aktivieren/deaktivieren [Alt]+[S] Sanftes Rollen aktivieren/deaktivieren [Alt]+[P] Weißraumanzeige aktivieren/deaktivieren [Alt]+[Y] Farbige Syntaxhervorhebung aktivieren/ deaktivieren [Alt]+[H] Intelligente Pos-Taste aktivieren/deaktivieren [Alt]+[I] Automatischen Einzug aktivieren/deaktivieren [Alt]+[K] Bis Ende ausschneiden aktivieren/deaktivieren 43

44 Einfache Bildbearbeitung mit Mirage Tastenkombination [Alt]+[L] [Alt]+[Q] [Alt]+[B] [Alt]+[F] [Alt]+[M] [Alt]+[N] [Alt]+[Z] [Alt]+[$] Alternative Tastenkombination Aktion Lange Zeilen umbrechen aktivieren/ deaktivieren Umwandlungen eingegebener Tabulatoren in Leerzeichen aktivieren/deaktivieren Sicherungskopien aktivieren/deaktivieren Mehrere Dateipuffer aktivieren/deaktivieren Mausunterstützung aktivieren/deaktivieren Keine Umwandlung aus DOS/Mac-Format aktivieren/deaktivieren In den Hintergrund aktivieren/deaktivieren Lange Zeilen fließend umbrechen aktivieren/deaktivieren 45 Einfache Bildbearbeitung mit Mirage Theoretisch könnte man auf dem Raspberry Pi die bekannte Bildbearbeitung GIMP installieren, die selbst Photoshop in den Schatten stellt. Die Pakete dafür sind verfügbar. Allerdings läuft GIMP auf den begrenzten Ressourcen des Raspberry Pi so langsam, dass es keinen Spaß mehr macht. Mirage ist ein schlanker Bildbetrachter mit einfachen Bearbeitungsfunktionen. Mirage installieren: sudo apt-get install mirage Mirage trägt sich automatisch im Startmenü unter Grafik ein, leider ist er nur in Englisch verfügbar. 44

45 Praxiseinsatz 3 Im Menü Edit gibt es Funktionen, um das Bild zu drehen, zu spiegeln, zuzuschneiden oder die Größe zu ändern. 46 xfce4-goodies nützliche Erweiterungen für den Desktop Der schlanke xfce4-desktop von Raspbian-Linux ist zwar zweckmäßig, bietet aber vielen, die den Raspberry Pi als PC-Ersatz nutzen wollen, noch nicht den gewünschten Komfort. Die xfce4-goodies, eine Sammlung kleiner Tools und Plug-ins, erweitert den Desktop um diverse nützliche Kleinigkeiten. xfce4-goodies installieren: sudo apt-get install xfce4-goodies xfce4-goodies liefert eigenständige Tools, die über das Startmenü aufgerufen werden, sowie auch diverse Plug-ins, die sich an verschiedenen Stellen der Benutzeroberfläche einklinken. 45

46 xfce4-goodies nützliche Erweiterungen für den Desktop Die Tools der xfce4-goodies mousepad ristretto thunar squeeze xfburn xfce4-dict xfce4-notifyd Benachrichtigungssystem für verschiedene Ereignisse. Screenshot-Programm mit grafischer Oberfläche und einstellbarer Aufnahmeverzögerung. xfce4- screenshooter xfce4-taskmanager xfce4-terminal Einfacher Texteditor. Komfortabler Bildbetrachter mit Diashow-Funktionen. Erweiterter Dateimanager. Archivmanager zum Komprimieren von Dateien. CD/DVD-Brennersoftware. Oberfläche zum Zugriff auf Onlinewörterbücher. Standardmäßig wird der Server von dict.org verwendet. Erweiterter Taskmanager. Erweiterter Terminal-Emulator. Plug-ins für den xfce-desktop xfce4-artwork xfce4-battery-plugin xfce4-clipman-plugin xfce4-cpufreq-plugin xfce4-cpugraph-plugin xfce4-datetime-plugin xfce4-diskperf-plugin xfce4-fsguard-plugin xfce4-genmon-plugin xfce4-mailwatch-plugin xfce4-mount-plugin xfce4-netload-plugin xfce4-notes-plugin xfce4-places-plugin xfce4-quicklaunchers xfce4-sensors-plugin Zusätzliche Grafiken und Symbole. Batteriemonitor. Zwischenablagenverlauf. CPU-Frequenzmanagement-Plug-in. CPU-Auslastungsgrafik. Datum-und-Zeit-Plug-in. Festplattenleistungsanzeige. Dateisystemmonitor. Allgemeiner Monitor zur Anzeige von Befehlsergebnissen. Mailbeobachtung. Mount-Plug-in. Netzwerklastmonitor. Notizen-Plug-in. Schnellzugriff auf wichtige Verzeichnisse, zuletzt verwendete Dokumente und Wechselmedien. Kleine Programmstarter. Sensoren-Plug-in, Frontend für lm-sensors. 46

47 Praxiseinsatz xfce4-smartbookmark-plugin xfce4-systemload-plugin xfce4-timer-plugin xfce4-verve-plugin xfce4-wavelan-plugin xfce4-weather-plugin xfce4-xkb-plugin thunar-archive-plugin thunar-media-tags-plugin Smartbookmarks-Plug-in. Systemauslastungsmonitor. Stoppuhr-Plug-in. Kommandozeile mit Verlaufsliste. WLAN-Monitor. Wettermonitor. Tastaturkonfiguration. Archivverwaltung für Thunar. Media-Tags, Editor für Thunar. 47 Wissenschaftlicher Taschenrechner Raspbian liefert im Startmenü unter Zubehör/Calculator einen Taschenrechner mit, der nur auf den ersten Blick simpel erscheint. Im Menü Ansicht auf Wissenschaftlicher Modus umschalten. Der Taschenrechner bietet dann deutlich mehr Funktionen. Die Symbole DEC, HEX, OCT, BIN links in der Anzeige schalten zwischen verschiedenen Zahlensystemen um und aktivieren bzw. deaktivieren entsprechende Tasten, die im jeweiligen Zahlensystem nicht verwendet werden können. Die Symbole DEG, RAD, GRAD in der Mitte der Anzeige schalten zwischen verschiedenen Winkeleinheiten um. Die Symbole ALG, RPN, FORM rechts in der Anzeige schalten zwischen verschiedenen Eingabemethoden um. RPN steht für umgekehrt polnische Notation, FORM blendet eine Zeile zur Eingabe von Formeln ein. Über die Taste kon lassen sich Konstanten wie z. B. Pi eingeben. Diese Konstanten werden über den Menüpunkt Bearbeiten/Einstellungen auf der Registerkarte Konstanten definiert. Auf die gleiche Weise lassen sich Funktionen definieren, die über die Taste fun eingegeben werden. 47

48 Drucker einrichten 48 Drucker einrichten Linux-Computer verwenden zum Drucken das sogenannte CUPS (Common Unix Printing System). Die Software wandelt die Druckaufträge von Programmen für die jeweils verfügbaren Drucker um. Diese können lokal angeschlossen oder über das Netzwerk verbunden sein CUPS installieren: sudo apt-get install cups Benutzer und Gruppe anlegen: sudo adduser pi lpadmin CUPS-Konfiguration starten: Auf der Registerkarte Verwaltung auf Verfügbare Drucker auflisten klicken. Wenn eine Aufforderung zur Anmeldung erscheint, mit dem Benutzernamen pi und dem Passwort raspberry anmelden. Nach kurzer Zeit werden lokal an den USB-Anschlüssen angeschlossene Drucker sowie freigegebene Drucker im Netzwerk angezeigt, die CUPS erkennen kann. Das sind leider nicht alle unter Windows freigegebenen Drucker. Hier den gewünschten Drucker auswählen. Eindeutigen Namen und Beschreibung für den neuen Drucker festlegen. Au Weiter klicken. Druckerhersteller und Druckertyp auswählen, um den passenden Treiber zu installieren. Danach auf Drucker hinzufügen klicken. Auf der nächsten Seite Standardeigenschaften des Druckers, unter anderem Papierformat, Papierzufuhr und Druckauflösung, festlegen. Nach einem Klick auf Standardeinstellungen festlegen wird der Drucker initialisiert und steht ab sofort in allen Programmen, die drucken können, zur Verfügung. 49 Drucken aus einem Linux-Programm Standarddruckdialoge. Datei/Drucken im Menü des Programms wählen oder auf das Druckersymbol klicken. 48

49 Praxiseinsatz Drucker auswählen. Zu druckende Seiten und Anzahl der Kopien festlegen. Je nach Programm stehen noch Möglichkeiten zur Einrichtung von Seitenrändern oder zur Auswahl der zu druckenden Inhalte zur Verfügung. Klick auf Drucken. 50 Epiphany-Browser verwenden Der Epiphany-Browser wurde speziell für den Raspberry Pi entwickelt und bietet Hardwarebeschleunigung für Videos sowie eine erweiterte Unterstützung für HTML5 und JavaScript, was besonders die Nutzung von Blogs, Webmaildiensten und Fotogalerien auch auf dem Raspberry Pi möglich macht. Seit NOOBS.3.0 enthält Raspbian Epiphany als Standardbrowser. Der neue Browser verhält sich wie jeder gewohnte Browser. Er ist zwar nicht so schnell, aber weitgehend kompatibel mit jeder modernen Webseite. Wichtige Einstellungen im Epiphany-Browser Ein Klick auf das Zahnrad oben rechts öffnet wie in den meisten modernen Browsern das Menü. Hier sind auch die Einstellungen zu finden. Werbung blockieren Einstellungen/Allgemein/Werbung erlauben ausschalten. Popup-Fenster erlauben kann in den meisten Fällen auch ausgeschaltet werden. Schriftarten Einstellungen/Schriften und Stile/Systemschriften verwenden eingeschaltet lassen. Damit entspricht das Aussehen der Webseiten dem aus gewohnten Browsern. Andere Schriften verursachen oft auch einen höheren Ressourcenverbrauch. Cookies Einstellungen/Privatsphäre/Cookies/Nur von besuchten Seiten. Damit werden Cookies von Werbebannern abgelehnt. Ein komplettes Ablehnen aller Cookies schränkt den Surfkomfort auf vielen Seiten, z. B. in Webshops, deutlich ein. 49

50 DNT (Do Not Track) ein Politikum im Internet Passwörter Einstellungen/Privatsphäre/Passwörter/An Passwörter erinnern. Sollte auf Raspberry Pis, die als öffentliche Internet-Terminals laufen, ausgeschaltet sein, auf privat genutzten Raspberry Pis kann diese Einstellung eingeschaltet bleiben. Sie verhindert, dass Passwörter auf Webseiten jedes Mal neu eingegeben werden müssen. Sprachen Einstellungen/Sprache. Sollte eine Webseite Umlaute und Sonderzeichen nicht korrekt darstellen, hilft es oft, von der Standardeinstellung Unicode (UTF-8) auf Westlich (Windows-5) umzuschalten. Tracking Einstellungen/Privatsphäre/Verfolgung. Je nach persönlicher Paranoia ein- oder ausschalten. Würde jeder Nutzer diesen Verfolgungsschutz aktivieren, wäre er bald wirkungslos. Der Verfolgungsschutz ist keine technisch bedingte Garantie, dass Verfolgung unterbleibt, sondern lediglich eine Willensäußerung des Nutzers, die die jeweilige Webseite akzeptieren kann oder auch nicht. 5 DNT (Do Not Track) ein Politikum im Internet Das Verfolgen von Benutzeraktivitäten, um personalisierte Inhalte anzuzeigen, ist an sich eine nützliche Technologie, die von den Medien immer häufiger in schlechtes Licht gerückt wird, da sie von Werbetreibenden gern missbraucht wird. Als Microsoft mit der Release Preview von Windows 8 den Verfolgungsschutz standardmäßig aktivierte, nahm die beim W3-Konsortium (W3C, World Wide Web Consortium) für dieses Thema zuständige Arbeitsgruppe öffentlich Stellung: Ein Nutzer soll selbst entscheiden, ob er Verfolgung wünscht oder nicht. Ein Browser dürfe standardmäßig keinen»do-not-track-header«(dnt) übertragen. Wenn Browser standardmäßig einen DNT-Header senden, werden Werbeanbieter ganz schnell dazu übergehen, dies nicht mehr zu beachten. Webseiten mit offensichtlich illegalen Spionageinteressen wer- 50

51 Praxiseinsatz den den Verfolgungsschutz ohnehin ignorieren. Die»Digital Advertising Alliance«(DAA), die Interessenvertretung der Werbetreibenden, will DNT generell nur akzeptieren, wenn es im Browser nicht voreingestellt ist. Andernfalls könnten sich Anbieter von Werbung dafür entscheiden, die DNT-Header solcher Browser einfach zu ignorieren. In allen Browsern außer dem Microsoft Internet Explorer ist der Verfolgungsschutz W3C-konform standardmäßig ausgeschaltet. Die Webseite zeigt, ob der Trackingschutz im Browser aktiv ist. 5 Epiphany-Browser auf älterem Raspbian nachinstallieren Warten Logo sudo apt-get update sudo apt-get dist-upgrade 3 4 sudo apt-get install epiphany-browser Epiphany erscheint im Startmenü unter Internet. 5

52 Tipps zum Midori-Browser 53 Tipps zum Midori-Browser Der Midori-Browser, der bis vor Kurzem in Raspbian als Standardbrowser vorinstalliert war, verhält sich an manchen Stellen etwas anders, als man es von den bekannten Windows-Browsern gewohnt ist. Die Taste [F9] blendet eine Seitenleiste ein, über die man sehr bequem Zugriff auf Lesezeichen, die Verlaufsliste und die letzten Downloads hat. Im Menü unter Datei/Lesezeichen importieren lassen sich Lesezeichen aus einer bookmarks.html-datei importieren, wie sie Firefox und Chrome anlegen können. Ist beim Anlegen eines Lesezeichens der Schalter Zu Schnellwahl hinzufügen aktiviert, erscheint das Lesezeichen automatisch auf der Schnellwahlseite beim Öffnen eines neuen Tabs. Diese Schnellwahlseite kann auch anstatt der Midori-FAQ beim Start des Browsers angezeigt werden. Dazu im Menü unter Bearbeiten/Einstellungen auf der Registerkarte Programmstart im Listenfeld Beim Starten von Midori die Option Schnellwahl anzeigen aktivieren. Mit den Tasten [H], [J], [K] und [L] navigiert man auf einer Website schnell und ohne Maus. Diese Funktion ist aus dem Linux-Editor vim übernommen worden. Wird bei vielen geöffneten Tabs der Platz auf der Tableiste knapp, lässt sich mit einem Rechtsklick auf einen Tab und Nur Reitersymbol anzeigen Platz sparen. Wegen der begrenzten Ressourcen des Raspberry Pi sollten immer nur möglichst wenige Tabs gleichzeitig geöffnet sein. Die gedrückte [Umschalt]-Taste bei Neu laden in der Adressleiste lädt eine Webseite wirklich neu und übergeht den Cache. Alternativ die Tastenkombination [Strg]+[Umschalt]+[R] drücken. Der Midori-Browser bietet die Möglichkeit, mehrere Suchmaschinen zu integrieren. Diese können über Tastenkürzel direkt in der Adressleiste aufgerufen werden. Über Suchmaschinen verwalten nach einem Klick auf das Symbol links im Suchfeld lassen sich die Suchmaschinen festlegen. Tipp Bei Wikipedia den Eintrag auf de.wikipedia.org ändern. Einige Webseiten zeigen Probleme beim Besuch mit dem Midori-Browser. In solchen Fällen kann Midori dem Server einen anderen Browser vorgaukeln. Im Menü unter Einstellungen auf der Registerkarte Netzwerk im Feld 5

53 Praxiseinsatz Ausgeben als den gewünschten Browser auswählen. Die Webseite useragentstring.com zeigt, welche Browserkennung der Browser überträgt. Die lokale Suchfunktion auf einer Webseite kann mit der Tastenkombination [Strg]+[F] oder mit der Taste [,] (Komma) gestartet werden. Im Stil von Firefox oder Google Chrome erscheint ganz rechts in der Symbolleiste ein Button, der das Browsermenü öffnet. Ein Rechtsklick auf diesen Button bietet die Möglichkeit, das klassische Menü wieder einzuschalten. Über den Menüpunkt Ansicht/Werkzeugleisten/Menüleiste lässt es sich erneut ausblenden. 54 Chrome-Browser Sync mit PC/Smartphone Der Open-Source-Browser Chromium entspricht technisch fast zu 00 % dem beliebten Google Chrome, den man vom PC und von Android kennt sudo apt-get update Chromium installieren: sudo apt-get install chromium-browser chromium-l0n Startmenü: Internet/Chromium-Webbrowser starten. Mit Google-Konto anmelden: oben rechts auf Anmelden klicken. Zuletzt geöffnete Seiten anderer Geräte anzeigen unten links auf Andere Geräte klicken. Lesezeichen: oben rechts auf das Menüsymbol und dann auf Lesezeichen klicken. Zeigt alle Lesezeichen anderer Geräte, [Umschalt]+[Strg]+[O] öffnet den Lesezeichenmanager. 53

54 Firefox synchronisiert mit Iceweasel 55 Firefox synchronisiert mit Iceweasel Wegen eines Markenstreits heißt Firefox auf allen Debianbasierten Linux-Systemen Iceweasel. Wikipedia liefert ausführliche Informationen: de.wikipedia.org/ wiki/iceweasel 3 4 Iceweasel installieren : sudo apt-get install iceweasel iceweasel-l0n-de Startmenü: Internet/ Iceweasel starten. Sync auf dem Raspberry Pi: Auf der Startseite unten auf das Sync-Symbol klicken, Firefox-Sync einrichten auswählen und im nächsten Fenster Ich habe ein Benutzerkonto wählen. Warten Logo Sync auf dem PC einrichten: Firefox-Einstellungen: Sync/Gerät verbinden wählen und auf dem Raspberry Pi angezeigte Buchstabengruppen eingeben. 56 Werbe-Pop-ups in Iceweasel blockieren Wie in Firefox ist auch in Iceweasel standardmäßig ein Pop-up-Blocker aktiv. Versucht eine Webseite, ein Pop-up zu öffnen, wird es automatisch blockiert, und oben unterhalb der Adresszeile wird eine Meldung angezeigt. Hier kann der Benutzer entscheiden, das Pop-up zuzulassen oder auch nicht. Ein Klick auf den Button Einstellungen in dieser Leiste blendet ein Menü ein, in dem das Pop-up angezeigt werden kann. 54

55 Praxiseinsatz 3 4 An dieser Stelle lassen sich auch die Einstellungen des Pop-up-Blockers ändern, sodass Popups von bestimmten Seiten immer erlaubt werden. Zusätzlich zur allgemeinen Blockierung von Pop-ups lassen sich in den Einstellungen unter Inhalt noch die JavaScript-Funktionen in Iceweasel einschränken. Einige zweifelhafte Webseiten verwenden JavaScript, um die Funktionalität des Browsers einzuschränken, indem sie das Kontextmenü ersetzen oder deaktivieren. 57 Standardbrowser ändern Die Anwendungsstartleiste ganz links unten auf dem Bildschirm enthält ein Weltkugelsymbol, das einen Webbrowser startet. Welcher das sein soll, lässt sich frei wählen: 3 sudo update-alternatives --config x-www-browser Ziffer des gewünschten Browsers eintippen. Das Weltkugelsymbol startet ab jetzt diesen Browser. 58 Dillo der schnellste Browser Neben dem Epiphany- und dem Netsurf-Browser ist bei Raspbian noch ein weiterer Browser namens Dillo im Startmenü unter Internet vorinstalliert. Dieser kann nur einfache HTML-Strukturen darstellen und keine Skripte, ist dafür aber im Seitenaufbau extrem schnell. Allerdings lassen sich viele moderne Webseiten damit nur unvollständig darstellen und oft auch nicht bedienen. Die Inkompatibilität zu aufwendigen Webtechniken bringt Dillo 55

56 Dillo der schnellste Browser auch einen Vorteil. Es werden kaum Werbebanner dargestellt, da die von Werbeservern verwendeten Techniken ebenfalls nicht unterstützt werden. Die aktuelle Dillo-Version mit erweiterter CSS-Unterstützung ist für Raspian (noch) nicht verfügbar. Dillo bietet eine sehr komfortable Zwischenablage zum Kopieren von Textpassagen. Ein mit der Maus markierter Text wird automatisch in die Zwischenablage übernommen. Ein Klick auf die mittlere Maustaste fügt den Text an der entsprechenden Position in einem Formularfeld oder der Adresszeile wieder ein. Ein Klick auf einen Link mit der mittleren Maustaste öffnet diesen in einem neuen Tab. Die Tabs werden ganz oben im Fenster sehr platzsparend angezeigt. Ein Klick mit der mittleren Maustaste auf einen Tab schließt diesen wieder. Dillo kann auch zum Durchsuchen lokaler Dateien verwendet werden. Dazu file:~ in die Adressleiste des Browsers eintippen. Downloads werden mit dem Linux-Tool wget heruntergeladen. Sie laufen weiter, auch wenn der Browser geschlossen wird. Ein Rechtsklick in eine Seite öffnet ein Kontextmenü, mit dem man den Seitenquelltext sowie die verwendeten Stylesheets und eventuelle HTML-Fehler anzeigen kann. Unten rechts in der Ecke werden mit einem roten Käfer HTML-Fehler auf einer Seite angezeigt. Mit einem Rechtsklick auf dieses Symbol lässt sich die Seite mit zwei bekannten HTML-Checksystemen prüfen. Mit einem Klick auf Tools in der Symbolleiste lassen sich verwendete CSS-Stylesheets ausschalten, um die reine HTML-Seite zu sehen. 56

57 Praxiseinsatz 59 CloudMe auf dem Raspberry Pi nutzen WebDAV, ein spezielles Datenübertragungsprotokoll, macht es möglich, Cloud-Speicherdienste in das Linux-Dateisystem einzubinden. Leider bieten die bekanntesten Anbieter von Cloud-Speicherplatz Dropbox und Google Drive keine Unterstützung für das WebDAV-Protokoll. CloudMe ( gehört zwar zu den weniger bekannten Anbietern von kostenlosem Cloud-Speicherplatz, hat aber den Vorteil, dass die WebDAV-Unterstützung problemlos ohne zusätzliche Software funktioniert. Außerdem kann man über einen Webbrowser auf CloudMe zugreifen. Bonus-Speicherplatz CloudMe bietet 3 GByte kostenlosen Speicherplatz an, bei Anmeldung über den folgenden Link erhalten Leser dieses Buchs 3,5 GByte kostenlos: goo.gl/mjjvm. 3 4 CloudMe-Benutzerkonto im Browser einrichten. In die Adresszeile des Dateimanagers davs://webdav.cloudme.com/ Benutzername eintragen. Das Wort Benutzername durch den persönlichen CloudMe-Benutzernamen ersetzen. Bei der ersten Anmeldung erscheint eine Abfrage nach CloudMe-Benutzername und Passwort. Über Lesezeichen/Zu Lesezeichen hinzufügen ein Lesezeichen im Dateimanager anlegen. Damit erscheint CloudMe auch nach einem Neustart des Raspberry Pi im linken Seitenfenster des Dateimanagers. Der Blue Folder Für Windows wird ein Synchronisationstool angeboten, das einen sogenannten»blue Folder«auf dem PC anlegt, der automatisch mit dem Cloudspeicher synchronisiert wird. Dieser ist unter CloudDrive/Documents/CloudMe zu finden. 60 mit Claws Mail Claws Mail ist ein besonders schlankes, aber auch komfortables -Programm, das mit den begrenzten Ressourcen des Raspberry Pi zurechtkommt. 57

58 mit Claws Mail 3 Paket installieren: sudo apt-get install claws-mail. Claws Mail erscheint im Startmenü unter Internet. Beim ersten Start Name und -Adresse einrichten. Im nächsten Schritt Name und Zugangsdaten für den Posteingangsserver eintragen. Claws Mail unterstützt sowohl POP3- wie auch IMAP-Server, bietet aber keine automatische Erkennung von Serverdaten, wie z. B. Thunderbird oder Windows Mail. POP3 oder IMAP? IMAP ist ein neueres Protokoll zum Zugriff auf einen Mailserver. Im Unterschied zum altbekannten POP3 verbleibt auf dem IMAP- Server eine zentrale Datenbank der s. Hier wird gespeichert, welche s bereits auf den lokalen Computer heruntergeladen wurden. So kann man von einem anderen Computer aus leichter auf die eigenen s zugreifen, auch wenn diese bereits einmal heruntergeladen wurden. Bei POP3 werden die s auf den lokalen Computer kopiert, und man arbeitet mit der Kopie, bei IMAP arbeitet man im Prinzip direkt auf dem Mailserver. IMAP hat deutliche Vorteile, bei langsamen Internetverbindungen sollte aber besser die POP3-Variante benutzt werden. Hier kann ein IMAP-Zugriff sehr lange dauern. Mailserver- und Benutzernamen bekannter Anbieter Anbieter Posteingang (POP3) Posteingang (IMAP) Postausgang Benutzername GMX pop.gmx.net imap.gmx.net mail.gmx.net -Adresse Web.de pop3.web.de imap.web.de smtp.web.de Name vor Google Mail, Gmail Outlook.com, Hotmail pop.gmail.com imap.gmail.com smtp.gmail.com -Adresse pop-mail.outlook. com imap-mail.outlook. com smtp-mail.outlook. com -Adresse Arcor pop3.arcor.de imap.arcor.de mail.arcor.de Name vor T-Online popmail.t-online.de secureimap.tonline.de securesmtp.tonline.de Name vor Eine wesentlich umfangreichere Liste mit Namen von POP3-/SMTP-Mailservern ist unter windowsacht.de/ -servernamen zu finden. Im nächsten Schritt die Daten des Postausgangsservers eintragen. Das Kontrollkästchen Benutze Authentifizierung muss bei den meisten Mailanbie- 58

59 Praxiseinsatz tern eingeschaltet sein. Die Felder für SMTP-Benutzername und SMTP- Kennwort können üblicherweise leer bleiben, da hier die gleichen Daten wie bei der Anmeldung am POP3-/IMAP-Server verwendet werden. Jetzt wird das -Konto in Claws Mail eingetragen. Bei IMAP-Servern wird automatisch eine Ordnerliste heruntergeladen und im linken Seitenfenster von Claws Mail angezeigt. Über den Menüpunkt Konfiguration/Konten bearbeiten lassen sich jederzeit weitere Mailkonten hinzufügen und auch die Einstellungen vorhandener Konten bearbeiten. 6 Gmail in Claws Mail nutzen Gmail (Google Mail) bietet unter den kostenlosen -Diensten die meisten Funktionen und auch einen Zugriff per IMAP, den andere Anbieter oft nur ihren zahlenden Kunden zur Verfügung stellen. Allerdings verhält sich Gmail in mancher Hinsicht etwas anders als andere Mailserver, daher ist ein wenig zusätzlicher Konfigurationsaufwand nötig. 3 POP3-/IMAP-Zugang in den Einstellungen bei mail.google.com freischalten. Klick auf das Zahnrad oben rechts, IMAP aktivieren. Diese Einstellung kann man auch auf dem PC vornehmen, da die Browser auf dem Raspberry Pi Gmail nur begrenzt unterstützen. Außerdem muss für Claws Mail bei lesssecureapps der Zugriff durch weniger sichere Apps im eigenen Google- Konto aktiviert werden. Neues IMAP4-Mailkonto in Claws Mail mit folgenden Daten anlegen: IMAP-Daten für Google Mail Protokoll Server zum Empfangen SMTP-Server (Senden) Benutzer-ID Kennwort IMAP4 imap.gmail.com smtp.gmail.com Gmail-Adresse Gmail-Passwort 59

60 Gmail in Claws Mail nutzen Im Bereich Empfangen bei Authentifizierungsverfahren die Option Automatisch wählen und im Feld IMAP Serververzeichnis den Namen [Google Mail] eintragen. Unten das Kontrollkästchen Abrufen überprüft dieses Konto auf neue Nachrichten einschalten. Vor jedem Wechsel auf eine andere Seite des Konfigurationsdialogs die Änderungen mit einem Klick auf Anwenden bestätigen. Im Bereich Senden den Schalter SMTP-Authentifizierung (SMTP AUTH) aktivieren und bei Authentifizierungsverfahren wieder die Option Automatisch wählen. Die Felder Benutzer-ID und Kennwort leer lassen. 60

61 Praxiseinsatz 7 Im Bereich SSL die beiden Optionen SSL für IMAP-Verbindung verwenden und SSL für SMTP-Verbindung verwenden einschalten. Das Kontrollkästchen Nicht-blockierendes SSL verwenden muss ausgeschaltet sein Im Bereich Erweitert prüfen, ob die Ports 465 für SMTP und 993 für IMAP eingetragen sind. Ist das nicht der Fall, die Kontrollkästchen einschalten und die Ports von Hand eintragen. Nachdem alle diese Einstellungen vorgenommen wurden, oben auf Abrufen klicken, um die Ordner und s vom IMAP-Server abzurufen. In der Ordnerliste erscheinen von Claws Mail standardmäßig angelegte Ordner sowie auch die Ordner, die Google Mail mitbringt. So gibt es einen Ordner Sent von Claws Mail und im Ordner [Google Mail] einen weiteren Ordner Gesendet. Das Gleiche gilt für Drafts und Entwürfe sowie Trash und Papierkorb. Damit die Mails in der Weboberfläche von Gmail auch richtig eingeordnet werden, muss man die Gmail-Ordner den Systemordnern richtig zuordnen. Dazu in der Ordnerliste unter [Google Mail] den Ordner Gesendet markieren, mit der rechten Maustaste darauf klicken und im Kontextmenü Eigenschaften wählen. Im nächsten Dialogfeld unter Ordnertyp die Option Gesendet wählen und mit OK bestätigen. Der Ordner bekommt in der Liste das Symbol für gesendete Nachrichten. Mit der rechten Maustaste auf den standardmäßig angelegten Ordner Sent klicken und ihn löschen. 6

62 Icedove Thunderbird für Linux 3 Auf die gleiche Weise die Ordner Entwürfe und Papierkorb unterhalb von [Google Mail] als die entsprechenden Systemordner definieren. Anschließend die automatisch von Claws Mail angelegten Ordner Drafts und Trash löschen. 6 Icedove Thunderbird für Linux Das -Programm Thunderbird heißt bei Debian Linux Icedove. Der Grund ist der gleiche Namensstreit, der auch Firefox in Iceweasel verwandelte. 3 Paket installieren: sudo apt-get install icedove icedove-l0n-de Icedove erscheint im Startmenü unter Internet. Beim ersten Start erscheint automatisch ein Assistent zum Anlegen eines neuen -Kontos. Der erste Schritt kann einfach übersprungen werden, hier wirbt ein -Anbieter um Neukunden. 4 Zur Verwendung einer vorhandenen -Adresse in Icedove brauchen nur Adresse und Passwort eingegeben zu werden. In den meisten Fällen findet Icedove die Serverdaten automatisch und richtet das Konto ein. Hoher Ressourcenbedarf Icedove benötigt deutlich mehr Systemressourcen als Claws Mail, eignet sich also nicht dafür, auf dem Raspberry Pi viele -Konten oder IMAP- Konten mit sehr vielen s zu nutzen. 6

63 Praxiseinsatz 63 Raspbmc Media Center einrichten Die Software Raspbmc ( macht aus dem Raspberry Pi ein komfortables Mediacenter für das Wohnzimmer Raspbmc wird über NOOBS als eigenes Betriebssystem installiert, nicht als Programm auf einem bestehenden Raspbian. Raspbmc ist seit NOOBS.3.0 nicht mehr im NOOBS-Archiv enthalten, steht aber im Installationsdialog weiterhin zur Verfügung. Während der Installation mit NOOBS muss der Rasp berry Pi eine Internetverbindung haben, über die Raspbmc automatisch heruntergeladen wird. Nach einem Neustart werden automatisch Updates heruntergeladen und installiert. Nach der Installation auf der Raspbmc-Oberfläche unter Appearance/International Deutsch auswählen. Im Hauptmenü unter System/System die Audioausgabe einstellen. Unter Videos und Musik neue Datenquellen hinzufügen. Das können Linux- Verzeichnisse, externe Speichermedien oder Netzlaufwerke sein. Für die einzelnen Datenquellen können beliebige Klartextnamen vergeben werden. Musik oder Video auswählen und abspielen. 63

64 Nur Ton, kein Bild was nun? 64 Nur Ton, kein Bild was nun? Wird bei einem Video nur der Ton abgespielt, aber kein Bild, liegt das an fehlenden Codecs in Raspbmc. Die Codecs zum Abspielen von MPEG- und VC-- Videos sind lizenzpflichtig und können deshalb von der Raspberry Pi-Stiftung nicht kostenlos zur Verfügung gestellt werden. Die notwendigen Lizenzschlüssel werden gegen eine geringe Gebühr bei swag.raspberrypi.org angeboten. Die Lizenz gilt immer für einen Raspberry Pi mit jeder darauf verwendeten Software. Um den Lizenzschlüssel zu erhalten, benötigt man die Seriennummer des Raspberry Pi. Diese steht in Raspbmc unter System/Systeminfo/Hardware. Dieser Lizenzschlüssel muss anschließend unter Programme/Raspbmc Settings auf der Seite System Configuration eingegeben werden. 65 Webradio in Raspbmc Bei den Raspbmc Musik-Add-ons finden sich diverse Add-ons einzelner Webradiostationen. Das Add-on Radio des Onlineportals radio.de bietet eine Auswahl verschiedenster Sender in einem Add-on. 64

65 Praxiseinsatz 3 Hier kann man nach Thema, Sprache, Musikrichtung oder einfach einen Lokalsender aus der Umgebung suchen. Ein Rechtsklick auf ein Senderlogo bietet die Möglichkeit, diesen Sender zur Liste Meine Sender hinzuzufügen, um ihn schneller aufrufen zu können. 66 YouTube und Mediatheken in Raspbmc nutzen 65

66 Fotos im Raspbmc-Mediacenter Raspbmc bietet über spezielle Add-ons die Möglichkeit, Mediatheken der Fernsehsender wie auch YouTube einzubinden und zu nutzen. Unter Add-ons im Bereich Videos ist eine große Auswahl solcher Add-ons zu finden. Diese müssen einmal installiert werden und bieten dann Zugriff auf die jeweils aktuellen online verfügbaren Videos und Streams der jeweiligen Mediathek. Das YouTube-Add-on ist personalisierbar. Nach Eingabe des eigenen You- Tube-Benutzernamens sind hier die eigenen Abonnements, selbst hochgeladene Videos und eigene Wiedergabelisten sowie Vorschläge anhand der zuletzt gesehenen und mit»gefällt mir«markierten Videos zu finden. 67 Fotos im Raspbmc-Mediacenter Raspbmc eignet sich nicht nur für Musik und Videos, sondern auch sehr gut zum Betrachten von Fotos. Hier gilt das Gleiche wie bei Musik und Videos, als Erstes müssen die Verzeichnisse oder Laufwerke angemeldet werden, in denen die Bilder zu finden sind. Anschließend können diese Verzeichnisse durchgeblättert werden. Gerade bei Bilderverzeichnissen lohnt sich die Thumbnail-Ansicht der Verzeichnisse, da die Dateinamen oft wenig aussagekräftig sind. Dazu mit der 66

67 Praxiseinsatz Maus an den linken Bildschirmrand fahren und im Seitenpanel die Ansicht von Liste auf Thumbnail umschalten. Hier werden auch verschiedene Sortieroptionen angeboten, die sich mit einfachen Klicks einstellen lassen Der Klick auf ein Bild zeigt dieses im Vollbildformat an. Ein weiterer Klick ins Bild startet eine Diashow. Im Seitenpanel lässt sich einstellen, ob die Bildreihenfolge zufällig oder geordnet sein soll und ob die Bilder in Unterverzeichnissen rekursiv mit abgespielt werden. Ein einfacher Mausklick, und die Diashow legt eine Pause ein, ein Rechtsklick beendet die Diashow und springt zurück zur Bilderübersicht. Raspbmc zeigt nicht nur Bilder auf lokalen Speichermedien, sondern bietet auch die Möglichkeit, direkt auf Onlinefotoalben bei Picasa oder Flickr zuzugreifen. Dazu werden im Bereich Bilder zusätzliche Add-ons angeboten, die optional installiert werden können. Nach persönlicher Anmeldung zeigen diese Add-ons die eigenen Fotos in Raspbmc an. Autorisierung bei Flickr Flickr verlangt von jeder Anwendung, die auf die eigenen Fotos zugreifen möchte, eine spezielle Autorisierung. Dazu zeigt xbmc beim ersten Start des Add-ons einen Link an. Dieser muss auf einem PC oder Smartphone oder im Raspbmc-eigenen Browser (unter Programme) geöffnet werden. Dort wird ein Zahlencode angezeigt. Dieser muss dann in Raspbmc eingetragen werden, um das Add-on für Flickr zu autorisieren. 68 Wetter im Raspbmc-Mediacenter Auf der Seite Wetter zeigt Raspbmc einen Wetterbericht mit Vorhersage für die nächsten Tage an. Die Wetterseite versucht anhand der eigenen IP-Adresse, den aktuellen Standort zu erkennen. Da dies je nach Internetprovider mehr oder weniger ungenau ist, kann im Seitenpanel unter Einstellungen der wirkliche Standort angegeben werden. Bei den Add-ons sind neben Yahoo! noch weitere Wetteranbieter zu finden. 67

68 Raspbmc per WLAN nutzen 69 Raspbmc per WLAN nutzen Die Installation von Raspbmc läuft nur über ein Netzwerkkabel. Hier hat man als Benutzer keine Möglichkeit, die Daten eines WLAN einzugeben. Später kann eine WLAN-Verbindung zur Datenübertragung genutzt werden. 3 Das Konfigurationstool Raspbmc Settings im Hauptmenü unter Programme beinhaltet unter anderem die Netzwerkkonfiguration. Um WLAN zu verwenden, hier im Bereich Network Configuration von Wired Network auf Wireless (WIFI) Network umschalten. Ganz unten auf der Seite dann die Zugangsdaten für den verwendeten WLAN-Router eingeben. Wer, z. B. um von anderen Geräten auf das Raspbmc-Mediacenter zuzugreifen, eine feste IP-Adresse im LAN braucht, schaltet weiter oben auf dieser Konfigurationsseite Use DHCP aus. 70 Fernbedienung des Fernsehers über HDMI- CEC nutzen Die Bedienung des Raspbmc-Mediacenters mit Tastatur und Maus auf dem Sofa vor dem Fernseher ist nicht wirklich komfortabel. Zwar unterstützt das System auch drahtlose Fernbedienungen, aber nur wenige Typen (siehe bit. ly/zxwim). Einfacher ist es, direkt die Fernbedienung des Fernsehers oder HDMI-Monitors zu verwenden. Der Trick heißt CEC (Consumer Electronics Control) und ist ein einfacher Datenbus auf einer zusätzlichen Leitung im HDMI-Kabel. Darüber werden die Signale der Fernbedienung an den Raspberry Pi übertragen. Der verwendete Monitor und auch das Kabel müssen CEC unterstützen. Hersteller von Fernsehern und Monitoren vermarkten CEC oft unter eigenen Markennamen wie T-Link, EasyLink, EZ-Sync, Simplink, Digital Link HD, Net- Command for HDMI, RIHD, Viera Link, Kuro Link, Anynet+, Aquos Link, BRA- VIA Sync, Regza-Link, TechniLink, CSTLink, FUN-Link oder Digi-Link. Alternativ zur Fernbedienung lässt sich das Raspbmc-Mediacenter mit dem Smartphone per WLAN steuern. 68

69 Praxiseinsatz 7 Smartphone als Fernbedienung für Raspbmc Die App Official XBMC Remote für Android aus dem Google Play Store oder über den QR-Code installieren. 3 4 Damit die App den Raspberry Pi im WLAN findet und auch Zugriff darauf bekommt, muss in den Einstellungen unter Dienste/Webserver die Steuerung über HTTP zugelassen sein. Weiter unten unter Fernsteuerung muss die Option Steuerung über externe Programme zulassen eingeschaltet sein. Innerhalb der App über das Menü Settings/Manage XBMC Hosts den Raspberry Pi als Medienserver eintragen. Der Name ist frei wählbar, die IP-Adresse steht in Raspbmc unter System/Systeminfo. Die App Official XBMC Remote bietet zwei verschiedene Methoden zur Steuerung des Mediacenters: Der Listenmodus zeigt sämtliche Musik sowie alle Filme und Bilder in übersichtlichen Listen an. Hier wählt man auf dem Smartphone die gewünschten Titel aus, die dann auf dem Raspberry Pi abgespielt werden. In diesem Modus braucht man den Bildschirm des xbmc nicht zu sehen. Der Fernsteuerungsmodus simuliert eine typische Mediacenter-Fernbedienung, mit der sich die Bildschirmoberfläche des xbmc interaktiv steuern lässt. 69

70 Raspbmc im Browser auf einem anderen PC fernsteuern Die App bietet einige interessante Funktionen, die auf den ersten Blick nicht auffallen: Die Lautstärke des xbmc lässt sich mit den Lautstärketasten auf dem Smartphone regeln. In der Listenansicht kann mit der Bildschirmtastatur des Smartphones schnell zu einem gewünschten Eintrag gesprungen werden. Ein langer Druck auf die Menütaste blendet die Bildschirmtastatur ein. In den Einstellungen wählbar: Ein Symbol in der Statusleiste zeigt Infos zum gerade laufenden Titel an, wenn zwischendurch auf dem Smartphone eine andere App läuft. In den Einstellungen wählbar: eingehende SMS auf dem xbmc-bildschirm anzeigen. In den Einstellungen wählbar: Eingehende Anrufe auf dem xbmc-bildschirm anzeigen und das laufende Video pausieren. In den Einstellungen wählbar: Bildschirmsperre im Fernbedienungsmodus oder auch immer abschalten. 7 Raspbmc im Browser auf einem anderen PC fernsteuern Ist am Raspberry Pi mit Raspbmc keine Tastatur oder Maus angeschlossen oder steht er nicht in Sichtweite, lässt sich das Mediencenter auch über den Browser eines anderen PCs im LAN fernsteuern. Im Browser auf dem PC die IP-Adresse des Raspberry Pi eingeben. Dabei darauf achten, das http-protokoll zu verwenden und nicht https. Manche Webbrowser schalten bei der Eingabe von IP-Adressen standardmäßig auf https um. Die IP-Adresse des Raspberry Pi ist in Raspbmc unter System/Systeminfo zu finden. 70

71 Praxiseinsatz 73 ASCII-Art ASCII-Art ist eine Kunstform, die in den Anfangszeiten der Computer entstand. Hier werden Bilder aus Buchstaben dargestellt. Voraussetzung ist natürlich eine nicht proportionale Schriftart, damit Buchstaben auch wirklich untereinanderstehen. Das Paket caca-utils enthält verschiedene Programme zur Darstellung von ASCII-Art: sudo apt-get install caca-utils ASCII-Art-Programme cacaclock zeigt eine Digitaluhr in ASCII-Art. 7

72 ASCII-Art cacafire zeigt ein animiertes Kaminfeuer in ASCII-Art. cacademo zeigt weitere animierte Grafiken in ASCII-Art. 7

73 Praxiseinsatz cacaview setzt ein beliebiges Bild in ASCII-Art um (zum Vergleich das gleiche Bild im Bildbetrachter). 73

74 Pi Presents für Präsentationen toilet erzeugt einen ASCII-Art Banner aus einem beliebigen Text. Dabei sind verschiedene Effekte, Farben und Schriftarten möglich. toilet -h zeigt alle Parameter. Der Text kann mit dem Parameter -E html als HTML ausgegeben werden, um ihn in Webseiten einzubauen. 74 Pi Presents für Präsentationen Pi Presents ist ein Präsentationstool für interaktive Audio-, Video- und Diashows, das unter anderem in Museen und Besucherzentren verwendet wird, aber auch für private Shows einsetzbar ist Python-Pakete installieren: sudo apt-get update sudo apt-get install python-imaging python-imaging-tk x- xserver-utils unclutter mplayer uzbl Ins Home-Verzeichnis des Benutzers pi springen: cd Pexpect-Bibliothek herunterladen und installieren: wget tar xzf pexpect-.3.tar.gz cd pexpect-.3 sudo python./setup.py install pi springen: cd Pi Presents herunterladen und installieren: wget -O tar xz 74

75 Praxiseinsatz Verzeichnis umbenennen: mv KenT-pipresents--next-879c0 pipresents Möglicherweise hat dieses Verzeichnis durch ein Update inzwischen einen anderen Namen. Beispielpräsentation herunterladen: wget tarball/master -O tar xz Dateien verschieben: mv KenT-pipresents-next-examples-f0d7b/pp_home./pp_home Möglicherweise hat dieses Verzeichnis durch ein Update inzwischen einen anderen Namen. Interaktive Beispielshow starten: python./pipresents/pipresents.py -f -p pp_mediashow_p 75 Eigene Präsentationen mit Pi Presents erstellen Pi Presents steuert die Shows über Konfigurationsdateien im reinen Textformat. Diese können mit jedem Texteditor, wie z. B. Leafpad, bearbeitet werden. Pi Presents liefert zusätzlich einen komfortablen Editor mit, der nichts anderes tut, als diese Konfigurationsdateien unter einer übersichtli- 75

76 Eigene Präsentationen mit Pi Presents erstellen chen Oberfläche zu bearbeiten. So braucht man sich die Namen der einzelnen Parameter nicht zu merken. Mit diesem Editor lassen sich vorhandene Shows bearbeiten und neue erstellen. Den Pi Presents-Editor in einem zweiten LX Terminal parallel zu Pi Presents starten: python./pipresents/pp_editor.py Eines der Beispielprofile über den Menüpunkt Profile/Open öffnen. Das Fenster Shows oben links zeigt die im gewählten Profil verfügbaren Shows. Das Fenster Medialists unten links zeigt die Medienlisten dieses Profils. Das rechte Fenster Tracks in Selected Medialist zeigt die Titel der im Fenster Medialists ausgewählten Medienliste. 3 Show markieren und auf Edit Show klicken. Hier lassen sich alle Parameter bearbeiten. Deutsches Handbuch Für Pi Presents existiert ein ausführliches deutschsprachiges Handbuch, das allerdings die Installation nicht beschreibt. Unter findet man in der Rubrik Software den Link zu aktuellsten Version dieses Handbuchs. 76

77 Praxiseinsatz 76 Minecraft Minecraft, das beliebte Weltenbauerspiel, ist in der aktuellen Raspbian-Version bereits vorinstalliert. In Minecraft erkundet man eine schier endlose Welt, die aus einfachen Würfeln erbaut ist. Die Blöcke bestehen aus verschiedenen Materialien und können abgebaut werden, um die Rohstoffe zu verarbeiten und daraus andere Dinge zu bauen. Minecraft ermöglicht die Anbindung an verschiedene Programmiersprachen, um das Spiel zu erweitern, eigene Zusatzmodule zu schreiben oder einfach um spielerisch in die Programmierung einzusteigen, was auch das ursprüngliche Ziel der Entwickler des Raspberry Pi war. Wer Minecraft kennt, wird sich in der Pi Edition schnell zurechtfinden. Die Steuerung des Spiels und die Bewegungen in der Spielwelt laufen sehr ähnlich. Mit der Maus dreht man sich, ohne eine Maustaste zu drücken, um die eigene Achse und neigt den Blick nach oben oder unten. Das Spiel reagiert sehr schnell, man muss also aufpassen, dass man sich beim Drehen nicht»überschlägt«. Mit vier auch aus anderen Spielen bekannten Buchstabentasten bewegt man sich: mit [W] nach vorne, mit [S] nach hinten, mit [A] nach links und mit [D] nach rechts. Bei Stufen im Gelände steigt man während der Bewegung automatisch nach oben oder unten. Mit der [Leertaste] kann man in die Höhe springen. Drückt man die [Leertaste] zweimal kurz hintereinander, wird auf den Flugmodus umgeschaltet. In diesem Modus schwebt man und ist nicht mehr an den Boden gebunden. Im Flugmodus steigt man durch längeres Drücken der [Leertaste] weiter nach oben. 77

78 Schnelles 3-D-Spiel mit Pinguin Umgekehrt duckt man sich mit der linken [Umschalt]-Taste etwas nach unten. Im Flugmodus verringert man mit dieser Taste die Flughöhe. Die Taste [E] öffnet das Inventar, wo jede Menge unterschiedliche Blöcke zum Bau zur Verfügung stehen. Acht verschiedene Blöcke oder Werkzeuge sind in der Inventarleiste am unteren Bildschirmrand jederzeit verfügbar. Hier wählt man mit den Tasten [] bis [8] oder mit dem Mausrad das gewünschte Objekt aus. Ein Klick mit der linken Maustaste entfernt den angeklickten Block, ein Klick mit der rechten Maustaste platziert einen Block des gewählten Typs an der angeklickten Position. Die [Esc]-Taste blendet ein Menü ein, in dem man das Spiel verlassen oder auch auf die Sicht eines außen stehenden Betrachters wechseln kann. Die [Tab]-Taste befreit die Maus aus dem Minecraft-Fenster, wenn man zwischendurch in ein anderes Programm wechseln möchte. Wenn die Steuerung nicht reagiert Es kann immer wieder vorkommen, dass das Spiel auf Mausbewegungen nicht richtig oder viel zu schnell reagiert und man ständig nach unten oder oben blickt. Bei solchen Problemen einfach die [Tab]-Taste drücken, die Maus kurz aus dem Minecraft-Fenster herausbewegen und dann mit [Tab] wieder zurück ins Spiel schalten. 77 Schnelles 3-D-Spiel mit Pinguin In einigen Raspbian-Versionen kommt versteckt ein einfaches 3-D-Spiel mit, das in keinem Menü auftaucht und die Grafikfähigkeiten des Raspberry Pi in eindrucksvoller Geschwindigkeit zeigt. penguinspuzzle Die Steuerung erfolgt ausschließlich über die Pfeiltasten. Ziel ist es, den Pinguin auf das rote Feld zu bekommen. Am Ende kommt man mit der [Enter]- Taste zum nächsten Level. Auf späteren Leveln müssen im Sokoban-Stil Eisblöcke verschoben werden. 78

79 Praxiseinsatz 78 The little crane that could Der beliebte, von Android und iphone bekannte Baggersimulator ist auch im Pi Store erhältlich. Spiel über den Pi Store installieren. Spiel über den Pi Store starten. Mit Tastatur und Maus steuert man sowohl den Bagger selbst wie auch die Kamera, die die ganze Szene betrachtet. Die erste, recht einfache Aufgabe macht den Spieler mit der Steuerung vertraut: Maus horizontal bei gedrückter Maustaste ziehen Maus vertikal bei gedrückter Maustaste ziehen Tasten [½] und [¼] oder Gashebel Tasten [æ] und [Æ] oder Lenkrad Rotate Elevate Bend Extend Grapple Kamera um einen Zielpunkt schwenken. Kamera neigen. Vorwärts und rückwärts fahren. Nach links oder rechts lenken. Kran drehen. Kran anheben oder senken. Kranausleger knicken. Kranausleger ausfahren. Greifer öffnen und schließen. 79

80 Alte Debian-Spiele auf dem Raspberry Pi 79 Alte Debian-Spiele auf dem Raspberry Pi Das Fanprojekt The Debian Wheezy Game Challenge (bit.ly/wheezy-gamechallenge) prüft alte Debian-Linux-Spiele auf ihre Kompatibilität mit Raspbian Wheezy auf dem Raspberry Pi. Leider sieht es aus, als hätten die Betreiber dieser Seite irgendwann die Lust verloren. Die Spieleliste mit den Anfangsbuchstaben A und B ist noch recht umfangreich, danach wird es dünn. 3 Zu jedem Spiel werden Installationsinformationen mitgeliefert. Viele der Spiele tragen sich selbstständig ins Startmenü unter Spiele ein, sodass der Programmstart ganz einfach ist. Besonders die älteren Klassiker laufen auf dem Raspberry Pi sehr flüssig. Die beliebten Kartenspielklassiker der Serie Ace of Penguins werden alle zusammen als ein einziges Paket auf dem Raspberry Pi installiert: sudo apt-get install ace-ofpenguins Und einen Minesweeper-Klon gibt es natürlich auch: sudo apt-get install xbomb 80 Textadventures interaktive Fiktion Textadventures waren in der Zeit der ersten Home-Computer eine beliebte Art von Spielen. Seit Jahren sind keine solchen Spiele mehr kommerziell erschienen, die Fangemeinde ist aber immer noch riesig. In einem Textadventure liest man eine Geschichte und entscheidet an wichtigen Punkten selbst, wie es weitergehen soll. Heute werden diese Textadventures meist nicht mehr als Spiele bezeichnet, sondern als»interactive Fiction«oder interaktive Romane. Im Laufe der Zeit haben sich neben proprietären Spielsystemen verschiedene Beschreibungssprachen entwickelt, in denen Autoren ihre Geschichten auch heute noch schreiben. Um interaktive Fiktion, die nicht an eine bestimmte Plattform gebunden ist, spielen zu können, benötigt man einen Interpreter für die jeweilige Beschreibungssprache. Gargoyle ist ein solcher Interpreter für den Raspberry Pi, der neben dem bekannten Z-Code auch 80

81 Praxiseinsatz noch diverse andere Beschreibungssprachen wie TADS, Blorb und agx unterstützt. 3 4 Interpreter gargoyle-free installieren: sudo apt-get install gargoyle-free Hier gibt es die passenden Geschichten: und wurb.com/if/index. Unsere Linksammlung enthält noch weitere Links zu Textadventures. Die heruntergeladenen Textadventures in das Home-Verzeichnis /home/pi kopieren und Gargoyle aus dem Startmenü heraus unter Spiele starten. Jedes Textadventure ist anders. Manchmal werden die nächsten möglichen Schritte durch einfache Zahlen in einem simplen Menü ausgewählt, in anderen Spielen muss man einfach schreiben, was man als Nächstes tun möchte. Im Zweifelsfall hilft die eingebaute Hilfefunktion in den Spielen weiter. 8 Klassische Point-and-Click-Adventures Jeder, der in den 80er- und 90er-Jahren schon einen Computer hatte, kennt die Spieleklassiker Monkey Island, Indiana Jones und Zak McKraken. Diese Spiele lassen sich jetzt auf dem Rasp berry Pi neu erleben. ScummVM ermöglicht es, die klassischen Point-and-Click-Abenteuer von LucasArts und Sierra auf Computern zu spielen, für die sie nie entwickelt wurden. Dabei stellt ScummVM (www. scummvm.org) lediglich die Plattform zur Verfügung. Die Spiele werden von den Originaldisketten oder CDs von damals installiert. 8

82 Python Games ScummVM installieren: sudo apt-get install scummvm ScummVM trägt sich bei der Installation automatisch im Startmenü unter Spiele ein. Vorhandene Spiele in das Verzeichnis /home/pi/scummvm kopieren. Zwei bekannte Klassiker werden kostenlos in einem für ScummVM vorbereiteten Format zur Installation angeboten: sudo apt-get install beneath-a-steel-sky sudo apt-get install flight-of-the-amazon-queen ScummVM starten und Verzeichnis der Spieledateien in der Oberfläche hinzufügen. Die per apt-get installierten Spiele befinden sich in Unterverzeichnissen von /usr/share/scummvm. Spiel auswählen und starten. 8 Python Games Raspbian liefert ein paar unterhaltsame Spiele für zwischendurch mit. Diese verbergen sich hinter dem Desktopsymbol Python Games und sind eigentlich als Programmierbeispiele gedacht, aber auch durchaus spielbar. Doppelklick auf das Symbol Python Games. Ein Starten der Python-Shell ist nicht nötig. Audioausgabe wählen. Bei Computermonitoren mit DVI-Anschluss, die am HDMI-Ausgang angeschlossen sind, muss Force Headphones gewählt wer- 8

83 Praxiseinsatz den, da das Audiosignal nicht über das DVI-Kabel übertragen wird. 3 Spiel auswählen und starten. Die Spiele sind nicht nur nett zu spielen, sondern liegen auch im Quelltext unter /home/pi/python_games vor, um damit erweiterte Programmiertechniken mit der PyGame-Entwicklungsbibliothek zu erlernen. Natürlich kann man so die Spiele auch selbst verbessern oder anpassen. 83 Atari800-Emulator Der Atari800-Emulator aus dem Pi Store emuliert die ehemaligen Home- Computer der Serien Atari 400, 800, 600XL, 800XL, 30XE und 500 aus den frühen 80er-Jahren. Der in diesen Computern verbaute, damals sehr bekannte Prozessor 650 wird zyklusgenau emuliert. Nach Angaben der Entwickler werden selbst undokumentierte Befehle unterstützt Atari800-Emulator über den Pi Store installieren. Atari800-Emulator über den Pi Store starten. Der Raspberry Pi startet neu ohne grafische Oberfläche direkt in den Emulator. Der Atari800-Emulator startet mit einem Originaltestbildschirm. Alternativ kann der Emulator im Konfigurationsmenü, das mit der Taste [F] aufgerufen wird, auch so eingestellt werden, dass er sofort in das Atari-Basic bootet. Der Emulator lässt sich in Atari-Basic programmieren; alternativ startet man direkt mit der Tastenkombination [Alt]+[R] ein Atari-Programm, das im ATR-Format auf dem Raspberry Pi vorliegen muss. Der Emulator verwendet das Verzeichnis /usr/local/bin/indiecity/installedapps/atari800/ 83

84 Atari800-Emulator Full. Da, während der Emulator läuft, kein SSH-Server zur Verfügung steht, müssen die Spiele im normalen Betrieb auf den Raspberry Pi kopiert werden, und dieser muss anschließend mit dem Emulator neu gestartet werden. Atari-Software Passende Atari-Software von damals gibt es unter anderem bei und Der Emulator wird über Funktionstasten gesteuert, die die Sondertasten des Originalgeräts abbilden: Emulator-Taste [F] [F3] [F4] [F5] [Umschalt]+[F5] Original-Atari-Taste Option Select Start Reset (Warmstart) Reboot (Kaltstart) Spezielle Emulatorfunktionen werden über Tastenkombinationen aufgerufen: Tastenkombination [F] [Alt]+[R] [Alt]+[D] [Alt]+[C] [Alt]+[T] [Alt]+[Y] [Alt]+[O] [Alt]+[W] [Alt]+[S] [Alt]+[L] [F8] [F9] [F0] [Umschalt]+[F0] [Esc] [Alt]+[A] Funktion Emulator-Konfigurationsmenü Atari-Programm ausführen Disc-Verwaltung Cartridge-Verwaltung Tape-Verwaltung Systemeinstellungen Soundeinstellungen Soundaufzeichnung Start/Stopp Status sichern Status laden Emulator-Monitor aufrufen Emulator beenden, Raspbian-Desktop starten Screenshot (im PCX-Format) Interlaced Screenshot (im PCX-Format) aus dem Menü zurück zum emulierten Atari Emulator-Info-Bildschirm 84

85 Praxiseinsatz 84 Sinclair ZX Spectrum-Emulator Der Emulator Unreal Speccy Portable emuliert den Sinclair ZX Spectrum von Den Emulator Unreal Speccy Portable über den Pi Store installieren. Alte Sinclair-Programmdateien und Spiele in den Formaten sna, z80, rzx, tap, tzx, csw, trd, scl, fdi, zip vor dem Start des Emulators ins Home-Verzeichnis kopieren. Unreal Speccy Portable über den Pi Store starten. Der Raspberry Pi startet neu ohne grafische Oberfläche direkt in den Emulator. Der ZX Spectrum-Emulator startet mit einem Originalmenübildschirm, der nur mit der Tastatur bedient werden kann. Der Emulator wird über Funktionstasten gesteuert, die die Sondertasten des Originalgeräts abbilden: Emulator-Taste [Esc] [F] [F7] [F] [F3] [F5] Original-ZX Spectrum-Taste Menü zum Öffnen von Spieledateien Reset Pause Quick Save Quick Load Start/Stop Tape (der ZX Spectrum verwendete einen Kassettenrekorder als Datenspeicher sogar das Bildschirmblinken beim Laden von Kassette wird im Emulator simuliert) Der ZX Spectrum hatte keine eigenen Tasten für Sonderzeichen, diese lagen alle über Mehrfachbelegung auf den Buchstaben- und Zahlentasten. Auch im Emulator müssen mathematische Operatoren und andere Sonderzeichen durch Kombination der Taste [Alt] mit einer Buchstabentaste eingegeben werden. Sinclair-Software Passende Sinclair-Software von damals gibt es unter anderem bei co.uk und oder bei 85

86 rpix86 PC DOS-Emulator 85 rpix86 PC DOS-Emulator Mit den ersten PCs, lange vor Windows, kamen auch die ersten Spiele, die heute Kultstatus haben. rpix86, das im Pi Store angeboten wird, emuliert auf dem Raspberry Pi einen PC der damaligen Zeit. Die emulierten Systemeigenschaften entsprechen einem durchschnittlichen PC aus den frühen 90er-Jahren Den rpix86-emulator über den Pi Store installieren. DOS-Spiele in Unterverzeichnisse von /usr/local/bin/indiecity/ InstalledApps/rpix86/Full kopieren. Während der Emulator läuft, ist keine SFTP-Verbindung mit dem Raspberry Pi möglich. Den rpix86-emulator über den Pi Store starten. Der Raspberry Pi startet neu ohne grafische Oberfläche direkt in den Emulator. Beim ersten Start erscheint eine Meldung, die dazu auffordert, dass der Kommandozeileninterpreter 4DOS heruntergeladen werden muss. Download und Installation erfolgen automatisch. Danach erscheint der altbekannte DOS-Prompt: C:>_ DOS hatte keinerlei grafische Oberfläche. Die Spiele müssen direkt über die Eingabe des Namens gestartet werden. Der Befehl exit, am DOS-Prompt eingegeben, verlässt den Emulator und startet den Raspberry Pi neu. 86 DOS-Dateinamen Beim Anlegen von Verzeichnissen und Dateien müssen die Begrenzungen für Dateinamen unter DOS beachtet werden. Alle Datei- und Verzeichnisnamen dürfen höchstens acht Zeichen lang sein und keine Leerzeichen oder Sonderzeichen enthalten, _ und sind erlaubt. DOS unterscheidet nicht zwischen Groß- und Kleinschreibung. In den Anfangszeiten wurden DOS-Dateinamen immer großgeschrieben. Dateinamen haben hinter dem eigentlichen Namen üblicherweise noch eine Erweiterung aus drei Buchstaben, durch einen Punkt vom Namen getrennt, die den Dateityp angibt. Bei Verzeichnisnamen fehlt diese Erweiterung üblicherweise.

87 Praxiseinsatz 86 Deutsche Tastatur im PC-Emulator Der in rpix86 verwendete Kommandozeileninterpreter 4DOS kennt auch den Befehl keyb gr nicht, mit dem man unter MS-DOS auf die deutsche Tastatur umstellen konnte. 3 4 Auf der Seite goo.gl/jguw die Datei mkeyb07.zip herunterladen. Zip-Archiv entpacken und die Datei MKEYBGR.EXE in das Hauptverzeichnis des Emulators /usr/local/bin/indiecity/installedapps/rpix86/full kopieren. Textdatei mit dem Namen AUTOEXEC.BAT im Hauptverzeichnis des Emulators erstellen, die nur eine Zeile mit folgendem Inhalt enthält: MKEYBGR.EXE rpix86-emulator über den Pi Store starten. Die Tastatur hat jetzt die deutsche Belegung. 87 rpix86 in einem Fenster auf dem Linux- Desktop Der Entwickler empfiehlt diese Methode zwar nicht, aber mit vielen Spielen funktioniert es, den rpix86-emulator in einem Fenster laufen zu lassen. Wurde der Kommandozeileninterpreter 4DOS bereits heruntergeladen, die Datei 4DOS.COM mit dem Dateimanager aus dem Hauptverzeichnis des Emulators /usr/local/bin/indiecity/installedapps/rpix86/ Full in das Home-Verzeichnis / home/pi kopieren. 87

88 RetroPie Sammlung von Emulatoren 3 4 Im Dateimanager im Verzeichnis /usr/local/ bin/indiecity/installedapps/rpix86/full per Doppelklick die Datei rpix86 starten. Dabei muss eine Abfrage zu ausführbaren Dateien bestätigt werden. Wurde der Kommandozeiletninterpreter 4DOS bis jetzt noch nicht heruntergeladen, erscheint eine Abfrage, aus der diese Datei direkt heruntergeladen und installiert werden kann. Im Unterschied zum normalen Start ist das Hauptverzeichnis der emulierten Festplatte C:\ jetzt das Home-Verzeichnis /home/pi. Hier müssen die Spiele in Unterverzeichnissen liegen. 88 RetroPie Sammlung von Emulatoren Das RetroPie-Projekt bringt eine weitere Sammlung von Emulatoren für alte Spielkonsolen auf den Raspberry Pi. Dazu wird ein spezielles Setup-Skript verwendet, das diese Emulatoren auf einem vorhandenen Raspbian installiert. Alternativ kann man auch ein vorgefertigtes Image direkt auf einer Speicherkarte mit mindestens 8 GByte installieren Raspbian über sudo raspi-config auf Booten in die Textkonsole ohne grafische Oberfläche einstellen. Vorbereitende Pakete installieren: sudo apt-get install -y git dialog RetroPie-Skript herunterladen: git clone git://github.com/petrockblog/retropie-setup.git Skript starten: cd RetroPie-Setup chmod +x retropie_setup.sh sudo./retropie_setup.sh In der Konfigurationsoberfläche Binaries-based installation wählen. Alle notwendigen Komponenten werden heruntergeladen und installiert, was etwa eine Stunde dauert. 88

89 Praxiseinsatz Hauptmenü von RetroPie starten: emulationstation Die verwendeten Tasten des Gamepads bzw. der Tastatur im Konfigurationsdialog einrichten. Im Hauptmenü Game Ports wird ein Spiel mitgeliefert, um sofort loslegen zu können: Duke3D Shareware. Weitere Spiele je nach Plattform in die entsprechenden Unterverzeichnisse von /home/pi/retropie/roms kopieren. Sie werden dann automatisch im Hauptmenü angezeigt. 89 Der RetroPie-Adapter Das Besondere an RetroPie gegenüber vergleichbaren Softwaresammlungen ist die Unterstützung des RetroPie-GPIO-Adapters. Über diese kleine Platine lassen sich zwei SNES-Controller am Raspberry Pi anschließen, um so echtes Retrospielgefühl zu erzeugen. Der RetroPie-GPIO-Adapter wird als Bausatz zum Zusammenlöten geliefert. (blog.petrockblock.com/ retropie). Über ein kurzes Flachbandkabel werden zwei SNES-Controller-Anschlussbuchsen angeschlossen, an denen man dann die originalen SNES-Controller einstecken kann. Diese Anschlussbuchsen baut man sich entweder aus einer defekten SNES-Konsole aus, wie sie öfter auf Flohmärkten oder bei ebay angeboten werden, oder man besorgt sich SNES-Controller-Verlängerungskabel, die heute noch im Zubehörhandel erhältlich sind. 89

90 Hardware 90 Die Anschlüsse des Raspberry Pi B+ 9 Die Anschlüsse des Raspberry Pi A+ 90

91 Hardware 9 Die Anschlüsse des Raspberry Pi B (und A) 93 Die Anschlüsse des Raspberry Pi Compute- Moduls 9

92 Was unterscheidet die verschiedenen Raspberry Pi-Modelle? 94 Was unterscheidet die verschiedenen Raspberry Pi-Modelle? Die Raspberry Pi-Modelle unterscheiden sich im Wesentlichen in der Größe des eingebauten RAM sowie in den vorhandenen Anschlüssen. Das Raspbian-Betriebssystem kann auf allen Modellen verwendet werden. Modell A Modell A+ Modell B Modell B+ Compute-Modul (inkl. I/O-Board) 85,6 x 56 mm 65 x 56 mm 85,6 x 56 mm 85,6 x 56 mm 85,6 x 05 mm RAM 56 MByte 56 MByte 5 MByte 5 MByte 5 MByte + 4 GByte emmc Speicherkarte SD Micro-SD SD Micro-SD keine USB-Ports 4 + Micro-USB-Slave Netzwerk kein kein 0/00 MBit/s 0/00 MBit/s kein GPIO-Pins Die ersten Geräte der Rev. von Modell B wurden wie das Modell A nur mit 56 MByte RAM ausgeliefert. Wie viel Speicher ein Raspberry Pi hat, ist auch ohne Einschalten an einem Aufdruck auf der CPU, dem quadratischen Chip in der Mitte, zu erkennen. 95 Netzteil anschließen Der Raspberry Pi kann über jedes moderne Handynetzteil mit Micro-USB- Anschluss mit Strom versorgt werden. Das Netzteil muss 5 V und mindestens 700 ma liefern, besser.000 ma. 9

93 Hardware 3 4 Der Raspberry Pi kann seinen Strom auch aus dem USB-Anschluss eines PCs beziehen. Hier braucht man (offiziell) einen USB-3.0-Anschluss mit Micro-USB-.0-Kabel, da diese Anschlüsse nach Spezifikation 900 ma liefern, ein normaler USB-.0-Anschluss aber nur 500 ma. Viele Notebooks haben aber schon USB-.0-Anschlüsse mit 700 ma Leistung oder mehr. Bei Verwendung eines USB-Hubs mit eingebauter Stromversorgung kann man das Stromversorgungskabel an den Hub anschließen und ein zweites USB-Kabel für die Datenverbindung des Hubs nutzen. Wenn der Raspberry Pi zwar bootet, sich dann aber keine Mausbewegung erkennen lässt oder das System nicht auf Tastatureingaben reagiert, deutet das auf eine zu schwache Stromversorgung hin. 96 Audio einrichten Der Raspberry Pi verfügt über zwei Audioausgabekanäle: 3 Am analogen Audioanschluss können Kopfhörer wie auch Lautsprecher oder Stereoanlagen angeschlossen werden. Das Audiosignal wird auch über das HDMI- Kabel ausgegeben und kommt so direkt auf einem HDMI-Fernseher an. PC-Monitore mit DVI-Eingang, an den sich über einen Adapter ein HDMI-Kabel anschließen lässt, verarbeiten meist nur das Videosignal, nicht aber das Audiosignal. Terminal starten: sudo raspi-config 93

94 WLAN einrichten 4 Advanced Options/Audio-Anschluss manuell auswählen. Audiobuchse am Raspberry Pi B+ Am Raspberry Pi B+ ist die analoge Audiobuchse mit dem FBAS-Videoausgang zu einer Buchse vereint. 97 WLAN einrichten Während der Einrichtung des Raspberry Pi ist ein Netzwerkkabel erforderlich, später reicht auch WLAN mit einem unterstützten WLAN-Stick. 3 4 Raspberry Pi mit eingestecktem WLAN-Stick und Netzwerkkabel neu starten. Doppelklick auf WiFi Config auf dem Raspbian-Desktop. Wurde der WLAN-Stick korrekt erkannt und wurden geeignete Treiber gefunden, erscheint im oberen Feld des Fensters wpa_gui ein Name für den WLAN- Adapter, meistens wlan0. Netzwerkkabel trennen und auf Scan klicken. Gewünschtes Netzwerk auswählen und doppelt anklicken. Schlüssel eingeben. 5 Manchmal wird das vom Netzwerk verwendete Authentifizierungsverfahren nicht richtig erkannt. Sollte die Verbindung nicht zustande gekommen sein, in der Liste Authentication die verwendete Verschlüsselungsmethode, meist WPA-Personal, wählen. 94

95 Hardware 6 7 Nachdem die Verbindung aufgebaut wurde, zeigt das Dialogfeld wpa_gui die IP-Adresse. Mit Connect und Disconnect lässt sich die WLAN-Verbindung jederzeit herstellen oder trennen. Auf der Registerkarte Manage Networks lassen sich die gespeicherten Netzwerke nachträglich bearbeiten. 98 Nicht jeder WLAN-Stick funktioniert am Raspberry Pi Leider arbeitet längst nicht jeder WLAN-Stick mit Linux zusammen. Folgende WLAN-Sticks funktionieren am Raspberry Pi. Raspberry Pi-kompatible WLAN-Sticks Allnet Asus 3CRUSB0075 ALL034MINI Wireless N 50Mbit USB N0, USB N3 Broadcom BCM4343 (ab NOOBS 3.0) Conrad WLAN Stick N50 D-Link DWL-G G 54 EDIMAX IOGear LogiLink Netgear EW-78 UN GWU65 WL0084B N50, WG Realtek 888CU Wireless USB N, Nano Adapter 80.N Tenda TP-Link Zyxel USB n, Wireless-N50, W3M TL-WN7N NWD05 Ob ein bestimmter WLAN-Stick von Raspbian unterstützt wird, hängt im Wesentlichen von dem im Stick verbauten Chipsatz ab. Bei WLAN-Sticks, die nicht in dieser Tabelle stehen, besteht eine gute Chance auf Kompatibilität, wenn der Stick den 888CU-Chipsatz von Realtek verwendet. Seit NOOBS.3.0 wird auch der Broadcom-Chipsatz BCM4343 unterstützt. 95

96 Mehr Leistung durch Speichertuning 99 Mehr Leistung durch Speichertuning Ein Teil des knapp bemessenen Arbeitsspeichers auf dem Raspberry Pi wird für die GPU abgezweigt, was bei einem PC dem Grafikkartenspeicher entspricht. Wie viel Grafikspeicher reserviert werden soll, lässt sich abhängig von der typischen Nutzung einstellen. 3 4 Terminal starten: sudo raspi-config Advanced Options/Memory Split Für GPU reservierten Speicher eintragen: 6, 3, 64, 8 oder 56 MByte. Die folgende Tabelle gibt Richtwerte für Raspberry Pis mit 5 MByte RAM und 56 MByte RAM an. Raspberry Pi neu starten. Anwendung 5 MByte RAM 56 MByte RAM HD-Videos abspielen und decodieren, Videostreaming, 56 MByte 8 MByte grafiklastige Anwendungen und Spiele. Normale Mischnutzung als PC mit grafischer Oberfläche 8 MByte 64 MByte und gelegentlich als Mediacenter. Reiner Serverbetrieb ohne grafische Oberfläche. 6 MByte 6 MByte 00 Aktuelle Speicherauslastung anzeigen Wie viel Arbeitsspeicher tatsächlich gerade benötigt wird, zeigt der Taskmanager an. 3 Taskmanager im Startmenü unter Systemwerkzeuge starten. Die Schalter im Menü Ansicht wie abgebildet einstellen. Der Taskmanager zeigt oben rechts die aktuelle Arbeitsspeicherauslastung an. 96

97 Hardware 4 cat /proc/meminfo zeigt den gesamten und freien Arbeitsspeicher auf der Kommandozeile an. 0 Raspberry Pi übertakten Der Raspberry Pi lässt sich relativ einfach und ohne spezielle Software übertakten Terminal starten: sudo raspi-config Overclock nächsten Hinweisbildschirm mit OK bestätigen. Einstellung Modest funktioniert (fast) immer. Bei Medium und High aufmerksam verfolgen, ob alle Anwendungen problemlos laufen. Turbo nur mit Kühlkörper, guter Belüftung und nicht im Dauerbetrieb verwenden. Mögliche Probleme beim Übertakten Bei starkem Übertakten kann die Lebensdauer des Raspberry Pi leiden. Kommt es zu einem instabilen Verhalten, sollte die Übertaktung zurückgenommen werden. Raspberry Pi neu booten und dabei die [Umschalt]-Taste gedrückt halten setzt die Übertaktung temporär aus. Danach kann mit sudo raspi-config wieder auf normalen Modus zurückgeschaltet werden. 97

98 Raspberry Pi-Kamera anschließen 0 Raspberry Pi-Kamera anschließen Die Original-Raspberry Pi-Kamera wird mit dem mitgelieferten Flachbandkabel in einen speziell dafür vorgesehenen Steckplatz zwischen den Anschlüssen für Audio und HDMI gesteckt (auf dem Raspberry Pi-Modell B neben dem Netzwerkanschluss). 3 4 Verriegelung des Steckplatzes leicht nach oben ziehen, um sie zu lösen. Kabel der Kamera mit der blauen Seite zum Netzwerkanschluss in den Steckplatz stecken und die Verriegelung wieder nach unten drücken. Schutzfolie auf der Kamera abziehen. Kamera aktivieren: sudo raspi-config. Dort Enable Camera wählen und Raspberry Pi neu booten. Kamera stabil aufbauen Die Kamera hat ein Fixfocus-Objektiv, kann also das Bild nicht scharf stellen. Daher ist es umso wichtiger, dass sie während der Aufnahme ruhig gelagert ist. Fotos aus der Hand sind fast unmöglich. In den Ecken der Kameraplatine sind Löcher, um die Kamera irgendwo festzuschrauben. Eine sogenannte»dritte Hand«, wie man sie beim Löten zum Festhalten von Platinen und Kleinteilen benutzt, eignet sich sehr gut als Kamerastativ. 03 Firmware-Upgrade bei Kameraproblemen Sollte beim Versuch, die Kamera in raspi-config zu aktivieren, eine Fehlermeldung aufgrund veralteter Firmware erscheinen, muss diese aktualisiert werden: 98

99 Hardware 3 uname -a zeigt die aktuelle Firmwarerevision an. Die Revisionsnummer muss #707 oder höher sein, damit die Kamera funktioniert. sudo rpi-update aktualisiert die Firmware auf die neueste Revision. Danach muss der Raspberry Pi neu gestartet werden. 04 Fotografieren mit der Raspberry Pi-Kamera Raspbian liefert ein Kommandozeilentool mit, mit dem man mit der Kamera Fotos aufnehmen kann. raspistill -v -o foto.jpg Der Parameter -v liefert ausführliche Informationen zu den verwendeten Kameraeinstellungen. Der Parameter -o gibt den Dateinamen an, unter dem das Foto gespeichert wird. Ohne Verzeichnisangabe landet das Bild im Home- Verzeichnis /home/pi. Außer im JPEG-Format lassen sich Fotos auch in den Formaten PNG und BMP speichern, was aber deutlich länger dauert, da der Grafikchip des Raspberry Pi nur JPEG-Dateien mit Hardwarebeschleunigung komprimieren kann. Vor dem eigentlichen Auslösen wird fünf Sekunden lang ein Vorschaubild auf dem Bildschirm angezeigt, um den Bildausschnitt zu wählen. Ohne spezielle Angabe liefert die Kamera ein Bild in voller 5-Megapixel- Auflösung mit.59 x.944 Pixeln. raspistill ohne weitere Parameter zeigt eine Auflistung aller möglichen Parameter. In diesem Fall wird auch kein Bild fotografiert. 99

100 Video mit der Raspberry Pi-Kamera 05 Video mit der Raspberry Pi-Kamera Das Kommandozeilentool raspivid zeichnet mit der Raspberry Pi-Kamera Videos im Format H 64 auf. In Full-HD-Auflösung hat ein Video von fünf Sekunden Dauer etwa 0 MByte Dateigröße, in der typischen DVD- Video-PAL-Auflösung etwa,7 MByte. Videos werden ohne Ton aufgezeichnet, da kein Mikrofon eingebaut ist. raspivid -t w 70 -h 576 -o video.h64 Der Parameter -t legt die Aufnahmedauer in Millisekunden fest. Videos haben standardmäßig Full-HD-Auflösung,.90 x.080 Pixel, es können auch kleinere Auflösungen angegeben werden, um die Dateigröße zu verringern. Die Parameter w und h legen die Breite und Höhe des Videos fest. Der Parameter -o gibt den Dateinamen an, unter dem das Video gespeichert wird. Ohne Verzeichnisangabe landet das Bild im Home-Verzeichnis /home/pi. raspivid ohne Parameter listet ähnlich wie raspistill alle verfügbaren Parameter auf. 06 Mit der Raspberry Pi-Kamera aufgenommene Videos abspielen Zum Abspielen der Videos kann das mitgelieferte Kommandozeilentool omxplayer verwendet werden: omxplayer video.h64 00

101 Hardware 07 TBOPlayer grafische Oberfläche für den OMXPlayer Der TBOPlayer ist eine in Python programmierte grafische Oberfläche, die den OMXPlayer zu einem Mediaplayer macht Installierte Pakete aktualisieren: sudo apt-get update sudo apt-get upgrade In das Home-Verzeichnis des angemeldeten Benutzers pi springen: cd Bibliothek pexpect herunterladen und installieren: wget tar xzf pexpect-.3.tar.gz cd pexpect-.3 sudo python./setup.py install mkdir ~/tboplayer cd ~/tboplayer Deutsche Version des TBOPlayers herunterladen und installieren: wget Desktopsymbol für den TBOPlayer herunterladen und installieren: cd ~/Desktop wget Den TBOPlayer per Doppelklick auf das neue Desktopsymbol starten. 0

102 USB-Sticks mounten Der TBOPlayer öffnet ein Fenster am linken Bildschirmrand, in dem man eine Wiedergabeliste mit H.64-Videos anlegen kann. Diese werden dann im Vollbildmodus über den OMXPlayer abgespielt. Die Buttons am linken Fensterrand bleiben sichtbar und benutzbar, wenn ein Video der Raspberry Pi- Kamera (Seitenverhältnis 4:3) im Vollbildmodus auf einem HDMI-Monitor mit Seitenverhältnis 6:9 läuft. 08 USB-Sticks mounten Der LXDE-Desktop erkennt einen angeschlossenen USB-Stick automatisch und meldet ihn direkt unter /media im Dateisystem an. Das Gerät kann dann sofort lokal auf dem Linux-Desktop genutzt werden. Dateisystem auf USB-Sticks USB-Sticks sind üblicherweise im vfat-dateisystem formatiert. Linux kann dieses Dateisystem lesen und schreiben, es gibt nur keine Rechteverwaltung. Lässt man dieses Dateisystem auf dem USB-Stick bestehen, können leicht Daten von beliebigen PCs über den USB-Stick auf den Raspberry Pi übertragen werden. Windows kann dagegen mit einem Linux-formatierten USB-Stick nichts anfangen. Ohne grafische Oberfläche auf einem Server oder einem Raspberry Pi, der nur über SSH verwendet wird, muss der USB-Stick manuell angemeldet (gemountet) werden. 3 4 Feststellen, unter welchem Namen der angeschlossene USB-Stick in der Linux-Verzeichnisstruktur eingetragen ist: sudo fdisk -l In den meisten Fällen wird ein USB-Stick physikalisch als /dev/sda bezeichnet, die erste darauf befindliche Partition als /dev/sda. Geräte-ID des USB-Sticks auslesen: sudo blkid /dev/sda (bzw. entsprechender Name). /dev/sda: UUID="EC0B-49E4" TYPE="vfat" Angezeigte UUID in /etc/fstab eintragen: sudo nano /etc/fstab 0

103 Hardware UUID und übrige Parameter wie abgebildet eintragen. Mountpunkt des USB-Sticks anlegen: sudo mkdir media/usb Automatisch alle Einträge der /etc/fstab mounten: sudo mount -a Beim nächsten Neustart wird dieser USB-Stick automatisch gemountet. Mehrere USB-Sticks Natürlich lassen sich auch mehrere USB-Sticks über einen USB-Hub am Raspberry Pi anschließen und betreiben. Diese werden auf die gleiche Weise in verschiedenen Verzeichnissen, z. B. /media/usb, /media/usb3 etc., gemountet. 09 Die Linux-Dateisysteme Linux bietet zwar Unterstützung für die Windows-Dateisysteme, kann aber seine vollen Funktionen, unter anderem die Benutzerrechte, nur auf den eigenen Dateisystemen ext, ext3 und ext4 nutzen. Diese unterscheiden sich im Wesentlichen in der Maximalgröße unterstützter Festplatten. Ein ext3-dateisystem kann maximal 3 TByte groß sein, ein ext4-dateisystem bis zu EByte. An diese Größe werden handelsübliche Festplatten noch lange nicht herankommen. Allerdings geht bei ext4 durch die größere Blockgröße mehr Speicherplatz für die Dateisystemverwaltung verloren, was sich bei kleineren Festplatten als Nachteil gegenüber ext3 auswirkt. Dem älteren ext-dateisystem fehlen die Journalingfunktionen. Daher können Metadaten bei einem Computerabsturz oder auch bei zu schnellem Abstecken eines USB-Laufwerks beschädigt werden, weshalb häufige Integritätsprüfungen notwendig sind. 0 Komfortable Festplatteneinrichtung mit GParted GParted ist ein Partitionsmanager mit grafischer Oberfläche für Linux, mit dem sich alte PC-Festplatten für den Raspberry Pi nutzbar machen lassen. 03

104 Die Linux-Dateisysteme GParted und notwendige Tools für die Erkennung von Windows-formatierten Festplatten installieren: sudo apt-get install gparted dosfstools mtools Festplatte anschließen und warten, bis die Meldung erscheint, dass sie erkannt wurde. Letzte Gelegenheit, Daten zu retten Jede vorhandene Festplattenpartition wird automatisch gemountet und in einem Dateimanagerfenster angezeigt. Dies ist die letzte Gelegenheit, eventuell wichtige Daten zu retten, danach werden sie durch die Neupartitionierung unwiderruflich gelöscht Alle offenen Dateimanagerfenster schließen und GParted über das Startmenü unter Einstellungen starten. Aus Sicherheitsgründen muss hier noch einmal das Passwort raspberry eingegeben werden. Oben, rechts von der Anzeige der Speicherkarte, meist als /dev/mmcblk0 bezeichnet, auf die Festplatte, meist als /dev/sda bezeichnet, umschalten. Jetzt sind alle auf der Festplatte vorhandenen Partitionen zu sehen. Um die Festplatte komplett zu löschen, nacheinander alle Partitionen markieren, bei denen ein Einhängepunkt (mountpoint) angegeben ist, und bei jeder einzelnen im Menü Partition/Aushängen wählen. Danach wieder nacheinander alle Partitionen markieren und bei jeder auf das Löschen-Symbol in der Symbolleiste klicken. Die Löschvorgänge werden zunächst geplant, aber noch nicht wirklich ausgeführt. Erst mit einem Klick auf den grünen Pfeil in der Symbolleiste werden die Partitionen tatsächlich gelöscht. Nach dem Löschen der Partitionen, was nur wenige Sekunden dauert, wird noch ein Statusbericht angezeigt. Die Festplatte ist jetzt komplett leer. Auf den grauen, nicht zugeteilten Bereich klicken und dann ganz links auf das Symbol Eine neue Partition erstellen. Größe der neuen Partition festlegen. Als Vorgabe ist die gesamte Festplatte ausgewählt. Anhand deren Größe wird ein Dateisystem vorgeschlagen. Im Dialogfeld Neue Partition erstellen auf Hinzufügen klicken, um die Partition anzulegen. Auch das Anlegen einer Partition wird erst mit einem Klick auf den grünen Pfeil endgültig ausgeführt. 04

105 Hardware Raspberry Pi neu starten und Dateimanager öffnen. Im linken Seitenfenster wird die Festplatte unter dem Namen, der als Bezeichnung in GParted vergeben wurde, angezeigt. Dateien auf die Festplatte zu kopieren oder dort Verzeichnisse anzulegen wird wegen fehlender Berechtigungen nicht erlaubt. GParted arbeitet mit root-berechtigung, um seine Systemaufgaben erfüllen zu können. Daher ist der Benutzer root auch Besitzer der Verzeichnisstruktur unterhalb von /media/festplatte und hat als Einziger Schreibrechte. Um den Besitz der Festplatte an den Benutzer pi zu übertragen, im linken Seitenfenster des Dateimanagers die Festplatte markieren und dann im Menü Werkzeuge/Aktuellen Ordner als root öffnen wählen. Es öffnet sich ein neues Dateimanagerfenster, das das Dateisystem aus der Sicht des Benutzers root zeigt. Hier im linken Seitenfenster wieder die Festplatte markieren, mit der rechten Maustaste in das rechte große Fenster klicken und dort im Kontextmenü Eigenschaften wählen. Auf der Registerkarte Berechtigungen wird der aktuelle Besitzer root angezeigt. Die Felder Besitzer und Gruppe auf pi ändern und die nächste Abfrage bestätigen, damit die Änderung des Besitzers rekursiv auf alle Unterverzeichnisse angewendet wird. Gehäuse für den Raspberry Pi bauen Ein Gehäuse schützt den Raspberry Pi vor Kurzschlüssen durch Berührung mit herumliegenden Metallteilen. Anstatt ein teures Gehäuse zu kaufen, reicht auch eine selbst gebaute Faltschachtel aus Karton. 05

106 Gehäuse für den Raspberry Pi bauen Vorlage bei wp.me/pmbvt-by (für Raspberry Pi-Modell B) herunterladen und auf einen Karton ausdrucken. Einige Drucker verfügen dafür auf der Rückseite über einen zweiten Papiereinzug, über den sich auch dickeres Material verwenden lässt. Dabei darauf achten, dass alle Skalierungsfunktionen des PDF-Betrachters abgeschaltet sind und die Vorlage wirklich in Originalgröße gedruckt wird. Die notwendigen Öffnungen mit einem scharfen Messer ausschneiden. Die mit LED markierte Öffnung wird nur benötigt, wenn die LEDs auf dem Raspberry Pi zu sehen sein sollen, die GPIO-Öffnung nur, wenn der GPIO-Port benutzt wird. Andernfalls sollten diese Öffnungen nicht ausgeschnitten werden, das Gehäuse bleibt dann stabiler. 06

107 Hardware 3 Die Kühlöffnung wird nur benötigt, wenn der Raspberry Pi im Dauerbetrieb, z. B. als Server, läuft oder stark übertaktet ist. Im Normalbetrieb entwickelt er nur wenig Wärme Die Öffnungen für Audio und HDMI können geschlossen bleiben, wenn diese Anschlüsse nicht benötigt werden. Die runde Öffnung für den FBAS- Stecker muss auf jeden Fall ausgeschnitten werden, da dieser Stecker über die Platine hinausragt. An den gestrichelten Linien nach innen falten. Bei einem dickeren Karton oder einer Folie die Faltkanten mit einem scharfen Messer leicht vorritzen. Die aufgedruckten Hinweise befinden sich später an der Innenseite des Gehäuses, sodass die Außenseite nach Belieben gestaltet werden kann. Das Gehäuse an den vier schmalen Laschen zusammenkleben. Die breiten Laschen an den Schmalseiten und am Deckel dienen nur als Auflage bzw. Verschluss. 7 Soll die Gehäuseöffnung für GPIO genutzt werden, an der mit * bezeichneten Lasche die kurze Strichpunktlinie einschneiden. Den unteren Teil der Lasche festkleben und den größeren oberen Teil durch die GPIO-Öffnung stecken. Nach außen umfalten und festkleben. Das stabilisiert das Gehäuse an dieser Stelle zusätzlich. Den Raspberry Pi in das Gehäuse legen. Die Blechkanten am USB-Port durch die Öffnung nach außen ziehen. Damit wird ein Rutschen und Wackeln beim Anschließen der Kabel verhindert. 07

108 Server IP-Adresse und MAC-Adresse des Raspberry Pi anzeigen Terminal starten: hostname -I zeigt die IP-Adresse. ip addr zeigt die IP-Adresse und auch die MAC-Adresse sowie weitere Informationen zur Netzwerkkonfiguration. Die MAC-Adresse ist eine eindeutige Kennung der Netzwerkkarte, die unveränderlich ist. Lokale IP- Adressen beginnen üblicherweise mit 9.68, MAC-Adressen bestehen aus sechs zweistelligen Hexzahlen, die durch Doppelpunkte getrennt sind. 3 Feste IP-Adresse über statisches DHCP vergeben Einem Pi, auf den über das Netzwerk zugegriffen wird, gibt man am besten eine feste IP-Adresse. Am einfachsten funktioniert das über den Router. 3 Im Browser auf dem PC die Konfigurationsseite des Routers aufrufen. Dort den Bereich Statisches DHCP oder Adressreservierung suchen. Den Raspberry Pi mit MAC-Adresse und der aktuell zugewiesenen IP-Adresse eintragen, damit diese in Zukunft immer gleich bleibt. 08

109 Server 4 Feste IP-Adresse auf dem Raspberry Pi eintragen Alternativ kann auch direkt auf dem Raspberry Pi eine feste IP-Adresse eingestellt werden. Dazu muss sichergestellt sein, dass sie im gleichen Subnetz wie der Router liegt, aber in einem Bereich, der vom Router nicht per DHCP verwaltet wird. 3 sudo nano /boot/ cmdline.txt Diese Konfigurationsdatei enthält nur eine einzige Zeile. Am Ende dieser Zeile (ohne Zeilenumbruch) die neue feste IP-Adresse anhängen: ip= nano-editor mit der Tastenkombination [Strg]+[X] verlassen und mit [J] bestätigen, dass die Änderungen an der Datei gespeichert werden sollen. Raspberry Pi neu starten: sudo reboot 09

110 Vom PC aus über SSH auf dem Raspberry Pi anmelden 5 Vom PC aus über SSH auf dem Raspberry Pi anmelden Serverseite Raspberry Pi Wurde bei der Ersteinrichtung des Raspberry Pi der SSH-Server aktiviert, ist auf der Serverseite bereits alles getan. Wenn nicht: sudo raspi-config Advanced Options/SSH/Enable Clientseite Windows-PC PuTTY installieren ( Neue Verbindung mit der IP-Adresse des Raspberry Pi über Port mit dem Verbindungstyp SSH anlegen. Links im Bereich Windows/Translation in der Liste Remote Character Set die Option UTF-8 auswählen. Verbindung im Bereich Session mit einem Klick auf Save speichern und einen eindeutigen Namen vergeben. Bei der ersten Verbindung erscheint eine Sicherheitswarnung, die nicht relevant ist, da es sich nicht um eine Internetverbindung handelt. Im PuTTY-Terminal auf dem Raspberry Pi anmelden: Benutzername: pi, Passwort: raspberry. 0

111 Server 6 Daten per SSH vom PC aus auf den Raspberry Pi kopieren und umgekehrt Serverseite Raspberry Pi SSH-Server muss laufen Clientseite Windows-PC WinSCP ( installieren. Neue Verbindung mit der IP-Adresse des Raspberry Pi und Port anlegen. Übertragungsprotokoll SCP auswählen. Benutzername pi und Kennwortraspberry eintragen, Verbindung speichern. Nach wenigen Sekunden zeigt WinSCP einen eigenen Dateimanager in übersichtlicher Zweifenstergestaltung. Das rechte Fenster zeigt das Home- Verzeichnis des Raspberry Pi, das linke die lokale Festplatte des PCs. Hier können in beide Richtungen Dateien kopiert werden. Warnungen bestätigen Alle Sicherheitswarnungen beim Verbindungsaufbau können einfach bestätigt werden. Man braucht keine Sicherheitsschlüssel, die Verbindung ist sicher. Sie läuft im lokalen Netzwerk und nicht über das Internet.

112 Dateiübertragung mit dem Total Commander 7 Dateiübertragung mit dem Total Commander Der Total Commander ( kann auch zur Datenübertragung mit dem Raspberry Pi verwendet werden, man braucht lediglich ein SFTP-Plug-in Bei das SFTP-Plug-in herunterladen und installieren. Zusätzlich sind einige DLL-Dateien erforderlich, deren Downloadlinks auf der Seite mit angegeben sind. Diese in das Plug-in-Verzeichnis des Total Commander kopieren. Ein Fenster des Total Commander auf Netzwerkumgebung schalten, Secure FTP wählen und [F7] drücken. Der neuen Verbindung einen Namen geben, IP-Adresse des Raspberry Pi, Benutzername pi und Kennwortraspberry angeben. Verbindung speichern. Per Doppelklick Verbindung aufbauen und Dateien kopieren. 8 Dateiverwaltung mit dem Midnight Commander Das Blättern in Verzeichnissen, Verschieben und Kopieren von Dateien auf dem Raspberry Pi ist auf Kommandozeilenebene oder in einem PuTTY-Fenster deutlich mühsamer als mit einem Dateimanager. Midnight Commander installieren: sudo apt-get install mc Midnight Commander im Konsolen- oder PuTTY-Fenster starten: mc

113 Server 3 4 Der Midnight Commander zeigt zwei Fenster, in denen sich beliebige Verzeichnisse anzeigen lassen. Die textbasierte Oberfläche lässt sich über die aus dem Norton Commander bekannten Funktionstasten und Tastenkombinationen, über Cursortasten sowie auch mit der Maus bedienen. Die Menüs des Midnight Commander wurden gegenüber dem Norton Commander um Linux-Funktionen erweitert, die unter DOS nicht verfügbar sind, z. B. die Zuweisung von Rechten oder das Anlegen symbolischer Links. Der Norton Commander Zu DOS-Zeiten, als es auf dem PC noch keine grafischen Oberflächen wie Windows gab, war der Norton Commander, der erstmals 986 veröffentlicht wurde, ein beliebtes Tool, mit dem jegliche Dateioperationen leichter von der Hand gingen. Auf der Basis des Urahns aller Dateimanager hat eine freie Entwicklergruppe den Midnight Commander für Linux erschaffen, der im Aussehen und in der Bedienung dem Norton Commander weitgehend gleicht. 9 SSH-Client für Smartphones und Tablets Die Android-App VX ConnectBot baut vom Smartphone oder Tablet aus SSH-Verbindungen zum Raspberry Pi auf. Das Android-Gerät muss dazu über WLAN mit dem gleichen Netzwerk verbunden sein, in dem auch der Raspberry Pi läuft. Um über eine Mobilfunkverbindung zugreifen zu können, müsste der Raspberry Pi aus dem Internet erreichbar sein. 3

114 Grafische Anwendungen vom Raspberry Pi auf dem PC nutzen 0 Grafische Anwendungen vom Raspberry Pi auf dem PC nutzen PuTTY unterstützt nur Konsolenbefehle, keine grafischen Anwendungen. Beim Versuch, eine Anwendung zu starten, die ein grafisches Fenster öffnet, wie z. B. den Bildbetrachter gpicview den Dateimanager pcmanfm oder den Editor leafpad erscheinen die unterschiedlichsten Meldungen, die Programme werden aber nicht gestartet Auf dem Raspberry Pi muss das X-Forwarding eingeschaltet sein. Dazu muss in der Datei /etc/ssh/sshd_config der Parameter XForwarding auf yes gesetzt sein. Nach einer Änderung in dieser Datei muss der Raspberry Pi neu gestartet werden. Auf dem PC den X-Server Xming von sourceforge.net/projects/ xming installieren. Dabei, wenn PuTTY bereits läuft, die Installation eines SSH- Clients ausschalten. Non US Keyboard Support muss eingeschaltet sein. Die Windows-Firewall meldet sich. Hier muss der Zugriff für Xming im lokalen Netzwerk zugelassen werden. SSH-Verbindung trennen und PuTTY neu starten. Im Feld Category unter Connection/SSH/X den Schalter Enable X forwarding aktivieren. Verbindung speichern und neu starten. Jetzt kann im PuTTY-Kommandozeilenfenster ein Programm auf dem Raspberry Pi gestartet werden, das eine grafische Oberfläche nutzt, wie z. B. der Bildbetrachter gpicview. 4

115 Server Konsolenfenster bei grafischen Programmen geöffnet halten Damit das Konsolenfenster von PuTTY benutzbar bleibt, während ein grafisches Programm läuft, muss es im Hintergrund mit einem &-Zeichen gestartet werden: pistore-desktop &. Raspbian-Desktop per VNC auf den PC übertragen Mit VNC lässt sich der komplette Raspbian-Desktop auf den PC übertragen. VNC benötigt ähnlich wie SSH zwei Komponenten: einen VNC-Server auf dem Raspberry Pi sowie einen VNC- Viewer auf dem PC. Serverseite Raspberry Pi 3 4 XVNC installieren: sudo apt-get install xvnc Passwort für den VNC-Server festlegen: xvnc -storepasswd VNC-Server auf dem Raspberry Pi starten: xvnc forever usepw geometry 07x600 -ultrafilexfer Die Auflösung kann an den verwendeten Monitor angepasst werden. Die angegebene Auflösung funktioniert bei den meisten 6:9-Monitoren. Bei 4:3-Monitoren 04x768 verwenden. Bei erfolgreichem Start werden einige Meldungen angezeigt, die aber, solange keine auffälligen Fehler auftauchen, nicht beachtet werden müssen. Clientseite Windows-PC Auf dem PC einen VNC-Viewer installieren. Gut bewährt hat sich UltraVNC von Bei der Installation den UltraVNC-Server ausschalten. Für die Verbindung mit dem Raspberry Pi wird nur der Viewer benötigt. 5

116 Raspbian-Desktop per VNC auf den PC übertragen UltraVNC-Viewer starten. Im Feld VNC-Server die IP-Adresse des Rasp berry Pi eintragen und mit einem Doppelpunkt dahinter, mit zwei Doppelpunkten getrennt, den Port ::5900. Nach erfolgreicher Verbindung erscheint eine Passwortabfrage. Danach ist in einem neuen Fenster auf dem Windows-PC der LXDE- Desktop des Raspberry Pi zu sehen. Eine Symbolleiste am oberen Bildschirmrand bietet die Möglichkeit, spezielle Befehle an den VNC-Server zu senden. Hier lässt sich der Raspberry Pi-Desktop auch in den Vollbildmodus auf dem PC schalten. UltraVNC bietet eine Funktion zum Dateitransfer zwischen VNC-Client und -Server. Dies gehört nicht zum Standardfunktionsumfang von VNC und muss daher von beiden beteiligten Softwarekomponenten unterstützt werden. In Kombination mit xvnc ultrafilexfer ist eine Dateiübertragung möglich. 6

117 Server VNC-Server beim Booten automatisch mit starten Um den Raspberry Pi ohne Monitor und Tastatur ausschließlich per VNC zu betreiben, muss der VNC-Server beim Booten automatisch gestartet werden. 3 Autostartordner anlegen, falls noch nicht vorhanden: mkdir ~/.config/autostart Textdatei vncboot.desktop mit folgendem Inhalt anlegen. Dabei den Parameter geometry auf einen zur verwendeten Hardware passenden Wert einstellen. [Desktop Entry] Encoding=UTF-8 Type=Application Name=XVNC Exec=xvnc -forever -usepw -geometry 07x600 -ultrafilexfer StartupNotify=false Terminal=false Hidden=false Raspberry Pi neu starten und per VNC vom PC aus anmelden. 3 Notebook als Tastatur und Monitor für Raspberry Pi nutzen Wenn weder Monitor noch Tastatur zur Verfügung steht und unterwegs vielleicht nicht einmal ein Netzwerk für eine SSH- oder VNC-Verbindung vorhanden ist, kann ein Notebook über ein Netzwerkkabel den Raspberry Pi direkt steuern. Jedes Notebook hat heute zwei Netzwerkverbindungen: per WLAN und über ein Netzwerkkabel. Das kann man sich zunutze machen, um einen Raspberry Pi per Netzwerkkabel direkt anzuschließen und gleichzeitig per WLAN einen Netzwerk- und Internetzugang zu haben. Auf dem Raspberry Pi muss vorher ein VNC-Server eingerichtet sein, der beim Booten automatisch gestartet wird (siehe vorherige Anleitung). Jetzt den Raspberry Pi herunterfahren, die Speicherkarte herausnehmen und in den Kartenleser des Notebooks stecken. 7

118 VNC-Server beim Booten automatisch mit starten Stromversorgung USB-Ports liefern zwar offiziell erst nach der USB-Spezifikation 3.0 ausreichend Strom, um den Raspberry Pi zu betreiben, die meisten USB- Anschlüsse halbwegs aktueller Notebooks sind aber auch trotz USB.0 stark genug. So wird kein eigenes Netzteil für den Raspberry Pi und auch nur eine Steckdose benötigt, was z. B. bei der Arbeit in Zügen sehr praktisch ist, da die Steckdosen immer wieder mal knapp werden Im unter Windows sichtbaren Bereich der Karte die Datei cmdline.txt mit einem Texteditor öffnen und ans Ende der einzigen Zeile die IP-Adresse ip= anhängen. Speicherkarte wieder in den Raspberry Pi stecken und diesen mit einem Netzwerkkabel am Notebook anschließen und starten. Die Netzwerkschnittstelle auf dem Raspberry Pi erkennt den Verbindungstyp automatisch. Man braucht kein Crosskabel, wie es sonst bei der Verbindung zweier Computer nötig ist. In Windows 7 das Netzwerk- und Freigabecenter öffnen oder in Windows 8 unten rechts auf das Netzwerksymbol klicken. Neben der WLAN-Verbindung auf dem Notebook wird jetzt ein zweites, nicht identifiziertes Netzwerk mit eingeschränkter oder keiner Netzwerkverbindung angezeigt. Zum Testen der Verbindung auf dem Windows-PC ein Eingabeaufforderungsfenster öffnen und die IP-Adresse des Raspberry Pi anpingen: ping Wenn die Verbindung einwandfrei funktioniert, wird Verloren = 0 angezeigt. Vom Notebook über VNC mit dem Rasp berry Pi an der IP-Adresse verbinden. Wenn häufiger zwischen direkter Verbindung und normaler Netzwerkverbindung gewechselt werden soll, braucht die IP- Adresse in der cmdline.txt nicht jedes Mal gelöscht und wieder neu eingetragen zu werden. Stattdessen einfach ein 8

119 Server Kommentarzeichen # davorsetzen, um die feste IP-Adresse abzuschalten und den Raspberry Pi normal mit einer dynamischen IP-Adresse zu booten. Optimale Einstellungen für den Vollbildmodus In der Startkonfiguration für XVNC den Parameter geometry auf eine Bildschirmauflösung setzen, deren Höhe um 30 Pixel kleiner als die Höhe des Notebook-Bildschirms ist. Die Breite sollte dem Notebook-Bildschirm genau entsprechen. Die Symbolleiste am oberen Bildschirmrand von UltraVNC ist 30 Pixel hoch. So geht nichts vom Bildschirminhalt verloren. Wurde Raspbian über NOOBS auf der Speicherkarte installiert, ist die Datei cmdline.txt unter Windows nicht sichtbar. 4 VNC-Konfiguration bei NOOBS-Installation In diesem Fall den Raspberry Pi zunächst mit Monitor und Tastatur starten und die Datei bearbeiten Beim Booten die [Umschalt]-Taste gedrückt halten. Damit erscheint das Konfigurationsmenü von NOOBS. Das installierte Raspbian-Betriebssystem wählen und oben auf Einstellungen bearbeiten klicken. Im nächsten Dialogfeld oben auf die Registerkarte cmdline.txt umschalten und ganz hinten ip= anhängen. Mit OK bestätigen, um die Konfiguration zu speichern. Danach den Raspberry Pi am Notebook anschließen und ohne Monitor und Tastatur booten. 5 VNC vom Tablet aus verbinden det werden. Theoretisch lassen sich auch Smartphones nutzen. Deren Bild- 9

120 VNC-Konfiguration bei NOOBS-Installation schirme sind aber so klein, dass sich ein Linux-Desktop darauf per Toucheingabe ohne echte Maus kaum nutzen lässt. 3 4 PocketCloud Remote RDP/VNC auf dem Tablet installieren. Nach der Installation auf dem ersten Bildschirm die Option Skip Wizard wählen, auf den nächsten beiden Bildschirmen nacheinander Manual connection und VNC. Im Feld New Computer der Verbindung einen beliebigen Namen geben. Wichtig sind die IP-Adresse des Raspberry Pi, das Passwort für den VNC-Server sowie Port 590. Einstellungen mit Save speichern und auf dem nächsten Bildschirm auf Connect klicken. Jetzt erscheint der LXDE-Desktop des Raspberry Pi auf dem Tablet. Die Touchscreenbedienung eines Tablets ist auf einem Linux- oder Windows-Desktop nicht einfach umzusetzen. Deshalb bietet PocketCloud einen speziellen Mauszeiger, der neben dem einfachen Antippen, was einem Mausklick entspricht, über die Symbole im äußeren Kreis noch weitere Funktionen ermöglicht. Rechtsklick vertikales Scrollen Sondertastatur mit Funktions- und Cursortasten normale Bildschirmtastatur Zoom Um die Verbindung später wieder zu trennen, einfach auf die Zurück-Taste von Android in der unteren Symbolleiste tippen. 0

121 Server 6 Fernsteuerung mit Synergy Synergy steuert von einem PC aus bis zu 4 weitere. Jeder braucht einen Bildschirm. Tastatur und Maus braucht man nur einmal für alle Bei synergy-foss.org die Windows-Version von Synergy auf den PC herunterladen und installieren. Verschlüsselung abschalten, Modus Server wählen und auf Server konfigurieren klicken. Im Fenster Server Konfiguration den blauen Monitor von oben rechts auf die Seite neben den Monitor des PCs, der bereits im Fenster zu sehen ist, ziehen, wo er in Wirklichkeit auch steht. Doppelt auf das neu angemeldete Gerät klicken und im Feld Anzeigename den Namen raspberrypi eintragen. Beide Dialogfelder mit OK verlassen und im Hauptfenster auf Anwenden klicken. Synergy auf dem Raspberry Pi installieren: wget synergy/synergy-.4.7-r055- Linux-armv6l.deb sudo dpkg -i synergy-.4.7-r055- Linux-armv6l.deb Synergy im Startmenü unter Zubehör starten und die Option Client wählen. Bei Server IP die IP-Adresse des PCs eintragen, der als Synergy-Server läuft. Danach auf Anwenden klicken. Auf dem PC die Maus über den Bildschirmrand hinaus auf den Raspbian- Desktop bewegen und dort weiterarbeiten.

122 Synergy auf dem Raspberry Pi automatisch starten 7 Synergy auf dem Raspberry Pi automatisch starten Synergy soll bei jedem Start des Raspberry Pi automatisch starten. Andernfalls müsste man doch wieder Tastatur und Maus anschließen, um den Synergy-Client aufzurufen. 3 4 Shellskript.startsynergy.sh mit dem Editor erstellen. Die IP- Adresse durch die des Synergy-Servers ersetzen. #!/bin/bash killall synergyc sleep synergyc name raspberrypi exit 0 Skript für alle Benutzer ausführbar machen: sudo chmod 777.startsynergy.sh Autostarteintrag auf dem LXDE-Desktop anlegen: sudo mkdir -p ~/.config/lxsession/lxde sudo nano ~/.config/lxsession/lxde/autostart Folgende Zeile in die Datei eintragen (falls die Datei schon vorhanden ist und Text darin steht, die neue Zeile einfach am Ende anhängen): ~/.startsynergy.sh 8 Externe Festplatten für Serverbetrieb mounten Am Server ohne grafische Oberfläche werden Festplatten auf klassischem Weg über die Kommandozeile partitioniert und gemountet. Feststellen, unter welchem Namen die angeschlossene Festplatte in der Linux-Verzeichnisstruktur eingetragen ist: sudo fdisk -l In den meisten Fällen wird eine USB-Festplatte physikalisch als /dev/sda bezeichnet, die erste darauf befindliche Partition als /dev/sda. Prüfen, ob die Festplatte bereits gemountet ist: mount

123 Server Sollte hier z. B. die Festplatte /dev/sda auftauchen, muss sie für eine saubere Neuinstallation zunächst unmountet werden. Der automatisch angelegte Mountpunkt unterhalb von /media kann bei jeder Festplatte anders heißen: sudo umount /media/extern Festplatte mit dem Linux-ext3-Dateisystem formatieren: sudo mkfs.ext3 /dev/sda Festplatte neu mounten: sudo mkdir /media/usb sudo mount /dev/sda /media/usb Dem Benutzer pi den Besitz an der Festplatte übertragen: sudo chown pi /media/usb Mountpunkt in /etc/fstab eintragen: sudo nano /etc/fstab die neue Festplatte entsprechend den gemounteten Daten eintragen: proc /proc proc defaults 0 0 /dev/mmcblk0p /boot vfat defaults 0 /dev/mmcblk0p / ext4 defaults,noatime 0 /dev/sda /media/usb ext3 defaults Webserver installieren Der Raspberry Pi kann zur Entwicklung eigener Webseiten als geräuschloser und sehr stromsparender Webserver im lokalen Netzwerk laufen. Der Webserver lighttpd ( ist eine schlanke Alternative zum mächtigen Apache-Webserver. 3 4 Basisverzeichnis für den Webserver anlegen: sudo mkdir /var/www Benutzer und Benutzergruppe für den Webserver anlegen: sudo addgroup www-data sudo adduser --ingroup www-data www-data Den neuen Benutzer zum Eigentümer des Verzeichnisses /var/www machen: sudo chown -R www-data:www-data /var/www Webserver lighttpd installieren: sudo apt-get install lighttpd php5-cgi 3

124 Webserver über No-IP ins Internet bringen 5 6 fastcgi-modul aktivieren: sudo lighty-enable-mod fastcgi sudo lighty-enable-mod fastcgi-php sudo /etc/init.d/lighttpd force-reload Der Webserver steht sogleich auch im lokalen Netzwerk zur Verfügung. Auf einem PC die IP-Adresse des Raspberry Pi im Browser eingeben, z. B.: 30 Webserver über No-IP ins Internet bringen Dynamische DNS-Dienste (DDNS) ersparen das manuelle Herausfinden und Weitergeben der eigenen IP-Adresse, um aus der Ferne auf den eigenen Server zugreifen zu können. Hier bekommt man einen virtuellen Servernamen, der regelmäßig mit der eigenen Adresse aktualisiert werden muss. Der bekannteste derartige Dienst, DynDNS, hat seine kostenlosen Angebote leider eingestellt. No-IP ist ein interessanter Nachfolger. Kostenloses Benutzerkonto und virtuellen Host bei no-ip.com anlegen. No-IP-Client für den Raspberry Pi herunterladen und installieren: wget tar xf noip-duc-linux.tar.gz 4

125 Server rm noip-duc-linux.tar.gz mv noip-* noip cd noip sudo make install Namen und das Passwort von no-ip.com angeben. Den gewünschten (eigenen) Host auswählen. Update-Intervall festlegen. In fast allen Fällen sollte die Standardvorgabe von 30 Minuten ausreichen, da die meisten Internetprovider nur einmal am Tag, üblicherweise nachts, die IP-Adressen neu vergeben. Die Frage Do you wish to run something at successful update mit dem vorgeschlagenen N beantworten. No-IP-Client starten: sudo noip Der Webserver auf dem Raspberry Pi ist ab sofort unter dem in der Konfiguration angegebenen Hostnamen von außen erreichbar. Um den No-IP-Client beim Booten des Raspberry Pi automatisch zu starten, in der Datei / etc/rc.local vor der Zeile exit 0 eine neue Zeile sudo noip einfügen: sudo nano /etc/ rc.local Der Router muss wissen, auf welchen Computer im Netzwerk eine von außen kommende Anfrage nach einer Webseite weitergeleitet werden soll. 3 Portweiterleitung auf dem Router einrichten Routerkonfiguration im Browser aufrufen. Einen Bereich Port Mapping oder Portweiterleitung suchen. 3 Weiterleitung für den HTTP-Port 80 auf die lokale IP-Adresse des Raspberry Pi eintragen. 5

126 Portweiterleitung auf dem Router einrichten Die Tabelle zeigt die verwendeten Ports für die wichtigsten Internetdienste: Dienst Port(s) FTP 0/ SSH Telnet 3 SMTP 5/587 WHOIS 43 DNS 53 HTTP 80 POP3 0 SFTP 5 NTP 3 IMAP 43 IRC 94 HTTPS 443 Citadel 504 Rsync 873 6

127 Server 3 LionWiki eigene kleine Wissensdatenbank einrichten LionWiki ist ein System zum Erstellen von Informationsseiten im Wikipedia- Stil, das mit sehr geringer Systemleistung zurechtkommt und nicht einmal eine Datenbank auf dem Webserver benötigt. LionWiki installieren (Webserver muss auf dem Raspberry Pi laufen): wget lionwiki-3..9.tar.bz sudo tar xf lionwiki-3..9.tar.bz -C /var/www sudo mv /var/www/lionwiki-3..9 /var/www/lionwiki sudo chmod -R 777 /var/www/lionwiki/var LionWiki im Webbrowser auf dem PC aufrufen. Dabei die IP-Adresse durch die des Raspberry Pi ersetzen: Seitentitel angeben und in das große Editorfeld den Text der neuen Seite schreiben. Zum Einfügen von Links, Bildern und Listenelementen stehen Symbole zur Verfügung. Bei der ersten Bearbeitung muss ganz unten eine einfache Rechenaufgabe gelöst werden. Dies ist eine Sicherheitsabfrage, die automatisierte Spam- 7

128 LionWiki eigene kleine Wissensdatenbank einrichten Kommentare verhindern soll. Sie erscheint immer mal wieder, aber nicht bei jeder Bearbeitung. 5 6 Nach dem Speichern ist die neue Seite über den Link Seite anzeigen oben rechts zu sehen. Zusätzlich zum vorgegebenen gelb-weißen Template Dandelion liefert LionWiki im Verzeichnis templates der LionWiki-Installation weitere Templates zur Auswahl. Das gewünschte Template in der Datei /var/www/lionwiki/config.php in der Zeile $TEM- PLATE eintragen. Das sind die wichtigsten Syntaxelemente der Wiki-Beschreibungssprache: Syntax Bedeutung! Überschrift H.!! Überschrift H3.!!! Überschrift H4. * Liste. Ebene. ** Liste. Ebene. *** Liste 3. Ebene. # Nummerierte Liste. Ebene. ## Nummerierte Liste. Ebene. ### Nummerierte Liste 3. Ebene. Text Fett (3 Apostrophe). Text Kursiv ( Apostrophe). Text Fett + kursiv (5 Apostrophe). --Text-- Durchgestrichen (Apostroph und x -). Text Unterstrichen (Apostroph und x _). {small}text{/small} Kleine Schrift. {sup}text{/sup} Hochgestellt (Exponent). {sub}text{/sub} Tiefgestellt (Index). [Link] Link auf andere Wiki-Seite. Externe Links werden automatisch erkannt. [Linktext Link] Text mit hinterlegtem Link auf andere Wiki-Seite. Beschreibung aller Syntaxelemente: lionwiki.0o.cz/?page=syntax+reference 8

129 Server 33 Fotogalerie auf dem Webserver Die Software PhotoShow ( ermöglicht interaktive Fotogalerien auf einem Webserver und benötigt dabei so wenig Leistung, dass ein Raspberry Pi mit lighttpd als Webserver völlig ausreicht. Ein weiterer Vorteil gegenüber anderen Lösungen ist, dass PhotoShow lediglich PHP benötigt, aber keine Datenbank. Die Fotos können interaktiv im Browser hochgeladen oder einfach in die entsprechenden Verzeichnisse kopiert werden PhotoShow herunterladen und installieren: sudo apt-get install git git clone git://github.com/thibaud-rohmer/photoshow.git sudo mv./photoshow-master /var/www/photoshow sudo chown -R www-data:www-data /var/www/photoshow mkdir ~/photos mkdir ~/generated Zugriffsrechte für die Benutzer pi und www-data einrichten: sudo chown -R www-data:www-data ~/photos sudo chown -R www-data:www-data ~/generated sudo chmod -R 775 ~/photos sudo chmod -R 775 ~/generated sudo adduser pi www-data Datenverzeichnisse in die Konfiguration von PhotoShow eintragen: sudo nano /var/www/photoshow/config.php Hier die vorgegebenen Zeilen für photos_dir und ps_generated ändern: $config->photos_dir = "/home/pi/photos"; $config->ps_generated = "/home/pi/generated"; PhotoShow im Browser auf dem PC über die IP-Adresse des Raspberry Pi aufrufen. Beim ersten Start erscheint ein Formular, in dem das Hauptbenutzerkonto angelegt werden muss. PhotoShow verwendet eine eigene, von Linux unabhängige Benutzerverwaltung. Angemeldete Benutzer haben die Möglichkeit, Alben und Unterordner für Fotos anzulegen sowie Bilder hochzuladen. Bei jedem Album kann man festlegen, ob es privat oder öffentlich sein soll. Bilder müssen nicht unbedingt einzeln über das Uploadformular hochgeladen werden, sondern können auch direkt in Unterverzeichnisse des photos- Verzeichnisses kopiert werden. Allerdings gehören neu angelegte Ordner dem Benutzer pi und lassen sich in der Webansicht von PhotoShow nicht interaktiv bearbeiten, sondern nur betrachten. Um das Problem zu lösen, nach dem manuellen Anlegen neuer Ordner im Dateisystem die Rechte neu zuweisen: 9

130 Fotogalerie auf dem Webserver sudo chown R www-data:www-data ~/photos sudo chmod R 0775 ~/photos 7 8 Ein anonymer Besucher der Fotogalerie kann sich oben rechts über den Button Anmelden ein eigenes Benutzerkonto anlegen. Das gibt ihm noch keinerlei Rechte, außer dass er Kommentare jetzt mit seinem Namen schreibt. Der Administrator kann diesem neuen Benutzer jetzt verschiedene Rechte geben. Dazu sind unter Gruppen bearbeiten im Admin-Menü drei Benutzergruppen vordefiniert. Benutzer einfach per Drag-and-drop in eine Gruppe ziehen oder mit einem Klick auf das x links neben dem Benutzernamen wieder aus einer Gruppe herausnehmen. root Benutzer in dieser Gruppe haben Administratorberechtigung und dürfen alles. uploaders Benutzer in dieser Gruppe dürfen Fotos hochladen, aber nichts an den Einstellungen ändern. user Benutzer in dieser Gruppe dürfen nur Fotos betrachten. 30

131 Server 34 Samba-Server installieren Ein Samba-Server stellt das von Microsoft für Windows-Freigaben und Arbeitsgruppen entwickelte SMB (Server-Message-Block-Protokoll) auf einem Linux-Rechner zur Verfügung Pakete installieren: sudo apt-get update sudo apt-get install samba samba-common-bin Bei der Installation wird der Samba-Dienst automatisch in der Datei /etc/ init.d eingetragen, damit er in Zukunft beim Start des Raspberry Pi automatisch mitgestartet wird. Samba-Benutzer anlegen. Dabei muss ein Passwort festgelegt werden, das später zur Anmeldung auf dem Windows-PCs benötigt wird: sudo smbpasswd -a pi Verzeichnisse für die gemeinsam genutzten Daten freigeben: sudo nano /etc/samba/smb.conf Hier folgenden Textblock am Ende hinzufügen: [RaspberryPi] path = /media/usb writable = yes Der Titel in eckigen Klammern, hier [RaspberryPi], gibt den Namen der Freigabe im Windows-Netzwerk an. 3

132 Samba-Server im Windows-Netzwerk nutzen Der Eintrag path, hier /media/usb gibt das freigegebene Verzeichnis auf dem Raspberry Pi an. Der Parameter writable legt fest, dass Benutzer aus dem Netzwerk Daten auf dem Raspberry Pi schreiben dürfen. 6 7 Wird im Windows-Netzwerk eine andere Arbeitsgruppe als die standardmäßige WORKGROUP verwendet, diese in der Zeile workgroup eintragen. Samba-Server neu starten: sudo /etc/init.d/samba restart Der Name der Arbeitsgruppe steht auf einem Windows-PC in der Systemsteuerung unter System. Dieses Fenster lässt sich einfach mit der Tastenkombination [Win]+[Pause] aufrufen. 35 Samba-Server im Windows-Netzwerk nutzen Der Windows-Explorer zeigt im Ordner Netzwerk geordnet nach Computernamen alle Freigaben an, die im Netzwerk gefunden werden. In Windows XP hieß der gleiche Bereich noch Netzwerkumgebung. Hier kann man vom 3

133 Server PC aus auf freigegebene Verzeichnisse auf dem Samba-Server genau so zugreifen wie auf lokale Ordner Um sich die mühsame Navigation durch die verzweigten Äste zu ersparen, dem Samba- Server über den Kontextmenüpunkt Netzlaufwerk verbinden einen Laufwerkbuchstaben zuweisen. Das Dialogfeld Netzlaufwerk verbinden zeigt nur die Laufwerkbuchstaben, die noch nicht von vorhandenen Laufwerken belegt sind. Das Kontrollkästchen Verbindung bei Anmeldung wiederherstellen aktivieren, damit der Laufwerkbuchstabe beim nächsten Windows- Start auch wieder automatisch zugewiesen wird. Auf dem Samba-Server existiert der Windows-Benutzername nicht, deshalb das Kontrollkästchen Verbindung mit anderen Anmeldeinformationen herstellen einschalten und nach einem Klick auf Fertig stellen den Benutzernamen pi und das in der Samba-Konfiguration festgelegte Passwort eingeben. Das Samba-Netzlaufwerk wird im Explorer unter Computer bei den Laufwerken angezeigt. 33

134 Samba-Statusanzeige im Browser 36 Samba-Statusanzeige im Browser Das webbasierte Tool swat zeigt den aktuellen Status des Samba-Servers auf einem beliebigen Computer innerhalb des lokalen Netzwerks an. 3 Pakete installieren: sudo apt-get update sudo apt-get install swat swat von einem anderen Computer im Netzwerk im Browser aufrufen (IP-Adresse durch die des Raspberry Pi ersetzen): Die Startseite von swat liefert Links zu zahlreichen Hilfetexten rund um die Samba-Konfiguration. Interessant sind die Buttons ganz oben. Status zeigt alle aktiven Verbindungen von Computern im Netzwerk mit dem Samba-Server. View liefert eine Konfigurationsdatei des Servers. Dabei wird nicht die vorhandene smb.conf dargestellt, sondern eine neue Ansicht anhand der aktuell laufenden Einstellungen generiert. 34

135 Server Password bietet die Möglichkeit, das eigene Passwort zum Zugriff auf den Samba-Server zu ändern. 37 CloudServer BarracudaDrive einrichten BarracudaDrive ( stellt auf dem Raspberry Pi einen im lokalen Netzwerk gemeinsam nutzbaren Webserver mit NAS-Funktionen zur Verfügung. BarracudaDrive herunterladen und installieren: pushd /tmp/;rm -f install.sh;wget BarracudaDrive.com/ releases/raspberrypi/install.sh;chmod +x install.sh;sudo./ install.sh;popd Benutzer muss mit y beantwortet werden, die zweite Frage nach dem Bit- Torrent-Modul kann mit n beantwortet werden. 35

136 Samba-Statusanzeige im Browser 3 4 Die Konfigurationsseite von einem anderen Computer im Netzwerk im Browser aufrufen (IP-Adresse durch die des Raspberry Pi ersetzen): Im ersten Schritt muss ein Administratorkonto für die BarracudaDrive-Software eingerichtet werden. 5 Da man ohne diese Benutzerdaten den Server nicht mehr verwalten kann, die Passworterinnerungsfunktion (Enable Password recovery) einschalten. Damit sie funktioniert, muss später noch ein Mailserver eingetragen werden. BarracudaDrive vergibt keine eigenen -Adressen, sondern verwendet eine persönliche -Adresse, soweit sich diese per SMTP nutzen lässt. Der Maildienst wird in BarracudaDrive nicht nur zur Erinnerung an vergessene Passwörter genutzt, sondern auch, um verschiedenartige Benachrichtigungen an die Nutzer zu senden. 6 BarracudaDrive wird bei der Installation automatisch gestartet und unter / etc/init.d eingetragen, um beim Neustart des Raspberry Pi mitzustarten. 36

137 Server 38 BarracudaDrive im Netzwerk nutzen BarracudaDrive verfügt über eine ausgefeilte Benutzerverwaltung, in der sich unterschiedliche Zugriffsrechte auf Dateien und Verzeichnisse für verschiedene Benutzer einrichten lassen. Im Administrator Panel unter User Management auf Wizard klicken und einen neuen Benutzer anlegen Den Eintrag unter Base Path bestehen lassen. Das Standardverzeichnis für BarracudaDrive-Benutzerverzeichnisse liegt auf dem Raspberry Pi unter /home/bd/disk/bdusers. Die nächste Frage nach dem https-tunnel mit Cancel übergehen. Oben rechts als Administrator abmelden und mit den neuen Benutzerdaten wieder anmelden. Über den Menüpunkt Web-File-Server sind alle für den Benutzer freigegebenen Verzeichnisse zu sehen. Neben dem eigenen Benutzerverzeichnis existiert unter /fs/bdusers/common noch ein Verzeichnis, das alle Benutzer zum gegenseitigen Datenaustausch verwenden können. Beim Klick auf ein Verzeichnis erscheint ein einfacher Dateimanager, mit dem Dateien hochund heruntergeladen werden können. 37

138 DLNA-Streamingserver MediaTomb 39 DLNA-Streamingserver MediaTomb Die Digital Living Network Alliance (DLNA) ist eine internationale Vereinigung von Computer- und Unterhaltungselektronikherstellern, deren Ziel es ist, allgemeine Standards zur Übertragung von Multimediadaten in Heimnetzwerken zu entwickeln. Der Name DLNA wird heute gleichbedeutend mit dem DLNA-Netzwerkstandard verwendet, der von zahlreichen Fernsehgeräten, PCs, Smartphones und Tablets unterstützt wird. MediaTomb ist ein schlanker DLNA-Server, der so wenige Ressourcen benötigt, dass er auf dem Raspberry Pi läuft. Damit lassen sich Multimediadateien von USB-Sticks oder externen USB-Festplatten vom Raspberry Pi auf andere Geräte im Netzwerk streamen Pakete installieren: sudo apt-get update sudo apt-get install mediatomb sqlite In der Konfigurationsdatei den in der Abbildung markierten Bereich durch yes ersetzen: sudo nano /etc/mediatomb/config.xml Nach dem Speichern der Änderung den MediaTomb-Server neu starten und etwa zwei Minuten warten, während MediaTomb die Datenbank generiert. So lange funktioniert die Weboberfläche des Servers noch nicht. Die Konfigurationsseite von einem anderen Computer im Netzwerk im Browser aufrufen (IP-Adresse durch die des Raspberry Pi ersetzen): Mit dem Benutzernamen mediatomb und dem Passwort mediatomb anmelden. Oben links auf Filesystem klicken und Verzeichnisse hinzufügen, in denen die Multimediadaten liegen. 38

139 Server 7 Das einfache + -Symbol oben rechts fügt Verzeichnisse oder einzelne Dateien zur Medienbibliothek hinzu. Komfortabler ist das + -Symbol mit dem Doppelpfeil. Hiermit lassen sich Verzeichnisse hinzufügen, die automatisch auf neue Dateien durchsucht werden, die dann in die Medienbibliothek aufgenommen werden. Timed durchsucht das Verzeichnis in vorgegebenen Zeitintervallen automatisch nach neuen Dateien. Inotyfy findet neu hinzugefügte Dateien über das Dateisystem automatisch. Diese Option ist zwar komfortabler, muss aber vom verwendeten Dateisystem unterstützt werden. 8 9 Je nach Anzahl der Mediendateien braucht das System ein paar Minuten, um die Datenbank zu füllen. Danach oben links auf Database klicken. Jetzt können die Medien einfach durch Anklicken mit der jeweiligen Standardanwendung auf dem PC geöffnet werden. Die Daten werden beim Öffnen mit einem Mediaplayer über das Netzwerk gestreamt, müssen also vor dem Start nicht komplett heruntergeladen werden. Die Android-App Twonky Mobile ermöglicht das Abspielen von Medien von einem DLNA-Server und kann auch selbst als DLNA-Server im Netzwerk arbeiten. 39

140 Medien auf Android-Smartphones oder Tablets streamen 40 Medien auf Android-Smartphones oder Tablets streamen 3 Die App Twonky Mobile über den Google Play Store installieren. Beim ersten Start fragt Twonky Mobile, ob das Gerät selbst als DLNA-Server arbeiten soll und welche Dateien im lokalen Netzwerk freigegeben werden sollen. Um das Gerät nur als Client und den Raspberry Pi als Server zu nutzen, braucht man hier keine Häkchen zu setzen. Im nächsten Schritt die MediaTomb-Medienbibliothek wählen. 40

141 Server 4 Spielestreaming mit Limelight Pi Limelight Pi ist eine Softwarelösung, bei der ein Raspberry Pi als Streamingserver dient, und die Spiele, die auf einem PC laufen, über das Netzwerk auf einem angeschlossenen HDMI-Fernseher darstellt. Dabei wird die gleiche Technologie verwendet wie bei der Spielkonsole Shield von Nvidia. Der Big Picture-Modus der Spieleplattform Steam verwendet ebenfalls diese Technologie und kann mit Limelight Pi verwendet werden Auf dem PC muss die Software Nvidia Geforce Experience installiert sein. Dort in den Spieleeinstellungen Steam hinzufügen und Shield-Streaming einschalten. Auf dem Raspberry Pi Oracle Java und die Bibliothek libopus0 installieren, die für Limelight Pi benötigt werden: sudo apt-get update sudo apt-get install oracle-java7-jdk libopus0 Limelight Pi herunterladen: wget download/v0.5/limelight-pi.jar Steam im Big Picture-Modus auf dem PC starten. Auf dem Raspberry Pi die Verbindung mit dem PC herstellen. Die IP-Adresse durch die des PCs ersetzen: sudo java -jar limelight-pi.jar -pair Auf dem PC muss nun eine Berechtigungsanforderung beantwortet werden. Auf dem Raspberry Pi den Stream starten: sudo java -jar limelight-pi.jar Das Spiel erscheint auf dem HDMI-Fernseher und kann mit Tastatur, Maus oder Gamepad am Raspberry Pi bedient werden, auch wenn der PC ganz woanders im Netzwerk steht. IP-Adresse des PCs herausfinden Windows 8.: PC-Einstellungen/Netzwerk und auf aktuelle Netzwerkverbindung klicken. Windows 7: Netzwerk- und Freigabecenter über das Netzwerksymbol im Infobereich der Taskleiste öffnen. Auf aktuelle Netzwerkverbindung und im nächsten Dialogfeld auf Details klicken. 4

142 Freeciv-Spieleserver 4 Freeciv-Spieleserver FreeCiv ist ein rundenbasiertes Strategiespiel, das dem Klassiker Civilization nachempfunden wurde. Wie im großen Vorbild baut man seine eigene Zivilisation auf und führt sie vom Anfang der Weltgeschichte im Jahr 4000 v. Chr. bis zu einer Hochkultur. Freeciv-Server ermöglichen es, dass mehrere Spieler gleichzeitig in derselben Welt spielen, sich in der Welt sehen interagieren können. Für ein kleines Spiel unter Freunden reicht ein Raspberry Pi als Freeciv-Server aus. Spielt man allein, kann die Serverkomponente auch auf dem gleichen Computer laufen wie das Spiel selbst. Freeciv-Server installieren: sudo apt-get update sudo apt-get install freeciv-server 4

143 Server 3 4 Nach der Installation den Freeciv-Server starten. Er startet automatisch ein neues Spiel: freeciv-server Freeciv bietet diverse Einstellungen für die Spielwelt, die vor einem neuen Spiel verändert werden können. Auf diese Weise lassen sich vielfältige Welten erschaffen. Das Kommando show zeigt die wichtigsten Einstellungen für das aktuelle Spiel. Einstellungen mit einem + können verändert werden, Einstellungen mit einem = stehen zurzeit auf dem Vorgabewert. Der Freeciv-Server ist bis jetzt nur im lokalen Netzwerk nutzbar. Auf dem Router den Freeciv-Port 5556 freigeben und auf den Raspberry Pi weiterleiten. Dann kann man auch über das Internet mit Freunden spielen. Übersicht aller Einstellungen Das englische Freeciv-Wiki bietet auf der Seite freeciv.wikia.com/wiki/ Server_options eine ausführliche Übersicht aller Serveroptionen. 43 Serverstatusanzeige htop Das Statusanzeigetool htop zeigt jederzeit auch ohne angeschlossenen Bildschirm über eine SSH-Konsole, ob auf dem Server alles okay ist, wie CPUund Speicherauslastung sind und welche Prozesse gerade laufen. 3 htop installieren: sudo apt-get install htop htop starten: htop Wurde htop mit Superuserrechten gestartet sudo htop, lassen sich einzelne fehlerhafte Prozessse direkt killen. Mit den Pfeiltasten auf den gewünschten Prozess springen und die Taste [F9] drücken. 43

144 RasPi Check Statusanzeige auf dem Smartphone 44 RasPi Check Statusanzeige auf dem Smartphone Die App RasPi Check für Android liest wichtige Statusdaten über Standardfunktionen des Betriebssystems aus und stellt sie in übersichtlicher Form auf dem Smartphone dar. Dazu ist eine WLAN-Verbindung des Smartphones mit dem lokalen Netzwerk nötig. In der App können verschiedene Raspberry Pis mit Zugangsdaten und IP-Adressen eingetragen werden, die sich dann alle unter einer gemeinsamen Oberfläche auslesen lassen. 45 Raspcontrol Die Software Raspcontrol läuft auf einem Webserver und liefert aktuelle Statusdaten auf einer Weboberfläche. Sie lässt sich innerhalb des lokalen Netzwerks auf jedem PC im Browser aufrufen. Ist auf dem Router eine Portweiterleitung auf den Raspberry Pi sowie ein dynamischer DNS-Eintrag eingerichtet, kann man die»lebenszeichen«seines Raspberry Pi sogar über das Internet sehen. Raspcontrol herunterladen und installieren: sudo apt-get install git sudo mkdir /etc/raspcontrol cd /var/www sudo git clone raspcontrol Konfigurationsdatei anlegen: sudo nano /etc/raspcontrol/database.aptmnt 44

145 Server In dieser Datei Benutzer und Passwort festlegen, um die Statusanzeige des Raspberry Pi einsehen zu dürfen. Anstelle der Standarddaten kann auch ein beliebiger Benutzername definiert werden. { "user": "pi", "password": "raspberry" } 3 4 Zugriffsrechte für Konfigurationsdatei festlegen: sudo chown www-data:www-data /etc/raspcontrol/database.aptmnt sudo chmod 740 /etc/raspcontrol/database.aptmnt Raspcontrol im Browser auf dem PC öffnen, dabei die IP-Adresse durch die des Raspberry Pi ersetzen: 3/raspcontrol Mit den in der Konfiguration festgelegten Zugangsdaten anmelden. 46 Nagios-Netzwerkmonitor Ein lokales Netzwerk auf ordnungsgemäße Funktion zu überwachen, ist mit Windows-Betriebssystemmitteln kaum möglich. Zur Protokollierung von Netzwerkauslastung sowie Speicher und Prozessor der Server gibt es kostspielige Spezialsoftware oder man nimmt einen Raspberry Pi und die Open-Source-Lösung Nagios ( Der Nagios-Server läuft auf einem Webserver und zeigt auf einer Weboberfläche im Browser umfangreiche Monitoringdaten aus dem Netzwerk an. Deshalb vor der Installation den schlanken Webserver 45

146 Nagios-Netzwerkmonitor lighttpd (siehe Anleitung 9) installieren, Nagios würde sonst automatisch den ressourcenhungrigen Apache-Webserver installieren Nagios herunterladen und installieren: sudo apt-get update sudo apt-get install nagios3 Konfigurationsdatei anpassen: sudo nano /usr/lib/nagios3/p.pl In dieser Datei den vorgegebenen DEBUG_LOG_PATH ändern: use constant DEBUG_LOG_PATH => /var/log/nagios3/ ; Im nächsten Schritt zwei zusätzliche Module für den lighttpd-webserver aktivieren: sudo lighttpdenable-mod cgi sudo lighttpd-enablemod auth Die Konfigurationsdatei des Webservers bearbeiten: sudo nano /etc/lighttpd/ lighttpd.conf Am Ende des Bereichs server.modules eine zusätzliche Zeile eintragen: "mod_ setenv" Am Ende der Datei /etc/ lighttpd/lighttpd.conf noch folgende Zeilen hinzufügen: alias.url = ( "/cgibin/nagios3" => "/usr/ lib/cgi-bin/nagios3", "/ nagios3/cgi-bin" => "/usr/lib/cgi-bin/nagios3", "/nagios3/stylesheets" => "/etc/nagios3/ stylesheets", "/nagios3" => "/usr/share/nagios3/htdocs" ) 46 $HTTP["url"] =~ "^/nagios3/cgi-bin" { cgi.assign = ( "" => "" )

147 Server } $HTTP["url"] =~ "nagios" { auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/etc/nagios3/passwd" auth.require = ( "" => ( "method" => "basic", "realm" => "nagios", "require" => "user=nagiosadmin" ) ) setenv.add-environment = ( "REMOTE_USER" => "user" ) } webbasierte Anzeige und legt dazu automatisch einen Benutzer nagiosadmin für das Webinterface an. Dieser braucht ein verschlüsseltes Passwort: sudo htpasswd -c /etc/nagios3/passwd nagiosadmin Webserver neu starten: sudo /etc/init.d/lighttpd restart Nagios-Server von einem anderen Computer im Netzwerk im Browser aufrufen (IP-Adresse durch die des Raspberry Pi ersetzen): Mit dem Benutzernamen nagiosadmin und dem zuvor festgelegten Passwort anmelden. Das Menü auf der linken Seite führt zu den verschiedenen Monitorfunktionen von Nagios. Die Links im Hauptbereich der Startseite führen zu Onlineangeboten des Softwareherstellers. Ein Klick auf localhost im Menü unter Hosts liefert ausführliche Statusanzeigen. 47

148 Pi-Point-Raspberry Pi als WLAN-Zugangspunkt 47 Pi-Point-Raspberry Pi als WLAN- Zugangspunkt Zusammen mit einem unterstützten WLAN-Stick lässt sich aus dem Raspberry Pi ein WLAN-Access-Point machen, um mit Mobilgeräten auf das eigene Netzwerk oder das Internet zugreifen zu können, auch an Orten im Haus, an denen keine WLAN-Verbindung zum Router besteht. Dieser Access Point funktioniert natürlich auch in Netzwerken, in denen es (bis jetzt) gar keinen WLAN-Router gibt WLAN-Stick an einen USB-Port des Raspberry Pi stecken. Ein Netzwerkkabel mit Verbindung zum Internet ist zusätzlich erforderlich. Um sicherzustellen, dass der WLAN-Stick den Modus AP für den Access Point unterstützt, Standardsoftware für WLAN-Hardware installieren: sudo apt-get install zd-firmware iw Mit iw list die unterstützten Modi des WLAN-Sticks anzeigen. In der Liste müssen im Bereich Supported interface modes die Modi AP, managed und monitor auftauchen. Sollten sie nicht vorhanden sein, kann der WLAN-Stick nicht als Access Point genutzt werden. Pi-Point-Tools installieren: sudo apt-get install rfkill hostapd hostap-utils dnsmasq Netzwerkkonfigurationsdatei wie abgebildet bearbeiten: sudo nano /etc/network/interfaces Die unter address eingetragene IP-Adresse muss in einem anderen logischen Netzwerk liegen als die Adresse, die der Raspberry Pi über die Netzwerkkabelverbindung vom Router bekommt. In den meisten Heimnetzwerken liegen diese Adressen im Adressbereich xxx oder xxx. In dem Fall kann der Access Point die Adresse verwenden, die in einem anderen Subnetz liegt. WLAN neu starten, hier darf es zu keinen Fehlermeldungen kommen: sudo ifdown wlan0 sudo ifup wlan0 48

149 Server 8 SSID und WLAN-Kanal festlegen: sudo nano /etc/hostapd/hostapd.conf SSID nach Belieben festlegen. Der WLAN-Kanal darf nicht vom Router verwendet sein und sollte auch von keinem anderen WLAN in der Umgebung genutzt werden. 9 0 hostapd-dienst starten: sudo hostapd B /etc/hostapd/hostapd.conf DHCP konfigurieren: sudo nano /etc/dnsmasq.conf Diese Datei enthält standardmäßig nur auskommentierte Zeilen. Am Ende abgebildete Zeilen anfügen. Der angegebene DHCP-Bereich muss in den ersten drei Zahlenblöcken zur in der Datei /etc/network/interfaces eingetragenen IP-Adresse passen. 49

150 Pi-Point-Raspberry Pi als WLAN-Zugangspunkt dnsmasq-dienst starten: sudo service dnsmasq restart NAT (Network Address Translation) einrichten: sudo nano /etc/sysctl.conf In dieser Datei das Kommentarzeichen vor net.ipv4.ip_forward= entfernen. NAT einschalten: sudo iptables -t nat -A POSTROUTING -j MASQUERADE WLAN-fähige Geräte, Smartphones, Tablets anmelden. 50

151 Server 48 Pi-Point automatisch starten Der Pi-Point läuft nur, solange der Raspberry Pi eingeschaltet bleibt. Um den Pi-Point beim Start des Raspberry Pi automatisch mitzustarten, Startskript anlegen: sudo nano /etc/init.d/pipoint Die Kommentarzeilen müssen genau so vorhanden sein, da sie für den Startprozess benötigt werden: #!/bin/sh # Configure Wifi Access Point. # ### BEGIN INIT INFO # Provides: WifiAP # Required-Start: $remote_fs $syslog $time # Required-Stop: $remote_fs $syslog $time # Should-Start: $network $named slapd autofs ypbind nscd nslcd # Should-Stop: $network $named slapd autofs ypbind nscd nslcd # Default-Start: # Default-Stop: # Short-Description: Wifi Access Point configuration # Description: Sets forwarding, starts hostap, enables NAT in iptables ### END INIT INFO iptables -t nat -A POSTROUTING -j MASQUERADE hostapd -B /etc/hostapd/hostapd.conf 3 Skript ausführbar machen: sudo chmod 755 /etc/init.d/pipoint Dann in die Startsequenz eintragen: sudo update-rc.d pipoint start WPA-Verschlüsselung in Pi-Point einrichten Konfigurationsdatei bearbeiten bzw. neu anlegen: sudo nano /etc/hostapd/hostapd.conf Folgende Zeilen anhängen: interface=wlan0 driver=nl80 ssid=pi channel=7 auth_algs= wpa= 5

152 arkos Cloudserver-Betriebssystem 3 wpa_passphrase=raspberrypi wpa_key_mgmt=wpa-psk wpa_pairwise=tkip CCMP rsn_pairwise=tkip CCMP In der Zeile wpa_passphrase den gewünschten WPA-Schlüssel eintragen. hostapd-dienst neu starten: sudo service hostapd restart 50 arkos Cloudserver-Betriebssystem arkos ist ein neuartiges Betriebssystem speziell für Serveranwendungen auf dem Raspberry Pi. Es wird komplett über eine Weboberfläche gesteuert, sodass man sich überhaupt nicht mehr mit Linux-Konsolenbefehlen auseinandersetzen muss Den arkos-installer für Windows bei arkos.io/downloads herunterladen und auf dem PC starten. Auf Installieren Sie arkos auf einer SD-Karte klicken, einen der angebotenen Downloadserver und eine mindestens GByte große Speicherkarte im Kartenleser auswählen. Nach Abschluss des zeitaufwendigen Vorgangs Speicherkarte aus dem PC nehmen und den Raspberry Pi damit booten. Am Raspberry Pi braucht weder Tastatur noch Monitor angeschlossen zu sein. Die Installation kann vollständig über das Netzwerk erfolgen. Nach dem Einschalten des Raspberry Pi muss man nur etwa zwei Minuten warten, bis arkos vollständig gebootet ist. Im Browser auf dem PC die IP-Adresse des Raspberry Pi mit Port 8000 eingeben: Auf dem Anmeldebildschirm von arkos mit dem Benutzernamen admin und dem Passwort admin anmelden. Auf OK klicken, um die Ersteinrichtung zu starten. Auf den folgenden Seiten einen Benutzer mit Passwort festlegen und ein Passwort für den root- Zugang vergeben. Auf der Seite Initial System Settings sind noch wichtige Einstellungen vorzunehmen. Hier sollte oben ein Hostname eingetragen werden, unter 5

153 Server dem der arkos-server im Netzwerk erreichbar ist, auch wenn der Raspberry Pi über den Router einmal eine andere IP- Adresse bekommt: Die richtige Zeitzone einstellen, damit die Serverzeit richtig läuft. Die beiden Schalter Expand arkos to fit SD card und Optimize graphical memory aktivieren. Danach folgt der wichtigste Schritt: die Serverdienste auswählen, die verwendet werden sollen. arkos bietet hier eine lange Liste vom Webserver nginx mit verschiedenen Datenbanken und CMS über Samba-Freigaben und Proxyserver bis hin zu Mailservern und owncloud. Die gewünschten Dienste lassen sich einfach per Mausklick auf den Server herunterladen und installieren. 53

154 3 Nach diesen ersten Einrichtungsschritten muss arkos noch einmal neu gestartet werden. Dies ist später nicht mehr nötig, wenn Komponenten hinzugefügt werden. Dazu oben rechts auf das Ausschaltsymbol und danach auf Restart System klicken. Ein paar Minuten warten, bis der Server neu gebootet hat, bevor die Startseite über die IP-Adresse oder den Hostnamen wieder aufgerufen werden kann. Die gesamte Administration des Servers erfolgt über die Weboberfläche. Es ist nicht nötig, Konfigurationsdateien manuell zu ändern. Je nach installierten Modulen können über das Menü Webseiten und Dateifreigaben hinzugefügt sowie Benutzer und Dienste verwaltet werden. Auch ein Dateimanager und ein Konsolenfenster lassen sich über die Browseroberfläche nutzen. 54

155 Programmierung 5 Python-Programme nutzen IDLE ist eine komplette Python-Shell und Entwicklungsumgebung. Für den Start in die Programmierung sind keine zusätzlichen Komponenten nötig. Python-Skript mit File/Open öffnen. Python-Skripte werden direkt im Quellcode verarbeitet und haben die Endung.py. File/New Window öffnet ein Eingabefenster, in dem direkt ein eigenes Python-Skript geschrieben werden kann. 3 4 Um deutsche Umlaute in der Python-Shell korrekt darzustellen, unter Options/Configure auf der Registerkarte General die Option Locale-defined im Bereich Default Source Encoding einschalten. Run/Run Module oder [F5] startet das Programm. Eventuelle Fehler werden in der Python-Shell angezeigt. Python.7.3 oder 3.3.0? Auf dem Raspberry Pi sind gleich zwei Versionen von Python vorinstalliert. Leider verwendet die neueste Python-Version 3.x teilweise eine andere Syntax als die bewährte Version.7.x, sodass Programme aus der einen Version nicht mit der anderen laufen. Einige wichtige Bibliotheken, wie z. B. das bekannte PyGame zur Programmierung von Spielen und grafischen Bildschirmausgaben im Allgemeinen, sind noch nicht für Python 3.x verfügbar. Raspbian liefert Python.7.3 und Python 3..3 mit. Die aktuellsten Versionen Python.7.8 und Python 3.4. sind für Raspbian bisher nicht verfügbar. Python.7.x ist immer noch die deutlich weiter verbreitete Version verglichen mit 3.x.

156 Python-Programme über die Kommandozeile starten 5 Python-Programme über die Kommandozeile starten Um ein Python-Programm zu nutzen, muss nicht unbedingt IDLE aufgerufen werden. 3 4 python programmname.py startet das Programm mit dem Python-.7.x-Interpreter im Terminal-Fenster. python3 programmname.py startet das Programm mit dem Python-3.x-Interpreter im Terminal-Fenster. Python-Programme, die über die Kommandozeile gestartet werden, sollten am Anfang immer folgende Zeile enthalten: #!/usr/bin/python Programme, die andere Zeichen als nur den einfachen ASCII-Standard enthalten, zum Beispiel deutsche Umlaute, brauchen am Anfang noch diese Zeile: # -*- coding: utf-8 -*- 53 Python Ausgabe auf dem Bildschirm Um Texte oder Inhalte von Variablen im Konsolenfenster auszugeben, verwendet Python den Befehl print. print "Hallo Welt" name = "Fred" print name print "Hallo " + name + " wie geht es Dir?" Python-Flashcards Die wichtigsten Syntaxelemente der Sprache Python werden auf den folgenden Seiten in Form kleiner»spickzettel«kurz beschrieben. Diese basieren auf den Python-Flashcards von David Whale. Was es damit genau auf sich hat, ist bei bit.ly/pythonflashcards zu finden. Die Python- Flashcards verwenden die Syntax von Python.7.x. 56

157 Programmierung 54 Python Variablen vom Typ Number Number-Variablen enthalten Zahlenwerte, mit denen das Programm rechnen kann. sekinmin = 60 mininstd = 60 stdintag = 4 sekintag = sekinmin * mininstd * stdintag print sekintag 55 Python Variablen vom Typ String String-Variablen enthalten beliebige Zeichenketten und können mit dem +-Operator miteinander verknüpft werden. vorname = "Fred" nachname = "Schmidt" name = vorname + " " + nachname gruss = "Hallo " gruss += name print gruss 56 Python Eingabe durch den Benutzer Die Eingabefunktion raw_input() ermöglicht Benutzereingaben. Diese werden in String-Variablen gespeichert. Um Zahlen einzugeben, müssen die String-Variablen in Zahlenwerte umgewandelt werden. name = raw_input("wie ist Dein Name?") print "Hallo " + name alter = int(raw_input("wie alt bist Du?")) print "Nächstes Jahr bist Du " + str(alter+) 57

158 Python Bedingungen mit if 57 Python Bedingungen mit if Das Wort if (englisch für wenn) steht für eine Bedingung. Ist diese erfüllt, wird der folgende, eingerückte Programmteil ausgeführt. alter=0 if alter > 6: print "Du bist fertig mit der Schule" a= if a==: print "gleich" if a!=: print "nicht gleich" if a<: print "kleiner" if a>: print "größer" if a<=: print "kleiner oder gleich" if a>=: print "größer oder gleich" Einrückungen sind in Python wichtig In den meisten Programmiersprachen werden Programmschleifen oder Entscheidungen eingerückt, um den Programmcode übersichtlicher zu machen. In Python dienen diese Einrückungen nicht nur der Übersichtlichkeit, sondern sind für die Programmlogik zwingend nötig. Dafür braucht man in dieser Sprache keine speziellen Satzzeichen, um Schleifen oder Entscheidungen zu beenden. 58 Python Bedingungen mit if else Hinter dem Programmteil, der ausgeführt wird, wenn die Bedingung erfüllt ist, kann ein weiterer Block mit dem Schlüsselwort else stehen. Der darauf folgende Programmteil wird ausgeführt, wenn die Bedingung nicht erfüllt ist. alter=0 if alter>7: print "Du darfst Auto fahren" else: print "Du bist nicht alt genug" 58

159 Programmierung 59 Python Bedingungen mit if elif else Gibt es mehr Alternativen als nur richtig und falsch, lassen sich mit dem Wort elif weitere Bedingungen einfügen. Diese werden nur abgefragt, wenn keine der vorherigen Bedingungen wahr ist. Ist keine der Bedingungen wahr, wird der letzte Programmblock hinter else ausgeführt. alter=0 if alter<4: print "Du bist in der Kinderkrippe" elif alter<6: print "Du bist im Kindergarten" elif alter<0: print "Du bist in der Grundschule" elif alter<9: print "Du bist im Gymnasium" else: print "Du hast die Schule verlassen" 60 Python Bedingungen mit and und or verknüpfen Mehrere Bedingungen lassen sich miteinander verknüpfen. Bei einer Verknüpfung mit and müssen alle einzelnen Bedingungen erfüllt sein, bei einer Verknüpfung mit or mindestens eine. a= b= if a>0 and b>0: print "Beide sind nicht null" if a>0 or b>0: print "Mindestens eine ist nicht null" 59

160 Python Schleifen mit for 6 Python Schleifen mit for Schleifen mit for arbeiten eine bestimmte Anzahl von Durchläufen ab. Dabei kann auch ein Wertebereich oder eine Zeichenfolge angegeben werden. Die Schleife wird dann für jedes Zeichen der Zeichenfolge einmal ausgeführt. total=0 for n in range(total): print n for n in range(,0): print n name="fred" for ch in name: print ch 6 Python Schleifen mit while Schleifen mit while werden so lange ausgeführt, wie die Bedingung erfüllt ist. # Bohnen auf einem Schachbrett # lege Bohne auf das erste Feld # lege Bohnen auf das zweite Feld # lege 4 Bohnen auf das dritte Feld # wie lange, bis es 000 Bohnen sind? felder=0 bohnen= total=0 while total<000: total += bohnen bohnen *= felder += print "es dauert " + str(felder) Die Zeilen, die mit einem # beginnen, sind Kommentare zum Verständnis des Programms. Diese Zeilen werden vom Python-Interpreter nicht beachtet. 60

161 Programmierung 63 Python Funktionen ohne Parameter Soll ein bestimmter Programmteil mehrfach und von verschiedenen Stellen im Programm aus aufgerufen werden, definiert man eine Funktion, anstatt den Programmtext immer wieder zu kopieren. def meinname(): print "Mein Name ist Fred" meinname() 64 Python Funktionen mit Parametern Definiert man mit einer Funktion einen oder mehrere Parameter, liefert die Funktion verschiedene Ergebnisse je nach den übergebenen Parametern. def zeigename(name): print "Mein Name ist " + name def info(name, alter): print "Mein Name ist " + name print "Mein Alter ist " + str(alter) zeigename("fred") zeigename("harry") info("fred", 0) info("harry", 0) 65 Python Funktionen mit Rückgabewert return definiert wird. Der aufrufende Programmteil kann anschließend mit dem Rückgabewert der Funktion weiterrechnen. def quadrat(n): return n*n print quadrat(5) print quadrat(0) 6

162 Boolesche Wahr- und Falsch-Werte a=00 print quadrat(a) print quadrat(a+0) b=quadrat(a) print b 66 Boolesche Wahr- und Falsch-Werte Kann ein Wert nur den Zustand»wahr«(True) oder»falsch«(false) annehmen, kann dies als boolescher Wert gespeichert und ganz einfach abgefragt werden. Es ist kein Umweg über Zahlen, wie z. B. oder 0, nötig. nochmal = True while nochmal: print "Hallo" antwort = raw_input("nochmal spielen?") if antwort!= "Ja" and antwort!= "ja": nochmal = False print "denke..." if nochmal: print "Noch eine Runde" Das Programm spiel.py zeigt ein einfaches Ratespiel, in dem eine vom Computer zufällig gewählte Zahl vom Spieler in möglichst wenigen Schritten erraten werden soll. 67 Einfaches Programmierbeispiel: Zahlen raten 3 IDLE starten und Datei spiel.py über File/Open öffnen. Programm mit Run/Run Module oder [F5] starten. Den Anweisungen auf dem Bildschirm folgen und Zahlen raten. 6 #!/usr/bin/python # -*- coding: utf-8 -*-

163 Programmierung import random zahl = random.randrange (0, 000) tipp = 0 i = 0 while tipp!= zahl: tipp = input("dein Tipp:") if tipp > zahl: print "Die gesuchte Zahl ist kleiner als ",tipp if tipp < zahl: print "Die gesuchte Zahl ist größer als ",tipp i += print "Du hast die Zahl beim ",i,". Tipp erraten" Hinweise zum Programm Um Zufallszahlen erzeugen zu können, muss am Anfang die Bibliothek random importiert werden. Die Funktion random.randrange(start, stop) erzeugt eine Zufallszahl größer oder gleich start und kleiner als stop.!= Abfrage für ungleich. += Addiert zu einer Variablen den angegebenen Wert. 68 Farbige Texte im Terminal-Fenster Wichtige Informationen sollten in Programmausgaben farbig hervorgehoben werden, damit sie auffallen. Sogenannte Escape-Sequenzen, spezielle Zeichenkombinationen, die die Textausgabe verändern, ermöglichen farbige Texte, allerdings nur in Terminal-Fenstern, nicht in der Python-IDLE. Escape-Sequenzen beginnen immer mit dem Escape-Zeichen, das über die Zeichenfolge \033[ bezeichnet wird. Sie enden stets mit dem Buchstaben m. Dazwischen können mehrere Zahlen stehen, die die Textauszeichnungen festlegen. Dabei stehen acht verschiedene Grundfarben aus den Anfängen der Computertechnik sowie ein paar Textstile, wie fett, blinkend etc., zur Verfügung. 63

164 Farbige Texte im Terminal-Fenster Farbe Escape-Sequenz für die Textfarbe Schwarz Rot 3 4 Grün 3 4 Gelb Blau Magenta Cyan Weiß Escape-Sequenzen für Textfarben. Textstil Escape-Sequenz normal 0 fett schwach kursiv 3 unterstrichen 4 blinkend 5 invers 7 Escape-Sequenz für die Hintergrundfarbe Escape-Sequenzen für Textstile (nicht alle werden vom Raspberry Pi unterstützt). Zur besseren Übersicht definiert man am Programmanfang Variablen, die dann verwendet werden (farben.py). #!/usr/bin/python # -*- coding: utf-8 -*- n = "\033[0m" b = "\033[;34m" r = "\033[;3m" print "Ein " + b + "blaues" + n + " und ein " + r + "rotes" + n + " Wort" Die Python-Bibliothek time liefert Funktionen zum Rechnen mit Datumsund Uhrzeitangaben. 64

165 Programmierung 69 Uhrzeiten in Python verarbeiten Die Funktion time.localtime() liefert das aktuelle Datum und die Uhrzeit, abhängig von der eingestellten Zeitzone. zeit = time.localtime() Das Ergebnis ist eine Datenstruktur, die aus verschiedenen Einzelwerten besteht. jahr = zeit.tm_year monat = zeit.tm_mon tag = zeit.tm_mday stunde = zeit.tm_hour minute = zeit.tm_min sekunde = zeit.tm_sec wochentag = zeit.tm_wday jahrestag = zeit.tm_yday sommerzeit = zeit.tm_isdst Der Wochentag wird als Ziffer zwischen 0 (Montag) und 6 (Sonntag angegeben. Der Jahrestag bezeichnet die Nummer des Tages im laufenden Jahr zwischen und 365 bzw. 366 in Schaltjahren. Der Wert tm_isdst gibt an, ob in der aktuell eingestellten Zeitzone gerade die Sommerzeit gilt. 70 Analoguhr mit PyGame programmieren Die Bibliothek pygame liefert vordefinierte Funktionen und Objekte zur Grafikdarstellung und Spieleprogrammierung. Damit braucht man nicht mehr alles von Grund auf neu zu erfinden. Das Programm uhr0.py stellt die abgebildete Analoguhr auf dem Bildschirm dar. Um den Mittelpunkt des runden Zifferblatts laufen drei Uhrzeiger, die die Stunde, die Minute und die Sekunde anzeigen. Oben im Fenstertitel läuft außerdem noch eine digitale Zeitanzeige mit. 65

166 Uhrzeiten in Python verarbeiten import pygame, time from pygame.locals import * from math import sin, cos, radians pygame.init() ROT = (55, 0, 0) WEISS = (55, 55, 55) SCHWARZ = (0, 0, 0) FELD = pygame.display.set_mode((400, 400)) FELD.fill(WEISS) MX = 00 MY = 00 MP = ((MX, MY)) def punkt(a, W): w = radians(w * 6 90) x = int(mx + A * cos(w)) y = int(my + A * sin(w)) return((x, y)) for i in range(60): pygame.draw.circle(feld, SCHWARZ, punkt(90, i), ) for i in range(): pygame.draw.circle(feld, SCHWARZ, punkt(90, i * 5), 4) mainloop = True s = 0 while mainloop: zeit = time.localtime() s = zeit.tm_sec m = zeit.tm_min h = zeit.tm_hour if h > : h = h hm = (h + m / 60.0) * 5 if s <> s: pygame.draw.circle(feld, WEISS, MP, 8) pygame.draw.line(feld, SCHWARZ, MP, punkt(0, hm), 6) pygame.draw.line(feld, SCHWARZ, MP, punkt(70, m), 4) pygame.draw.line(feld, ROT, MP, punkt(80, s), ) s = s pygame.display.set_caption("aktuelle Zeit: " + time. asctime()) pygame.display.update() 66

167 Programmierung for event in pygame.event.get(): if event.type == QUIT or (event.type == KEYUP and event.key == K_ESCAPE): mainloop = False pygame.quit() So funktioniert es Am Anfang werden die Bibliotheken time für die Zeitsteuerung und pygame für die Grafikdarstellung sowie einfache trigonometrische Winkelfunktionen aus der math-bibliothek importiert: import pygame, time from pygame.locals import * from math import sin, cos, radians Bevor PyGame in einem Programm verwendet werden kann, muss es initialisiert werden: pygame.init() Die drei in der Grafik verwendeten Farben werden in drei Variablen gespeichert. ROT = (55, 0, 0) WEISS = (55, 55, 55) SCHWARZ = (0, 0, 0) Ein 400 x 400 Pixel großes Fenster wird geöffnet und komplett mit Weiß gefüllt. FELD = pygame.display.set_mode((400, 400)) FELD.fill(WEISS) Drei Variablen legen die Koordinaten des Mittelpunkts fest, auf den bezogen alle weiteren grafischen Elemente, das Zifferblatt und der Uhrzeiger ausgerichtet werden. Die Variablen MX und MY enthalten die x- und y-koordinaten des Mittelpunkts, die Variable MP den Mittelpunkt als Punkt, wie er für grafische Funktionen verwendet wird. MX = 00 MY = 00 MP = ((MX, MY)) Als Nächstes folgt die Definition einer wichtigen Funktion, die anhand des Abstands zum Mittelpunkt und eines Winkels Punkte im Koordinatensystem berechnet. Diese Funktion wird für die Darstellung sowohl 67

168 Uhrzeiten in Python verarbeiten des Zifferblatts als auch der Uhrzeiger mehrfach im Programm aufgerufen. def punkt(a, W): w = radians(w * 6 90) x = int(mx + A * cos(w)) y = int(my + A * sin(w)) return((x, y)) Die Funktion verwendet zwei Parameter: A ist der Abstand des gewünschten Punkts vom Mittelpunkt, W der Winkel bezogen auf den Mittelpunkt. Um die Darstellung im Fall der Uhr zu vereinfachen, nehmen wir den Winkel im Uhrzeigersinn bezogen auf die senkrechte -Uhr-Richtung an. Der Winkel wird auch nicht in Grad, sondern in Minuten, /60 eines Vollkreises, an die Funktion übergeben. Solche Annahmen sparen viele Zwischenberechnungen. Die Anzeige einer Analoguhr basiert auf den Winkelfunktionen Sinus und Kosinus. Damit werden aus dem Winkel eines Punkts im Bogenmaß gegenüber dem Mittelpunkt (w) dessen Koordinaten im rechtwinkligen Koordinatensystem (x und y) ermittelt. Die Koordinaten des Mittelpunkts werden aus den Variablen MX und MY übernommen, die außerhalb der Funktion definiert wurden und global gelten. Der Abstand des Punkts vom Mittelpunkt wird über den Parameter A der Funktion übergeben. Die Funktion int() ermittelt aus dem Ergebnis den Integer-Wert (Ganzzahl), da Pixelkoordinaten nur als Integer angegeben werden können. Winkelberechnung im Bogenmaß Python rechnet wie die meisten Programmiersprachen Winkeleinheiten in Bogenmaß und nicht in Grad. Die Funktion radian() aus der math- Bibliothek rechnet Grad in Bogenmaß um. Dazu wird die im Programm verwendete Winkelangabe in Minuten mit 6 multipliziert, um auf Grad zu kommen, und anschließend wird 90 Grad subtrahiert, damit die 0-Richtung senkrecht nach oben zeigt, wie die Minute 0 jeder Stunde. Dieser Winkel umgerechnet in Bogenmaß wird für weitere Berechnungen innerhalb der Funktion in der Variablen w gespeichert. Der Rückgabewert der Funktion ist ein geometrischer Punkt mit den errechneten Koordinaten x und y, der wie alle Punkte in doppelte Klammern gesetzt wird. Nach der Definition dieser Funktion wird das Zifferblatt gezeichnet. Eine Schleife zeichnet nacheinander die 60 Minutenpunkte auf einem Kreis. Alle Punkte werden mit der Funktion punkt() ermittelt. Sie haben den gleichen Abstand vom Mittelpunkt, der mit 90 Pixeln in den vier Qua- 68

169 Programmierung dranten noch genau 0 Pixel vom Fensterrand entfernt ist. Die Punkte haben einen Radius von Pixeln. for i in range(60): pygame.draw.circle(feld, SCHWARZ, punkt(90, i), ) Eine zweite Schleife zeichnet größere Kreise, die die Stunden auf dem Zifferblatt markieren. Diese haben einen Radius von 4 Pixeln, werden einfach über die vorhandenen Kreise gezeichnet und überdecken diese vollständig. Die Stundensymbole folgen im Winkelabstand von fünf Minuteneinheiten aufeinander, was man durch die Multiplikation mit 5 in der Winkelangabe, die an die Funktion übergeben wird, erreicht. for i in range(): pygame.draw.circle(feld, SCHWARZ, punkt(90, i * 5), 4) Bevor die Hauptschleife des Programms startet, werden noch zwei Hilfsvariablen definiert, die im folgenden Verlauf benötigt werden. mainloop gibt an, ob die Schleife weiterlaufen soll oder ob der Benutzer das Programm beenden möchte. s speichert die zuletzt angezeigte Sekunde. mainloop = True s = 0 Jetzt startet die Hauptschleife des Programms, die in jedem Durchlauf, unabhängig davon, wie lange er dauert, die aktuelle Zeit in das Objekt zeit schreibt. Dazu wird die Funktion time.localtime() aus der time- Bibliothek verwendet. while mainloop: zeit = time.localtime() Die drei für die Uhrzeiger relevanten Werte, Sekunden, Minuten und Stunden, werden aus der Struktur in die drei Variablen s, m und h geschrieben. s = zeit.tm_sec m = zeit.tm_min h = zeit.tm_hour Analoguhren zeigen nur zwölf Stunden an. Die Funktion time.localtime() liefert alle Zeitangaben im 4-Stunden-Format. Bei Zeitangaben am Nachmittag werden Stunden subtrahiert. if h > : h = h 69

170 Uhrzeiten in Python verarbeiten Die Variable hm speichert den Winkel des Stundenzeigers in Minuteneinheiten, wie sie im gesamten Programm verwendet werden. Dazu wird zur aktuellen Stunde /60 des Minutenwerts addiert. In jeder Minute bewegt sich der Stundenzeiger um /60 einer Stunde weiter. Der errechnete Wert wird mit 5 multipliziert, da der Stundenzeiger in einer Stunde fünf Minuteneinheiten auf dem Zifferblatt vorrückt. hm = (h + m / 60.0) * 5 Zeitdarstellung bei Analoguhren Je nach verwendeter Mechanik gibt es zwei unterschiedliche Anzeigen bei Analoguhren. Bei echten analog laufenden Uhren führt der Minutenzeiger eine gleichförmige Kreisbewegung aus, bei digital gesteuerten Uhren, wie zum Beispiel Bahnhofsuhren, springt er zur vollen Minute um eine ganze Minute weiter. Letzteres Verfahren hat den Vorteil, dass die Uhrzeit besser auf einen Blick minutengenau abgelesen werden kann. Bruchteile von Minuten sind im Alltag normalerweise nicht wichtig. Der Stundenzeiger muss aber trotzdem eine gleichförmige Kreisbewegung ausführen. Es wäre sehr befremdlich und unübersichtlich, würde er jede volle Stunde um 30 Grad (eine volle Stunde) weiterspringen. Die Dauer eines Schleifendurchlaufs im Programm ist nicht bekannt. Für die Analoguhr bedeutet dies, dass die Grafik nicht bei jedem Schleifendurchlauf aktualisiert werden muss, sondern nur, wenn die aktuelle Sekunde eine andere ist als die zuletzt gezeichnete. Dazu wird später im Programm die gezeichnete Sekunde in der Variablen s gespeichert, die aktuelle Sekunde steht immer in der Variablen s. if s <> s: Wenn sich die Sekunde gegenüber der zuletzt gezeichneten verändert hat, wird mit den folgenden Anweisungen die Grafik der Uhr aktualisiert. Hat sie sich nicht verändert, braucht die Grafik nicht aktualisiert zu werden, und die Schleife startet von Neuem mit einer weiteren Abfrage der aktuellen Systemzeit. Als Erstes wird eine weiße Kreisfläche gezeichnet, die die Uhrzeiger restlos überdeckt. Der Radius ist mit 8 Pixeln etwas größer als der längste Zeiger, damit keine Reste davon mehr stehen bleiben. Einen vollflächigen Kreis zu zeichnen ist deutlich einfacher, als den zuletzt gezeichneten Zeiger wieder pixelgenau zu übermalen. pygame.draw.circle(feld, WEISS, MP, 8) Die Funktion pygame.draw.line() zeichnet den Stundenzeiger als Linie vom Mittelpunkt aus mit einer Breite von 6 Pixeln und einer Länge von 70

171 Programmierung 0 Pixeln im Winkel, der durch die Variable hm angegeben wird. Die gleiche Funktion zeichnet auch die anderen beiden Zeiger der Uhr. pygame.draw.line(feld, SCHWARZ, MP, punkt(70, m), 4) pygame.draw.line(feld, ROT, MP, punkt(80, s), ) Jetzt wird die gerade dargestellte Sekunde in der Variablen s gespeichert, um diesen Wert in den nächsten Schleifendurchläufen mit der aktuellen Sekunde zu vergleichen. s = s Die Funktion pygame.display.set_caption() schreibt die aktuelle Uhrzeit in digitaler Form in den Fenstertitel. Dazu wird die Funktion time.asctime() aus der time-bibliothek verwendet, die die Zeitangabe als fertig formatierte Zeichenkette liefert. pygame.display.set_caption("aktuelle Zeit: " + time. asctime()) Bisher wurden alle Grafikelemente nur virtuell gezeichnet. Erst pygame. display.update() baut die Grafikanzeige wirklich neu auf. Die Aktualisierung erfolgt gleichzeitig. Deshalb ist auch keinerlei Flackern beim Zeichnen der einzelnen Zeiger nacheinander zu sehen. pygame.display.update() Immer noch innerhalb der if-abfrage, also auch nur einmal in der Sekunde, erfolgt die relativ leistungshungrige Abfrage eventueller Systemereignisse, mit der festgestellt wird, ob der Benutzer innerhalb der letzten Sekunde das Uhrenfenster schließen wollte oder die [Esc]-Taste gedrückt hat. Ist das der Fall, wird die Variable mainloop auf False gesetzt, und damit wird die Schleife kein weiteres Mal gestartet. for event in pygame.event.get(): if event.type == QUIT or (event.type == KEYUP and event.key == K_ESCAPE): mainloop = False Die letzte Zeile beendet zunächst das PyGame-Modul, was dann das grafische Fenster schließt und danach das ganze Programm. pygame.quit() 7

172 Raspberry Pi-Kamera mit Python steuern 7 Raspberry Pi-Kamera mit Python steuern Die Raspberry Pi-Kamera kann über eine eigene Python-Bibliothek direkt aus Python-Programmen heraus deutlich gesteuert werden komfortabler als über die Kommandozeile. Der Entwickler liefert bei picamera.readthedocs. org eine ausführliche Dokumentation dieses Moduls. Vor der ersten Verwendung muss die Bibliothek python-picamera installiert werden: sudo apt-get update sudo apt-get install python-picamera Das Programm kamera.py fotografiert in regelmäßigen Abständen mit der Raspberry Pi-Kamera und speichert die Fotos im Home-Verzeichnis. import picamera, time kamera = picamera.picamera() kamera.resolution = (640, 480) try: while True: bild = time.strftime("%h-%m-%s")+".jpg" kamera.capture(bild) time.sleep(5) except KeyboardInterrupt: kamera.close() So funktioniert es Das Programm benötigt die Bibliothek picamera mit den Kamerafunktionen sowie time, um die Bilder mit einer Zeitangabe zu versehen. import picamera, time Die Kamera wird über ein Objekt gesteuert, das aus einer Klasse der Bibliothek generiert wird. Dieses Kameraobjekt bietet diverse Methoden, über die Python die verschiedenen Kamerafunktionen aufruft. kamera = picamera.picamera() Die Fotoauflösung der Kamera wird auf 640 x 480 Pixel gesetzt. kamera.resolution = (640, 480) Jetzt startet eine Endlosschleife, die die Bilder fotografiert. try: while True: Aus der Uhrzeit und dem Verzeichnisnamen wird der Dateiname für das nächste Foto in der Variablen bild gespeichert. Dabei werden mithilfe 7

173 Programmierung der Funktion time.strftime() nur die Stunden, Minuten und Sekunden übernommen, nicht das Datum. Auf diese Weise wird der verbrauchte Speicherplatz für die Bilder begrenzt, da (theoretisch) nach 4 Stunden alte Bilder überschrieben werden. bild = time.strftime("%h-%m-%s")+".jpg" Jetzt nimmt die Kamera ein Bild auf und speichert es unter dem in bild festgelegten Namen im aktuellen Verzeichnis. kamera.capture(bild) Mit einer Verzögerung von 5 Sekunden startet die Schleife erneut. Natürlich kann hier auch ein anderer Zeitraum festgelegt werden. time.sleep(5) Drückt der Benutzer die Tastenkombination [Strg]+[C], wird die Kamera geschlossen. Dies ist zwingend nötig, da die Kamera sonst nach Programmende nicht von anderen Anwendungen genutzt werden kann. except KeyboardInterrupt: kamera.close() 7 Raspberry Pi-Kamera als Webcam Um die Raspberry Pi-Kamera als Webcam zu betreiben, muss ein Webserver wie z. B. lighttpd (siehe Anleitung 9) installiert sein. Eine Datenbank auf dem Server ist nicht nötig. 3 4 Den Standardbenutzer pi der Benutzergruppe www-data hinzufügen: sudo adduser pi www-data Der ganzen Gruppe Schreibrechte auf das Verzeichnis des Webservers geben: sudo chmod 775 /var/www Verzeichnis für die Webcam anlegen: mkdir /var/www/webcam Das Programm webcam.py macht die Fotos und speichert sie immer unter dem gleichen Dateinamen auf dem Webserver. import picamera, time kamera = picamera.picamera() kamera.resolution = (640, 480) try: while True: bild = "/var/www/webcam/webcam.jpg" 73

174 Raspberry Pi-Kamera als Webcam kamera.capture(bild) time.sleep(5) except KeyboardInterrupt: kamera.close() 5 Um das jeweils aktuelle Webcam-Bild im Browser zu betrachten, im Verzeichnis /var/www/webcam eine Datei index.html mit folgendem Inhalt erstellen (die Metaangaben im Header sorgen dafür, dass die Seite alle fünf Sekunden neu geladen wird und keinen Cache verwendet, in dem ein älteres Bild gespeichert bleiben könnte): <html> <head> <meta http-equiv="refresh" content="5"> <meta http-equiv="pragma" content="no-cache"> <title>webcam</title> </head> <body> <h align="center">meine Raspberry Pi Webcam</h> <p align="center"> <img src="webcam.jpg" width="640" heigth="480"> </p> </body> </html> 6 Den Webserver von einem anderen Computer im Netzwerk im Browser aufrufen (IP-Adresse durch die des Raspberry Pi ersetzen): 74

175 Programmierung 73 Programmieren in Scratch Scratch ist eine intuitive Programmierumgebung, mit der Kinder und Programmiereinsteiger schnell Ideen umsetzen können, ohne sich zuerst mit Programmiertheorie auseinanderzusetzen. In einem ersten einfachen Skript soll die Katze, die Scratch-Symbolfigur, einmal im Kreis laufen und dabei ihre Farbe verändern Scratch über das vorinstallierte Desktopsymbol starten. Im Objektfenster unten rechts auf die Katze klicken, wenn diese nicht bereits hervorgehoben ist. Sie erscheint als Objekt oberhalb des Skriptfensters. Alle Befehle im Skriptfenster beziehen sich dann auf dieses Objekt. In der Blockpalette oben links auf das gelbe Symbol Steuerung klicken. Damit werden die Blöcke zur Programmsteuerung angezeigt. Den abgebildeten Block aus der Blockpalette in das Skriptfenster ziehen. Das Element bewirkt, dass die folgenden Skriptelemente ausgeführt werden, wenn der Benutzer auf das grüne Fähnchen rechts oben klickt. Die Bewegung wird aus einzelnen Gehen- und Drehen-Schritten zusammengesetzt. Diese werden so oft wiederholt, bis die Katze einen ganzen Kreis gegangen ist. Für die Wiederholungsschleife den abgebildeten Block in das Skriptfenster ziehen und unten an das dort bereits vorhandene Element andocken. In jedem Bewegungsschritt soll sich die Katze um 5 Grad drehen. Dabei dreht sie sich in 4 Schritten genau einmal. Dazu in das weiße Zahlenfeld des Wiederhole-Blocks 4 eintragen. In der Blockpalette auf das blaue Symbol Bewegung klicken, den abgebildeten Block in das Skriptfenster ziehen und innerhalb der Schleife andocken. Schrittweise auf 0 ändern. Den Block für die Drehbewegung gegen den Uhrzeigersinn in das Skriptfenster innerhalb der Schleife unter die gehe-bewegung ziehen. 75

176 Programmieren in Java 9 0 In der Blockpalette auf das violette Symbol Aussehen klicken, den abgebildeten Block in das Skriptfenster ziehen und innerhalb der Schleife unterhalb der Bewegungen andocken. Oben rechts im Scratch-Fenster auf das grüne Fähnchen klicken. Die Katze läuft im Kreis und ändert dabei zyklisch ihre Farbe. Am Ende der 4 Wiederholungen steht die Katze wieder an ihrer ursprünglichen Position und hat auch wieder ihre ursprüngliche Farbe. 74 Programmieren in Java Neben Python stehen noch diverse andere Programmiersprachen für den Raspberry Pi zur Verfügung. Seit NOOBS.3.0 wird Java JDK 8 vorinstalliert mitgeliefert. Früher lieferte Raspbian das OpenJDK mit, das aber nicht hundertprozentig kompatibel zum»offiziellen«java von Oracle war. Zum Programmieren direkt auf dem Raspberry Pi empfiehlt sich die Entwicklungsumgebung Geany. Das beliebte Eclipse läuft nur extrem träge. 3 4 Geany und Plug-ins installieren: sudo apt-get install geany-plugins Geany im Startmenü über Entwicklung/Geany starten. Datei/Neu aus Vorlage/main.java legt das Grundgerüst für ein Java-Programm an und schaltet die Syntaxhervorhebung für Java ein. Das Symbol Kompilieren oder die Taste [F8] kompiliert das aktuelle Projekt mit dem vorinstallierten Java-Compiler javac. The Pi4J Project (pi4j.com) entwickelt eine objektorientierte API für Java zum Zugriff auf die GPIO-Schnittstelle des Raspberry Pi sowie zur Kommunikation über I²C und SPI. 76

177 Programmierung 75 Programmieren in C und C++ Der Kommandozeilencompiler gcc ist, wie in fast allen Linux-Distributionen, bei Raspbian vorinstalliert. Zur Entwicklung kann wie bei Java die Entwicklungsumgebung Geany verwendet werden. Datei/Neu aus Vorlage/main.c legt das Grundgerüst für ein C-Programm an. Auch der beliebte Cross Platform Compiler Qt Creator steht für den Raspberry Pi zur Verfügung: 3 Qt Creator installieren: sudo apt-get install qt-sdk (über 500 MByte!) Über den Menüpunkt Tools/Options > build & run > tab tool chains den gcc-compiler hinzufügen. Anschließend noch einige Parameter eintragen: Compiler Path: /usr/bin/arm-linux-gnueabihf-gcc-4.6 Debugger: /usr/bin/gdb Mkspec: default 77

178 Elektronik 76 Elektronik über GPIO anschließen Der Raspberry Pi kann nicht nur wie jeder andere Computer über Tastatur und Maus gesteuert werden und seine Ausgaben auf dem Bildschirm zeigen die sogenannte GPIO-Stiftleiste (General Purpose Input Output) bietet auch die Möglichkeit, direkt Hardware anzuschließen, um z. B. über Taster Eingaben zu machen oder programmgesteuert LEDs leuchten zu lassen. Die Raspberry Pi-Modelle A und B haben eine GPIO-Stiftleiste mit 6 Anschlüssen, auf dem Raspberry Pi-Modell B+ gibt es 40 GPIO-Pins. Dabei entsprechen die ersten 6 genau denen der früheren Raspberry Pi-Modelle, sodass bestehende Erweiterungsplatinen weiter genutzt werden können. Vorsichtsmaßnahmen Auf keinen Fall irgendwelche GPIO-Pins miteinander verbinden und abwarten, was passiert! Nicht alle GPIO-Pins lassen sich frei programmieren. Einige sind für die Stromversorgung und andere Zwecke fest eingerichtet. Einige GPIO-Pins sind direkt mit Anschlüssen des Prozessors verbunden, ein Kurzschluss kann den Raspberry Pi komplett zerstören. Verbindet man über einen Schalter oder eine LED zwei Pins miteinander, muss immer ein Schutzwiderstand dazwischengeschaltet werden. Für Logiksignale immer Pin verwenden, der +3,3 V liefert und bis 50 ma belastet werden kann. Pin 6 ist die Masseleitung für Logiksignale. Pin liefert +5 V zur Stromversorgung externer Hardware. Hier kann so viel Strom entnommen werden, wie das USB-Netzteil des Raspberry Pi liefert. Dieser Pin darf aber nicht mit einem GPIO-Eingang verbunden werden. So kommt man an passende Anschlusskabel Flachbandkabel Mit den meisten Motherboards werden heute noch Anschlusskabel für einen Parallelport und IDE-Festplatten mitgeliefert, deren Anschlüsse meist auf dem Motherboard vorhanden sind, aber kaum noch 78

179 Elektronik genutzt werden. Die Festplattenkabel haben einen 40-poligen Anschluss, der genau auf den GPIO-Port des Raspberry Pi B+ passt, die 6-poligen Parallelportkabel passen auf den GPIO-Port der Modelle B und A. Die rote Ader ganz außen markiert Pin. Computergehäusekabel Benötigt man nur einzelne Pins, lässt sich der Kabelstrang für die Front-LEDs und Reset-Taster aus einem ausgedienten Computergehäuse verwenden. Die Kontakte, mit denen diese Kabel am Motherboard angeschlossen sind, passen auf den GPIO-Port. Hier hat man auch gleich LEDs zur Verfügung. Nur die Schutzwiderstände von 0 Ohm müssen noch eingelötet werden. 77 Elektronische Schaltungen ohne Löten aufbauen Für den schnellen Aufbau elektronischer Schaltungen ohne Löten eignen sich Steckplatinen, sogenannte Breadboards, besonders gut. Elektronische Bauteile können direkt in ein Lochraster mit Standardabständen gesteckt werden. Bei diesen Platinen sind die äußeren Längsreihen alle durch Kontakte miteinander verbunden. Diese Kontaktreihen werden als»+«- und» «-Pol zur Stromversorgung der Schaltung genutzt. Die anderen Kontaktreihen sind jeweils quer miteinander verbunden, wobei in der Mitte der Platine eine Lücke ist. Dort können ICs oder andere Bauelemente hineingesteckt und nach außen hin verdrahtet werden. Löten einfach und richtig Wer sich mit Hardwarebasteleien rund um den Raspberry Pi beschäftigt, wird ab und an auch mal etwas löten müssen. Für den Profi ist das kein Problem, für den Anfänger eigentlich auch nicht, wenn er ein paar wichtige Tipps beachtet Hier wird Löten einfach dargestellt als ein unterhaltsamer Comic mit Basiswissen für Hobbylöter: bit.ly/78qoba. 79

180 LEDs an die GPIO-Ports anschließen 78 LEDs an die GPIO-Ports anschließen An die GPIO-Ports können für Lichtsignale und Lichteffekte LEDs angeschlossen werden. Zwischen dem verwendeten GPIO-Pin und der Anode der LED muss ein 0-Ohm-Vorwiderstand eingebaut werden. Die Kathode der LED verbindet man mit der Masseleitung auf Pin 6. Die beiden Anschlussdrähte einer LED sind unterschiedlich lang. Der längere von beiden ist der»+«-pol, die Anode, der kürzere die Kathode. Einfach zu merken: Das»+«-Zeichen hat einen Strich mehr als das» «-Zeichen und macht damit den Draht etwas länger. Außerdem sind die meisten LEDs auf der» «-Seite abgeflacht, wie eben ein» «-Zeichen. 79 GPIO-Ports über Python ansteuern Bevor GPIO-Ports über Python angesprochen werden können, muss die Python-GPIO-Bibliothek installiert sein: sudo apt-get update sudo apt-get install python-dev python-rpi.gpio 3 Zum Zugriff auf die GPIO-Ports werden generell root-rechte benötigt, deshalb muss die Python-Shell mit root-rechten gestartet werden: sudo idle Am Anfang jedes Python-Programms muss die GPIO-Bibliothek importiert werden. import RPi.GPIO as GPIO 4 Die Bibliothek RPi.GPIO unterstützt zwei Methoden zur Bezeichnung der Ports. Im Modus BCM werden die bekannten GPIO-Portnummern verwendet, die auch auf Kommandozeilenebene oder in Shellskripten verwendet werden. Im Modus BOARD entsprechen die Bezeichnungen den Pinnummern auf der Raspberry Pi-Platine. Üblicherweise wird BCM verwendet. GPIO.setmode(GPIO.BCM) 5 Die Funktion GPIO.setup initialisiert einen GPIO-Port als Ausgang oder als Eingang. Der erste Parameter bezeichnet den Port je nach vorgegebenem Modus BCM oder BOARD mit seiner GPIO-Nummer oder Pinnummer. Der zweite Parameter kann entweder GPIO.OUT für einen Ausgang oder GPIO. 80

181 Elektronik IN für einen Eingang sein. Der Parameter initial gibt an, ob der Port am Anfang auf (eingeschaltet) oder 0 (ausgeschaltet) stehen soll. GPIO.setup(7, GPIO.OUT, initial=0) 6 Die Funktion GPIO.output setzt den Status eines GPIO-Ports. Diese Zeile schaltet die LED an GPIO-Port 7 ein: GPIO.output(7, ) 7 Und diese Zeile schaltet sie wieder aus: GPIO.output(7, 0) 8 Am Ende eines Programms müssen alle GPIO-Ports wieder zurückgesetzt werden. Diese Zeile erledigt das für alle vom Programm initialisierten GPIO- Ports auf einmal. Ports, die von anderen Programmen initialisiert wurden, bleiben unberührt. So wird der Ablauf dieser anderen, möglicherweise pa rallel laufenden Programme nicht gestört. GPIO.cleanup() 80 LED-Lauflicht Lauflichter sind immer wieder beliebte Effekte, um Aufmerksamkeit zu erregen, sei es im Partykeller oder in professioneller Leuchtwerbung. Noch schneller ist dieses Projekt mit einem Portexpander umgesetzt, siehe Zusatzmaterial online. LEDs und Vorwiderstände nach Zeichnung aufbauen 3 Python-IDLE mit Superuserrechten starten: sudo idle Programm lauflicht.py öffnen oder eintippen: 8

182 LED-Lauflicht import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) LED = [7,8,5,0,4,3,7,8] for x in range(8): GPIO.setup(LED[x], GPIO.OUT, initial=0) print ("Lauflicht") print ("L = nach links") print ("R = nach rechts") print ("S = symmetrisch") print ("Strg+C beendet das Programm") e = raw_input ("Bitte Buchstaben eintippen: ") z = 0. try: while True: if e == "r": for x in range(8): GPIO.output(LED[x], ) time.sleep(z) GPIO.output(LED[x], 0) elif e == "l": for x in range(7, -, -): GPIO.output(LED[x], ) time.sleep(z) GPIO.output(LED[x], 0) elif e == "s": for x in range(4): GPIO.output(LED[4+x], ) GPIO.output(LED[3-x], ) time.sleep(z) GPIO.output(LED[4+x], 0) GPIO.output(LED[3-x], 0) else: for x in range(8): GPIO.output(LED[x], ) 4 5 except KeyboardInterrupt: GPIO.cleanup() Programm mit [F5] starten. Über die Tasten [L], [R] und [S] lassen sich verschiedene Lauflichtmuster wählen. [Strg]+[C] beendet das Programm. 8

183 Elektronik 6 7 Die Geschwindigkeit des Lauflichts lässt sich im Programmcode über die Variable z ändern. Diese gibt in Sekunden an, wie lange ein Muster leuchtet, bis zum nächsten Muster weitergeschaltet wird. Sollen andere GPIO-Ports für die LEDs verwendet werden, sie im Array LED ändern. 8 Desktopsymbol für IDLE mit GPIO- Unterstützung Wer viel mit Python und GPIO bastelt, möchte nicht jedes Mal ein LXTerminal aufrufen, um IDLE zu starten. Mit einem Desktopsymbol geht es einfacher. 3 4 Eine Kopie des vorinstallierten Desktopsymbols IDLE anlegen. Dazu Rechtsklick auf das Symbol und Kopieren im Kontextmenü auswählen. Rechtsklick auf den Desktop und Einfügen legt ein neues Symbol an. Da bereits eine gleichnamige Desktopverknüpfung existiert, erscheint beim Versuch, eine Kopie anzulegen, eine Meldung, die mit einem neuen Dateinamen, z. B. idlegpio.desktop beantwortet werden muss. Am Symbol auf dem Desktop ändert sich zunächst nichts. Der angezeigte Name bleibt IDLE. Rechtsklick auf die neue Kopie des Desktopsymbols und im Kontextmenü Leafpad wählen. Desktopsymbole sind reine Textdateien, die mit einem Editor bearbeitet werden können. Hier die abgebildeten Änderungen vornehmen und danach die Datei speichern. Ein Doppelklick auf das neue Desktopsymbol startet die Python-IDE IDLE mit Superuserrechten. 83

184 Taster am GPIO-Anschluss 8 Taster am GPIO-Anschluss GPIO-Ports können nicht nur Daten ausgeben, zum Beispiel über LEDs, sondern auch zur Dateneingabe verwendet werden. Dazu müssen sie im Programm als Eingang definiert werden. Liegt auf einem als Eingang definierten GPIO-Port ein +3,3-V-Signal an, wird es als logisch True bzw. ausgewertet. Wichtig! Auf keinen Fall über einen Taster einen GPIO-Port direkt mit dem +3,3-V-Anschluss des Raspberry Pi verbinden. Der GPIO-Port wird dadurch überlastet. Zwischen GPIO-Eingang und +3,3 V immer einen -kohm- Schutzwiderstand anschließen. In den meisten Fällen funktioniert diese simple Schaltung bereits, allerdings hätte der GPIO-Port bei offenem Taster keinen eindeutig definierten Zustand. Wenn ein Programm diesen Port abfragt, kann es zu zufälligen Ergebnissen kommen. Um das zu verhindern, schließt man einen vergleichsweise sehr hohen Widerstand üblicherweise 0 kohm oder kohm gegen Masse. Dieser sogenannte Pull-down-Widerstand zieht den Status des GPIO-Ports bei geöffnetem Taster wieder nach unten auf 0 V. Da der Widerstand sehr hoch ist, besteht, solange der Taster gedrückt ist, auch keine Kurzschlussgefahr. Ist der Taster gedrückt, sind +3,3 V und die Masseleitung direkt über diesen Widerstand verbunden. 83 LED-Würfel Ein elektronisch gesteuerter Würfel, der auf Tastendruck die typischen Würfelaugen von eins bis sechs leuchten lässt, kann mit sieben LEDs, einem Taster und ein paar Widerständen auf einem Steckbrett aufgebaut werden. 84

185 Elektronik LEDs, Taster und Vorwiderstände nach Zeichnung aufbauen. Für die Ansteuerung der LEDs werden nur vier statt sieben GPIO-Pins benötigt, da ein Würfel zur Darstellung gerader Zahlen die Augen paarweise nutzt. 3 Python-IDLE mit Superuserrechten starten: sudo idle Programm ledwuerfel.py öffnen oder eintippen: #!/usr/bin/python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time, random 85

186 LED-Würfel GPIO.setmode(GPIO.BCM) LED = [8,5,4,3] TASTE = 7 for x in range(4): GPIO.setup(LED[x], GPIO.OUT) GPIO.setup(TASTE, GPIO.IN) print ("Knopf drücken, um zu würfeln. Strg+C beendet das Programm") try: while True : if GPIO.input(TASTE)==: for x in range(4): GPIO.output(LED[x], 0) time.sleep(0.5) w = random.randrange(,7) print "Gewürfelte Zahl:" + str(w) if w == : GPIO.output(LED[0], ) if w == : GPIO.output(LED[], ) if w == 3: GPIO.output(LED[0], ) GPIO.output(LED[], ) if w == 4: GPIO.output(LED[], ) GPIO.output(LED[], ) if w == 5: GPIO.output(LED[0], ) GPIO.output(LED[], ) GPIO.output(LED[], ) if w == 6: GPIO.output(LED[], ) GPIO.output(LED[], ) GPIO.output(LED[3], ) print ("Knopf drücken, um zu würfeln. Strg+C beendet das Programm") except KeyboardInterrupt: GPIO.cleanup() 4 5 Programm starten, Taster drücken, Würfelergebnis wird angezeigt. Beim nächsten Druck wird eine neue Zahl gewürfelt. 86

187 Elektronik So funktioniert es Am Anfang werden die Bibliotheken time für Zeitsteuerung und random für Zufallszahlen importiert: import time, random Ein Array legt die Nummern der GPIO-Ports für die LEDs fest, eine zusätzliche Variable den Port für den Taster: LED = [8,5,4,3] TASTE = 7 Ein try:... except:-konstrukt lässt das Programm endlos laufen, bis es durch einen KeyboardInterrupt, einen Tastendruck auf der Tastatur, unterbrochen wird. try: while True :... except KeyboardInterrupt:... Wenn der Spieler den Taster gedrückt hat, nimmt dieser GPIO-Port den Wert an. Danach werden zunächst alle LEDs ausgeschaltet: if GPIO.input(TASTE)==: for x in range(4): GPIO.output(LED[x], 0) Jetzt wird eine Zufallszahl zwischen und 6 erzeugt: w = random.randrange(,7) Abhängig von der gewürfelten Zahl werden bestimmte LED-Gruppen eingeschaltet. Unabhängig vom Würfelergebnis wird der Benutzer wieder aufgefordert, die Taste zu drücken. Danach springt das Programm zurück zum Schleifenanfang. Die LEDs bleiben eingeschaltet, bis der Benutzer den Taster wieder drückt. 87

188 Fußgängerampel mit LEDs und Taster 84 Fußgängerampel mit LEDs und Taster Drückt man auf den Taster einer Fußgängerampel, schaltet die Verkehrsampel über Gelb auf Rot und danach die Fußgängerampel auf Grün. Nach einer Grünphase von zwei Sekunden schaltet die Fußgängerampel wieder auf Rot. Dann beginnt der Schaltzyklus der Verkehrsampel über Rot-Gelb nach Grün. Danach wartet das Programm mit dieser Einstellung, bis der Benutzer erneut die Taste drückt. 3 LEDs und Vorwiderstände nach Zeichnung aufbauen: Python-IDLE mit Superuserrechten starten: sudo idle Programm ampel.py öffnen oder eintippen: #!/usr/bin/python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time rot = 0 gelb = gruen = f_rot = 3 f_gru = 4 taste = 5 Ampel=[8,3,4,5,8,7] GPIO.setmode(GPIO.BCM) GPIO.setup(Ampel[rot], GPIO.OUT, initial=0) GPIO.setup(Ampel[gelb], GPIO.OUT, initial=0) GPIO.setup(Ampel[gruen], GPIO.OUT, initial=) 88

189 Elektronik GPIO.setup(Ampel[f_rot], GPIO.OUT, initial=) GPIO.setup(Ampel[f_gru], GPIO.OUT, initial=0) GPIO.setup(Ampel[taste], GPIO.IN) print ("Taste drücken, um Fußgängerampel einzuschalten, Strg+C beendet das Programm") try: while True: if GPIO.input(Ampel[taste])==: GPIO.output(Ampel[gruen],0) GPIO.output(Ampel[gelb],) time.sleep(0.6) GPIO.output(Ampel[gelb],0) GPIO.output(Ampel[rot],) time.sleep(0.6) GPIO.output(Ampel[f_rot],0) GPIO.output(Ampel[f_gru],) time.sleep() GPIO.output(Ampel[f_gru],0) GPIO.output(Ampel[f_rot],) time.sleep(0.6) GPIO.output(Ampel[gelb],) time.sleep(0.6) GPIO.output(Ampel[rot],0) GPIO.output(Ampel[gelb],0) GPIO.output(Ampel[gruen],) time.sleep() except KeyboardInterrupt: GPIO.cleanup() 4 5 Programm starten. Fußgängerampel leuchtet rot, Verkehrsampel leuchtet grün. Taste drücken, der Ampelzyklus läuft einmal durch. 85 IP-Adresse mit blinkender LED anzeigen Wer einen Raspberry Pi ohne Tastatur und Monitor nur über das Netzwerk betreibt, braucht seine IP-Adresse, um die SSH-Verbindung aufbauen zu können. Diese Adresse lässt sich mit Netzwerkscannersoftware herausfinden. Wesentlich interessanter ist es, die IP-Adresse direkt auf dem Rasp- 89

190 IP-Adresse mit blinkender LED anzeigen berry Pi mit einer LED anzeigen zu lassen. Zeigt man die Ziffern der IP- Adresse einzeln nacheinander durch Blinkzeichen an, wird nur eine einzige LED an einem beliebigen GPIO-Anschluss benötigt. Eine einzelne LED wird man in der Praxis kaum über eine Steckplatine anschließen. Die abgebildete Schaltung ermöglicht aber, das Programm auszuprobieren. Das Programm ip-blink.py zeigt mit einer blinkenden LED die aktuelle IP-Adresse an. Die Ziffern der IP-Adresse werden nacheinander durch eine entsprechende Anzahl kurzer Blinksignale angezeigt, wobei bei einer 0 die LED zehnmal blinkt. Die drei Punkte in der IP-Adresse sowie das Ende werden durch längeres Aufleuchten der LED markiert. import time, os import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) LED = 5 GPIO.setup(LED, GPIO.OUT) BLINK = 0.5 PAUSE =.0 CMD = "hostname -I" ip = os.popen(cmd).readline() print ip for i in ip: if i in " ": 90

191 Elektronik z = int(i) if z == 0: z = 0 for j in range(z): GPIO.output(LED,) time.sleep(blink) GPIO.output(LED,0) time.sleep(blink) time.sleep(pause) else: GPIO.output(LED,) time.sleep(pause) GPIO.output(LED,0) time.sleep(pause) GPIO.cleanup() ändern. LED 3 Die Konstante BLINK bezeichnet das Blinkintervall. Größere Werte verlangsamen das Blinken. Die Konstante PAUSE gibt die Pause zwischen zwei Ziffern sowie die Leuchtdauer der»punkte«in der IP-Adresse an. 86 Python-Programme auf dem LXDE-Desktop automatisch starten Programme wie die automatische Anzeige der IP-Adresse sind nur dann wirklich nützlich, wenn sie beim Start des Raspberry Pi automatisch mitgestartet werden. 3 Konfigurationsverzeichnis anlegen: mkdir -p /home/pi/.config/lxsession/lxde Autostartdatei anlegen: nano /home/pi/.config/lxsession/lxde/autostart Zu startendes Programm eintragen, z. B.: sudo python ip-blink.py 9

192 IP-Adresse auf LED-Streifen anzeigen 87 IP-Adresse auf LED-Streifen anzeigen Noch besser sieht es aus, und auch übersichtlicher, wenn die IP-Adresse mit zwölf LEDs angezeigt wird, für jede Ziffer eine. Für das abgebildete Projekt werden fertige LED- Streifen mit je sechs LEDs, Vorwiderständen und gemeinsamer Kathode verwendet, die bei ebay und beim chinesischen Onlineshop canton-electronics.com für wenig Geld als»rapid Prototyping LED for Arduino«angeboten werden. Die Module werden in SMD-Bauweise im Steckbrettraster produziert. Damit spart man sich den mühsamen und auch platzaufwendigen Aufbau mit einzelnen LEDs und passenden Vorwiderständen. 9

193 Elektronik Die LED-Module sind über zwölf GPIO-Ports und eine Masseleitung mit dem Raspberry Pi verbunden. Die verwendeten Ports stehen auf dem Raspberry Pi B+ und auch auf den Modellen A und B zur Verfügung. Die vier Ziffernblöcke der IP-Adresse werden nacheinander angezeigt. Dazu werden zunächst je drei LEDs, die einen Block symbolisieren, ausgeschaltet, um die Aufmerksamkeit des Betrachtes darauf zu lenken. Nacheinander blinken dann diese drei LEDs so oft, wie die jeweilige Ziffer angibt, bei einer 0 gar nicht. Nachdem die drei Ziffern durch Blinksignale angezeigt wurden, schalten sich die drei LEDs dieses Blocks dauerhaft ein, und der nächste Block wird angezeigt. #!/usr/bin/python import RPi.GPIO as GPIO import time, subprocess BLINK = 0.5 PAUSE =.0 GPIO.setmode(GPIO.BCM) LED = [7,,8,9,5,0,4,,3,7,8,4] for x in LED: GPIO.setup(x, GPIO.OUT, initial=true) ip = subprocess.check_output(["hostname","-i"])[:-].split(".") print ip print ("Strg+C beendet das Programm") try: while True: for i in range(4): for j in range(3): GPIO.output(LED[3*i+j], False) time.sleep(pause) for j in range(3): z = int(ip[i].rjust(3, "0")[j]) for k in range(z): GPIO.output(LED[3*i+j], True) time.sleep(blink) GPIO.output(LED[3*i+j], False) time.sleep(blink) time.sleep(pause) for j in range(3): GPIO.output(LED[3*i+j], True) except KeyboardInterrupt: GPIO.cleanup() 93

194 7-Segment-Anzeige zur Darstellung von Ziffern 88 7-Segment-Anzeige zur Darstellung von Ziffern 7-Segment-Anzeigen können auf sieben LEDs die Ziffern von 0 bis 9 sowie die Buchstaben A bis F, die zur Darstellung von Hexadezimalzahlen notwendig sind, darstellen. Die meisten 7-Segment-Anzeigen verfügen noch über eine achte LED für den Dezimalpunkt. Typische 7-Segment-Anzeigen sind in DIP-Gehäusen verbaut. Die sieben LEDs für die Zifferndarstellung sind mit den Buchstaben a bis g bezeichnet. Die LED mit der Bezeichnung DP stellt den Dezimalpunkt dar. Bei einer einstelligen 7-Segment-Anzeige ist jede LED einzeln über ihre Kathode ansteuerbar. Alle LEDs verwenden eine gemeinsame Anode oder umgekehrt. Dementsprechend werden die Anzeigemodule als»common Anode«oder»Common Cathode«bezeichnet. Die zehn Ziffernbilder werden als Kombinationen der Segmente festgelegt. zahl=[ "abcdef", #0 "bc", # "abdeg", # "abcdg", #3 "bcfg", #4 "acdfg", #5 "acdefg", #6 "abc", #7 "abcdefg", #8 "abcdfg", #9 ] Um eine einzelne LED leuchten zu lassen, muss die Kathode des entsprechenden Segments mit der Masseleitung verbunden sein und die gemeinsame Anode mit einem +3,3-V-Signal. Programme brauchen bei»common 94

195 Elektronik Anode«-Displays inverse Logik: Wird die Kathode mit Masse verbunden, also auf 0 gesetzt, wird die LED eingeschaltet. Vorwiderstände an der Kathode Üblicherweise schließt man Vorwiderstände»vor«einer LED an der Anode an. Prinzipiell spielt es aber keine Rolle, auf welcher Seite der Vorwiderstand liegt, da er nur die durch die LED fließende Stromstärke reduzieren soll, um einen Kurzschluss oder eine Überlastung der GPIO-Ports zu verhindern. Bei einer 7-Segment-Anzeige mit gemeinsamer Anode schließt man die Vorwiderstände an den acht Kathoden an, damit nicht mehrere LEDs an einem Vorwiderstand hängen, sonst wäre die Belastung eines GPIO-Ports zu hoch Segment-Anzeige mit Python ansteuern Das Programm 7seg0.py zählt auf einer 7-Segment-Anzeige, die wie in der Abbildung angeschlossen ist, fortlaufend von 0 bis 9. import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) 95

196 7-Segment-Anzeige mit Python ansteuern seg={ a :7, b :7, c :4, d :7, e :5, f :4, g :} for s in "abcdefg": GPIO.setup(seg[s], GPIO.OUT, initial=) zahl=[ "abcdef", #0 "bc", # "abdeg", # "abcdg", #3 "bcfg", #4 "acdfg", #5 "acdefg", #6 "abc", #7 "abcdefg", #8 "abcdfg", #9 ] print ("Strg+C beendet das Programm") try: while True: for i in range(0): for s in zahl[i]: GPIO.output(seg[s], 0) time.sleep(0.5) for s in "abcdefg": GPIO.output(seg[s], ) except KeyboardInterrupt: GPIO.cleanup() So funktioniert es Für die sieben Segmente der Anzeige wird eine Variable vom Typ dictionary, eine besondere Form der Liste, verwendet. In einem dictionary werden die einzelnen Elemente nicht über ihre Nummer ausgewählt, sondern über ein beliebiges Wort, den sogenannten Schlüssel, der auch aus einem einzigen Buchstaben bestehen kann. Im Gegensatz zu einer einfachen Liste steht ein dictionary in geschweiften Klammern. Es kann beliebig viele Paare aus Schlüssel und Wert enthalten. Hier ist der Schlüssel der jeweilige Kennbuchstabe für das Segment, der Wert dahinter der verwendete GPIO-Port: seg={ a :, b :7, c :4, d :7, e :5, f :4, g :} Die GPIO-Ports aller sieben Segmente werden als Ausgänge definiert und auf gesetzt, was bei einer Kathode ausgeschaltet bedeutet. Die Schleife arbeitet nacheinander alle Buchstaben der angegebenen Zei- 96

197 Elektronik chenkette ab, anstatt wie sonst üblich innerhalb eines bestimmten Zahlenbereichs hochzuzählen. for s in "abcdefg": GPIO.setup(seg[s], GPIO.OUT, initial=) Die Liste zahl legt die einzuschaltenden Segmente für die einzelnen Ziffern von 0 bis 9 fest. Hier handelt es sich um eine normale Liste, deren Elemente nur der Übersichtlichkeit halber untereinandergeschrieben sind. Die Ziffern selbst sind kein Bestandteil der Liste. Sie werden wie alles, was hinter einem # in einer Zeile steht, von Python als Kommentar betrachtet und bei der Programmausführung ignoriert. Eine Schleife zählt fortlaufend von 0 bis 9 durch, um nacheinander die Ziffern anzuzeigen. for i in range(0): Bei jedem Schleifendurchlauf der äußeren Schleife arbeitet eine innere Schleife die in der Liste zahl für diese Ziffer eingetragene Zeichenkette ab, setzt die entsprechenden Segmente der Anzeige auf 0 und schaltet sie damit ein. for s in zahl[i]: GPIO.output(seg[s], 0) Nachdem die Schleife für eine Ziffer durchgelaufen ist, bleibt diese eine halbe Sekunde lang angezeigt, danach werden alle sieben Segmente unabhängig von ihrem aktuellen Status auf gesetzt und damit ausgeschaltet. time.sleep(0.5) for s in "abcdefg": GPIO.output(seg[s], ) 90 Kamera mit Selbstauslöser und GPIO-Taste Mit einem Python-Programm und einer 7-Segment-Anzeige lässt sich ein Selbstauslöser für die Raspberry Pi-Kamera bauen. Nach Druck auf eine Taste zählt die 7-Segment-Anzeige einen Countdown, an dessen Ende das Bild aufgenommen wird. Während des Countdowns erscheint auf dem Bildschirm das Bild der Kamera, sodass man das Motiv entsprechend ausrichten kann. 97

198 Kamera mit Selbstauslöser und GPIO-Taste 7-Segment-Anzeige, Vorwiderstände und Taster nach Zeichnung aufbauen. Das Programm kamera0.py basiert auf den Projekten»7-Segment-Anzeige mit Python ansteuern«(89) sowie»raspberry Pi-Kamera mit Python steuern«(7) und enthält zusätzlich Funktionen zum Auslesen der Taste. # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import picamera, time kamera = picamera.picamera() kamera.resolution = (800, 600) GPIO.setmode(GPIO.BCM) seg={ a :, b :7, c :4, d :7, e :5, f :4, g :} for s in "abcdefg": GPIO.setup(seg[s], GPIO.OUT, initial=true) taste=8 GPIO.setup(taste, GPIO.IN) zahl=[ "abcdef", #0 "bc", # "abdeg", # "abcdg", #3 "bcfg", #4 "acdfg", #5 "acdefg", #6 98

199 Elektronik "abc", #7 "abcdefg", #8 "abcdfg", #9 ] print ("Knopf drücken zum Start. Strg+C beendet das Programm") try: while True: if GPIO.input(taste)==True: kamera.start_preview() for i in range(9,-,-): for s in zahl[i]: GPIO.output(seg[s], False) time.sleep(0.5) for s in "abcdefg": GPIO.output(seg[s], True) kamera.stop_preview() kamera.capture(time.asctime()+".jpg") print ("Knopf drücken zum Start. Strg+C beendet das Programm") except KeyboardInterrupt: GPIO.cleanup() kamera.close() So funktioniert es Nachdem die GPIO-Ausgänge für die 7-Segment-Anzeige definiert wurden, wird noch der GPIO-Port 5 als Eingang für den Taster eingerichtet. taste=8 GPIO.setup(taste, GPIO.IN) Die Hauptschleife des Programms wartet, bis der Benutzer den Taster drückt und der GPIO-Port damit den Zustand True annimmt. while True: if GPIO.input(taste)==True: Ein Vorschaubild der Kamera wird auf dem Bildschirm angezeigt. kamera.start_preview() Die Schleife, die nacheinander die Zahlen auf der 7-Segment-Anzeige aufleuchten lässt, zählt jetzt rückwärts von 9 in Schritten bis -. for i in range(9,-,-): 99

200 Mehrstellige 7-Segment-Anzeigen for s in zahl[i]: GPIO.output(seg[s], False) time.sleep(0.5) for s in "abcdefg": GPIO.output(seg[s], True) Am Ende des Countdowns wird das Vorschaufenster wieder geschlossen, und die Kamera fotografiert ein Bild. Der Bildname setzt sich aus dem aktuellen Zeitstring und der Endung.jpg zusammen. kamera.stop_preview() kamera.capture(time.asctime()+".jpg") 9 Mehrstellige 7-Segment-Anzeigen Bei mehrstelligen 7-Segment-Anzeigen sind nach dem»common Anode«- Schaltschema die Anoden der acht LEDs einer Ziffer zusammengeschaltet. Zusätzlich sind die Kathoden der jeweils gleichen LED-Position in allen vier Ziffern zusammengeschaltet. Dadurch braucht eine vierstellige Anzeige für insgesamt 3 LEDs statt 64 nur Anschlüsse. Die Anschlüsse der Anoden sind nach den vier Ziffern bis 4 bezeichnet, die Anschlüsse der Kathoden nach den sieben Segmenten a bis g sowie DP für den Dezimalpunkt. Sowohl die Anoden wie auch die Kathoden müssen einzeln schaltbar sein. Dazu werden GPIO-Ports verwendet, die auf der Anodenseite auf True (+3,3 V) und auf der Kathodenseite auf False (0 V) gesetzt werden, damit die jeweilige LED leuchtet. Ziffer True Ziffer False Segment True LED aus LED aus Segment False LED leuchtet LED aus 00

201 Elektronik True und False Die Schlüsselwörter True und False können in Programmen gleichbedeutend mit den Logikwerten und 0 verwendet werden. 9 Zeitmultiplex der Trick mit dem Nachleuchten Da auf jedem Segment einer mehrstelligen 7-Segment-Anzeige immer für alle Ziffern das gleiche Signal ist, können einzelne Ziffern zwar ein- und ausgeschaltet werden, nicht aber verschiedene Zahlen anzeigen. Um auf jeder Ziffer der Anzeige trotzdem eine andere Zahl darzustellen, muss man sich eines Tricks bedienen: Eine Lichtquelle wird vom menschlichen Auge noch eine kurze Zeit als leuchtend wahrgenommen, wenn sie eigentlich schon ausgeschaltet ist. Das sogenannte Zeitmultiplexverfahren schaltet schnell von einer zur nächsten Ziffer um und zeigt gleichzeitig bei jedem Wechsel eine andere Zahl an. Der Trick dabei ist, das richtige Zeitintervall herauszufinden. Wechseln die Zahlen zu schnell, scheinen sie für das Auge zu verschwimmen, wechseln sie zu langsam, ist ein deutliches Flackern zu sehen. 93 Mehrstellige 7-Segment-Anzeige mit Python ansteuern Das Programm zahl03.py stellt die Zahlenfolge 34 auf einer vierstelligen 7-Segment-Anzeige dar, die wie in der Abbildung angeschlossen ist. 0

202 Mehrstellige 7-Segment-Anzeige mit Python ansteuern #!/usr/bin/python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) seg={ a :, b :7, c :5, d :7, e :, f :8, g :0} for s in "abcdefg": GPIO.setup(seg[s], GPIO.OUT, initial=true) zif=[5, 4, 3, 4] for z in zif: GPIO.setup(z, GPIO.OUT, initial=false) zahl=[ "abcdef", #0 "bc", # "abdeg", # "abcdg", #3 "bcfg", #4 "acdfg", #5 "acdefg", #6 0

203 Elektronik "abc", #7 "abcdefg", #8 "abcdfg", #9 ] print ("Strg+C beendet das Programm") try: while True: for i in range(4): for s in "abcdefg": GPIO.output(seg[s], True) GPIO.output(zif[i], True) for s in zahl[i+]: GPIO.output(seg[s], False) time.sleep(0.00) GPIO.output(zif[i], False) except KeyboardInterrupt: GPIO.cleanup() So funktioniert es Zusätzlich zum dictionary für die sieben Segmente einer Ziffer wird ein Array zif[] definiert, das die GPIO-Ports der vier Anoden der Anzeige festlegt. Diese werden am Anfang alle auf False gesetzt. zif=[5, 4, 3, 4] for z in zif: GPIO.setup(z, GPIO.OUT, initial=false) Innerhalb der Endlosschleife läuft jetzt eine weitere Schleife viermal durch, um schnell nacheinander die vier Ziffern darzustellen. for i in range(4): In jedem Schleifendurchlauf setzt eine weitere Schleife die Kathoden aller sieben Segmente auf True, schaltet sie also aus. In diesem Moment sind alle LEDs aus. for s in "abcdefg": GPIO.output(seg[s], True) Die Anode der aktuellen Ziffer wird auf True gesetzt, damit diese Ziffer danach die entsprechende Zahl anzeigen kann. GPIO.output(zif[i], True) 03

204 Uhr auf der 7-Segment-Anzeige Die nächste Schleife schaltet alle Segmente der anzuzeigenden Zahl auf False und damit ein. Diese Zahl ist um höher als der Schleifenzähler, der von 0 bis 3 zählt. Es sollen die Ziffern bis 4 angezeigt werden. for s in zahl[i+]: GPIO.output(seg[s], False) Jetzt wartet das Programm eine Millisekunde. Genauso lange leuchten die LEDs einer Ziffer wirklich, bevor zur nächsten Ziffer gewechselt wird. time.sleep(0.00) Am Ende der Schleife wird die aktuelle Ziffer auf False gesetzt und damit ausgeschaltet. Im nächsten Schleifendurchlauf wird die nächste Ziffer angezeigt. GPIO.output(zif[i], False) Je nach verwendetem Anzeigemodul mit unterschiedlichen Wartezeiten experimentieren, um den Zeitmultiplex so einzustellen, dass die Anzeige möglichst wenig flackert, aber auch nicht verschwimmt. 94 Uhr auf der 7-Segment-Anzeige Das Programm uhr0.py zeigt die aktuelle Uhrzeit in Stunden und Minuten auf einer vierstelligen 7-Segment-Anzeige an. #!/usr/bin/python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) seg={ a :, b :7, c :5, d :7, e :, f :8, g :0} for i in "abcdefg": GPIO.setup(seg[i], GPIO.OUT, initial=true) zif=[5, 4, 3, 4] for i in zif: GPIO.setup(i, GPIO.OUT, initial=false) 04

205 Elektronik dp = 8 GPIO.setup(dp, GPIO.OUT, initial=true) zahl=[ "abcdef", #0 "bc", # "abdeg", # "abcdg", #3 "bcfg", #4 "acdfg", #5 "acdefg", #6 "abc", #7 "abcdefg", #8 "abcdfg", #9 ] z = [0,0,0,0] print ("Strg+C beendet das Programm") try: while True: zeit = time.localtime() h = zeit.tm_hour m = zeit.tm_min z[0] = h / 0 z[] = h % 0 z[] = m / 0 z[3] = m % 0 for i in range(4): for s in "abcdefg": GPIO.output(seg[s], True) GPIO.output(zif[i], True) for s in zahl[z[i]]: GPIO.output(seg[s], False) if i == : GPIO.output(dp, False) else: GPIO.output(dp, True) time.sleep(0.00) GPIO.output(zif[i], False) except KeyboardInterrupt: GPIO.cleanup() 05

206 Uhr auf der 7-Segment-Anzeige So funktioniert es Nach der Definition der GPIO-Ports für Segmente und Ziffern wird der GPIO-Port 8 für den Dezimalpunkt eingerichtet. Da es sich wie bei den Segmenten um eine gemeinsame Kathode für alle vier Ziffern handelt, wird sie am Anfang auf True gesetzt, um die Dezimalpunkte auszuschalten. dp = 8 GPIO.setup(dp, GPIO.OUT, initial=true) Das Hauptprogramm ermittelt in einer Endlosschleife und schreibt vier Ziffern für Stunden und Minuten in das Array z[], um sie anschließend auf der 7-Segment-Anzeige auszugeben. while True: zeit = time.localtime() h = zeit.tm_hour m = zeit.tm_min Die erste Ziffer zeigt die Zehnerstelle der Stunden. Dazu wird die aktuelle Stundenangabe aus der Variablen h ganzzahlig durch 0 geteilt. Die zweite Ziffer zeigt die Einerstelle der Stunden. Diese wird mit dem Modulo-Operator % errechnet. Modulo ermittelt den bei einer Ganzzahldivision entstehenden unteilbaren Rest. Bei einer Division durch 0 ergibt der Modulo-Operator immer die letzte Ziffer des Dividenden. Auf die gleiche Weise werden an die dritte und vierte Stelle die beiden Ziffern der aktuellen Minutenangabe geschrieben. z[0] = h / 0 z[] = h % 0 z[] = m / 0 z[3] = m % 0 Bei der Anzeige wird, nachdem die Segmente einer Ziffer eingeschaltet sind, während die zweite Ziffer gerade leuchtet, der Dezimalpunkt mit dazugeschaltet. Wenn der Schleifenzähler auf steht die erste Ziffer hat die Nummer 0, wird der GPIO-Ausgang für den Dezimalpunkt auf False gesetzt und damit eingeschaltet. Bei allen anderen Ziffern wird er auf True gesetzt und damit ausgeschaltet. if i == : GPIO.output(dp, False) else: GPIO.output(dp, True) 06

207 Elektronik 95 IP-Adresse auf der 7-Segment-Anzeige Das Programm ip-adresse.py zeigt auf einer mehrstelligen 7-Segment- Anzeige die IP-Adresse des Raspberry Pi noch übersichtlicher an als mit blinkenden LEDs. Eine IP-Adresse besteht aus vier Blöcken mit je drei Ziffern. Auf der Anzeige wird nacheinander jeder Zahlenblock etwa eine Sekunde lang dargestellt. Um das Ende der IP-Adresse und den Beginn der nächsten Anzeigeschleife deutlich zu sehen, blinken nach dem vierten Zahlenblock die Dezimalpunkte der Anzeige kurz auf. Zahlenblöcke, die nur aus einer oder zwei Ziffern bestehen, werden für ein einheitliches Erscheinungsbild ebenfalls dreistellig angezeigt und am Anfang mit Nullen ergänzt. Diese Schreibweise ist bei der Angabe von IP- Adressen genauso gültig. #!/usr/bin/python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time, subprocess GPIO.setmode(GPIO.BCM) seg={ a :, b :7, c :5, d :7, e :, f :8, g :0} for i in "abcdefg": GPIO.setup(seg[i], GPIO.OUT, initial=true) zif=[5, 4, 3, 4] for i in zif: GPIO.setup(i, GPIO.OUT, initial=false) dp = 8 GPIO.setup(dp, GPIO.OUT, initial=true) zahl=[ "abcdef", #0 "bc", # "abdeg", # "abcdg", #3 "bcfg", #4 "acdfg", #5 "acdefg", #6 "abc", #7 07

208 IP-Adresse auf der 7-Segment-Anzeige "abcdefg", #8 "abcdfg", #9 ] z = [0,0,0] print ("Strg+C beendet das Programm") def za(): for i in range(3): for s in "abcdefg": GPIO.output(seg[s], True) GPIO.output(zif[i], True) for s in zahl[z[i]]: GPIO.output(seg[s], False) time.sleep(0.00) GPIO.output(zif[i], False) def blink(): for s in "abcdefg": GPIO.output(seg[s], True) for k in range(3): GPIO.output(zif[k], True) GPIO.output(dp, False) time.sleep(0.5) GPIO.output(dp, True) try: while True: ip = subprocess.check_output(["hostname","-i"]).split(".") for j in ip: for k in range(3): z[k] = int(j.rjust(3, "0")[k]) sek = time.time() while time.time() <= sek + : za() blink() except KeyboardInterrupt: GPIO.cleanup() Am Anfang wird zusätzlich das Modul subprocess zum Zugriff auf Betriebssystemfunktionen importiert. Eine Systemfunktion ermittelt die IP-Adresse und speichert die vier Ziffernblöcke an den Punkten getrennt als Zeichenketten in der Liste ip. 08

209 Elektronik Dazu wird die Methode split() verwendet, die in jeder Zeichenkette zur Verfügung steht. Sie benötigt als Parameter das Trennzeichen, an dem die Zeichenkette aufgespaltet werden soll. ip = subprocess.check_output(["hostname","-i"]).split(".") Die IP-Adresse wird in jedem Schleifendurchlauf neu ermittelt. So sieht man bei Änderungen an der Netzwerkkonfiguration jederzeit die aktuelle IP-Adresse. Das Hauptprogramm besteht wieder aus einer Endlosschleife, die zyklisch die vier Zahlenblöcke der IP-Adresse anzeigt. In jedem Block läuft eine innere Schleife dreimal, um jeweils drei Ziffern darzustellen. for j in ip: for k in range(3): Diese Zeile schreibt in jedem Durchlauf in das aktuelle Element der Liste z den Zahlenwert einer Ziffer, der mit der Funktion int() aus einer als Zeichen gespeicherten Ziffer gelesen wird. Aus der äußeren Schleife übernimmt der Zähler j einen Zahlenblock der IP-Adresse. Die Methode rjust(), die in jeder Zeichenkette zur Verfügung steht, ergänzt die Zeichenkette auf eine bestimmte Länge, die im ersten Parameter (hier 3) angegeben ist, wobei die Originalzeichenkette im Ergebnis rechts steht. Links werden eventuell fehlende Stellen mit einem Füllzeichen, das im zweiten Parameter (hier "0") angegeben ist, aufgefüllt. Auf diese Weise werden in jedem Feld der Liste z drei Ziffern abgelegt, auch wenn ein Zahlenblock der IP-Adresse nur aus einer oder zwei Ziffern besteht. z[k] = int(j.rjust(3, "0")[k]) In der Variablen sek wird die aktuelle Zeit in Sekunden gespeichert, die die Funktion time.time() jederzeit auf die Hundertstelsekunde genau ausgibt. Eine while-schleife fragt ab, ob seit dem Speichern der Zeit eine oder mehr Sekunden vergangen sind. Solange dies nicht der Fall ist, wird immer wieder die Funktion za() zur Zahlenanzeige aufgerufen. Nach Ablauf der Sekunde startet die äußere Schleife erneut mit dem nächsten Zahlenblock der IP-Adresse. Da die Zahlen im Multiplexverfahren ständig neu angezeigt werden müssen, kann das Programm hier nicht einfach mit time.sleep() warten. sek = time.time() while time.time() <= sek + : za() 09

210 LED-Punktmatrixanzeigen Die Funktion za() enthält die bereits bekannten Elemente zur Darstellung einer Zahl auf der 7-Segment-Anzeige. Funktionen machen das Programm übersichtlicher. Nachdem die Hauptschleife viermal durchgelaufen ist, wird die Funktion blink() aufgerufen, die die Dezimalpunkte einmal kurz aufblinken lässt, um das Ende der IP-Adresse anzuzeigen. Diese Funktion schaltet alle Segmente aus und aktiviert alle drei Ziffern. Dann wird kurz für eine halbe Sekunde der Dezimalpunkt eingeschaltet. Danach startet die Endlosschleife wieder. Das Ganze wiederholt sich, bis der Benutzer mit [Strg]+[C] abbricht. 96 LED-Punktmatrixanzeigen LED-Matrixanzeigen sind deutlich flexibler einsetzbar als 7-Segment- Anzeigen, da sie neben Ziffern auch Buchstaben und nahezu beliebige andere Zeichen darstellen können. Die Matrixanzeigen bestehen aus LEDs, die in einem rechtwinkligen Raster angeordnet sind. Dabei sind die Anoden aller LEDs einer Spalte und die Kathoden aller LEDs einer Zeile miteinander verbunden oder umgekehrt. Durch die Kombination einer Kathode und einer Anode lässt sich jede LED der Matrix einzeln ansteuern. Solche Matrixanzeigen sind in unterschiedlichen Größen lieferbar. 0

211 Elektronik Besonders verbreitet ist die 5x7-Matrix, auf der sich bereits alle Buchstaben der europäischen Alphabete wie auch japanische Zeichen gut lesbar darstellen lassen. Ein solches 5x7-Punktmatrixanzeigemodul kommt mit zwölf Anschlusspins aus. Pin ist mit einer Kerbe markiert. In der abgebildeten Schaltung sind vor den fünf Kathoden die Vorwiderstände geschaltet. Die Tabelle zeigt zusätzlich, welche Anschlüsse mit welchen GPIO-Ports verbunden sind. Matrix-Pin Zeile 0 Zeile 7 Zeile 3 5 Zeile 4 9 Zeile Zeile Zeile 7 6 Spalte 3 Spalte 3 4 Spalte Spalte Spalte GPIO-Pin 97 LED-Punktmatrixanzeige mit Python ansteuern Das Programm matrix0.py lässt einen Leuchtpunkt über alle LEDs der Matrixanzeige laufen. #!/usr/bin/python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) z=[0, 7, 5,, 8, 7, ]

212 LED-Punktmatrixanzeige mit Python ansteuern s=[3, 4, 5, 8, 4] for i in z: GPIO.setup(i, GPIO.OUT, initial=false) for i in s: GPIO.setup(i, GPIO.OUT, initial=true) print ("Strg+C beendet das Programm") try: while True: for j in s: GPIO.output(j, False) for k in z: GPIO.output(k, True) time.sleep(0.) GPIO.output(k, False) GPIO.output(j, True) except KeyboardInterrupt: GPIO.cleanup() So funktioniert es Zwei Arrays legen die GPIO-Ports für die Zeilen z[] und die Spalten s[] fest. z=[0, 7, 5,, 8, 7, ] s=[3, 4, 5, 8, 4] Alle Pins werden als Ausgänge initialisiert, dabei werden die Zeilen auf False und die Spalten auf True gesetzt, um alle LEDs auszuschalten. for i in z: GPIO.setup(i, GPIO.OUT, initial=false) for i in s: GPIO.setup(i, GPIO.OUT, initial=true) Das Hauptprogramm besteht wieder aus einer Endlosschleife. In jedem Durchlauf läuft eine Schleife über die fünf Spalten und schaltet jeweils eine Spalte auf False. Damit haben die Kathoden dieser LED-Spalte ein Low-Signal. Die LEDs können leuchten. for j in s: GPIO.output(j, False)

213 Elektronik Während eine Spalte aktiv ist, läuft eine innere Schleife über alle sieben LED-Zeilen und schaltet jeweils eine Anode für 0, Sekunden auf True und damit die LED ein. for k in z: GPIO.output(k, True) time.sleep(0.) GPIO.output(k, False) 98 Zeichensatz für die LED-Punktmatrixanzeige Auf einem 5x7-Punktmatrixanzeigemodul lassen sich theoretisch verschiedene LED-Muster abbilden. Die zu verwendenden Zeichen müssen erst einmal als Bitmuster definiert werden. Dabei legt man für jedes Zeichen 5 Byte an, die die Bitmuster der Spalten enthalten. Da jede Spalte nur sieben LEDs hat, ist das Bit mit dem höchsten Wert immer 0. Muster Binär Hex Zeichen 0 0 0x7e, 0 09, 0 09, 0 09, 0x7e A x7f, 0 49, 0 49, 0 49, 0 36 B x3e, 0 4, 0 4, 0 4, 0 C x7f, 0 4, 0 4, 0, 0xc D 3

214 Zeichensatz für die LED-Punktmatrixanzeige Muster Binär Hex Zeichen 0 0x7f, 0 49, 0 49, 0 49, 0 63 E x7f, 0 09, 0 09, 0 09, 0 0 F x3e, 0 4, 0 4, 0 49, 0x7a G x7f, 0 08, 0 08, 0 08, 0x7f H , 0 4, 0x7f, 0 4, 0 00 I , 0 40, 0 4, 0x3f, 0 0 J x7f, 0 08, 0 4, 0, 0 4 K x7f, 0 40, 0 40, 0 40, 0 60 L 4

215 Elektronik Muster Binär Hex Zeichen 0 0x7f, 0 0, 0 04, 0 0, 0x7f M x7f, 0 04, 0 08, 0 0, 0x7f N x3e, 0 4, 0 4, 0 4, 0x3e O x7f, 0 09, 0 09, 0 09, 0 06 P x3e, 0 4, 0 5, 0, 0x5e Q x7f, 0 09, 0 9, 0 9, 0 46 R , 0 49, 0 49, 0 49, 0 3 S , 0 0, 0x7f, 0 0, 0 0 T 5

216 Zeichen auf der LED-Punktmatrixanzeige ausgeben Muster Binär Hex Zeichen 00 0x3f, 0 40, 0 40, 0 40, 0x3f U xf, 0 0, 0 40, 0 0, 0xf V x3f, 0 40, 0 30, 0 40, 0x3f W , 0 4, 0 08, 0 4, 0 63 X , 0 08, 0 70, 0 08, 0 07 Y , 0 5, 0 49, 0 45, 0 43 Z 99 Zeichen auf der LED-Punktmatrixanzeige ausgeben Auf die gleiche Weise können auch Kleinbuchstaben, Ziffern und Sonderzeichen definiert werden. 6

217 Elektronik Das Programm matrix0.py zeigt, wie man einen Text mithilfe eines vorher definierten Zeichensatzes auf einer LED-Punktmatrixanzeige darstellen kann. #!/usr/bin/python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) t="guten MORGEN " w=0.005 z=[0, 7, 5,, 8, 7, ] s=[3, 4, 5, 8, 4] for i in z: GPIO.setup(i, GPIO.OUT, initial=false) for i in s: GPIO.setup(i, GPIO.OUT, initial=true) b=[ [0x00, 0x00, 0x00, 0x00, 0x00], # [0x7e, 0x09, 0x09, 0x09, 0x7e], #A [0x7f, 0x49, 0x49, 0x49, 0x36], #B [0x3e, 0x4, 0x4, 0x4, 0x], #C [0x7f, 0x4, 0x4, 0x, 0xc], #D [0x7f, 0x49, 0x49, 0x49, 0x63], #E [0x7f, 0x09, 0x09, 0x09, 0x0], #F [0x3e, 0x4, 0x4, 0x49, 0x7a], #G [0x7f, 0x08, 0x08, 0x08, 0x7f], #H [0x00, 0x4, 0x7f, 0x4, 0x00], #I [0x0, 0x40, 0x4, 0x3f, 0x0], #J [0x7f, 0x08, 0x4, 0x, 0x4], #K [0x7f, 0x40, 0x40, 0x40, 0x60], #L [0x7f, 0x0, 0x04, 0x0, 0x7f], #M [0x7f, 0x04, 0x08, 0x0, 0x7f], #N [0x3e, 0x4, 0x4, 0x4, 0x3e], #O [0x7f, 0x09, 0x09, 0x09, 0x06], #P [0x3e, 0x4, 0x5, 0x, 0x5e], #Q [0x7f, 0x09, 0x9, 0x9, 0x46], #R [0x46, 0x49, 0x49, 0x49, 0x3], #S [0x0, 0x0, 0x7f, 0x0, 0x0], #T [0x3f, 0x40, 0x40, 0x40, 0x3f], #U [0xf, 0x0, 0x40, 0x0, 0xf], #V [0x3f, 0x40, 0x30, 0x40, 0x3f], #W [0x63, 0x4, 0x08, 0x4, 0x63], #X [0x07, 0x08, 0x70, 0x08, 0x07], #Y [0x6, 0x5, 0x49, 0x45, 0x43]] #Z print ("Strg+C beendet das Programm") 7

218 Zeichen auf der LED-Punktmatrixanzeige ausgeben try: while True: for i in t: tx=ord(i)-64 if (tx < or tx > 6): tx = 0 m=time.localtime().tm_sec while time.localtime().tm_sec == m: for j in range(5): GPIO.output(s[j], False) bx=b[tx][j] GPIO.output(z[0], bx&0x0==0x0) GPIO.output(z[], bx&0x0==0x0) GPIO.output(z[], bx&0x04==0x04) GPIO.output(z[3], bx&0x08==0x08) GPIO.output(z[4], bx&0x0==0x0) GPIO.output(z[5], bx&0x0==0x0) GPIO.output(z[6], bx&0x40==0x40) time.sleep(w) GPIO.output(s[j], True) except KeyboardInterrupt: GPIO.cleanup() So funktioniert es Die Variable t enthält den anzuzeigenden Text. In w ist ein kurzes Zeitintervall gespeichert, da auch zur Steuerung von LED-Punktmatrixanzeigen ein Zeitmultiplexverfahren genutzt wird. t="guten MORGEN " w=0.005 Das Array b[] enthält die Bitmuster aller 6 Großbuchstaben (ohne Umlaute). Zusätzlich ist am Anfang bei b[0] ein Leerzeichen eingetragen. Dieses wird im Programm zur Darstellung von Leerzeichen und allen anderen Zeichen, die keine Großbuchstaben sind, verwendet. Das Hauptprogramm besteht wieder aus einer Endlosschleife. Darin läuft eine Schleife über alle Zeichen des Texts t. Die Funktion ord() ermittelt die Nummer des Zeichens im ASCII-Zeichensatz. Da das große A dort auf Position 65 steht, wird 64 subtrahiert, um die Nummer des Zeichens im Array b[] zu erhalten. Ist das Zeichen kein Großbuchstabe, wird die Nummer auf 0 gesetzt, um das Leerzeichen anzuzeigen. for i in t: 8

219 Elektronik tx=ord(i)-64 if (tx < or tx > 6): tx = 0 Da wegen des Zeitmultiplexverfahrens die Anzeigeroutine ständig laufen muss und nach einem Buchstaben nicht einfach mit time.sleep() eine Sekunde gewartet werden kann, wird die aktuelle Uhrzeitsekunde in der Variablen m gespeichert. Solange diese Sekunde unverändert ist, wird das gleiche Zeichen angezeigt. In der nächsten Sekunde läuft die Schleife zum nächsten Zeichen des Texts weiter. m=time.localtime().tm_sec while time.localtime().tm_sec == m: Eine innere Schleife läuft über alle fünf Spalten der Anzeige, setzt die Kathode auf False, damit die LEDs leuchten können, und liest dann aus dem Array b[] das Bitmuster des aktuellen Zeichens für diese Spalte. for j in range(5): GPIO.output(s[j], False) bx=b[tx][j] Jetzt wird das Bitmuster der Spalte auf die sieben GPIO-Ports ausgegeben. Danach wartet das Programm die Zeit w, setzt dann die Kathode der Spalte wieder auf True und wechselt zur nächsten Spalte. 00 Zeichenorientiertes LCD-Display anschließen Zweizeilige LCD-Displays, erhältlich für wenige Euro bei diversen Onlinehändlern, sind fast alle zum Quasi-Standard HD44780 kompatibel. Dabei handelt es sich um die Bezeichnung des in den Displays eingebauten Controllers, der Zeichen in ein bis vier Zeilen darstellt, ohne dass sich der Benutzer um die Ansteuerung der einzelnen Pixel zu kümmern braucht. 9

220 Zeichenorientiertes LCD-Display anschließen Pinbelegung eines HD44780-kompatiblen Displays Pin Funktion Beschreibung VSS Stromversorgung Masseleitung 0 V VDD Stromversorgung +5 V 3 V0 Kontrasteinstellung, 0 V... 5 V 4 RS Register Select 5 RW Read/Write, wenn vom Display nichts ausgelesen wird, mit 0 V verbinden 6 E Enable (Umschaltsignal) 7 D0 Datenbit 0 (im 4-Bit-Modus nicht benötigt) 8 D Datenbit (im 4-Bit-Modus nicht benötigt) 9 D Datenbit (im 4-Bit-Modus nicht benötigt) 0 D3 Datenbit 3 (im 4-Bit-Modus nicht benötigt) D4 Datenbit 04 D5 Datenbit 05 3 D6 Datenbit 06 4 D7 Datenbit 07 5 A Hintergrundbeleuchtung, Vorwiderstand 560 Ohm erforderlich 6 K Hintergrundbeleuchtung Masseleitung Vor der LED der Hintergrundbeleuchtung Pin 5 wird ein 560-Ohm-Widerstand als Schutz gegen Überlastung vorgeschaltet. Bei Displays ohne Hintergrundbeleuchtung fallen dieser Widerstand sowie die Masseleitung an Pin 6 weg. Ein 5-kOhm-Potenziometer führt Pin 3 eine Spannung zwischen +5 V und 0 V zu. Damit wird der Kontrast geregelt. Die Anschlüsse RS, E, D4, D5, D6 und D7 werden mit GPIO-Pins verbunden. 0

221 Elektronik 0 Zeichenorientiertes LCD-Display mit Python ansteuern Das Programm display0.py zeigt zwei statische Zeichenfolgen auf dem Display und dient als Basis für weitere Python-Programme mit dem LCD-Display. #!/usr/bin/python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time LCD_RS = 7 LCD_E = 8 LCD_D4 = 5 LCD_D5 = 4 LCD_D6 = 3 LCD_D7 = 8 GPIO.setmode(GPIO.BCM) GPIO.setup(LCD_E, GPIO.OUT) GPIO.setup(LCD_RS, GPIO.OUT) GPIO.setup(LCD_D4, GPIO.OUT) GPIO.setup(LCD_D5, GPIO.OUT) GPIO.setup(LCD_D6, GPIO.OUT) GPIO.setup(LCD_D7, GPIO.OUT) LCD_WIDTH = 6 LCD_LINE_ = 0x80 LCD_LINE_ = 0xC0 LCD_CHR = True LCD_CMD = False E_PULSE = E_DELAY = def lcd_enable(): time.sleep(e_delay) GPIO.output(LCD_E, True) time.sleep(e_pulse) GPIO.output(LCD_E, False) time.sleep(e_delay) def lcd_byte(bits, mode): GPIO.output(LCD_RS, mode) GPIO.output(LCD_D4, bits&0x0==0x0) GPIO.output(LCD_D5, bits&0x0==0x0) GPIO.output(LCD_D6, bits&0x40==0x40)

222 Zeichenorientiertes LCD-Display mit Python ansteuern GPIO.output(LCD_D7, bits&0x80==0x80) lcd_enable() GPIO.output(LCD_D4, bits&0x0==0x0) GPIO.output(LCD_D5, bits&0x0==0x0) GPIO.output(LCD_D6, bits&0x04==0x04) GPIO.output(LCD_D7, bits&0x08==0x08) lcd_enable() def lcd_string(message): message = message.ljust(lcd_width," ") for i in range(lcd_width): lcd_byte(ord(message[i]),lcd_chr) def lcd_anzeige(z, z): lcd_byte(lcd_line_, LCD_CMD) lcd_string(z) lcd_byte(lcd_line_, LCD_CMD) lcd_string(z) LCD_INIT = [0x33, 0x3, 0x8, 0x0C, 0x06, 0x0] for i in LCD_INIT: lcd_byte(i,lcd_cmd) try: while True: lcd_anzeige(" abcdef", " except KeyboardInterrupt: GPIO.cleanup() So funktioniert es Für die GPIO-Pins der Steuer- und Datenleitungen des Displays werden die Konstanten LCD_RS, LCD_E, LCD_D4, LCD_D5, LCD_D6, LCD_D7 definiert und danach die Pins als GPIO-Ausgänge initialisiert. Weitere Konstanten werden für bestimmte Displayparameter und Steuersignale benötigt: Konstante Bedeutung LCD_WIDTH Breite des Displays in Zeichen. LCD_LINE_ Speicheradresse der. Zeile. LCD_LINE_ Speicheradresse der. Zeile. LCD_CHR Schaltet das Display auf Pin RS in den Zeichenmodus. LCD_CMD Schaltet das Display auf Pin RS in den Steuerungsmodus. E_PULSE Dauer eines Steuerimpulses auf Pin E. E_DELAY Wartezeit zwischen zwei Steuerimpulsen auf Pin E.

223 Elektronik Damit es übersichtlich bleibt, besteht das Programm aus mehreren Funktionen. lcd_enable() sendet einen kurzen Steuerimpuls an Pin E (enable). Damit liest das Display die Daten auf den GPIO-Ports aus, um sie anzuzeigen. Der gleiche Impuls wird verwendet, um zwischen den oberen und den unteren Bits eines darzustellenden Bytes umzuschalten. lcd_byte(bits, mode) sendet ein Byte an das Display. Dieses Byte kann ein Zeichen oder ein Steuerbefehl sein. Im Parameter bits bekommt die Funktion das zu sendende Byte, der Parameter mode gibt an, ob es sich um ein Zeichen oder um einen Steuerungsbefehl handelt. Die beiden Werte, die mode annehmen kann, sind in den Konstanten LCD_CHR (Zeichen) und LCD_CMD (Steuerungsbefehl) festgelegt. Der zu verwendende Modus wird auf Pin RS (Register Select) ausgegeben. Danach wird das Bitmuster des anzuzeigenden Bytes in zwei 4-Bit-Blöcken auf das Display geschrieben. lcd_string(message) schreibt eine Zeichenkette auf das Display. Diese wird zunächst bis auf die Länge des Displays rechts mit Leerzeichen aufgefüllt. Die Methode.ljust kann in jeder Zeichenkette angewendet werden, der zweite Parameter gibt das Zeichen an, mit dem kürzere Zeichenketten aufgefüllt werden. Längere Zeichenketten werden automatisch auf die angegebene Länge abgeschnitten. Zum eigentlichen Schreiben wird jedes Zeichen mit ord() in seinen ASCII-Zahlenwert umgewandelt und dann im Zeichenmodus LCD_CHR über die Funktion lcd_byte() auf dem Display ausgegeben. lcd_anzeige(z, z) bekommt vom aufrufenden Programm zwei Zeichenketten und sorgt dafür, dass diese auf den beiden Zeilen des Displays dargestellt werden. Dazu wird vor der Zeichenkette die Adresse der jeweiligen Displayzeile im Steuerungsmodus LCD_CMD auf dem Display ausgegeben. Nachdem die Funktionen definiert sind, startet das kurze Hauptprogramm und schreibt Initialisierungskommandos im Steuerungsmodus LCD_CMD auf das Display. LCD_INIT = [0x33, 0x3, 0x8, 0x0C, 0x06, 0x0] for i in LCD_INIT: lcd_byte(i,lcd_cmd) Ist alles definiert und initialisiert, kann es wirklich losgehen. Diese Zeile schreibt zwei Zeichenketten mit den vorher definierten Funktionen auf das Display. lcd_anzeige(" abcdef", " 3

224 IP-Adresse und Uhr auf dem LCD-Display 0 IP-Adresse und Uhr auf dem LCD-Display Das Programm status.py zeigt die aktuelle Uhrzeit und die IP-Adresse des Raspberry Pi auf dem Display an. #!/usr/bin/python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time, subprocess LCD_RS = 7 LCD_E = 8 LCD_D4 = 5 LCD_D5 = 4 LCD_D6 = 3 LCD_D7 = 8 GPIO.setmode(GPIO.BCM) GPIO.setup(LCD_E, GPIO.OUT) GPIO.setup(LCD_RS, GPIO.OUT) GPIO.setup(LCD_D4, GPIO.OUT) GPIO.setup(LCD_D5, GPIO.OUT) GPIO.setup(LCD_D6, GPIO.OUT) GPIO.setup(LCD_D7, GPIO.OUT) LCD_WIDTH = 6 LCD_LINE_ = 0x80 LCD_LINE_ = 0xC0 LCD_CHR = True LCD_CMD = False E_PULSE = E_DELAY = pause = def lcd_enable(): time.sleep(e_delay) GPIO.output(LCD_E, True) time.sleep(e_pulse) GPIO.output(LCD_E, False) time.sleep(e_delay) def lcd_byte(bits, mode): GPIO.output(LCD_RS, mode) GPIO.output(LCD_D4, bits&0x0==0x0) GPIO.output(LCD_D5, bits&0x0==0x0) GPIO.output(LCD_D6, bits&0x40==0x40) GPIO.output(LCD_D7, bits&0x80==0x80) lcd_enable() 4

225 Elektronik GPIO.output(LCD_D4, bits&0x0==0x0) GPIO.output(LCD_D5, bits&0x0==0x0) GPIO.output(LCD_D6, bits&0x04==0x04) GPIO.output(LCD_D7, bits&0x08==0x08) lcd_enable() def lcd_string(message): message = message.ljust(lcd_width," ") for i in range(lcd_width): lcd_byte(ord(message[i]),lcd_chr) def lcd_anzeige(z, z): lcd_byte(lcd_line_, LCD_CMD) lcd_string(z) lcd_byte(lcd_line_, LCD_CMD) lcd_string(z) LCD_INIT = [0x33, 0x3, 0x8, 0x0C, 0x06, 0x0] for i in LCD_INIT: lcd_byte(i,lcd_cmd) try: while True: zeile = time.asctime() zeile = "IP:" + subprocess.check_output(["hostname","-i"]) [:-] lcd_anzeige(zeile, zeile) time.sleep(pause) except KeyboardInterrupt: GPIO.cleanup() So funktioniert es Zur Steuerung des Displays wird das Basisprogramm (siehe Projekt 0) verwendet, die Ermittlung der IP-Adresse funktioniert wie bei Projekt 0. Die neue Variable pause legt das Aktualisierungsintervall der Uhrzeit fest. Der Wert bedeutet, dass die Uhrzeit, die nur auf Minuten genau angezeigt wird, alle zwei Sekunden aktualisiert wird. Dies ist ein guter Kompromiss zwischen Genauigkeit und Systemauslastung. Zur Ausgabe von Datum und Uhrzeit wird die Funktion time.asctime() aus dem Modul time verwendet, die eine Zeichenfolge, z. B. Fri May 6 3:4:59 04, liefert. Die ersten 6 Stellen dieser Zeichenfolge zeigen Wochentag, Monat, Tag, Stunden und Minuten auf dem 6-stelligen Display an. zeile = time.asctime() 5

226 Statusanzeige für Server oder USB-Sticks Zur Ermittlung der IP-Adresse wird die Funktion check_output() aus dem Modul subprocess verwendet. Vom Ergebnis werden das Zeilenendezeichen \n sowie ein Leerzeichen am Ende abgeschnitten. zeile = "IP:" + subprocess.check_output(["hostname","-i"]) [:-] Die Inhalte dieser beiden Variablen werden dann über die bereits im Basisprogramm definierte Funktion lcd_anzeige() ausgegeben. Jetzt wartet das Programm die als Pause definierte Zeit von zwei Sekunden. Danach startet die Schleife neu und zeigt wieder die neue Zeit an. lcd_anzeige(zeile, zeile) time.sleep(pause) 03 Statusanzeige für Server oder USB-Sticks Die Statusanzeige mit Uhr und IP-Adresse wird im Programm status4.py auf einem vierzeiligen Display (siehe Anleitung online) noch um die Anzeige der freien Kapazität der Speicherkarte und dreier angeschlossener USB- Sticks erweitert. #!/usr/bin/python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time, os, subprocess LCD_RS = 7 LCD_E = 8 LCD_D4 = 5 LCD_D5 = 4 LCD_D6 = 3 LCD_D7 = 8 GPIO.setmode(GPIO.BCM) GPIO.setup(LCD_E, GPIO.OUT) GPIO.setup(LCD_RS, GPIO.OUT) GPIO.setup(LCD_D4, GPIO.OUT) GPIO.setup(LCD_D5, GPIO.OUT) GPIO.setup(LCD_D6, GPIO.OUT) GPIO.setup(LCD_D7, GPIO.OUT) 6 LCD_WIDTH = 40 LCD_LINE_ = 0x80 LCD_LINE_ = 0xC0

227 Elektronik LCD_CHR = True LCD_CMD = False E_PULSE = E_DELAY = pause = HD_ = "/media/usb" HD_ = "/media/usb" HD_3 = "/media/usb3" def lcd_enable(): time.sleep(e_delay) GPIO.output(LCD_E, True) time.sleep(e_pulse) GPIO.output(LCD_E, False) time.sleep(e_delay) def lcd_byte(bits, mode): GPIO.output(LCD_RS, mode) GPIO.output(LCD_D4, bits&0x0==0x0) GPIO.output(LCD_D5, bits&0x0==0x0) GPIO.output(LCD_D6, bits&0x40==0x40) GPIO.output(LCD_D7, bits&0x80==0x80) lcd_enable() GPIO.output(LCD_D4, bits&0x0==0x0) GPIO.output(LCD_D5, bits&0x0==0x0) GPIO.output(LCD_D6, bits&0x04==0x04) GPIO.output(LCD_D7, bits&0x08==0x08) lcd_enable() def lcd_string(message): message = message.ljust(lcd_width," ") for i in range(lcd_width): lcd_byte(ord(message[i]),lcd_chr) def lcd_anzeige(z, z): lcd_byte(lcd_line_, LCD_CMD) lcd_string(z) lcd_byte(lcd_line_, LCD_CMD) lcd_string(z) LCD_INIT = [0x33, 0x3, 0x8, 0x0C, 0x06, 0x0] for i in LCD_INIT: lcd_byte(i,lcd_cmd) try: while True: s = os.statvfs( / ) hd = os.statvfs(hd_) hd = os.statvfs(hd_) hd3 = os.statvfs(hd_3) zeile = time.asctime()[0:6] zeile = "IP:" + subprocess.check_output(["hostname","-i"]) [:-] 7

228 Statusanzeige für Server oder USB-Sticks zeile3 = "SD:" + str(s.f_bsize * s.f_bavail / ). rjust(4," ") + "MB " zeile3 += "U:" + str(hd.f_bsize * hd.f_bavail / ).rjust(4," ") + "MB" zeile4 = "U:" + str(hd.f_bsize * hd.f_bavail / ). rjust(4," ") + "MB " zeile4 += "U3:" + str(hd3.f_bsize * hd3.f_bavail / ).rjust(4," ") + "MB" z = zeile.ljust(lcd_width/," ") + zeile3.ljust(lcd_ WIDTH/," ") z = zeile.ljust(lcd_width/," ") + zeile4.ljust(lcd_ WIDTH/," ") lcd_anzeige(z, z) time.sleep(pause) except KeyboardInterrupt: GPIO.cleanup() Damit das Programm funktioniert, müssen die drei USB-Sticks, wie bei Projekt 08 beschrieben, in den Verzeichnissen /media/usb, /media/usb und /media/usb3 gemountet sein. So funktioniert es Im Definitionsbereich werden die drei Namen der angeschlossenen USB- Medien festgelegt. HD_ = "/media/usb" HD_ = "/media/usb" HD_3 = "/media/usb3" Das Statistikmodul os.statvfs() aus der os-bibliothek liefert diverse statistische Informationen zum Dateisystem, die hier für das Hauptverzeichnis bei jedem Schleifendurchlauf aufs Neue als Objekt in die Variable s geschrieben werden. Die Speicheranzeige für das Hauptverzeichnis ermittelt nicht den Speicherplatz auf gemounteten externen Datenträgern. s = os.statvfs( / ) Auf die gleiche Weise werden die Daten der USB-Sticks ermittelt und in die Variablen hd, hd und hd3 geschrieben. hd = os.statvfs(hd_) hd = os.statvfs(hd_) hd3 = os.statvfs(hd_3) Von der Uhrzeit werden diesmal nur die ersten 6 Stellen übernommen, damit bei längeren Displayzeilen keine abgeschnittenen Angaben stehen bleiben. zeile = time.asctime()[0:6] 8

229 Elektronik Die Methode s.f_bsize liefert die Größe eines Speicherblocks in Byte aus den in der Variablen s gespeicherten Daten des Dateisystems. s.f_ bavail gibt die Anzahl freier Blöcke an. Das Produkt aus beiden Werten gibt demnach die Anzahl freier Bytes an, die hier durch geteilt wird, um die Anzahl freier Megabytes zu erhalten. Die gleiche Berechnung folgt für den Speicherplatz auf den USB-Sticks. Für eine ansprechende Darstellung werden alle Zahlen mit der String-Methode.rjust auf eine Länge von vier Stellen formatiert. zeile3 = "SD:" + str(s.f_bsize * s.f_bavail / ). rjust(4," ") + "MB " Aus den vier einzeln definierten Textzeilen zeile bis zeile4 werden in den Variablen z und z die Zeichenketten für die beiden logischen 40 Zeichen langen Zeilen für die Anzeige zusammengesetzt. z enthält die Anzeigezeilen und 3, z die Anzeigezeilen und 4. Die vier Zeichenketten werden alle mithilfe der Methode.ljust() auf eine Länge von je 0 Zeichen gebracht. Sollte die erste oder zweite Zeile kürzer sein, passt sonst der Zeilenumbruch am Ende der Anzeige nicht. z = zeile.ljust(lcd_width/," ") + zeile3.ljust(lcd_ WIDTH/," ") z = zeile.ljust(lcd_width/," ") + zeile4.ljust(lcd_ WIDTH/," ") Die beiden logischen Zeilen werden mit der bereits bekannten Funktion lcdanzeige() auf das Display geschrieben, dann wird zwei Sekunden gewartet, und danach werden die Daten neu ermittelt. 04 Pi_Scratch GPIO mit Scratch Pi_Scratch ( bietet in Scratch umfassende Unterstützung für verschiedene Hardwarekomponenten am GPIO-Port. Image bei herunterladen. Um Probleme durch Downloadabbrüche in Grenzen zu halten, wird das Image in drei einzelnen Dateien zum Download angeboten, die anschließend mit der Software 7-zip ( zu einer img-datei zusammengefügt werden müssen. Image mit dem USB Image Tool (siehe xxx) auf eine mindestens 4 GByte große Speicherkarte übertragen und den Raspberry Pi damit booten. 9

230 Pi_Scratch auf Raspbian nachinstallieren Pi_Scratch wird automatisch gestartet. Man ist immer als root angemeldet. Damit ist kein sudo nötig. Terminal starten: raspi-config Internationalisation Options/Change locale und hier de_de.utf-8 UTF-8 auswählen. Internationalisation Options/Change Timezone und hier Europa/Berlin auswählen. Internationalisation Options/Change Keyboard Layout und hier Generische PC-Tastatur mit 05 Tasten (Intl)/Other/German/German/Standard für die Tastaturbelegung auswählen. Konfigurationstool mit Finish verlassen und Raspberry Pi neu starten. Scratch startet auch wieder automatisch und (meistens) gleich auf Deutsch. Wenn nicht, oben links auf das Weltkugelsymbol klicken und Deutsch auswählen. 05 Pi_Scratch auf Raspbian nachinstallieren herunterladen zu müssen. Notwendige Module installieren: sudo apt-get update sudo apt-get install python-smbus ictools git git clone git://github.com/doceme/py-spidev cd py-spidev/ sudo python setup.py install Scratch als root starten: sudo scratch 30

231 Elektronik 3 Mit gehaltener [Umschalt]-Taste in den oberen Teil des Buchstabens R im Scratch-Logo oben links klicken. Hier erscheint ein Menü, das dem normalen Nutzer gut verborgen bleibt. turn fill screen off wählen. 4 Rechts und unterhalb des Scratch-Fensters erscheint ein weißer Rand. Dort klicken und im Menü open.../browser wählen. 5 Im linken Teilfenster des Systembrowsers auf Scratch-UI-Panes klicken und in den nächsten Fenstern nacheinander auf ScratchFrameMorph, menu/ button actions, addservercommandsto:. 6 Im unteren Teilfenster in der zweiten Zeile bei t das Wort true in false umändern. Auf das Mausrädchen drücken und im Kontextmenü accept wählen. Im nächsten Fenster die eigenen Initialen (oder irgendwelche Zeichen) eingeben und auf accept klicken. 3

232 Pi_Scratch auf Raspbian nachinstallieren Systembrowser mit einem Klick auf das Kreuz oben links im grünen Fenster schließen. Mit gehaltener [Umschalt]-Taste in den oberen Teil des Buchstabens R im Scratch-Logo oben links klicken. turn fill screen on wählen. Das gleiche Menü noch mal aufrufen. save image for end user wählen und auf yes klicken. Danach wird Scratch automatisch beendet. sudo nano /etc/ modprobe.d/raspiblacklist.conf Vor die beiden blacklist- Zeilen wie in der Abbildung ein Kommentarzeichen einfügen, falls nicht bereits vorhanden. sudo nano /etc/modules Kernelmodule wie in der Abbildung eintragen. 3 4 Raspberry Pi neu starten. Pi_Scratch-Installationsskript herunterladen und starten: wget tar xf Pi_Scratch_v73.tar cd Pi_Scratch_v73/Installer sudo python Install.py Am Ende der Installation Raspberry Pi neu starten. 3

233 Elektronik Das Programm Pi_Scratch starten: cd ~/Pi_Scratch_v73 sudo python Pi_Scratch_v73.py --debug In einem weiteren LXTerminal Scratch mit root-rechten starten: sudo scratch Mit gedrückter [Umschalt]-Taste auf das Menü Veröffentlichen klicken und Show IP Address wählen. Hier muss die IP-Adresse angezeigt werden. Wenn nicht, den Menüpunkt Host Mesh wählen. Um nicht bei jedem Neustart des Raspberry Pi Scratch und Pi_Scratch mühsam von Hand starten zu müssen, liefert Pi_Scratch ein Skript mit, das einen Autostart für Scratch beim Booten des Raspberry Pi einrichtet: cd ~/Pi_Scratch_v68/Installer sudo python Install-With-Scratch.py Raspberry Pi neu starten. 06 Pi_Scratch unterstützte Hardware Pi_Scratch unterstützt neben einfachen LEDs und Tastern am GPIO-Port diverse weitere Hardwarekomponenten: 4hub/7hub ic RTC & Temperatursensor ic 8,6,3,64,8 GPIO Board spi 6,3,64,8 GPIO Board GPIO Relais, DC Motor, Stepper Motor GPIO 6x LCD, 0x4 LCD, 84x48 LCD (Grafik) ic 6x LCD, ic 0x4 LCD ic PWM/Servo Board ic 6x6,4x6 LED Matrix -Wire DS8B0 Temperatursensor 33

234 LED-Würfel mit Scratch ic BMP085 Druck-/Temperatur-/Höhenmesser DHT Digital Temperatur- und Luftfeuchtigkeitssensor Ultraschall-Entfernungsmesser spi mcp300/mcp480 AD/DA Maplin-USB-Roboterarmsteuerung Servo-Roboterarm mit 6 Freiheitsgraden IR-Line Hunting Sensor, IR-Flame Sensor IR-Bewegungssensor ic PWM LED & GPIO LED Steuerung IR Fernbedienung Motor Wheel Encoder (Pi GPIO) ic 307 GPIO Motor Wheel Encoder (ic GPIO) RFID Reader MPU6050 Sensor 3-Achsen-Gyroscop 07 LED-Würfel mit Scratch Das Scratch-Programm verwendet den Schaltungsaufbau von 83 mit sieben LEDs. Dieses Scratch-Skript steuert den Würfel: 34

235 Elektronik So funktioniert es Wenn der Benutzer auf das grüne Fähnchen klickt, werden als Erstes die fünf verwendeten GPIO-Pins initialisiert. Wir verwenden hier die Ports 8, 3, 4, 5 als Ausgänge für die LEDs und Port 7 als Eingang für den Taster. Zur Initialisierung der GPIO-Ports wartet das Skript eine Sekunde. Danach beginnt die Endlosschleife, die darauf wartet, dass der Benutzer auf die Taste drückt. Dazu wird der GPIO-Port 7 abgefragt. Wenn dieser den Wert hat, werden die Anweisungen innerhalb des falls-blocks ausgeführt. Hier werden als Erstes die vier GPIO-Ports mit den LEDs ausgeschaltet. Am Anfang sind die LEDs alle aus, aber später bleibt ein angezeigtes Würfelergebnis so lange bestehen, bis der Benutzer wieder die Taste drückt. Danach wird eine zufällige Zahl zwischen und 6 erzeugt und in der Variablen w gespeichert. Variablen müssen in Scratch erst einmal angelegt werden. Dazu in der Blockpalette oben auf das orangefarbene Symbol Variablen und dann auf Neue Variable klicken. Anschließend der Variablen einen Namen geben, in unserem Beispiel w (wie Würfel). 35

236 LED-Würfel mit Scratch Ist der Schalter links neben der Variablen w eingeschaltet, wird diese automatisch auf der Bühne in einem kleinen, orangefarbenen Feld angezeigt. So sieht man hier immer, ob die LEDs funktionieren. Nachdem die Zahl gewürfelt wurde, folgen sechs falls-blöcke für jeden möglichen Würfelwert. Jeder dieser Blöcke schaltet, wenn eine bestimmte Zahl gewürfelt wurde, die entsprechenden LEDs ein. Unabhängig vom Würfelergebnis wartet das Programm, immer wenn der Benutzer eine Taste gedrückt hat, noch eine halbe Sekunde, um zu vermeiden, dass kurz hintereinander zwei verschiedene Würfelaktionen ausgelöst werden. Danach werden über einen update-befehl alle Sensoren neu abgefragt. Auf diese Weise stellt das Skript den Zustand des Tasters fest. Danach startet die Endlosschleife neu und ruft je nach ermitteltem Sensorwert die Würfelaktion auf. Solange die Taste nicht gedrückt ist, sendet die Endlosschleife nur eine update-anforderung nach der anderen, um festzustellen, ob der Benutzer die Taste drückt. Diese update- Anforderungen werden wie alle anderen GPIO-Meldungen im Textfenster von Pi_Scratch angezeigt. 36

237 Elektronik 08 LCD-Display mit Scratch steuern Pi_Scratch unterstützt LCD-Displays, allerdings sind bestimmte GPIO-Ports für die Ansteuerung des LCD-Displays vorgesehen, weshalb die Darstellung der Kabelverbindungen in der Zeichnung etwas unübersichtlich wirkt. Die Anschlüsse lassen sich nicht wie bei Python frei wählen. Display-PIN Signal Raspberry Pi-GPIO VSS 0 V VDD +5 V 3 V0 Potenziometer 4 RS GPIO 5 5 RW 0 V 6 E GPIO 4 7 D0 im 4-Bit-Modus nicht benötigt 8 D im 4-Bit-Modus nicht benötigt 9 D im 4-Bit-Modus nicht benötigt 0 D3 im 4-Bit-Modus nicht benötigt D4 GPIO 3 37

238 Digitaluhr mit Scratch-LCD-Display Display-PIN Signal Raspberry Pi-GPIO D5 GPIO 7 3 D6 GPIO 7 4 D7 GPIO 5 A Vorwiderstand 560 Ohm 6 K 0 V 09 Digitaluhr mit Scratch-LCD-Display In Pi_Scratch brauchen für LCD-Displays keine Ports einzeln angemeldet zu werden, und auch um den physikalischen Zugriff muss man sich nicht kümmern. Dieses Programm zeigt eine Digitaluhr auf dem Display: Auf das grüne Fähnchen klicken und die Uhr startet. So funktioniert es Der Block sende...an alle initialisiert mit dem Text LCD60g init die GPIO-Ports und das Display. Dieser Code muss am Anfang jedes Programms, das das LCD-Display verwendet, stehen. Nach der Initialisierung, die intern aus einer langen Befehlssequenz besteht, muss das Skript 0, Sekunden warten, bis das Display betriebsbereit ist. Eine solche Wartezeit sollte man auch nach jedem Kommando, das auf das Dis- 38

239 Elektronik play schreibt, einbauen. Andernfalls kann es passieren, dass das anschließend folgende Displaykommando nicht korrekt verarbeitet wird. Alle weiteren Displaybefehle bestehen immer aus dem Wort LCD60, ohne das g am Ende und ohne Leerzeichen. Über den Block verbinde wird ein zweites Kommando dahintergehängt. Das Kommando cls löscht das Display. Es sollte am Anfang eines Programms immer verwendet werden, um eventuell übrig gebliebene Daten im Speicher des Displays zu löschen. Der Text wird auf das Display geschrieben. Die Koordinaten, legen fest, dass der Text auf der unteren Zeile mit dem zweiten Zeichen beginnt. Der 4 Zeichen lange Beispieltext wird dann auf dem Display zentriert. Zum Schluss schreibt eine Endlosschleife die Uhrzeit in die obere Zeile. Die Zeitangabe besteht aus 8 Zeichen. Um diese zentriert auf das 6 Zeichen breite Display zu schreiben, links und rechts je 4 Zeichen freilassen. 0 LCD-Display für Mediacenter Ein LCD-Display kann am Rasp bmc-mediacenter (siehe 63) den aktuell laufenden Musiktitel anzeigen, sodass kein Monitor nötig ist. Das Display wird wie abgebildet angeschlossen. 39

240 LCD-Display für Mediacenter xbmc Mediacenter durch einen Klick auf das Haussymbol unten rechts und danach im Hauptmenü auf den Ausschalter unten links verlassen. Auf dem nächsten Bildschirm Verlassen wählen. Auf dem blauen Bildschirm [Esc] drücken und mit dem Benutzernamen pi und dem Kennwort raspberry anmelden. Anmeldung über SSH von einem PC im Netzwerk aus ist ebenfalls möglich. Bei der ersten Anmeldung startet automatisch ein Konfigurationsskript, das ähnlich wie raspi-config die Sprache und die Zeitzone abfragt, die im Kommandozeilenmodus genutzt werden sollen. Treibersoftware herunterladen: sudo wget sudo bash lcd-install Konfigurationsdatei bearbeiten: sudo nano /etc/lcdd.conf Im Bereich [server] in der Zeile Driver= den Parameter hd44780 eintragen. 40

241 Elektronik 7 Im Bereich [hd44780] muss in der Zeile ConnectionType der Parameter rpi eingetragen sein. 8 9 Weiter unten bei Size= die Größe des Displays eintragen. Darunter die verwendeten GPIO-Ports eintragen. 4

242 ic-unterstützung auf dem Raspberry Pi aktivieren 0 3 Editor mit [Strg]+[X] verlassen, Änderungen speichern und Raspberry Pi neu starten: sudo reboot Im xbmc-hauptmenü System/Addons wählen. Unter Weitere Addons/Dienste das Add-on XBMC LCDproc wählen und installieren. Die Installation erfolgt vollautomatisch. Im Konfigurationsdialog über den Menüpunkt System/Addons/Aktivierte Addons/Dienste lassen sich verschiedene Anzeigeparameter, wie die Geschwindigkeit der Laufschrift oder die Anzeigedauer der Navigationsansicht, einstellen. ic-unterstützung auf dem Raspberry Pi aktivieren ic (auch als I²C =»I-Quadrat-C«=»Inter Chip Communication«bezeichnet) ist ein standardisiertes serielles Kommunikationsprotokoll, mit dem Elektronikchips über eine Zweidrahtverbindung Daten untereinander austauschen können. Auf diesem sehr einfachen Datenbus braucht jedes Gerät eine eindeutige Adresse, damit die Daten den Geräten entsprechend zugeordnet werden können. Der Raspberry Pi unterstützt das ic-protokoll, es muss aber erst aktiviert werden. 4

243 Elektronik ic-kernelmodul aktivieren: sudo raspi-config. Hier unter Advanced Options/IC das ic-kernelmodul beim Start automatisch laden. Module in /etc/modules eintragen: sudo nano /etc/modules. Hier zwei Zeilen am Ende anfügen: ic-bcm708 ic-dev 3 4 Python-Modul für ic installieren: sudo apt-get install python-smbus Raspberry Pi neu starten. ic-geräte adressieren und finden Jedes Gerät auf dem ic-bus braucht eine eindeutige Adresse. Dabei handelt es sich um eine zweistellige Hexzahl zwischen 0x03 und 0x77. Nur bei wenigen Geräten ist diese Adresse fest vorgegeben. In den meisten Fällen lässt sie sich über Jumper auf der Platine oder durch HIGH- und LOW-Signale an bestimmten Adressierungspins einstellen. sudo icdetect -y testet die ic-unterstützung und zeigt alle angeschlossenen Geräte an. Im abgebildeten Beispiel wurde auf der Adresse 0x7 ein ic-gerät gefunden. 43

244 Der Portexpander MCP a b c d e f 00: : : : UU : : : : Auf älteren Raspberry Pi der Rev. muss sudo icdetect -y 0 verwendet werden. Taucht an einer Stelle in der Anzeige statt einer Zahl die Zeichenfolge UU auf, bedeutet dies, dass ein Gerätetreiber diese Adresse nutzt. Bei der Adresse 0x3B liegt z. B. ein Audiotreiber auf dem Raspberry Pi B+. 3 Der Portexpander MCP307 Die GPIO-Ports auf dem Raspberry Pi können schnell knapp werden, wenn es darum geht, mehrere Geräte gleichzeitig anzusteuern. Portexpander am ic- Bus bieten die Möglichkeit, die Anzahl möglicher GPIO-Ports um ein Vielfaches zu vergrößern. In einigen Anwendungsfällen ist die bitcodierte Ansteuerung über ic sogar einfacher, als jeden Port einzeln zu adressieren. Ein sehr günstiger Portexpander ist bereits in vielen Displays integriert. Anders als in Anleitungen in Foren dargestellt, kann er sehr einfach angesteuert werden, siehe Anleitung online. Der MCP307-Chip hat auf jeder Seite 4 Anschlüsse, 8 davon auf jeder Seite sind GPIO-Ports. Der Rest sind Steuerleitungen und die Stromversorgung. Die Kerbe an einer der Schmalseiten dient der Orientierung, um den Baustein in der richtigen Richtung einzubauen. Die Anschlüsse GPA0...GPA7 und GPB0...GPB7 sind die zwei je 8 Bit breiten GPIO-Schnittstellen GPIOA und GPIOB, die binärcodiert angesteuert werden. Die Anschlüsse VDD und VSS sind die Stromversorgung für den Portexpander. VDD muss an +3,3 V angeschlossen werden, VSS an 0 V. 44

245 Elektronik Der RESET-Anschluss muss im Normalbetrieb auf True stehen, also mit +3,3 V verbunden sein. Die Anschlüsse A0, A, A legen die Adresse des Portexpanders fest. An den drei Anschlüssen lassen sich mit HIGH- oder LOW-Signalen binär die Zahlen von 0 bis 7 darstellen. Dazu wird 0x0 addiert, sodass sich die ic- Adressen 0x0...0x7 verwenden lassen. 4 Portexpander sind eine gute Erweiterung zum Raspberry Pi bei Elektronikprojekten Im Internet sind noch viele Schaltungen mit dem älteren Portexpander MCP306 zu finden. Dieser unterscheidet sich von seinem Nachfolger im Wesentlichen durch eine unübersichtlichere Anordnung der GPIO-Pins. 5 Sensorkontakte selbst bauen Das Prinzip der Sensortasten ist einfach: Die verwendeten GPIO-Ports sind über extrem hochohmige Widerstände ( MOhm) mit +3,3 V verbunden, sodass ein schwaches, aber eindeutig als GPIO.High definiertes Signal anliegt. Ein Mensch, der nicht gerade frei in der Luft schwebt, ist immer geerdet und liefert über die elektrisch leitfähige Haut einen GPIO.Low-Pegel. Berührt dieser Mensch jetzt einen Sensorkontakt, wird das schwache GPIO.High-Signal von dem deutlich stärkeren GPIO.Low-Pegel der Fingerkuppe überlagert und zieht den entsprechenden GPIO-Pin auf GPIO.Low-Pegel. 45

246 Sensorkontakte selbst bauen Zusätzlich zu den Widerständen und der LED wird noch blanker Draht benötigt, im Bild grau dargestellt, um daraus die Kontaktsensoren für vier Pfeiltasten und zwei Buttons zu biegen. Der lange Draht ganz unten quer ist mit 0-V-Masse verbunden. Durch Berühren dieses Drahts erdet man seine Hand vor Benutzung der Kontaktsensoren, um zu verhindern, dass durch statische Elektrizität Überspannungen auf die GPIO-Pins gelangen. Aus dem gleichen Grund sollten die GPIO-Pins bei eingeschaltetem Raspberry Pi nicht unnötig berührt werden. 46

247 Elektronik 6 Spiel mit Sensorkontakten steuern Supertux (supertux.lethargik.org), ein beliebtes Jump-and-run-Spiel, lässt sich gut mit den Cursortasten sowie der [Leertaste] steuern. Supertux installieren: sudo apt-get install supertux Python-Module installieren: sudo apt-get install python-setuptools python-xlib git sudo git clone cd PyUserInput sudo python setup.py install Das Programm pikeypikey_led.py läuft nur im Hintergrund und tut auf den ersten Blick gar nichts. Mithilfe des Python-Moduls PyKeyboard werden am GPIO-Port Tastatureingaben simuliert, um das Spiel zu steuern. #!/bin/python import RPi.GPIO as GPIO from pykeyboard import PyKeyboard import time GPIO.setmode(GPIO.BCM) K = 7 K = 5 K3 = 0 K4 = 3 K5 = K6 = 4 L = 8 47

248 Spiel mit Sensorkontakten steuern gpio_in = {K, K, K3, K4, K5, K6} gpio_old = {K:0, K:0, K3:0, K4:0, K5:0, K6:0} k = PyKeyboard() pause = 0.0 for gpio in gpio_in: GPIO.setup(gpio, GPIO.IN) GPIO.setup(L, GPIO.OUT) while True: time.sleep(pause) if GPIO.input(K) == 0 and gpio_old[k] == : k.press_key(k.enter_key) gpio_old[k] = 0 elif GPIO.input(K) == and gpio_old[k] == 0: k.release_key(k.enter_key) gpio_old[k] = if GPIO.input(K) == 0 and gpio_old[k] == : k.press_key( ) gpio_old[k] = 0 elif GPIO.input(K) == and gpio_old[k] == 0: k.release_key( ) gpio_old[k] = if GPIO.input(K3) == 0 and gpio_old[k3] == : k.press_key(k.down_key) gpio_old[k3] = 0 elif GPIO.input(K3) == and gpio_old[k3] == 0: k.release_key(k.down_key) gpio_old[k3] = if GPIO.input(K4) == 0 and gpio_old[k4] == : k.press_key(k.right_key) gpio_old[k4] = 0 elif GPIO.input(K4) == and gpio_old[k4] == 0: k.release_key(k.right_key) gpio_old[k4] = 48 if GPIO.input(K5) == 0 and gpio_old[k5] == : k.press_key(k.left_key) gpio_old[k5] = 0 elif GPIO.input(K5) == and gpio_old[k5] == 0: k.release_key(k.left_key) gpio_old[k5] =

249 Elektronik if GPIO.input(K6) == 0 and gpio_old[k6] == : k.press_key(k.up_key) gpio_old[k6] = 0 elif GPIO.input(K6) == and gpio_old[k6] == 0: k.release_key(k.up_key) gpio_old[k6] = LED = 0 for gpio in gpio_in: LED = LED or (not GPIO.input(gpio)) GPIO.output(L, LED) So funktioniert es Das Array gpio_in[] enthält die zuvor definierten GPIO-Portnummern zur Verwendung in Schleifen und Abfragen. gpio_in = {K, K, K3, K4, K5, K6} gpio_old = {K:0, K:0, K3:0, K4:0, K5:0, K6:0} Zum Speichern der vorherigen Werte der GPIO-Eingänge wird eine Variable gpio_old{} vom Typ dictionary verwendet. Der Variablen k wird eine Datenstruktur zugewiesen, die alle Eingaben der simulierten Tastatur Pykeyboard() enthält. Die verschiedenen Elemente dieser Struktur repräsentieren später gedrückte Tasten. k = PyKeyboard() Jetzt startet eine Endlosschleife, die in jedem Durchlauf mit einer kurzen Pause beginnt, um Tastenprellen zu verhindern. if GPIO.input(K) == 0 and gpio_old[k] == : k.press_key(k.enter_key) gpio_old[k] = 0 In jedem Durchlauf werden nacheinander die sechs Kontaktsensoren abgefragt. Liegt am GPIO-Eingang K das Signal 0 an, berührt der Benutzer gerade den Kontakt. Ist gleichzeitig der im zugehörigen Feld aus gpio_old{} gespeicherte Wert, hat der Benutzer den Kontakt gerade erst berührt. Dieser Zustand wird über die Methode k.press_key() der Datenstruktur k als Tastendruck ausgewertet, und der Wert k.enter_ key, in diesem Fall die [Enter]-Taste, wird an das Betriebssystem bzw. ein laufendes Programm weitergegeben. Danach wird der Wert gpio_ old[] für diesen Kontaktsensor auf 0 gesetzt, was bedeutet, der Sen- 49

250 WebIOPi sor wurde berührt. Solange der Sensor weiterhin berührt wird, reagiert diese Abfrage nicht mehr. Umgekehrt wird der Zustand, in dem der GPIO-Eingang den Wert annimmt, also nicht mehr berührt wird, dann als Loslassen der Taste interpretiert, wenn er zuvor noch berührt wurde und das zugehörige Feld aus gpio_old{} den Wert 0 hat. Die gleiche Abfrage wird für die anderen fünf Kontaktsensoren ausgeführt. PyKeyboard kann alphanumerische Tasten als Zeichenkette verwerten, wie z. B. die Leertaste für den GPIO-Port K. Steuerzeichen werden durch Schlüsselwörter repräsentiert. Die Tabelle zeigt die im Programm verwendeten Tasten. Variable im Programm Taste Code [Enter] K [Leertaste] enter_key K3 [¼] down_key K4 [Æ] right_key K5 [æ] left_key K6 [½] up_key Wurden alle sechs Kontaktsensoren abgefragt, leuchtet die LED auf, wenn ein Kontakt berührt wurde. LED = 0 for gpio in gpio_in: LED = LED or (not GPIO.input(gpio)) GPIO.output(L, LED) 7 WebIOPi Mit WebIOPi lassen sich GPIO-Pins auf dem Raspberry Pi über eine Weboberfläche schalten, oder es lässt sich auch einfach nur deren Zustand auslesen, wenn die Ports von einem anderen Programm verwendet werden. WebIOPi herunterladen, entpacken und installieren: wget tar.gz tar xvfz WebIOPi tar.gz 50

251 Elektronik cd WebIOPi sudo./setup.sh WebIOPi starten: sudo /etc/init.d/webiopi start WebIOPi von einem anderen Computer im Netzwerk im Browser aufrufen (IP-Adresse durch die des Raspberry Pi ersetzen): Anmelden mit Benutzer webiopi und Passwort raspberry. Auf der Startseite auf GPIO Header klicken. 6 7 Die nächste Seite zeigt den Zustand der GPIO-Pins an. Mit einem Klick auf IN oder OUT wird zwischen Eingabe und Ausgabe umgeschaltet. Ein Klick direkt auf die Nummer eines Pins ändert dessen Status. Als einfaches Beispiel lassen sich LEDs an den GPIO-Ports interaktiv ein- und ausschalten. 6 GPIO-Pins WebIOPi unterstützt bis jetzt nur die ersten 6 Pins der GPIO-Leiste, die auch schon auf den Raspberry Pi-Modellen B und A vorhanden waren. 5

252 Erweiterungsplatine BerryClip WebIOPi automatisch beim Booten des Raspberry Pi starten: sudo update-rc.d webiopi defaults WebIOPi beim Booten des Raspberry Pi nicht mehr automatisch starten: sudo update-rc.d webiopi remove 8 Erweiterungsplatine BerryClip BerryClip ist eine elegante Lösung für LED-Experimente am GPIO-Port. Klein genug, um in die meisten transparenten Gehäuse mit hineinzupassen, eignet sich die Platine auch zur Ausgabe von Programmstatusmeldungen per LED direkt am Raspberry Pi ohne Monitor. Zusätzlich zu sechs LEDs sind noch ein Taster und ein elektrischer Summer auf der Platine. Die Tabelle zeigt die Belegung der GPIO-Ports auf dem BerryClip-Modul: 5 Gerät LED LED LED 3 LED 4 GPIO GPIO4 GPIO7 GPIO GPIO0

253 Elektronik Gerät LED 5 LED 6 Buzzer Schalter GPIO GPIO9 GPIO GPIO8 GPIO7 Weitere Informationen unter 9 Erweiterungsplatine John Jay s 8 LED & Button Breakout Board John Jay s 8 LED & Button Breakout Board ist eine dem BerryClip sehr ähnliche Erweiterungsplatine, die aber acht LEDs und auch acht Taster beinhaltet. Alle Komponenten können einzeln angesprochen werden. Es sind also 6 GPIO-Ports nötig. Die Tabelle zeigt die Belegung der GPIO-Ports auf dem John Jay s 8 LED & Button Breakout Board: Gerät LED LED 3 LED 4 LED 5 LED 6 LED 7 LED 8 Taste Taste Taste 3 Taste 4 Taste 5 GPIO GPIO GPIO3 GPIO4 GPIO7 GPIO8 GPIO9 GPIO0 GPIO GPIO5 GPIO7 GPIO8 GPIO7 GPIO 53

254 Erweiterungsplatine Slice of Pi/O Gerät Taste 6 Taste 7 Taste 8 GPIO GPIO3 GPIO4 GPIO5 Weitere Informationen unter 0 Erweiterungsplatine Slice of Pi/O Die Erweiterungsplatine Slice of Pi/O liefert 6 zusätzliche GPIO-Ein- oder Ausgänge, die über ic angesteuert werden. Zur Steuerung wird der MCP307-Portexpander-Chip verwendet. Über den ic-bus ist das System mit mehreren Platinen auf bis zu 8 Ports erweiterbar. Die Platine kann mit 3,3 V oder 5 V vom Raspberry Pi oder mit einer externen Stromversorgung betrieben werden. Ausführliche Beschreibung beim Hersteller (openmicros.org) Direktlink: bit.ly/naoj. Erweiterungsplatine PiFace digital PiFace Digital ist eine Erweiterungsplatine, die den Raspberry Pi auf einfache Weise mit der Außenwelt verbindet. Die Platine bietet je acht digitale Einund Ausgänge, acht LEDs, vier Taster sowie zwei Relais zum Schalten stärkerer Stromverbraucher. Alle Anschlüsse verwenden Schraubklemmen, sodass kein Löten nötig ist. 54

255 Elektronik Das PiFace Digital nutzt die GPIO-Ports nicht direkt, sondern über einen MCP3S7-Portexpander-Chip, der über eine ic-schnittstelle mit dem Rasp berry Pi kommuniziert. Auf diese Weise werden nur zwei GPIO-Pins benötigt. Der Hersteller liefert bei Funktionsbibliotheken zur einfachen Ansteuerung der Platine in Python, C und Scratch zum Download. Bei github.com/piface/pifacedigital-emulator wird ein Emulator für das PiFace Digital angeboten. Erweiterungsplatine Pi-LITE Pi-LITE ist eine große Matrix mit 6 LEDs, die auf den GPIO-Port des Raspberry Pi gesteckt werden kann. Die LEDs werden über einen auf der Platine eingebauten ATMega38p-Prozessor gesteuert. Dadurch wird der Hauptprozessor des Raspberry Pi nicht mit der Ansteuerung der LEDs belastet. Das Pi-LITE kann zur Darstellung animierter Grafiken oder Laufschriften auf dem Raspberry Pi verwendet werden. An Lötösen auf der Platine lassen sich GPIO-Headerleisten auflöten, um die nicht verwendeten GPIO-Ports für andere Hardwareerweiterungen zu nutzen. Der Hersteller liefert bei bit.ly/pilite03 eine ausführliche Anleitung zur Verwendung dieser Platine. Wegen der notwendigen Aussparung für die USB- Anschlüsse kann das Pi-LITE nur auf den Raspberry Pi-Modellen B und A genutzt werden, nicht auf den neueren Modellen B+ und A+. 3 Bevor das Pi-LITE genutzt werden kann, müssen im Raspbian-Betriebssystem die bei bit.ly/pilite0 beschriebenen Anpassungen vorgenommen werden. Softwarebibliothek und Beispielprogramme installieren: sudo apt-get update sudo apt-get install git python-serial cd ~ mkdir git cd git git clone git://github.com/cisecoplc/pilite.git Im Verzeichnis ~/git/pilite/python_examples sind diverse Beispielprogramme zu finden, die über die Python-IDE aufgerufen werden können. 55

256 Arduino mit dem Raspberry Pi programmieren 3 Arduino mit dem Raspberry Pi programmieren Zur Programmierung eines Arduino braucht man nicht unbedingt einen Windows-PC ein Raspberry Pi reicht auch. 3 Arduino-IDE installieren: sudo apt-get update sudo apt-get install arduino Bei der Installation wird im Startmenü unter Entwicklung automatisch ein Menüpunkt angelegt. Arduino-IDE starten. Arduino an einen USB-Anschluss des Raspberry Pi stecken und den seriellen Port über das Tools-Menü auswählen. Die seriellen Ports haben unter Linux andere Bezeichnungen als unter Win. Die Funktionsweise innerhalb der Arduino-IDE ist aber gleich. Statt einem separaten Arduino kann man auch die Erweiterungsplatine Gertduino nutzen, den Gert van Loo, der Erfinder des Gertboards, Ende des Jahres 03 entwickelte. Der GertDuino bringt die beiden Welten von Raspberry Pi und Arduino zusammen. GertDuino ist eine Arduino-Uno-kompatible Platine mit ATmega-38-Chip, zwei Tasten und sechs LEDs, die auf den GPIO-Port des Raspberry Pi gesteckt wird. Beide Geräte arbeiten eigenständig und kommunizieren nur über den GPIO-Port miteinander. 56

1.5 Eigene Dateien auf den PC sichern odervom PC kopieren 20. Datenübertragung mit dem Total Commander 23 Komplettsicherung der SD-Karte 26

1.5 Eigene Dateien auf den PC sichern odervom PC kopieren 20. Datenübertragung mit dem Total Commander 23 Komplettsicherung der SD-Karte 26 i 5 Inhaltsverzeichnis 1 Raspbian-Betriebssystem installieren 10 1.1 Raspbian Wheezy: die Linux-Distribution n 1.2 Speicherkarte im PC vorbereiten 12 1.3 Der erste Start auf dem Raspberry Pi 13 1.4 Fast

Mehr

Website. zur eigenen. Ihr Weg ins Web: Domain, Hoster, Installation, Verwaltung, Pflege und IT-Recht. Websites. erstellen

Website. zur eigenen. Ihr Weg ins Web: Domain, Hoster, Installation, Verwaltung, Pflege und IT-Recht. Websites. erstellen Websites ohne Programmierkenntnisse erstellen Anita Woitonik / Vilma Niclas Ohne HTML zur eigenen Website Ihr Weg ins Web: Domain, Hoster, Installation, Verwaltung, Pflege und IT-Recht Anita Woitonik /

Mehr

Windows 8. Tipps & Tricks. Das Franzis Praxisbuch. 288 Seiten Windows-8- Insiderwissen. Christian Immler. Schnelle Lösungen für Windows-8-Probleme

Windows 8. Tipps & Tricks. Das Franzis Praxisbuch. 288 Seiten Windows-8- Insiderwissen. Christian Immler. Schnelle Lösungen für Windows-8-Probleme Das Franzis Praxisbuch 288 Seiten Windows-8- Insiderwissen Christian Immler Windows 8 Tipps & Tricks Schnelle Lösungen für Windows-8-Probleme! Installation, Umzug, Systemwiederherstellung! Alles, damit

Mehr

Samsung Galaxy S4 Buch

Samsung Galaxy S4 Buch Samsung Galaxy S4 Buch Holen Sie alles aus Ihrem S4 heraus: Anleitung, die besten Apps und viele Insider-Tipps und Tricks Das inoffizielle Samsung Galaxy S4 Buch Samsung Galaxy S4 Buch Holen Sie alles

Mehr

Verzeichnisse unter Linux

Verzeichnisse unter Linux Verzeichnisse unter Linux Autor: Frank Boerner (frank@frank-boerner.de) Formatierung: Matthias Hagedorn (matthias.hagedorn@selflinux.org) Lizenz: GPL Die Linux-Verzeichnisstruktur und das Arbeiten mit

Mehr

Scholz (Hrsg.) / Krämer / Schollmayer / Völcker. Android-Apps. Konzeption, Programmierung und Vermarktung

Scholz (Hrsg.) / Krämer / Schollmayer / Völcker. Android-Apps. Konzeption, Programmierung und Vermarktung Scholz (Hrsg.) / Krämer / Schollmayer / Völcker Android-Apps entwickeln Konzeption, Programmierung und Vermarktung Vom Entwurf bis zum Einstellen bei Google Play und Co. So entwickeln Sie native Apps für

Mehr

Installieren und Einrichten von VirtualBox für TAPPS (V1.0)

Installieren und Einrichten von VirtualBox für TAPPS (V1.0) Installieren und Einrichten von VirtualBox für TAPPS (V1.0) 1 Einleitung... 2 2 Download und Installation... 2 3 Einrichten von VirtualBox am Beispiel Windows XP... 7 4 Einrichten von Windows XP... 26

Mehr

Linux Grundlagen. Wolfgang Scheicher 20. Mai 2006. 1 Allgemeines 2 1.1 Bootvorgang... 2 1.2 Verzeichnisstruktur... 2

Linux Grundlagen. Wolfgang Scheicher 20. Mai 2006. 1 Allgemeines 2 1.1 Bootvorgang... 2 1.2 Verzeichnisstruktur... 2 Linux Grundlagen Wolfgang Scheicher 20. Mai 2006 Inhaltsverzeichnis 1 Allgemeines 2 1.1 Bootvorgang........................................... 2 1.2 Verzeichnisstruktur........................................

Mehr

Inhaltsverzeichnis. xiii

Inhaltsverzeichnis. xiii 1 Lernen Sie den Raspberry Pi kennen 1 1.1 Die Hardware...................................... 1 Was im Pi steckt................................... 1 Was der Pi nicht bietet...............................

Mehr

Remaster-Kit Anleitung von Carsten Rohmann und Leszek Lesner

Remaster-Kit Anleitung von Carsten Rohmann und Leszek Lesner Remaster-Kit Anleitung von Carsten Rohmann und Leszek Lesner 1. Was ist Remaster-Kit? Remaster-Kit ist ein Programm, welches das Remastern und Neubauen von ZevenOS-Neptune und anderen Debian- bzw. Ubuntu-basierenden

Mehr

Anonym im Internet mit Tor und Tails

Anonym im Internet mit Tor und Tails Hacking mit Franzis Ohne Vorkenntnisse Schritt für Schritt zum sicheren Linux auf dem USB-Stick Peter Loshin Anonym im Internet mit Tor und Tails Nutze die Methoden von Snowden und hinterlasse keine Spuren

Mehr

StickSecurity Home Edition 2006

StickSecurity Home Edition 2006 StickSecurity Home Edition 2006 Inhalt: 1. Konfiguration Sprache wählen Wechseldatenträger wählen 1. 1 Allgemein Bedienung Hotkey 2. Menü Aktionen Passwort Sonstige USB Stick Info USB Explorer USB Backup

Mehr

Einstellungen des Windows-Explorers

Einstellungen des Windows-Explorers Einstellungen des Windows-Explorers Die Ordnerstruktur des Explorers Der Explorer ist der Manager für die Verwaltung der Dateien auf dem Computer. Er wird mit Rechtsklick auf Start oder über Start Alle

Mehr

1 Was ist Windows?...15

1 Was ist Windows?...15 Inhalt 1 Was ist Windows?...15 1.1 Verstehen, was ein Computer ist... 16 1.2 Aufgaben eines Betriebssystems... 17 1.3 Die verschiedenen Windows-Versionen... 18 1.4 Zusammenfassung... 20 2 Maus, Tastatur

Mehr

:: Anleitung Demo Benutzer 1cloud.ch ::

:: Anleitung Demo Benutzer 1cloud.ch :: :: one source ag :: Technopark Luzern :: D4 Platz 4 :: CH-6039 Root-Längenbold LU :: :: Fon +41 41 451 01 11 :: Fax +41 41 451 01 09 :: info@one-source.ch :: www.one-source.ch :: :: Anleitung Demo Benutzer

Mehr

Anleitung: DV4Mini auf einem Raspberry Pi

Anleitung: DV4Mini auf einem Raspberry Pi Anleitung: DV4Mini auf einem Raspberry Pi Präambel OE7BSH Diese Anleitung wurde am 8. September 2015 nach aktuellen release Status (DV4Mini 1.4) erstellt. Nachdem der DV4Mini quasi work in progress ist,

Mehr

Installations-Dokumentation, YALG Team

Installations-Dokumentation, YALG Team Installations-Dokumentation, YALG Team Version 8.1 1 Benötigtes Material 2 Vor der Installation 3 Beginn 4 Installation 4.1 Sicherheit 4.2 Partitionierung 4.3 Paketauswahl 4.4 Paketauswahl (fein) 5 Konfiguration

Mehr

Windows XP & DNS-323: Zugriff auf die Netzfreigaben 1. Über dieses Dokument

Windows XP & DNS-323: Zugriff auf die Netzfreigaben 1. Über dieses Dokument Windows XP & DNS-323: Zugriff auf die Netzfreigaben 1. Über dieses Dokument Dieses Dokument erklärt, wie Sie auf dem DNS-323 Gruppen und Benutzer anlegen, Freigaben einrichten und diese unter Windows XP

Mehr

ATB Ausbildung technische Berufe Ausbildungszentrum Klybeck

ATB Ausbildung technische Berufe Ausbildungszentrum Klybeck Inhaltsverzeichnis DOKUMENTATION SERVER INSTALLATION MIT WINDOWS 2000...1 Was ist ein Server...1 Aufbau des aprentas Servers...1 Materialliste:...1 Ablauf der Installation:...1 Die Installation:...1 Server

Mehr

Der gleiche Schalter unter Dialoge zum Drucken sollte eingeschaltet bleiben. Der Druckdialog von LibreOffice bietet mehr Möglichkeiten.

Der gleiche Schalter unter Dialoge zum Drucken sollte eingeschaltet bleiben. Der Druckdialog von LibreOffice bietet mehr Möglichkeiten. Praxiseinsatz 4 Tipps zu LibreOffice Ein paar Einstellungen unter Extras/Optionen erleichtern den Umstieg von Microsoft Office: Unter LibreOffice/Allgemein den Schalter LibreOffice-Dialoge verwenden unter

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

Installationsanweisung Aktivierung für RadarOpus für PC s ohne Internetzugang (WINDOWS)

Installationsanweisung Aktivierung für RadarOpus für PC s ohne Internetzugang (WINDOWS) Installationsanweisung Aktivierung für RadarOpus für PC s ohne Internetzugang (WINDOWS) Dieses Handbuch hilft Anwendern, ihren RadarOpus Dongle (Kopierschutz) auf einem anderen Computer zu aktivieren,

Mehr

Windows 7. Der Desktop und seine Elemente. Der Desktop

Windows 7. Der Desktop und seine Elemente. Der Desktop Windows 7 Der Desktop und seine Elemente Der Desktop Nach der erfolgten Anmeldung an den Computer wird der DESKTOP angezeigt Der Desktop ist mit einem Schreibtisch zu vergleichen auf welchem Dokumente

Mehr

Tutorium 1 Systemadministration 2 - Linux Universität Hildesheim

Tutorium 1 Systemadministration 2 - Linux Universität Hildesheim Tutorium 1 Systemadministration 2 - Linux Universität Hildesheim Jens Rademacher 16.06.2014 1. Theorie: Verzeichnisbaum Eine Auswahl einiger Verzeichnisse. / # Root-Verzeichnis /home/ # Enthält alle Home-Verzeichnisse

Mehr

Bedienungsanleitung GOZ-Handbuch der Landeszahnärztekammer Baden-Württemberg

Bedienungsanleitung GOZ-Handbuch der Landeszahnärztekammer Baden-Württemberg Bedienungsanleitung GOZ-Handbuch der Landeszahnärztekammer Baden-Württemberg LZK BW 12/2009 Bedienungsanleitung GOZ-Handbuch Seite 1 Lieferumfang Zum Lieferumfang gehören: Eine CD-Rom GOZ-Handbuch Diese

Mehr

Anleitung für die Aktualisierung des HTML-Dokuments

Anleitung für die Aktualisierung des HTML-Dokuments Anleitung für die Aktualisierung des HTML-Dokuments Diese Anleitung erläutert das Herunterladen des G800SE-HTML-Dokuments von der Ricoh- Website und das Aktualisieren des HTML-Dokuments. Nehmen Sie folgende

Mehr

SX3 PC Software rev. 0.99c

SX3 PC Software rev. 0.99c SX3 PC Software rev. 0.99c SX3 ist ein Programm zur Steuerung einer Selectrix Digitalzentrale unter Linux bzw. Windows. Mit SX3 haben Sie die Möglichkeit Selectrix -Loks zu fahren, Weichen zu Schalten

Mehr

Computer Grundlagen Windows 7

Computer Grundlagen Windows 7 Computer Grundlagen Windows 7 Wenn wir den Computer starten, dann kommt in der Regel eine Benutzeranmeldung. Durch Eingabe von Benutzername und Passwort (in Netzwerken oft vorher STRG + ALT + ENTF) kann

Mehr

Dream NFI-Flash Anleitung für die Verwendung des USB Recovery Sticks

Dream NFI-Flash Anleitung für die Verwendung des USB Recovery Sticks -1- Dream NFI-Flash Anleitung für die Verwendung des USB Recovery Sticks -2- Wozu dient der USB Recovery Stick? Mit dem USB Recovery Stick können Sie die Software (Firmware) Ihrer Dreambox aktualisieren.

Mehr

Templates für Joomla! 1.6

Templates für Joomla! 1.6 Know-how ist blau. Templates für Joomla! 1.6 Design und Implementierung > Grafische Freiheit für Joomla!-Websites: verschiedene Designs in einem Template > So entwerfen Sie ein Template-Design mit Photoshop

Mehr

Service & Support. Wie projektieren Sie eine RDP Verbindung mit einem Industrial Thin Client SIMATIC ITC? Industrial Thin Client.

Service & Support. Wie projektieren Sie eine RDP Verbindung mit einem Industrial Thin Client SIMATIC ITC? Industrial Thin Client. Deckblatt Wie projektieren Sie eine RDP Verbindung mit einem Industrial Thin Client SIMATIC ITC? Industrial Thin Client FAQ August 2012 Service & Support Answers for industry. Fragestellung Dieser Beitrag

Mehr

Avery Dennison AP 5.4 Gen II / AP 5.6 Firmwareupdate USB Stick / SD Karte

Avery Dennison AP 5.4 Gen II / AP 5.6 Firmwareupdate USB Stick / SD Karte Avery Dennison AP 5.4 Gen II / AP 5.6 Firmwareupdate USB Stick / SD Karte Kurzanleitung Version 1.0 Firmwareupdate www.jrdrucksysteme.de Seite 1 von 12 Inhalt 1. Firmwareupdate mit SD Karte......... 3

Mehr

Avira Secure Backup INSTALLATIONSANLEITUNG. Kurzanleitung

Avira Secure Backup INSTALLATIONSANLEITUNG. Kurzanleitung Avira Secure Backup INSTALLATIONSANLEITUNG Kurzanleitung Inhaltsverzeichnis 1. Einführung... 3 2. Systemanforderungen... 3 2.1 Windows...3 2.2 Mac...4 2.3 ios (iphone, ipad und ipod touch)...4 3. Avira

Mehr

Dateisystem 1, Suchpfad, Befehlstypen

Dateisystem 1, Suchpfad, Befehlstypen Dateisystem 1, Suchpfad, Befehlstypen Linux-Kurs der Unix-AG Benjamin Eberle 8. Januar 2015 Was ist ein Dateisystem? Verwaltung von Dateien auf Datenträgern Beispiele: EXT3, EXT4, FAT, NTFS unter Linux

Mehr

Raspberry Pi Appliances. Das richtige Betriebssystem für die eigene SW Lösung finden Pi and More 7 Nico Maas

Raspberry Pi Appliances. Das richtige Betriebssystem für die eigene SW Lösung finden Pi and More 7 Nico Maas Raspberry Pi Appliances Das richtige Betriebssystem für die eigene SW Lösung finden Pi and More 7 Nico Maas Zur Person Nico Maas IT Systemelektroniker Bachelor of Science mail@nico-maas.de www.nico-maas.de

Mehr

Dateisystem 1, Suchpfad, Befehlstypen

Dateisystem 1, Suchpfad, Befehlstypen Dateisystem 1, Suchpfad, Befehlstypen Linux-Kurs der Unix-AG Andreas Teuchert 17. Juni 2014 Was ist ein Dateisystem? Verwaltung von Dateien auf Datenträgern Beispiele: EXT3, EXT4, FAT, NTFS unter Linux

Mehr

Nutzung der VDI Umgebung

Nutzung der VDI Umgebung Nutzung der VDI Umgebung Inhalt 1 Inhalt des Dokuments... 2 2 Verbinden mit der VDI Umgebung... 2 3 Windows 7... 2 3.1 Info für erfahrene Benutzer... 2 3.2 Erklärungen... 2 3.2.1 Browser... 2 3.2.2 Vertrauenswürdige

Mehr

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) 1 Einleitung... 2 2 Download und Installation... 3 2.1 Installation von WindowsXPMode_de-de.exe... 4 2.2 Installation von Windows6.1-KB958559-x64.msu...

Mehr

Installationsleitfaden kabelsafe storage mit FileZilla Client Programm

Installationsleitfaden kabelsafe storage mit FileZilla Client Programm Installationsleitfaden kabelsafe storage mit FileZilla Client Programm Installationsanleitung kabelsafe storage unter Verwendung des kostenlos unter verschiedenen Betriebssystemplattformen (Windows, Apple

Mehr

TEAMWORK App. Erste Schritte

TEAMWORK App. Erste Schritte TEAMWORK App Erste Schritte 1. Die TEAMWORK App Mit der einfachen und intuitiven Oberfläche haben Sie nicht nur Zugriff auf alle Dateien, die Sie über Ihren PC zu TEAMWORK hochgeladen haben, Sie können

Mehr

Anwendungen starten: Entsprechend wie bei Windows über den Starterbutton ganz links unten in der Kontrollleiste, die hier nicht Taskleiste heißt.

Anwendungen starten: Entsprechend wie bei Windows über den Starterbutton ganz links unten in der Kontrollleiste, die hier nicht Taskleiste heißt. Linux - KDE4 Desktop. - 1 / 5-1. KDE4 Desktop. Alle Beschreibungen gelten nur, wenn sie nicht individuell umkonfiguriert wurden! Egal welche Änderungen Sie bei den immens vielen Einstellungen in der Systemsteuerung

Mehr

Erste Schritte in Windows 8

Erste Schritte in Windows 8 Erste Schritte in Windows 8 Damit der Umstieg auf Windows 8 ohne Probleme klappt, gibt es hier einige Praxishilfen für die Nutzung des neuen Betriebssystems von Microsoft. Microsoft hat sich für ein Dualmodell

Mehr

Windows. Martina MÜLLER. Monika WEGERER. Zusammengestellt von. Überarbeitet von

Windows. Martina MÜLLER. Monika WEGERER. Zusammengestellt von. Überarbeitet von Windows Zusammengestellt von Martina MÜLLER Überarbeitet von Monika WEGERER April 2002 Windows Starten von Windows Wenn das System entsprechend installiert ist, erscheint Windows automatisch. (Kennwort)

Mehr

Service & Support. Wie projektieren Sie eine WEB Verbindung mit einem Industrial Thin Client SIMATIC ITC? Thin Client.

Service & Support. Wie projektieren Sie eine WEB Verbindung mit einem Industrial Thin Client SIMATIC ITC? Thin Client. Deckblatt Wie projektieren Sie eine WEB Verbindung mit einem Industrial Thin Client SIMATIC ITC? Thin Client FAQ August 2012 Service & Support Answers for industry. Fragestellung Dieser Beitrag stammt

Mehr

Mark Fink at. VHS Augsburg 2014. Erste Schritte mit dem Raspberry PI. mark@mark-fink.de

Mark Fink at. VHS Augsburg 2014. Erste Schritte mit dem Raspberry PI. mark@mark-fink.de Mark Fink at VHS Augsburg 2014 mark@mark-fink.de Mark Fink Testautomation & PerformanceEngineering Finance, Telco, Logistic Mark Fink Webmaster for Media-Site Open-Source @ Github Robotics Mein aktuelles

Mehr

Installation DV4mini ausgehend von einem frisch installierten System:

Installation DV4mini ausgehend von einem frisch installierten System: Installation DV4mini ausgehend von einem frisch installierten System: DJ0ABR/6.08.2015 Ubuntu 12.04 LTS: 1. Image Ubuntu 12.04 LTS auf dem PC installieren. Zum Testen habe ich die Desktop Version von dieser

Mehr

Installationsanleitung Tivoli Storage Manager für Mac OS

Installationsanleitung Tivoli Storage Manager für Mac OS 11. März 2009, Version 1.0 Installationsanleitung für Mac OS X Verwaltungsdirektion Informatikdienste Installationsanleitung für Mac OS Inhaltsverzeichnis...1 Installation... 1 Voraussetzungen...1 Version

Mehr

Schritt-für-Schritt Anleitung: Windows 7 per USB-Stick installieren

Schritt-für-Schritt Anleitung: Windows 7 per USB-Stick installieren Schritt-für-Schritt Anleitung: Windows 7 per USB-Stick installieren Sie würden gerne Windows 7 installieren, aber Ihr PC besitzt weder ein internes noch externes DVD- Laufwerk? In dieser Anleitung zeigen

Mehr

Documentation. OTRS Appliance Installationshandbuch. Build Date:

Documentation. OTRS Appliance Installationshandbuch. Build Date: Documentation OTRS Appliance Installationshandbuch Build Date: 10.12.2014 OTRS Appliance Installationshandbuch Copyright 2001-2014 OTRS AG Dieses Werk ist geistiges Eigentum der OTRS AG. Es darf als Ganzes

Mehr

MEMO_MINUTES. Update der grandma2 via USB. Paderborn, 29.06.2012 Kontakt: tech.support@malighting.com

MEMO_MINUTES. Update der grandma2 via USB. Paderborn, 29.06.2012 Kontakt: tech.support@malighting.com MEMO_MINUTES Paderborn, 29.06.2012 Kontakt: tech.support@malighting.com Update der grandma2 via USB Dieses Dokument soll Ihnen helfen, Ihre grandma2 Konsole, grandma2 replay unit oder MA NPU (Network Processing

Mehr

LaFonera Erweiterung - Erstinstallation -

LaFonera Erweiterung - Erstinstallation - LaFonera Erweiterung - Erstinstallation - Inhaltsverzeichnis Benötigte Software SSH-Client z.b. Putty SFTP-Client z.b. WinSCP Vorraussetzungen Firmwareversion SSH Zugriff WinSCP3 Zugriff Installation der

Mehr

Schulung ist Vertrauenssache! TEAM MIZEROVSKY

Schulung ist Vertrauenssache! TEAM MIZEROVSKY Schulung ist Vertrauenssache! TEAM MIZEROVSKY In 10 Schritten die Grundlagen begreifen Harald Mizerovsky Inhalt ECDL Modul 2 Betriebssystem Windows 7... 2 Nach dem Start von Windows sehen Sie folgendes

Mehr

Betriebssystem Windows 8

Betriebssystem Windows 8 Betriebssystem Windows 8 Inhaltsverzeichnis Startbildschirm...1 Neuanordnen der Kacheln auf der Startseite...1 So ändern Sie das Tastaturlayout für eine Sprache...2 Anschließen eines weiteren Monitors

Mehr

APP USABILITY SCHNELLEINSTIEG 35 CHECK- LISTEN FÜR DIE PRAXIS 160 SEITEN PLATTFORMÜBERGREIFENDES DESIGN: ANDROID, APPLE IOS UND WINDOWS PHONE

APP USABILITY SCHNELLEINSTIEG 35 CHECK- LISTEN FÜR DIE PRAXIS 160 SEITEN PLATTFORMÜBERGREIFENDES DESIGN: ANDROID, APPLE IOS UND WINDOWS PHONE Michal Gralak/Thorsten Stark 35 CHECK- LISTEN FÜR DIE PRAXIS SCHNELLEINSTIEG APP USABILITY 160 SEITEN PLATTFORMÜBERGREIFENDES DESIGN: ANDROID, APPLE IOS UND WINDOWS PHONE Michal Gralak/Thorsten Stark Schnelleinstieg

Mehr

Wie kann ich das Webserver-Paket XAMPP auf einem Win7 System installieren?

Wie kann ich das Webserver-Paket XAMPP auf einem Win7 System installieren? Wie kann ich das Webserver-Paket XAMPP auf einem Win7 System installieren? 1. Allgemeins über XAMPP XAMPP ist ein kostenloses Programmpaket, das die gängigen Komponenten für einen eigenen Webserver enthält.

Mehr

Mit Windows beginnen. Windows 7. Die neue Benutzeroberfläche (seit 2009) Windows 7 - Grundlagen 1

Mit Windows beginnen. Windows 7. Die neue Benutzeroberfläche (seit 2009) Windows 7 - Grundlagen 1 1 Mit Windows beginnen Windows 7 Die neue Benutzeroberfläche (seit 2009) Windows 7 - Grundlagen 1 1 Mit Windows beginnen Sicheres Kennwort Zufällige Zeichenfolge Mindestens 8 Zeichen, jedes zusätzliche

Mehr

2 GRUNDLEGENDE PROGRAMMBEDIENUNG

2 GRUNDLEGENDE PROGRAMMBEDIENUNG In diesem Kapitel erfahren Sie, wie das Textverarbeitungsprogramm Microsoft Word 2007 gestartet wird, wie Sie bestehende Dokumente öffnen und schließen oder Dokumente neu erstellen können. Es wird erläutert,

Mehr

Bibliographix installieren

Bibliographix installieren Bibliographix installieren Version 10.8.3 Inhalt Inhalt... 1 Systemvoraussetzungen... 1 Download... 2 Installation der Software... 2 Installation unter Windows... 2 Installation unter Mac OS X... 3 Installation

Mehr

Anleitung Gen2VDR Installationsanleitung für REYCOM. Gen2VDR Installationsanleitung für REYCOM

Anleitung Gen2VDR Installationsanleitung für REYCOM. Gen2VDR Installationsanleitung für REYCOM 1 Gen2VDR Installationsanleitung für REYCOM 2 Anleitung Gen2VDR Installationsanleitung für REYCOM Inhaltsverzeichnis 1 Allgemein... 3 1.1 Systemvoraussetzungen... 3 2 Installation... 4 2.1 Download der

Mehr

ATB Ausbildung Technische Berufe Ausbildungszentrum Klybeck

ATB Ausbildung Technische Berufe Ausbildungszentrum Klybeck Das Linux-Dateisystem bin usr sbin lib mail / var spool boot lpd Rc0.d etc Rc.d Rc1.d Verzeichnisstruktur / Root- oder Wurzelverzeichnis, das oberste Verzeichnis im kompletten Dateisystem. /bin Programme

Mehr

Der Raspberry Pi als Mediacenter

Der Raspberry Pi als Mediacenter Der Raspberry Pi als Mediacenter Autor: M. Völkl Städtische Berufsschule für Informationstechnik Der Raspberry Pi als Mediacenter Handlungssituation Sie sind Azubi der Firma SMART IT. Ihr Chef hat im Empfangsbereich

Mehr

Avery Dennison 64-Bit Serie Generation 3 Firmwareupdate CF Karte / USB Stick / SD Karte

Avery Dennison 64-Bit Serie Generation 3 Firmwareupdate CF Karte / USB Stick / SD Karte Avery Dennison 64-Bit Serie Generation 3 Firmwareupdate CF Karte / USB Stick / SD Karte Kurzanleitung Version 1.0 Firmwareupdate www.jrdrucksysteme.de Seite 1 von 22 Inhalt 1. Firmwareupdate mit CF Karte......

Mehr

Neuerungen zu WINDOWS 8.1

Neuerungen zu WINDOWS 8.1 Neuerungen zu WINDOWS 8.1 2014 Hans-Jürgen Wronski WINDOWS-Symbol als Startmenü-Ersatz: Auf dem Desktop wird ab WINDOWS 8.1 in der linken Ecke der Taskleiste wieder ein Symbol eingeblendet, das zur Kacheloberfläche

Mehr

Einrichten des Follow Me -Drucksystems unter OS X

Einrichten des Follow Me -Drucksystems unter OS X Einrichten des Follow Me -Drucksystems unter OS X 1 Druckertreiber Herunterladen Von Hause aus bietet OS X keine Unterstützung für die professionellen Canon Drucker, welche hier an der Hochschule Albstadt-Sigmaringen

Mehr

MySQL Community Server 5.6 Installationsbeispiel (Ab 5.5.29)

MySQL Community Server 5.6 Installationsbeispiel (Ab 5.5.29) MySQL Community Server 5.6 Installationsbeispiel (Ab 5.5.29) Dieses Dokument beschreibt das Herunterladen der Serversoftware, die Installation und Konfiguration der Software. Bevor mit der Migration der

Mehr

Anleitung für die Firmware-Aktualisierung

Anleitung für die Firmware-Aktualisierung Anleitung für die Firmware-Aktualisierung Diese Anleitung erläutert das Herunterladen der G800-Firmware von der Ricoh-Website und das Aktualisieren der Firmware. Nehmen Sie folgende Schritte vor, um die

Mehr

Features. Zugriffsmöglichkeiten

Features. Zugriffsmöglichkeiten widataspace Kurzanleitung Firmensitz: Ruckergasse 30-32, 1120 Wien Tel. +43 (1) 8120544-0 Fax DW -900 www.widder.at Service Center HTC: Gutheil-Schoder-Gasse 8-12, 1102 Wien support@widder.at Tel. +43

Mehr

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr.

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr. ls [optionen] [namen]: ls zeigt den Inhalt von Verzeichnissen. Sind keine namen angegeben, werden die Dateien im aktuellen Verzeichnis aufgelistet. Sind eine oder mehrere namen angegeben, werden entweder

Mehr

Novell Filr Inhaltsverzeichnis

Novell Filr Inhaltsverzeichnis Novell Filr Inhaltsverzeichnis 1. Webanwendung...2 1.1 Aufbau...2 1.2 Funktionen...2 1.2.1 Meine Dateien...2 1.2.2 Für mich freigegeben...3 1.2.3 Von mir freigegeben...4 1.2.4 Netzwerkordner...4 1.2.5

Mehr

Nachdem man dies alles gemacht hat, passt man die Einstellungen folgendermaßen an:

Nachdem man dies alles gemacht hat, passt man die Einstellungen folgendermaßen an: Wie macht man aus Windows 2003 Server eine Workstation? Nachdem man sich das ISO von ASAP heruntergeladen hat, sollte man sich noch die Offline Update CD von Win2k3 Server (zu finden auf http://www.fh-wuerzburg.de/sop/index.html)

Mehr

Anleitung: Installation von WISO Mein Büro auf einem Mac

Anleitung: Installation von WISO Mein Büro auf einem Mac Anleitung: Installation von WISO Mein Büro auf einem Mac Lieber WISO Mein Büro Anwender, WISO Mein Büro ist bisher eine reine Windows-Anwendung und lässt sich somit leider nicht direkt auf einem Macintosh

Mehr

Der Windows Explorer 3. Tips und Tricks

Der Windows Explorer 3. Tips und Tricks 1 Der Windows Explorer 3. Tips und Tricks Der Explorer ist sehr mächtig und sehr praktisch. Wir wollen uns intuitiv in ihm bewegen lernen. Man öffne ein Ordnerfenster, am einfachsten und besten das von

Mehr

http://bcloud.brennercom.it/de/brennercom-b-cloud/applikationen/26-0.html

http://bcloud.brennercom.it/de/brennercom-b-cloud/applikationen/26-0.html b.backup Handbuch Windows Dieser Abschnitt beschreibt die grundlegenden Funktionen des Backup Client und die Vorgehensweise für die Installation und Aktivierung. Außerdem wird erläutert, wie man eine Datensicherung

Mehr

Für die Administration sind folgende Mindestanforderungen zu beachten:

Für die Administration sind folgende Mindestanforderungen zu beachten: CMS Sefrengo Handbuch für Redakteure Seite 1 Zugangsdaten Mindestanforderungen Für die Administration sind folgende Mindestanforderungen zu beachten: Ein Webbrowser: Microsoft Internet Explorer ab Version

Mehr

2.1 Wozu dient das Betriebssystem

2.1 Wozu dient das Betriebssystem PC-EINSTEIGER Das Betriebssystem 2 Themen in diesem Kapitel: Das Betriebssystem Die Windows-Oberfläche Elemente eines Fensters 2.1 Wozu dient das Betriebssystem Das Betriebssystem (engl.: operating system,

Mehr

HILFE Datei. UPC Online Backup

HILFE Datei. UPC Online Backup HILFE Datei UPC Online Backup Inhalt Login Screen......? Welcome Screen:......? Manage Files Screen:...? Fotoalbum Screen:.........? Online backup Client Screen...? Frequently Asked Questions (FAQ s)...?

Mehr

http://www.cis.upenn.edu/~bcpierce/unison/download/stable/unison- 2.9.1/

http://www.cis.upenn.edu/~bcpierce/unison/download/stable/unison- 2.9.1/ Einführung Was ist Unison? Unison ist ein Dateisynchronisationsprogramm für Windows und Unix. Es teilt sich viele Funktionen mit anderen Programmen, wie z.b. CVS und rsync. Folgend einige Vorteile des

Mehr

Herzlich willkommen!... 13. Schnelleinstieg in Windows 10... 23. Inhalt 1. Inhalt 5

Herzlich willkommen!... 13. Schnelleinstieg in Windows 10... 23. Inhalt 1. Inhalt 5 Inhalt 5 Inhalt 1 Herzlich willkommen!... 13 Vorwort... 14 Was ist neu in Windows 10?... 16 Wo finde ich was?... 18 Der Desktop im Überblick... 19 Der Explorer in der Übersicht... 20 2 Schnelleinstieg

Mehr

Umgang mit Windows- Betriebssystemen BASISWISSEN

Umgang mit Windows- Betriebssystemen BASISWISSEN Umgang mit Windows- Betriebssystemen BASISWISSEN Der (Betriebs-) Systemstart Einschalten Computer Einlesen der Systemdateien in den Arbeitsspeicher von - je nach Einstellung und Vorhandensein - Diskette,

Mehr

Samba Schritt für Schritt

Samba Schritt für Schritt Samba Schritt für Schritt 1 Samba Schritt für Schritt Oft haben Kunden des HRZ, die sowohl unter UNIX als auch unter Windows arbeiten Schwierigkeiten, diese unterschiedlichen Welten zusammenzuführen, wenn

Mehr

Windows 8.1. Grundlagen. Markus Krimm. 1. Ausgabe, Oktober 2013 W81

Windows 8.1. Grundlagen. Markus Krimm. 1. Ausgabe, Oktober 2013 W81 Windows 8.1 Markus Krimm 1. Ausgabe, Oktober 2013 Grundlagen W81 Mit Windows beginnen 1 Der erste Blick auf den Startbildschirm Nach dem Einschalten des Computers und der erfolgreichen Anmeldung ist der

Mehr

Starten der Software unter Windows 7

Starten der Software unter Windows 7 Starten der Software unter Windows 7 Im Folgenden wird Ihnen Schritt für Schritt erklärt, wie Sie Ihr persönliches CONTOUR NEXT USB auf dem Betriebssystem Ihrer Wahl starten und benutzen. Schritt 1. Stecken

Mehr

Microsoft Office 2010

Microsoft Office 2010 Microsoft Office 2010 Office-Anpassungstool Author(s): Paolo Sferrazzo Version: 1.0 Erstellt am: 15.06.12 Letzte Änderung: - 1 / 12 Hinweis: Copyright 2006,. Alle Rechte vorbehalten. Der Inhalt dieses

Mehr

Anleitung neuen Beitrag unter News auf www.schoellonia.de erstellen

Anleitung neuen Beitrag unter News auf www.schoellonia.de erstellen Anleitung neuen Beitrag unter News auf www.schoellonia.de erstellen BILD: Es ist möglich ein Bild unter den News mit zu veröffentlichen. Achtung: NUR EIN BILD pro Beitrag, und dieses sollte zuvor auf die

Mehr

Zugriff zum Datenaustausch per scponly

Zugriff zum Datenaustausch per scponly Zugriff zum Datenaustausch per scponly Warum scponly? In der Grundkonfiguration der Musterlösung ist es notwendig, dass ein Benutzer, der die Möglichkeit haben soll von außen Dateien mit dem Server auszutauschen,

Mehr

Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office

Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office 1. WINGAEB UND LINUX... 2 1.1. Systemvoraussetzungen... 2 1.2. Anmerkungen... 2 2. DIE INSTALLATION VON WINGAEB... 3 2.1.

Mehr

2 DAS BETRIEBSSYSTEM. 2.1 Wozu dient das Betriebssystem. 2.2 Die Bildschirmoberfläche (Desktop) Themen in diesem Kapitel: Das Betriebssystem

2 DAS BETRIEBSSYSTEM. 2.1 Wozu dient das Betriebssystem. 2.2 Die Bildschirmoberfläche (Desktop) Themen in diesem Kapitel: Das Betriebssystem 2 DAS BETRIEBSSYSTEM Themen in diesem Kapitel: Das Betriebssystem Die Windows-Oberfläche Elemente eines Fensters 2.1 Wozu dient das Betriebssystem Das Betriebssystem (engl.: operating system, kurz: OS)

Mehr

Pictomat. Embedded Machine Vision. Datenaustausch über FTP-Server IBN INGENIEURBÜRO BERND NEUMANN GMBH. Eichendorffstraße 23 D-47626 Kevelaer

Pictomat. Embedded Machine Vision. Datenaustausch über FTP-Server IBN INGENIEURBÜRO BERND NEUMANN GMBH. Eichendorffstraße 23 D-47626 Kevelaer Pictomat Embedded Machine Vision Datenaustausch über FTP-Server IBN INGENIEURBÜRO BERND NEUMANN GMBH Eichendorffstraße 23 D-47626 Kevelaer Tel. +49(0) 28 32 / 97 95 62 Fax +49(0) 28 32 / 97 95 63 Internet:

Mehr

Portable Apps. Platform 10. Die portable Apps Platform 10.0.1. Das ist neu. Inhalt. Auf DVD

Portable Apps. Platform 10. Die portable Apps Platform 10.0.1. Das ist neu. Inhalt. Auf DVD Platform 10 Die neue Version 10 der enthält einen App Store und nimmt auf Wunsch auch alle Schriftarten mit. Der App Store ermöglicht es erstmals, der Platform mehrere Programme auf einen Schlag hinzuzufügen.

Mehr

Installation/ Anschluss an den Fernseher:

Installation/ Anschluss an den Fernseher: Installation/ Anschluss an den Fernseher: 1. Verbinden Sie das mitgelieferte USB Anschlusskabel über den Micro USB Stecker mit der entsprechenden Buchse des EZ Cast Sticks 2. Stecken Sie den HDMI Stick

Mehr

Artikel ID: 2399 Erstellt am: 08.08.2011 11:36 Überschrift: STRATO HiDrive Software - Installation und Konfiguration

Artikel ID: 2399 Erstellt am: 08.08.2011 11:36 Überschrift: STRATO HiDrive Software - Installation und Konfiguration Artikel ID: 2399 Erstellt am: 08.08.2011 11:36 Überschrift: STRATO HiDrive Software - Installation und Konfiguration Für die Betriebssysteme Windows XP, Vista und Windows 7 (32 und 64-bit) stellen wir

Mehr

Erste Schritte am Computer. Susanne Weber 1. Ausgabe, Oktober 2010. mit Windows 7 und Word 2010 PE-ESCOM710

Erste Schritte am Computer. Susanne Weber 1. Ausgabe, Oktober 2010. mit Windows 7 und Word 2010 PE-ESCOM710 Susanne Weber 1. Ausgabe, Oktober 2010 Erste Schritte am Computer mit Windows 7 und Word 2010 PE-ESCOM710 Inhalt Erste Schritte am Computer Das ist Ihr perfekter Einstieg 4 1 Den Computer kennenlernen

Mehr

Windows 8.1. Was ist neu? Word

Windows 8.1. Was ist neu? Word Windows 8.1 Was ist neu? Word Inhaltsverzeichnis INHALTSVERZEICHNIS WINDOWS 8.1 WAS IST NEU?... 1 1. ANPASSUNGEN AM INTERFACE... 1 1.1 DER STARTBUTTON... 1 1.2 STARTEN MIT DEM DESKTOP... 2 1.3 DESKTOP-

Mehr

time project Die clevere Zeitbuchhaltung

time project Die clevere Zeitbuchhaltung time project Die clevere Zeitbuchhaltung Anleitung Installation Inhalt 1 Einleitung... 3 2 Die Komponenten von time project... 3 2.1 Der time project Server... 3 2.2 Der time project Client... 3 3 Systemvoraussetzungen...

Mehr

Anleitung zum Usenet Programm GRABIT 1.7.2 Beta 6

Anleitung zum Usenet Programm GRABIT 1.7.2 Beta 6 Anleitung zum Usenet Programm GRABIT 1.7.2 Beta 6 Erstellt für http://www.premium-news.com Bei der Installation: Klicken Sie einmal (bei Bedingungen) auf I accept the agreement und dann 4-mal auf Next

Mehr

Installationsvorbereitung

Installationsvorbereitung Installationsvorbereitung Für die Installation und das spätere einwandfreie Arbeiten mit dem Layoutprogramm»VivaDesigner«gelten nachfolgende Voraussetzungen, die unbedingt beachtet werden sollten. Sie

Mehr

5 Modern UI und Desktop

5 Modern UI und Desktop Modern UI und Desktop 5 Modern UI und Desktop 5.1 Modern UI und Desktop Die augenfälligste Änderung in Windows 8 gegenüber allen früheren Windows-Versionen ist die sogenannte Modern UI (ursprünglich Metro-Oberfläche"),

Mehr

Installationsanleitung

Installationsanleitung Avira Secure Backup Installationsanleitung Warenzeichen und Copyright Warenzeichen Windows ist ein registriertes Warenzeichen der Microsoft Corporation in den Vereinigten Staaten und anderen Ländern. Alle

Mehr