Seite 2
Weise beabsichtigt. Die Informationen dieser Veröffentlichung, werden auf einer “AS IS” Basis zur Verfügung gestellt. Vilros gibt keinerlei Garantien, weder expressiv noch impliziert, bezüglich der Verwendung dieser Informationen allein oder in Kombination mit unseren Produkten. Weder Autor, noch Herausgeber können rechtlich zur Verantwortung gezogen werden, sollten Fehler oder...
Inhaltsverzeichnis 1 - Erste Vorbereitungen 1.1 Einführung 1.2 Technische Spezifikationen 1.3 Grundlegende Einrichtung 1.4 SD-Karten 2 - Einführung in Raspbian 2.1 Raspbian und Linux 2.2 Installation von Raspbian und NOOBS 2.3 Installation von Raspbian mit einem Abbild 2.4 Installation von NOOBS auf einer MicroSD- Karte 2.5 Raspi-config 2.6 Raspbian's Desktopumgebung...
Seite 4
5.4 Kollisionserkennung 5.5 Gegner 5.6 Mehr Gegner 5.7 Game Over 6 - Programmieren in Python 6.1 Ihr erstes Python Programm 6.2 Python 6.3 Entscheidungen 6.4 Schleifen 6.5 Funktionen 6.6 Klassen und Objekte 6.7 Module und Pakete 6.8 Datei I/O 6.9 Graphische Benutzeroberfläche (GUIs) 7 –...
1 – Erste Vorbereitung 1.1 Einführung Der Raspberry Pi ist ein kleiner, ein sehr kleiner Computer. Er besteht größtenteils aus den gleichen Bauteilen, wie ein gewöhnlicher Desktop-PC oder Laptop. Ein zentrales Rechenwerk (CPU) fungiert als Gehirn, Arbeitsspeicher (RAM) und Festplatten halten und speichern Daten, eine Videoanzeige zeigt Ihnen, was gerade passiert und der Anwender interagiert mit Maus, Tastatur, Joystick oder anderen Geräten der seriellen Schnittstelle (USB).
Seite 6
als gewöhnlicher Computer eingesetzt werden. Er kann so ziemlich alles, wie Ihr Hauptcomputer...wenn auch etwas langsamer. Spielen Die Auswahl an Spielen, die für den Raspberry Pi erhältlich sind, ist gigantisch. Es besteht zudem die Möglichkeit, sich “Emulatoren” zu installieren, kleine Softwareprodukte, die es ermöglichen, auf dem Pi auch Programme anderer Geräte zu betreiben.
Controller-Boards erstellen und mit Elektronik interagieren Geringe Größe, Kosten und die einfache Programmierung machen den Raspberry Pi sehr nützlich in „eingebetteten“ Anwendungen. Bei diesen Projekten, arbeitet der Pi zusammen mit anderen elektronischen Schaltkreisen zusammen, um alles mögliche zu erstellen, angefangen bei 3D-Druckern, über Heimautomatisierungs-Systeme, bis hin zu Robotern.
Abbildung 1. Abschlüsse am Raspberry Pi 2 Modell B General Purpose Input/Output (GPIO) Header - Diese Pins können durch Software gesteuert werden. Universal Serial Bus (USB) Anschluss für den Anschluss von Peripheriegeräten wie Mäuse, Tastaturen oder Speicherkarten. Es handelt sich um einen Dual-Anschluss, so dass zwei Geräte gleichzeitig angeschlossen werden können.
Seite 9
Ohne macht der Pi überhaupt nichts. Er wird nicht einmal ein Videosignal ausgeben. Für die erste Konfiguration, müssen Sie unter Umständen noch folgendes anschließen: 1. Eine Anzeige (mittels HDMI oder Composite-Ausgang) 2. Eine USB-Tastatur 3. Ethernet-Kabel oder USB WLAN „Stick“ Anzeige und jegliche USB-Geräte, die Sie eventuell anschließen werden, können bei Nichtverwendung entfernt werden.
Seite 10
muss aus bestimmten Stoffen bestehen, um effektiv Hitze vom Pi zum Metall des Kühlers abzutransportieren. Abbildung 2. Die Hitzeausgänge auf einem Pi (links) ; und Anbringen eines Kühlers auf der CPU (rechts) Strom anschließen Der Raspberry Pi benötigt 5 V Spannung, bei mindestens 700 mA Strom.
Seite 11
Seite und 3 RCA-Stecker auf der anderen (je ein gelbes, rotes und weißes). Um diese Kabel zu verwenden: 1. Das 4-polige 3.5 mm Kabel in den 3.5 mm Anschluss auf dem Raspberry Pi 2 Model B stecken. 2. Den gelben Composite-Video-Stecker in den gelben Videoeingang des TV-Geräts stecken.
Seite 12
Um einen Computerbildschirm als Anzeige für den Pi zu verwenden, benötigen Sie einen HDMI auf VGA oder HDMI auf DVI Adapter. Sollten Sie allerdings einen Monitor mittels HDMI auf VGA/DVI Adapter anschließen wollen, werden Sie zunächst keine Lautsprecher an den Audio-Anschluss betreiben können.
Seite 13
Um ein USB-Gerät anzuschließen, stecken Sie dessen USB- Stecker in einen freien Anschluss auf dem Raspberry Pi. Dabei spielt es keine Rolle, ob der Pi gerade an- oder ausgeschaltetist. Der Raspberry Pi kann USB-Geräte nur begrenzt mit Strom versorgen. Es wird empfohlen, keine Geräte anzuschließen, die mehr als 100 mA benötigen.
Theoretisch ist WLAN eine schnellere Technologie als 10/100 Mb/s Ethernet, welches in den Pi 2 Model B eingebaut ist. In der Praxis ist dies allerdings nicht immer der Fall. Da der Pi Daten nicht so schnell verarbeiten kann, als ein brandneuer Desktop-Computer, ist der Geschwindigkeitsunterschied zwischen Ethernet und WLAN kaum zu bemerken und Sie können sich für die Übertragungsart entscheiden, die für Sie...
Seite 15
21.5 mm lang; und microSD Karten sind nochmal etwas kleiner – 11 mm breit und 15 mm lang. Das Raspberry Pi 2 Model B hat an der Unterseite der Platine einen microSD-Anschluss. Mit diesem Modell können Sie keine Full-Size SD-Karten verwenden, jedoch werden microSD Karten häufig mit Adaptern ausgeliefert, durch welche...
Seite 16
Einstecken und Entfernen von SD-Karten Wahrscheinlich benötigen Sie eine Speicherkarte mit mindestens 4 GB Kapazität, sollten Sie ein Betriebssystem mit dem Pi betreiben wollen. 4 GB SDHC microSD Karten sind überall erhältlich und äußerst kostengünstig. Eine SD Karte einstecken: 1. Vergewissern Sie sich, dass der Pi ausgeschaltet ist.
2 – Einführung in Raspbian 2.1 Raspbian und Linux Ein Betriebssystem (OS) ist eine einzigartige Applikation, die auf einem Computer betrieben wird. Es handelt sich um eine Umgebung, in der viele andere Programme zeitgleich ausgeführt werden können, unter einer konsistenten Benutzeroberfläche und sich die gleichen Ressourcen teilen.
Seite 18
Nachdem Sie ein OS installieren und die SD Karte wieder in einen Windows-PC einstecken, erscheint es, als wäre die Kapazität der SD Karte gesunken. Windows kennt keine Linux Partitionen. Um die Karte zu löschen, verwenden Sie das Kommandozeilen-Programm diskpart, um die Partitionen zu löschen und eine neue „Primäre“ Partition mit dem gesamten verfügbaren Speicherplatz zu erstellen.
Raspbian installieren: 1. In der Liste auf das Kästchen neben Raspbian klicken. 2. In der Werkzeugleiste auf Installieren klicken. Wenn die Installation abgeschlossen ist, bootet der Raspberry Pi erneut und lädt das raspi-config Tool. Hier können Sie diverse wichtige Einstellungen tätigen. Für weitere Informationen, lesen Sie auf Seite 22 den Abschnitt 2.5 Raspi- config.
Entpacken unter Mac OS X: 1. Auf dem Dock auf Finder klicken. 2. Die heruntergeladene .zip Datei suchen. 3. Mittels Doppelklick auf die Datei in neuen Ordner entpacken. Windows-Anwender müssen sich Win32DiskImager von http:// sourceforge.net/projects/win32diskimager/ bevor sie fortfahren. Unter Mac OS X sollten sich ApplePi-Baker von http://www.tweaking4all.com/hardware/raspberry-pi/macosx- apple-pi-baker/ Um das Raspbian Disk-Abbild unter Windows (8/7/Vista/XP) auf...
Unter Mac OS X: 1. SD Karte in Anschluss oder USB-Lesegerät einlegen. 2. Im Dock auf Finder. 3. Im Seitenmenü auf Applications. 4. Im rechten Panel auf ApplePi-Baker. 5. Falls mehrere SD-Karten unter Pi-Crust:Possible SD- Cards auftauchen, klicken Sie auf diejenige, die Sie beschreiben wollen.
2. Die neueste Version von NOOBs herunterladen unter http://downloads.raspberrypi.org/ NOOBS_latest 3. Die NOOBS .zip Datei öffnen. 4. Inhalte der .zip Daten auf die microSD Karte ziehen. 5. Die microSD Karte sicher auswerfen. 6. Vergewissern Sie sich, dass der Pi ganz abgeschaltet und abgesteckt ist und legen Sie dann die SD Karte in den entsprechenden Anschluss des Pi.
Seite 23
Erkunden der Einstellungen in Raspi-config Untere Tabelle fasst die im Hauptmenü von raspi-config verfügbaren Optionen auf: Menüoption Beschreibung Gesamte Kapazität der SD Karte für Expand Filesystem Betriebssystem verfügbar machen – falls nicht schon der Fall. Change User Passwort für Standardbenutzer ändern (pi). Password Enable Boot to Raspbian kann verschiedene Programme nach...
Seite 24
Menüoption Beschreibung Hostname Den Namen für den Pi einstellen, unter dem er im lokalen Netzwerk erreichbar ist. Dies ist nützlich, wenn Sie nach Geräten suchen oder mehrere Pi Geräte betreiben. Memory Split Der Arbeitsspeicher des Pi wird zwischen CPU und GPU aufgeteilt. Hier kann eingestellt werden, wie viel Speicher GPU erhalten soll.
Seite 25
2. Erneut Enter und <OK> wählen. 3. Neues Passwort eingeben und Enter drücken. 4. Bestätigen durch erneutes Eintippen und Enter drücken. 5. Enter drücken und <OK> wählen. Wenn Sie den Pi mit dem Internet verbinden und sich nicht sicher sind, ob Ihr Netzwerkrouter eingehende Pakete erlaubt, sollten Sie dieses Passwort ändern, um sicherzustellen, dass sich andere Leute nicht in Ihren Pi einloggen können.
2.6 Raspbian's Desktopumgebung Haben Sie die Änderungen in raspi-config durchgeführt, startet der Raspberry Pi in eine Kommandozeile. Um die Desktopumgebung zu starten: Geben Sie den Benutzernamen pi ein und drücken Enter. Passwort eingeben und bestätigen mit Enter.1 Folgenden Befehl eingeben und danach Enter startx Abbildung 2.
Seite 27
erscheinen auf dem Desktop entsprechende Links zu diesen Dateien. Oben links auf dem Bildschirm sehen Sie: Raspbian Menü, Programmstarter und Papierkorb In der rechten, oberen Ecke befinden sich: Netzwerkmonitor, Lautstärkeregler, CPU-Monitor und die Uhr. Menü. Das Raspbian Menü bietet Zugang zu vielen Systemeinstellungen, Werkzeugen und Programmen, die Sie installieren können.
Seite 28
Geöffnete Programme werden als Icons mit Titel in diesem Bereich angezeigt. Wenn ein Programm minimiert wird, können Sie es durch Klicken auf das Icon in der Taskleiste wieder in den Vordergrund bringen. Papierkorb. Enthält Dateien, die über den Dateimanager gelöscht wurden.
Seite 29
• Über Tastatur Alt + F4 eingeben. • Drücken Sie Close rechts oben im Fenster. Sieht aus wie ein x. • Oben links auf das Icon klicken und Close wählen. Den Dateimanager öffnen Über den Dateimanager können Sie Dateien auf dem Pi kopieren, umbenennen, löschen und ändern.
Seite 30
Wie ein Browser kann der Dateimanager ebenfalls mehrere Ordner mittels Reiter öffnen. Um einen Reiter zu öffnen: • In der Toolbar den ersten Button wählen. Ein neuer Tab mit gleichem Ordner wird geöffnet und zeigt eine Tableiste. Hier können Sie zwischen den Reitern wechseln. Wenn Sie den Windows Explorer in Microsoft Windows schon verwendet haben oder Finder unter Mac OS X, kennen Sie die meisten Aufgaben bereits.
Seite 31
Ziel So geht's Mehrere Dateien oder Ordner In der rechten Leiste halten Sie Strg gedrückt und klicken auf Dateien wählen und Ordner, die Sie auswählen möchten. Datei oder Ordner in den Rechtsklick auf Icon und dann Papierkorb legen auf Move to Trash. Datei oder Ordner umbenennen Rechtsklick auf Icon und dann auf Rename...
Ordner Beschreibung Enthält die meisten Konfigurationsdateien für das Betriebssystem. Linux erstellt für angeschlossene Hardwaregeräte entsprechende Einträge für das Dateisystem in diesem Ordner. Mediengeräte (z.B. DVD-Geräte) befinden sich stattdessen unter /mnt oder /media. Wenn Wechseldatenträger wie CD, media Speicherkarten und USB-Sticks eingelegt werden, erstellt das System einen entsprechenden „Mountpunkt“...
Seite 33
Zugriff auf die Kommandozeile Obwohl die meisten Aufgaben über die grafische Oberfläche erledigt werden können, gibt es dennoch immer etwas, was Sie über die Kommandozeile erledigen wollen. Um von der grafischen Oberfläche auf die Kommandozeile zugreifen: • Auf dem Desktop klicken Sie auf LXTerminal; oder •...
Seite 34
Ziel So geht's Inhalte eines Ordners anzeigen Eingeben von ls und Leerzeichen, dann Name des Ordners. Danach Enter. In Unterordner wechseln Eingeben Leerzeichen und Name Ordners eingeben. Enter drücken, Eingeben von cd.. und mit Enter Zu übergeordnetem Ordner bestätigen. Unterordner erstellen Eingeben von mkdir und Leerzeichen und Name des Ordners eingeben.
Seite 35
• Im Programmmenü auf File und dann auf Quit. • Folgenden Befehl eingeben und auf Enter: exit Wenn Sie einen einzelnen Befehl absetzen möchten, können Sie dies über das Raspbian Menü. Auf das Menü klicken und dann auf Run. Den Befehl eingeben und mit Enter bestätigen. Linux Benutzer und Superusers verstehen Wenn Sie moderne Versionen von Microsoft Windows gewöhnt sind, müssen Sie bestimmte Programme als Administrator...
2.7 Häufige Aufgaben In diesem Abschnitt erhalten Sie Anweisungen für häufig anfallende Aufgaben, die nach einer Raspbian-Installation zu erledigen sind. Weitere Anweisungen lernen Sie in 2.8 Netzwerkverbindungen und Fernzugriff auf Seite 40. Den Raspberry Pi neu starten und abschalten: Um den Pi neu zu starten: 1.
Seite 37
3. Folgenden Befehl eingeben und auf Enter: edidparser edid 4. Fideomodus suchen der verwendet werden soll und die Mode-Nummer notieren, sowie die Angabe „DMT mode“ oder „CEA mode“. 5. Folgenden Befehl eingeben und auf Enter: sudo nano /boot/config.txt 6. Pfeil unten bis zu den Zeilen: #hdmi_group= #hdmi_mode= 7.
Seite 38
Aut Das Raspbian Menu klicken und dort zu Accessories und dann auf Text Editor; oder • In der Kommandozeile folgenden Befehl eingeben und auf Enter: leafpad Wenn Sie Leafpad über die Kommandozeile öffnen, kann direkt die zu bearbeitende Datei angegeben werden. •...
Seite 39
Ziel So geht's Datei nach Wort oder Phrase Drücken Sie Ctrl + F. durchsuchen Letzte Änderung rückgängig Drücken Sie Ctrl + Z. machen Leafpad beenden Drücken Sie Ctrl + Q. Installieren einer grafischen Paketverwaltung Für die Installation neuer Programme, müssen ein paar Dinge gemacht werden: 1.
Um die Synaptic Paketverwaltung zu betreiben: • Klicken Sie auf den Button Menu, gehen zu Preferences und klicken auf Synaptic Package Manager. 2.8 Netzwerkverbindungen und Fernzugriff Per Ethernet mit dem Netzwerk verbinden Um den Raspberry Pi mittels Ethernetkabel mit dem Netzwerk zu verbinden: 1.
Seite 41
5. Auf Scan klicken und das Fenster „Scan results“ öffnen. 6. Klicken Sie auf Scan. 7. Doppelklick auf den Namen Ihres Netzwerks. 8. Kontrollieren Sie, ob Authentication und Encryption alles korrekt ist, um sich mit Ihrem Router verbinden zu können. 9.
Seite 42
ifconfig Sollten Sie ein Ethernet-Kabel verwenden, notieren Sie sich unter „eth0“ die Werte von "inet addr", "Bcast" und "Mask". Sollten Sie WLAN verwenden, notieren Sie sich unter „wlan0“ die Werte "inet addr", "Bcast" and "Mask". Folgenden Befehl eingeben und bestätigen mit Enter: netstat -nr Notieren Sie die sich die Werte unter „Gateway“...
Seite 43
14. Drücken Sie Strg + X. 15. Drücken Sie Y und dann Enter. 16. Starten Sie den Raspberry Pi neu. Dateien von und zum Raspberry Pi übertragen Mittels Secure Copy (SCP) können Sie Dateien von Ihrem Computer zum Pi übertragen oder Dateien vom Pi auf ein anderes Gerät übertragen.
Seite 44
jedoch ist Putty eines der beliebtesten. Herunterladen können sie es unter http://www.chiark.greenend.org.uk/~sgtatham/putty/ Unter Mac OS X benötigen Sie keinen zusätzlichen SSH- Client..Um sich unter Windows (8/7/Vista/XP) per SSH mit dem Pi zu verbinden: 1. Suchen Sie die heruntergeladene putty.exe und Doppelklick auf die Datei.
Seite 45
Sie müssen auch zusätzliche Software auf dem Pi installieren, bevor Sie sich mittels Remote-Desktop verbinden können. Um die Software mittels Kommandozeile zu installieren: 1. Unter Application Launcher auf LXTerminal klicken. 2. Folgenden Befehl eingeben und Enter drücken: 3. Jetzt Y drücken und bestätigen mit Enter. Um Remote Desktop unter Windows (8/7/Vista/ XP) zu verwenden: 1.
2.9 Weitere Betriebssysteme Arch Linux Arch Linux ist extrem leichtgewichtig und ideal für den Serverbetrieb oder für Geräte mit unüblichem Einsatzbereich – wenn viele der normalerweise installierten Pakete nicht benötigt werden, um eine brauchbare Desktopumgebung zu erstellen. Sie können ein Disk-Abbild unter http:// www.raspberrypi.org/downloads/ herunterladen oder mittels NOOBS installieren.
Seite 47
Android 5.1 Android ist ein Betriebssystem für Tablets und Smartphones. Die höhere Geschwindigkeit und mehr Speicher des Pi 2 Model B (im Vergleich zur Vorgängerversion) ermöglicht nun auch den Betrieb von Android 5.1 „Lollipop“ auf dem Pi 2. Für weitere Informationen besuchen Sie http://raspex.exton.se/ Ubuntu MATE Ubuntu ist eine der am weitesten verbreiteten Linux-Versionen.
3 – Ein Medienzentrum mit OSMC 3.1 OSMC Open Source Media Center (OSMC) ist ein gratis Medienplayer, der auf Debian Linux und dem Kodi Media Player basiert. Mit ihm können Sie Musik und Videodateien auf Ihrem TV-Gerät abspielen. Diese Dateien können sich auf USB-Stick, Festplatten, anderen Computern, im lokalen Netz oder im Internet befinden.
3.2 Installation OSMC beinhaltet eine angepasste Version von Debian Linux. Dies bedeutet, dass beim Starten des Pi Debian geladen und sofort der Media Player gestartet wird. Sie können OSMC auf der Selben microSD-Karte installieren, wie Sie für Raspbian verwendet haben oder eine neue microSD-Karte verwenden.
fortzufahren: 1. In der Liste mit Betriebssystemen, klicken Sie auf das Kästchen neben OSMC_Pi2. 2. Klicken Sie auf Install. 3. Klicken Sie auf Yes. 4. Bestätigen mit OK. 5. Im Willkommensbildschirm mit den Pfeiltasten Oben und Unten die Sprache auswählen und bestätigen mit Enter.
Seite 51
1. Pfeiltesten auf Fernbedienung drücken, Menüitem hervorheben oder gewünschte Taste drücken. 2. Auf der Fernbedienung Select oder Enter drücken. In dieser Anleitung gehen wir davon aus, dass Sie Ihr Medienzentrum mittels Maus steuern wollen, also sollten Sie das Kodi Skin „Confluence“ verwenden. So geht’s: 1.
Seite 52
• Menüeintrag (oder Option) zum Öffnen anklicken. Die meisten Menüelemente öffnen einen anderen Bildschirm, wenn sie angeklickt werden. • Linke Maustaste aktiviert Menüeinträge und Buttons. • Rechtsklick auf einen Bereich ohne Menü oder Button, bringt Sie zum vorherigen Bildschirm. • Rechtsklick auf Mediendatei oder Ordner aktiviert Kontextmenü, durch welches zusätzliche Optionen aktiviert werden können, die sich auf die Auswahl auswirken können.
34. Mediendateien und die Library Mit OSMC können Sie Dateien von USB-Geräten (wie z.B. Speicherkarten oder Festplatten) über die OSMC Library oder das lokale Netzwerk betrachten. Um durch Ihre Dateien zu stöbern, bevor sie diese abspielen, können Geräte und Netzwerkordner der OSMC-Library hinzugefügt werden.
Seite 54
und diesen mit einem bestimmten Inhaltstyp (z.B. Film) verbindet. Wenn OSMC Ihre Library aktualisiert, wird jeder Quellordner geöffnet und alle kompatiblem Mediendateien in die Liste aufgenommen. Während diesem Vorgang führt OSMC spezielle Programme, sog. „Scraper“ aus. Diese Add-Ons finden Informationen über die Dateien in Ihrer Library und damit alles funktioniert, müssen die Dateinamen Ihrer Filme und TV-Serien einem bestimmten Format folgen.
Seite 55
10. Werden Sie gefragt, ob Sie Informationen für alle Elemente aktualisieren möchten, drücken Sie Yes. Um eine TV-Serie in die Library aufzunehmen, empfiehlt es sich, auf dem USB-Gerät eine Verzeichnisstruktur innerhalb des Ordners TV Show anzulegen. Legen Sie für jede TV-Sendung einen Ordner an. Beispielsweise einen Ordner namens The Addams Family.
Seite 56
USB-Geräte entfernen Vergewissern Sie sich, die USB-Geräte ordentlich aus dem System auszuwerfen. Dadurch beendet OSMC das Lesen und Schreiben auf diese Geräte und stellt sicher, dass alle Änderungen am Dateisystem sachgemäß durchgeführt wurden. Um ein USB-Gerät sicher zu entfernen: 1. Im OSMC Home Bildschirm auf Videos und auf Files klicken.
1. Auf den OSMC Home Bildschirm und auf TV Shows klicken. 2. Namen einer Serie anklicken. 3. Episode anklicken, die Sie abspielen wollen. Im Confluence Haut rechten Maustaste auf eine TV-Serie , und klicken Sie dann auf TV -Show Information , um die Details dieser Serie zu sehen.
Seite 58
Sie können die OSMC-Einstellungen verwenden, um OSMC mitzuteilen, mit welchem Netzwerk Sie sich verbinden wollen. Für diese Option: Auf den OSMC Home Bildschirm und auf Programs • klicken und dann auf OSMC Settings.1 Um die WLAN-Verbindung herzustellen: 1. Klick auf Network. 2.
Seite 59
1. Windows-Taste + R. Geben Sie explorer ein und drücken Enter. 2. Zu einem Pfad auf Ihrem PC navigieren, zu dem entweder alle Benutzer Zugriff haben (z.B. seperate Partition auf einer Festplatte) oder dem aktuell eingeloggten Benutzer gehört. 3. Rechtsklick auf rechte Leiste und dort auf New und dann auf Folder.
Seite 60
6. Im Menü File klicken Sie New Folder. Name eingeben (z.B. TV Shows) und danach Enter. 7. Kopieren oder verschieben Sie Filmdateien in den Ordner Movies und TV-Serien in den Ordner TV shows. 8. Im Menü Apple klicken Sie System Preferences. 9.
Seite 61
8. Im Feld Password geben Sie das Passwort für den Benutzer ein. 9. Drücken Sie OK. 10. Auf den Netzwerkort klicken. Dies ist smb://, gefolgt von Name des PC oder Mac. 11. Zum Ordner mit den Filmen navigieren und anklicken. 12.
Seite 62
Mit UPnP Geräten verbinden Universal Plug and Play (UpnP) ist eine Sammlung von Netzwerkprotokollen, die es Geräten im lokalen Netzwerk ermöglichen, sich gegenseitig und angebotene Dienste und Dateien zu finden und untereinander zu teilen. Sie können Ihren PC oder Mac so einstellen, dass OSMC auf dem Raspberry Pi Mediendateien davon abspielen kann.
Seite 63
7. Klicken Sie Next. 8. Drücken Sie Windowstaste + R. Geben Sie services.msc ein und dann Enter. 9. Doppelklick auf SSDP Discovery Service. 10. Im Reiter General, in der Liste Startup type auf Automatic klicken. 11. Bestätigen mit OK. 12. PC neu starten UPnP-Geräte und deren Ordner sollten als Quellen zu OSMC hinzugefügt werden.
Seite 64
Erscheint Ihr UPnP-Gerät in der Liste, Sie jedoch den Inhalt nicht sehen oder das Gerät öffnen können, überprüfen Sie folgendes: • Betreiben Sie auf Ihrem Windows PC eine Firewall mit aktiviertem UPnP, müssen Sie eventuell eine Regel für Windows Media Player Network Sharing oder UPnP Framework erstellen.
Protocol: SCP Port number: 22 IP-Adresse des Pi ermitteln: 1. Im OSMC Home Bildschirm klicken Sie auf System und dann auf Settings. 2. Klicken Sie auf System info. 3. Klicken Sie auf Network. Mittels SCP können Sie Dateien überall in einem Debian- System hoch und herunterladen.
Seite 66
Add-ons für Filminformationen installieren Add-Ons für Filminformationen sind eine Erweiterungsart, durch welche Sie Ihren Videodateien in der Library Informationen hinzufügen können. Standardmäßig verwendet der Scraper für Filminformationen die Webseite The Movie Database. Um einen anderen Scraper als Quelle für Videoinformationen einzustellen: 1.
Seite 67
1. Im OSMC Home Bildschirm auf System und dann auf Settings. 2. Klicken Sie auf Add-ons. 3. Klicken Sie auf Get Add-ons und dann auf Kodi Add-on repository. 4. Klicken Sie auf Program Add-ons. Video Add-ons installieren Mit Video Add-Ons können Videos über das Internet abgespielt werden.
Abbildung 5. Die Liste der Video Add-Ons im Confluence Skin 3.7 Fernbedienungen Es gibt verschiedene Möglichkeiten, wie Sie OSMC mittels Fernbedienung, statt Maus oder Tastatur, bedienen können. OSMC über HTTP bedienen OSMC verfügt über einen eingebauten Webserver, mit dem OSMC über das Hypertext Transfer (HTTP) bedient werden kann.
Seite 69
HDMI Consumer Electronics Control (CEC) ist ein Feature von HDMI mit der Ihr TV-Gerät Befehle an Blu-ray™ und DVD- Player senden kann. Hersteller verwenden für HDMI CEC unterschiedliche Namen. Samsung nennt es beispielsweise „Anynet+“, während Sony sich für "BRAVIA Link" oder "BRAVIA Sync"...
4 – Programming with Scratch Scratch is a visual programming language that helps teach the concepts of programming to people who have never worked with traditional programming languages. It is aimed primarily at people who want to learn to build small games. However, the combination of its simple interface and rich feature set also make it useful for presentations, simulations, and prototypes of software that will be implemented in other languages.
Seite 71
Cursor Tools. Mit diesen Buttons können Sie die Sprites in der Stage Duplizieren, Löschen, Vergrößern und Verkleinern. Klicken Sie auf ein Cursor Tool und dann auf einen Sprite, um die Funktion zu aktivieren. Menü. Blocks Palette. Scripts Bereich. Hier können Blocks miteinander kombinieren, um den in der Sprites-Liste gewählten Sprite zu...
Seite 72
Wenn Sie bereits ein Projekt gespeichert haben, welches nun erneut gespeichert werden soll: 1. In der Menüleiste auf Save this project klicken (sieht wie eine Diskette aus); oder 2. In der Menüleiste auf File, dann auf Save klicken. Um das aktuelle Projekt zu schließen und ein anderes Projekt zu öffnen: 1.
Seite 73
Der Paint Editor auf Seite 91 behandelt) oder Sie können auch Grafikdateien importieren. Importierte Grafiken sollten 480 Pixel breit und 360 Pixel hoch sein oder die Position in Scratch wird automatisch in der Mitte der Stage ausgerichtet und ein Rahmen in der aktuellen Hintergrundfarbe gemalt.
Seite 74
7. Im Block change brightness effect by 25 klicken Sie auf das Kästchen mit dem Wert 25. Ändern Sie den Wert auf -25. 8. In der Blocks Palette auf Control klicken. 9. Den Block wait 1 s in die Script Area ziehen und unter den Block change brightness effect by -25 ziehen.
Seite 75
geklickt wird. Wenn Sie jetzt auf die grüne Taste klicken, sollten Sie sehen, dass der Hintergrund seine Farbe kurz ändern. Ziel So geht's Ein Skript ausführen In der Scripts Area ein Doppelklick auf einen (zum Testen) Block innerhalb des Skripts. Einen Block über...
Seite 76
Abbildung 3: Sie können folgende Blöcke nur unterhalb diesem Block anbringen, nicht darüber. Eine Einkerbung an der Oberseite eines Blocks deutet an, dass oben ein weiterer Block angebracht werden kann. Ein Block der an der Unterseite leicht nach außen steht bedeutet, dass man andere Blöcke daran anbringen kann.
4.2 Sprites In Scratch werden Sie die meiste Zeit damit beschäftigt sein, Sprites als Antwort auf gedrückte Tasten zu bewegen und zu ändern. Einen Sprite hinzufügen oder entfernen Um einen Sprite zum aktuellen Projekt hinzuzufügen und ihn auf der Stage erscheinen zu lassen: 1.
Seite 78
Button Paint new sprite. Dies ist der erste Button in Bereich. Wenn Sie eine Grafikdatei importieren möchten, klicken Sie im Paint Editor auf Import. Der Editor wird in Abschnitt 4.9 Der Paint Editor auf Seite 91 beschrieben. Importieren und Exportieren Ihrer Sprites Sie können Ihre Sprites in eine einzelne Datei (inklusive aller Kostüme und Sound) exportieren.
Seite 79
„laufen“ soll. Es können aber auch farblich unterschiedlich gestaltete Sprites sein oder vielleicht sollen sie verschiedene Waffen in den Händen halten. In Scratch nennt man Varianten eines Sprite ein Kostüm (Costume). Wenn Sie einen neuen Sprite erstellen, wird nur ein Kostüm erstellt. Um dem gewählten Sprite ein weiteres Kostüm zu verpassen: 1.
Seite 80
Durch Motion Blocks können die Bewegungen der Sprites erstellt werden. Auf der Stage können Sie Sprites anklicken und dort hinziehen, wo sie benötigt werden, doch möchte man seine Sprites aus einem Script heraus bewegen (z.B. um auf einen Tastendruck zu reagieren), müssen die Motion Blocks eingesetzt werden.
Seite 81
Jeder Sprite hat zudem drei Variablen, die durch Motion Blocks verändert werden. Diese können bei Entscheidungen oder in arithmetischen Blocks eingesetzt werden. Variable Beschreibung x position Die horizontale Position des Sprite auf der Stage. y position Die vertikale Position des Sprite auf der Stage. Variable Beschreibung direction...
Seite 82
Block Beschreibung switch to costume ? Das angezeigte Kostüm des Sprites setzen. next costume Wechselt zum nächsten Kostüm. Wenn das aktuelle Kostüm das Letzte ist, wird stattdessen das erste Kostüm verwendet. say ? for ? secs Zeigt eine Sprechblase neben dem Sprite say ? Zeigt eine Sprechblase neben dem Sprite an.
Seite 83
Es gibt sieben verschiedene Effekte, die Sie Ihren Sprites hinzufügen können: Effekt Beschreibung color Ändert die Farbe eines Sprite. fisheye Verzerrt den Sprite. whirl Verzerrt den Sprite um seine Mitte zu einem Wirbelsturm. pixelate Der Sprite wird aus lauter großen Pixeln gezeichnet. mosaic Der Sprite erscheint aus lauter kleinen Klonen von sich selbst.
Alle Sprites haben zwei Variablen, die sich auf ihre Erscheinung beziehen: Variable Beschreibung costume # Die Nummer des Kostüms, welches der Sprite gerade trägt. size Die Größe eines Sprite auf der Stage. Dies ist eine Prozentangabe der verwendeten Grafik und kann auch über 100% betragen.
Seite 85
Block Beschreibung Pick random ? Wählt eine zufällige Zahl, die zwischen der ersten To ? und zweiten Zahl liegt. ? mod ? Modulare Arithmetik – es wird der Restwert einer Division ermittelt. Round ? Rundet die Zahl zur nächsten Ganzzahl (Integer). ? of ? Aus einer Vielzahl zusätzlicher mathematischer Funktionen wählen.
Seite 86
den Kreis neben For all Sprites klicken. 5. Wenn nur dieser Sprite auf diese Variable zugreifen dürfen soll, auf den Kreis neben For this sprite only klicken. 6. Auf OK klicken. Wenn Sie eine Variable erstellen, fügt Scratch dafür einen Block in die Sektion Variables Blocks...
4.4 Entscheidungen Es gibt sechs Blöcke mit denen sich Zahlen vergleichen lassen und darauf basierend Entscheidungen gefällt werden können. Das Ergebnis eines solchen Blocks ist ein „Boolean“-Wert – entweder wahr oder falsch (true oder false)... Block Beschreibung ? < ? Ergibt true wenn die erste Zahl kleiner als die zweite Zahl ist, andernfalls false.
Blöcken einfügen, wie Sie wollen. Sie können auch weitere if Blöcke hinzufügen, um sehr komplexe Entscheidungen fällen zu können. Ihre Skripte mit Tastatur und Maus kontrollieren Anwender spielen Scratch Spiele und interagieren mit Hilfe von Maus und Tastatur mit den Projekten. Block Beschreibung When ? key pressed...
Block Beschreibung mouse down ? Ein boolescher Wert der auf true gesetzt wird, wenn der Anwender die linke Maustaste drückt. Ein boolescher Wert der auf true gesetzt wird, pressed ? wenn der Anwender eine bestimmte Taste auf der Tastatur drückt. Diese können in Verbindung mit den Kontrollblöcken verwendet werden.
Seite 90
touching Block kann keine Kollisionen erkennen, wenn Sprites mit dem hide Block versteckt wurden. Es können aber Kollisionen entdeckt ghost werden, wenn die Sprites mit dem Effekt unsichtbar gemacht wurden. 4.5 Schleifen Schleifen haben ein leeres Feld in der Mitte, um andere Blöcke verbinden zu können und sie können verwendet werden, um Skripte sich mehrmals wiederholen zu lassen.
as ? and wait Sensing Zeigt einen spezifischen String und ein Texteingabefeld an. Wenn der Anwender Enter drückt oder auf einen Button klickt, wird deren Antwort Variable answer gespeichert. In der Sektion Operators in der Blocks Palette gibt es drei Operatorblöcke, die nur mit Strings verwendet werden können: Block Beschreibung...
Block Sektio Beschreibung set ? to ? Variab Setzt den Wert der angegebenen Variable auf einen String. say ? for ? Looks Zeigt neben dem Sprite eine Sprechblase secs an, die für die angegebene Sekundenzahl sichtbar bleibt. say ? Looks Zeigt neben dem Sprite eine Sprechblase think ? Looks...
Seite 93
Block Beschreibung broadcast ? Schickt die festgelegte Nachricht an alle Sprites in Ihrem Projekt. broadcast ? and wait Schickt die festgelegte Nachricht an alle Sprites in Ihrem Projekt und wartet. Wenn alle Sprites die auf diese Nachricht hören ihre Arbeit erledigt haben, startet Scratch die Blöcke, welche unterhalb des Blockes broadcast and wait angehängt wurden.
4.8 Sound und Musik Sie können auf zwei verschiedene Arten Soundeffekte und Musik in Ihre Projekte einfügen: .wav und MP3-Dateien in Scratch importieren oder selbst Musik komponieren, indem Sie Noten spielen. Sounddateien werden individuellen Sprites hinzugefügt und diese Dateien können auch nur von diesem Sprite abgespielt werden. Um eine Sounddatei zu importieren: •...
4.9 Der Paint Editor Auch wenn er mit den zahlreichen Features von Software-Paketen wie Adobe Photoshop nicht mithalten kann, verfügt der Paint Editor in Scratch über alle Werkzeuge, die Sie benötigen, um sich innerhalb von Scratch Ihre eigenen Sprites zu zeichnen. Abbildung 8.
Seite 96
Ziel So geht’s Bild größer machen Im Bereich Tools auf den Button Grow klicken. Bild kleiner machen Im Bereich Tools auf den Button Shrink klicken. Bild gegen den Uhrzeigersinn Im Bereich Tools auf den Button drehen Rotate counter-clock-wise klicken. Bild im Uhrzeigersinn drehen Im Bereich Tools auf den Button Rotate clock-wise klicken.
Seite 97
Tool Beschreibung Paintbrush Freihand-Zeichnungen im Zeichenbereich. Eraser Linke Maustaste klicken und im Zeichenbereich halten, um die Teile des Bildes zu löschen, die unter dem Mauszeiger liegen. Fill Füllt einen Bereich mit Farbe oder Farbverlauf. Tool Beschreibung Rectangle Durch klicken und ziehen des Mauszeigers im Zeichenbereich können Rechtecke und Quadrate gezeichnet werden.
Ihre Grafiken importieren Wenn Sie eine Grafikdatei haben, die Sie als Sprite, Kostüm oder Hintergrund verwenden möchten, dann können Sie es einfach mit dem Paint Editor importieren. Um eine .jpg oder .png Datei zu importieren: 1. Im Paint Editor auf Import klicken. 2.
Seite 99
Jetzt können Sie mit dem Tool raspi-config die Bootsequenz ändern: 1. Auf dem Desktop auf LXTerminal klicken. Folgenden Befehl eingeben und mit Enter bestätigen: sudo raspi-config 3. Taste Pfeil-Unten verwenden um den Eintrag Enable Boot to Desktop/Scratch zu wählen und mit Enter bestätigen. 4.
drücken 14. Strg + X eingeben Folgenden Befehl und mit Enter bestätigen. sudo shutdown -r now 4.11 Teilen abgeschlossener Projekte Wenn Sie ein Scratch Projekt abgeschlossen haben, können Sie es mit der ganzen Welt teilen. Die von Scratch erstellten .sb Dateien können allerdings nur innerhalb von Scratch geöffnet werden.
Seite 101
8. Unter Project notes können Sie eine Beschreibung für Ihr Projekt eingeben (beispielsweise, eine kleine Bedienungsanleitung). 9. Unter Tags klicken Sie auf die Box neben den Schlüsselwörtern, die Ihr Projekt am besten beschreiben. 10. Auf OK klicken. Ihre Scratch Projektdateien zu ausführbaren Dateien konvertieren Neben der Webseite bieten die Entwickler von Scratch leider keine andere Möglichkeit, Scratch Projekte auf Computern auszuführen, auf der keine Scratch Umgebung installiert wurde.
5. Ein Arcade-Spiel in Scratch In diesem Tutorial erfahren Sie, wie man eine einfache Version des Arcade-Klassikers Double Dragon® programmiert. Double Dragon® ist ein Side-Scrolling-Actionspiel, in welchem der Spieler einen Charakter steuert und sich in den einzelnen Levels von links nach rechts bewegen muss.
Seite 103
Die Hintergrundfarbe der Stage sollte zu der Hintergrundfarbe der Logos und Grafiken passen, die Sie verwenden wollen. Um den Hintergrund zu ändern: 1. In der Sprite List auf Stage klicken. 2. In der Scripts Area auf Backgrounds klicken und dann neben background1 auf den Button Edit drücken.
Seite 104
Um den beiden Sprites im Titel-Bildschirm anzuweisen zu erscheinen, sobald das Scratch Project beginnt, würden Sie normalerweise den when <green flag> clicked Block verwenden. Der Titel-Bildschirm muss allerdings wieder beim Ende des Spiels erscheinen und dann wird die grüne Fahne nicht geklickt. Um einen neuen Startpunkt für den Titel-Bildschirm zu erstellen, können Sie der Stage einen Broadcast Block zufügen: 1.
Seite 105
1. In der Sprite List auf PressSpace klicken. 2. In der Blocks Palette auf Control klicken und einen wait until Block in die Scripts Area in die Position unter dem repeat block ziehen. 3. In der Blocks Palette auf Sensing klicken und einen key space pressed Block in die Scripts Area ziehen und an einem sechsseitigen Slot auf dem wait until Block anbringen.
1. In der Sprite List auf TitleLogo klicken. 2. Aus der Blocks Palette einen when I receive Block in die Scripts Area ziehen. Die Taste Pfeil-Unten drücken und auf Level1 klicken. 3. In der Blocks Palette auf Looks klicken und einen hide Block zur Scripts Area ziehen und unterhalb des vorherigen Blocks anbringen.
Seite 107
Schritte. Die Sprites für den Hintergrund vorbereiten Auf der Webseite The Spriters Ressource (http://www.spriters- resource.com) können Sie ein Bild der NES Version von Double Dragon® finden. Um dieses Bild zu verwenden, müssen Sie es doppelt so groß machen – 2030 Pixel breit und 384 Pixel hoch. Danach müssen Sie 24 Pixel von der Oberseite entfernen.
Seite 108
Hintergrundgrafiken importieren Um jeden Sprite für den Hintergrund zu importieren: 1. In der Sprite List auf Paint new sprite und dann auf Import klicken. 2. Zur Hintergrundgrafik navigieren, anklicken und auf OK klicken. 3. Auf OK klicken. 4. In der Sprite List auf den neu erstellten Sprite klicken und dann in der Scripts Area den Sprite umbenennen.
Seite 109
Script hinzu: Jetzt können Sie folgendes Script in die vier anderen Hintergrund- Sprites kopieren: 1. Rechtsklick auf den Block when I receive StartGame und dann auf duplicate klicken. 2. Den Mauszeiger zur Sprite List bewegen und auf L1M2 klicken. Diesen Vorgang für alle restlichen Hintergrund-Sprites wiederholen. Den Hintergrund scrollen Das Scrollen funktimniert in diesem Projekt folgendermaßen: 1.
Seite 110
nach links. 5. Sprites mit einer x Position über 462 bleiben im Bereich auf der rechten Seite der Stage. 6. Sprites mit einer Position unter -462 befinden sich alle im nicht verwendbaren Bereich links von der Stage. Fügen Sie Ihrem Projekt die Variable scrollX hinzu: 1.
Seite 111
Kopieren Sie dieses Script zu L1M2. Da L1M1 bei den Koordinaten 0,0 beginnt und 480 Schritte breit ist, beginnt L1M2 bei 480,0. Also müssen set x Sie den Wert im Block auf den Wert 480 – scrollX ändern. Kopieren Sie dieses Script nun zu L1M3. Da L1M2 bei 380,0 beginnt set x und 480 Schritte breit ist, beginnt L1M3 bei 960,0.
Seite 112
Bevor wir fortfahren, ist es wichtig, dass diese beiden Variablen auf ihre Standard-Werte gestellt werden, sobald das Spiel beginnt: 1. In der Sprites List auf Stage klicken. 2. In der Blocks Palette auf Variables klicken. 3. Einen set ? to 0 Block in die Scripts Area ziehen und über dem broadcast StartGame Block anbringen.
Seite 113
Die Hintergrund-Musik hinzufügen Arcade-Spiele aus der Zeit, als Double Dragon® veröffentlicht wurde, haben in der Regel einen Hintergrundmusik, die in einer Schleife abgespielt wird. Sie können dazu alle . und . Dateien verwenden. Um eine Datei zu importieren, die in Scratch als Hintergrundmusik verwendet werden soll: 1.
Unten und dann auf den Namen der Hintergrundmusik. 5.3 Der Spieler Sprite Für unseren „Haupt“-Sprite benötigen wir 10 Costumes: • Vier „gehende Sprites“ • Ein Costume dafür, wenn der Charakter schlägt. • Zwei Costumes dafür, wenn der Charakter mit dem Fuß tritt. •...
Seite 115
Erstellen Sie in Scratch einen neuen Sprite, indem das erste Costume importiert wird. Nennen Sie den Sprite Billy und importieren Sie danach die anderen Costumes. In diesem Tutorial benennen wir die Sprites mit Billy-1, Billy-2, Billy-3 usw. Sie müssen das erste Costume eventuell umbenennen.
Seite 116
Der if Blokcck und die Änderungen der vier Costumes sorgen dafür, dass der Charakter auf dem Der Bildschirm gehen kann. FakeWalk Geister-Sprite verschickt zwei Nachrichten: MoveToGBilly . Diese verwenden wir späten, also fügen wir jetzt diese beiden Scripts unserem Billy-Sprite hinzu. Ghost-Sprite erstellen erst...
Seite 117
Wenn der Spieler die Z-Taste zum Schlagen oder die Y-Taste zum Treten drückt, wird das Costume des Billy-Sprite geändert. Nun wird gewartet um den Angriff zu sehen und zu überprüfen, ob ein Gegner getroffen wurde, bevor das Costume wieder geändert wird. Beachten Sie, dass bei Tritten ein zusätzliches Costume verwendet wird (eine zusätzliche Animation).
2. In der Blocks Palette auf Variables klicken und dann einen hide variable Block in die Scripts Area ziehen und unter dem Block stop all sounds anbringen. 3. Im Block hide variable die Taste Pfeil-Unten drücken und auf Lives klicken. 4.
Seite 119
Scratchers als „Wall-Sensing Sprite“ bezeichnen. Der Geister-Sprite ist unsichtbar und bewegt sich vor dem Spieler- Sprite. Wenn der Spieler eine Pfeil-Taste auf der Tastatur drückt, bewegt sich der Geister-Sprite. Wenn dieser mit einer Mauer oder einem Bereich kollidiert, den der Spieler nicht betreten darf, bewegt er sich zurück zur vorherigen Position.
Seite 120
Wiederholen Sie diesen Vorgang auch für die anderen Hintergrund- Sprites – für die zweite Maske, kopieren Sie einfach den zweiten Hintergrund; für die dritte Maske kopieren Sie den dritten Hintergrund usw. Benennen Sie die Masken mit ML1M2, ML1M3, ML1M4, ML1M5. Stellen Sie sicher, dass alle Bereiche in Ihrer Maske miteinander verbunden sind.
Seite 121
unseres Haupt-Sprite ziehen. 8. Die Eraser und Selection Tools verwenden, um den Rest des Sprites zu löschen. 9. Auf OK klicken. 10. In der Sprites List auf den neuen Sprite klicken. GBilly 11. In der Scripts Area den Sprite umbenennen. 12.
Seite 122
Die Spieler sollten nicht in der Lage sein, sich während einem Angriff oder wenn sie gerade getroffen werden zu bewegen. 1. Einen if Block in die Scripts Area ziehen und im forever Block anbringen. 2. In der Blocks Palette auf Operators klicken. 3.
Seite 123
Wenn die Taste Pfeil-Rechts gedrückt wird, überprüft das Script, ob sich der Gbilly Sprite ganz rechts in der Stage befindet. Sollte dies der Fall sein und Scrolling aktiviert sein,dann gibt es einen Block scrollX (welcher wiederum dafür sorgt, dass Hintergrund-Sprites nach links bewegt werden).
Seite 124
if key right arrow pressed ? unter den gesamten Block. Duplizieren Sie den langen Operator Block und alle berührenden Blöcke und fügen Sie sie dort ein, wo in der Abbildung der Text „See Above“ zu sehen ist. Wenn sich der Spielen nach oben bewegen möchte, verlässt sich das Script auf die Hintergrund-Masken, welche den Spieler stoppen.
Wenn Sie den Billy-Sprite bewegen, befinden sich die gehenden Sprites nicht Gbilly einer Reihe. Um dies zu ändern, bearbeiten Sie die Costumes Hilfe Paint Editors „schubsen“ Sie die Costumes nach links oder rechts. 5.5 Gegner Wenn der Spieler bestimmte Checkpunkte erreicht, wird das Scrollen gestoppt und neue Gegner „erscheinen“, die der Spieler besiegen muss.
Seite 127
3. Ein einfarbiges Rechteck zeichnen und OK klicken. 4. Der Sprite muss groß genug sein, um den Weg des Spielers zu blockieren. Bringen Sie den Sprite in der Stage in Position und bearbeiten Sie das Costume, wenn es noch nicht groß genug ist.
Seite 128
Spawn1 3. Wird die Nachricht „ “ verschickt. 4. Wird der Erscheinungspunkt versteckt, so dass keine weiteren Billy Kollisionen mit erkannt werden. Jetzt müssen Sie dafür sorgen, dass Williams1 auf diese Nachricht reagiert. Fügen Sie diese beiden Scripts hinzu: Um einen neuen Erscheinungspunkt für den zweiten Bildschirm zu erstellen, berechnen Sie die Position des neues Sprite, wenn der zweite Hintergrund-Sprite vollständig sichtbar ist.
Seite 129
Schließlich befinden sich zwei Kopien des Sprites gleichzeitig auf dem Bildschirm. Um zu vermeiden, dass diese sich identisch bewegen, beachten Sie, wie das Script seine Richtung wählt, indem Sie auf Billy achten und ändern Sie diese Zahl dann durch eine zufällige Gradzahl. Der Sprite bewegt sich absichtlich langsamer als der Charakter unseres Spielers –...
Seite 130
ändern können. Eine Möglichkeit besteht darin, eine „Liste“ der sich auf dem Bildschirm befindenden Sprites zu erstellen. Listen können Strings und Zahlen speichern und jedem Item auf dem Bildschirm eine Nummer zuweisen. Das erste Item ist die Nummer eins. Das Zweite erhält die Nummer zwei usw.
Seite 131
4. Auf dem insert ? at ? of ? Block auf das erste Kästchen klicken Williams1 eingeben. 5. Auf das zweite Kästchen klicken und 1 eingeben. 6. Auf das dritte Kästchen klicken und Mobs anklicken. Das Script, welches unsere Mobs Liste überprüft und die Reihenfolge bestimmt, in welcher die Sprites auf den Schichten positioniert werden, befindet sich auf der Stage.
Seite 132
vorherigen Block anbringen. 4. Folgende Blöcke in der Mitte des forever Blocks anbringen: Zsprites wird verwendet, um die Namen der Sprites in der Reihenfolge zu speichern, wie sie auf der Stage erscheinen sollen. Der if Block überprüft, ob der zweite Sprite aus der Mobs Liste eine y- Position aufweist, die kleiner ist als das Item an Position 1 in der Zsprites Liste.¹...
Seite 133
Die nächste Hälfte des Scripts wird in einen forever Block gegeben, der sich unter den vorherigen Blöcken befindet. Wo in der Abbildung „See Above“ steht, erstellen einen Operator Block, sich not (item[1] of ZSprites = item[1] of OZSprites folgendermaßen liest: and item[2] of Zsprites = item[2] of OZSprites and item[3] of ZSprites = item[3] of OZSprites)
Seite 134
Kopieren Sie diese auch zu Williams1 und ändern Sie dann die when I receive Blöcke zu „GFWilliams1“, „GL2Williams1“ und „GL3Williams1“. Die Neuanordnung der Schichten geschieht nicht sofort, da der Raspberry Pi nicht leistungsstark genug is. Diese Vorgehensweise kann in anderen Projekten sehr schnell funktionieren, wenn jedoch das Spiel zu sehr gebremst wird, entfernen Sie diesen Vorgang.
Danach duplizieren. 2. Einen der beiden if Blöcke direkt unter dem repeat until Defeated = 1 Block anbringen, so dass dieser sich in einer Schleife befindet und die anderen Blöcke in der Schleife umgibt. 3. Den anderen if Block direkt unter den repeat 4 Block anbringen, so dass dieser sich innerhalb der Schleife befindet und alle anderen Blöcke in der Schleife umgibt.
Seite 136
Schichten neu anordnen, unsere „toten“ Sprites aus der Mobs Liste zu entfernen. Damit auch alles wie gewünscht funktioniert, müssen wir ein paar Blöcke hinzufügen. Wählen Sie die Stage in der Sprite List und forever fügen Sie folgende Blöcke als erste Blöcke in die Schleife: Um das Script für den Williams1 Sprite abzuschließen, klicken Sie auf die Stage.
Seite 137
Dafür benötigen wir zwei neue Variablen: RespawnX und RespawnY. Erstellen Sie diese Variablen in der Stage, so dass alle Sprites deren Werte sehen können. Der Erscheinungspunkt muss diese Variablen setzen: 1. In der Sprites List auf Spawn1 klicken. 2. Unter dem Broadcast Spawn1 Block erstellen Sie einen set RespawnX to Block und geben die x-Position ein, bei welcher der Sprite wieder erscheinen soll.
Und dieses Script zum GBilly-Sprite: 5.6 Noch mehr Gegner Indem Erscheinungspunkt und Williams1 Sprites dupliziert werden, können Sie den Rest des Levels mit Gegnern befüllen: 1. In Spawn1 ändern Sie set EnemiesRemaining to 1 auf set EnemiesRemaining to 2...
Seite 139
2. In der Sprite List einen Rechtsklick auf Williams1 und dann auf duplizieren klicken. Williams2 3. Auf den neuen Sprite klicken und ihn in umbenennen. 4. Im when I receive Spawn1 Script ändern Sie instert Williams1 insert Williams1 at last of Mobs at last of Mobs zu 5.
5. Ändern Sie den broadcast Block, so dass dieser die Nachricht SpawnE verschickt. Wie in den vorherigen Anweisungen, erstellen Sie eine weitere Kopie von Williams1. Nennen Sie den neu erstellten Sprite Williams3 und ändern Sie den when I receive Spawn 1 Block zu when I receive SpawnE.
6. Programmieren in Python Python ist eine weit verbreitete Programmiersprache, die auf den meisten modernen Betriebssystemen und Computern zur Verfügung steht. Auf dem Pi bietet sich Python ideal an, um Software und Spiele zu entwickeln und die GPIO-Pins zu kontrollieren. Im Gegensatz zu Programmiersprachen wie C++ oder Objective-C, handelt es sich bei Python um eine interpretierte Sprache.
Beachten Sie, dass das geöffnete IDLE3 Fenster den Titel „Python Shell“ trägt. Die Python Shell funktioniert wie das Linux Terminal – eingegebene Befehle werden ausgeführt, sobald Sie die Enter Taste drücken. Python Programme (oder auch „Scripts“) sind Textdateien, die alle Befehle beinhalten, die Sie ausführen möchten.
2. Folgenden Text in das Dokument einfügen. Ersetzen Sie My Test Script mit dem Namen, den Ihr neues Icon bekommen soll und ersetzen Sie den Dateinamen nach dem python3 durch den Ort, an dem sich Ihr .py Programm befindet. [Desktop Entry] Type=Application Name=My Test Script Exec=lxterminal --command "python3 /home/pi/...
Seite 144
Kommentare in Python Programmen verfassen Sobald Ihre Python-Skripte etwas komplizierter werden, können Sie Erklärungen verfassen, was welche Codestücke genau machen. Dies ist vor allem dann nützlich, wenn Sie ein Programm ändern müssen, welches Sie vor langer Zeit geschrieben haben. Um in einer .py Daten einen Kommentar einzufügen: •...
Seite 145
Erste Zahl durch zweite Zahl Zahl gefolgt von // und dann die dividieren Ganzzahl zweite Zahl eingeben. zurückgeben Variablen verwenden In der Programmierung beschreibt der Fachbegriff Variable einen Speicherbereich des Computers, dem Sie einen Namen geben. In diesen Variablen können Informationen gespeichert werden, auf die später zugegriffen werden kann.
Seite 146
Python ist eine „schwach getippte“ Sprache. Dies bedeutet, dass Sie nicht angeben müssen, welche Art von Daten diese Variable beinhalten soll. Wenn die Variable result beispielsweise „Hallo“ beinhaltet, dann wird der Ausdruck result+5 zu „Hallo5“. Allerdings verursacht ein Ausdruck wie 5+result einen Fehler beim Ausführen des Programms, denn Python versucht result als Zahl zu interpretieren.
Seite 147
darüber im Abschnitt 6.6 Klassen und Objekte auf Seite 144. Listen und Dictionaries verwenden Listen speichern mehrere Items in eine einzige Variable. Sie sind geordnet – jeder Slot der Liste erhält eine Zahl, die mit Null beginnt. Um eine Liste zu erstellen, verwenden Sie eckige Klammern. Auf jedes Element der Liste kann nun mit den eckigen Klammern und der Zahl des Elementes zugegriffen werden: Beatles = [„John“, „Paul“, „Pete“, „George“]...
Methode Beschreibung append(obj) Hängt ein bestimmtes Element am Ende der Liste count(obj) Zählt, wie häufig ein Element in der Liste enthalten ist. index(obj) Durchsucht die Liste nach einem bestimmten Element und gibt seine Position in der Liste zurück. insert(position, obj) Fügt ein Element an einer bestimmten Position in der Liste ein.
Methode Beschreibung clear() Entfernt alle Elemente aus dem Dictionary. copy() Liefert eine Kopie des Dictionary. has_key(key) Liefert True, wenn der spezifische Schlüssel sich Dictionary befindet, andernfalls False. Methode Beschreibung keys() Liefert eine Liste der im Dictionary enthaltenen Schlüssel. update(dic) Fügt ein Element aus einem spezifischem Dictionary in das aktuelle Dictionary ein.
Seite 150
Anweisung aus. Es ist sehr wichtig, dass Sie auf die Leerzeichen achten, mit denen die Befehle unter einer If-Anweisung angegeben werden. Verwenden Sie die Tab-Taste um Zeilen einzurücken, die ausgeführt werden sollen, wenn das Ergebnis des Vergleichs True ergibt. Sie können die If-Anweisung auch mit anderen Codeblöcken erweitern, die ausgeführt werden sollen, wenn die beiden Werte nicht dieselben sind: if variable == value:...
Seite 151
verwenden: if (variable1 == value) or (variable2 == value): doThis() Operator Beschreibung Liefert True wenn beide Ausdrücke True ergeben, andernfalls wird False zurückgegeben. Liefert True wenn einer der beiden Ausdrücke (oder beide) True ergeben, wenn beide Ausdrücke False ergeben, wird False zurückgegeben. Sie können not() verwenden, um das Ergebnis eines Ausdruckes zu invertieren, wodurch True zu False wird und False zu True.
elif variable == 2: doThis2() elif variable == 3: doThis3() else: doThisInAllOtherCases() 6.4 Schleifen Schleifen sind Codeblöcke, die eine Reihe von Python Anweisungen entweder mehrmals ausführen lassen oder so lange ausführen, bis eine bestimmte Bedingung erreicht wurde. In Python gibt es zwei Arten von Schleifen: Schleife Beschreibung while...
Seite 153
while (count < 5): print("Hello") count = count + 1 Es wird im Terminal die Nachricht „Hello“ angezeigt, während die Variable count bei jedem Durchlauf einen Wert unter 5 erhält. Somit wird die Nachricht „Hello“ 5x ausgegeben. Sie können eine while-Schleife verwenden um Code so lange zu wiederholen, bis etwas bestimmtes passiert.
Es ist einfach eine Schleife zu erstellen, die nie beendet wird. Um ein Programm in der Python-Shell oder dem Linux-Terminal zu unterbrechen, drücken Sie einfach Strg + C. Es gibt zwei Python-Befehle, die Sie innerhalb von while-Schleifen und for-Schleifen verwenden können. Befehl Beschreibung break...
Seite 155
4. Die Zeile mit einem Doppelpunkt beenden. 5. (Optional) Einen String in die nächste Zeile eingeben, der die Funktion beschreibt. 6. Codestücke für die Funktion mit Hilfe der Tab-Taste in die Funktion einfügen. 7. Wenn die Funktion einen Wert zurückgeben soll, verwenden Sie return Befehl.
Seite 156
Keyword Argumente übergeben werden. Wie Sie im unteren Beispiel erkennen können, legen Keyword Argumente den Parametername vor dem jeweiligen Argument fest. myFunction(val2=y, val1=x) Argument eine Variable oder wein Wert, welcher einer Funktion übergeben wird. Im obigen Beispiel, sind x und y Argumente. Parameter sind Teil Funktionsdefinition und beziehen sich auf...
def PrintAndMultiply(val1, val2 = 1): print(val1 * val2) Sie können diese Funktion mit dem Aufruf PrintAndMultiply(5,2) aufrufen, Wert erhalten oder einfach PrintAndMultiply(5). Wenn Sie das zweite Argument nicht angeben, weist Python der Variablen val2 den Wert 1 zu, denn dieser Wert wurde in der Funktionsdefinition als Standardwert definiert.
Seite 158
Einführung in Klassen In Python stellt eine Klasse eine Art Bauplan oder einen Entwurf dar. Er beschreibt die Struktur eines Objektes und definiert seine Methoden. Um ein Objekt zu verwenden, muss eine Instanz einer Klasse erstellt werden, die dieses Objekt beschreibt. In Python können Sie mit Hilfe des Schlüsselwortes class Ihre eigenen Klassen definieren.
Seite 159
telephone = "" def printName(self): print(self.firstname + " " + self.lastname) Um die Methode printName() aus anderen Codestücken aufzurufen, legen Sie einen Variablennamen fest und rufen den Methodennamen mit einem Punkt auf. Beispiel: Alice.printName() __init__ ist eine spezielle Methode die Python automatisch aufruft, sobald eine Instanz einer Klasse erzeugt wird.
Seite 160
könnten beispielsweise separates Objekt für Ihre Geschäftskontakte erstellen. Da dieses Objekt aber die gleichen Grundinformationen (Name, Telefonnummer usw.) verwendet, können diese Felder von einem Standard-Objekt geerbt werden. Zusätzlich können Sie noch weitere Felder definieren, die Sie speziell für Ihre Geschäftskontakte benötigen (z.B. Firmenname und Webseite). class AddressBookEntry: firstname = ""...
Seite 161
Bob.firstname = "Bob" Bob.company = "Bob’s Widgets, Inc." Bob.printName() Diese Beziehung funktioniert allerdings nicht umgekehrt. AddressBookEntry nicht von Businessclass erbt, können Sie nicht auf das Feld company zugreifen, wenn Sie eine Instanz der Klasse AddressBookEntry erstellen. Vererbte Methoden überschreiben Im oben gezeigten Beispiel erbt die Klasse Businessclass die printName() Methode von AddressBookEntry.
entry.printName() Diese Funktion akzeptiert beide Objekte und kennt den Unterschied nicht. Es wird einfach die Methode printName() aufgerufen und die beiden verschiedenen Typen Objektes antworten leicht unterschiedlich. Felder und Methoden verstecken In Python können Sie dafür sorgen, dass andere Codeteile nicht auf die Felder und Methoden Ihrer Objekte zugreifen können, indem zwei Unterstriche vor die Definitionen gesetzt werden.
Seite 163
bestätigen: help(„modules“) Einige der nützlichsten Module, insbesondere für Pi Besitzer, sind: Modul Beschreibung base64 Funktionen für die Kodierung und Decodierung in den Formaten Base16, Base32 und Base64. curses Funktionen für die Erstellung textbasierter Terminal- Fenster mit erweiterten Features. http Module zum Versenden und Empfangen von Anfragen per Hypertext Transfer Protocol (HTTP) über das Internet.
Seite 164
Folgenden Befehl eingeben und mit Enter bestätigen: python3 setup.py install Ein Modul verwenden Bevor Sie eine Klasse oder eine Funktion von einem Modul verwenden können, müssen Sie dieses erst in Ihr Projekt importieren. Um das gesamte Modul zu importieren, verwenden Sie in Ihrem .py Script ein einfaches import Statement.
verwendet werden. Sie verwenden bereits Paketnamen, wenn Sie Module importieren und deren Dokumentation lesen. Auf diese Weise werden Sie mit dem Konzept vertraut, ohne große Mühen auf sich nehmen zu müssen. 6.8 Datei I/O Auf dem Raspbian ist es sehr wichtig, mittels Python auch mit Dateien und Ordnern arbeiten zu können, denn viele der Systemprozesse und Geräte sind auf das Dateisystem abgebildet.
Seite 166
Datei im Binärformat im Nur-Schreiben-Modus öffnen. Datei zum „anhängen“ öffnen. Alles was Sie in die Datei schreiben, wird am Ende der Datei hinzugefügt. Die bestehende Datei wird überschrieben oder angelegt, falls sie noch nicht existiert. Datei im Binärformat zum „anhängen“ öffnen. Python unterscheidet zwischen dem Arbeiten mit Textdateien und dem Arbeiten mit Binärdateien.
Seite 167
print(message) motd.close() Wenn Sie nicht festlegen, wie viele Zeichen gelesen werden sollen, gibt die read() Funktion den vollständigen Inhalt der jeweiligen Datei aus. Um lediglich zehn Zeichen zu lesen: motd.read(10) Wenn Sie mehr Zeichen angeben, als es in der Datei gibt, liest Python so viele Zeichen wie es geht.
Seite 168
Wenn Sie die Datei Test.txt jetzt öffnen, können Sie sehen, dass der String am Ende der Datei hinzugefügt wurde. Dateien umbenennen und löschen Wenn Sie eine Datei umbenennen wollen, importieren Sie das os Modul und verwenden die rename() Funktion: import os os.rename("/home/pi/Desktop/Test.txt", "/home/pi/Desktop/ Test2.txt") Um eine Datei zu löschen, verwenden Sie einfach die remove()
6.9 Grafische Benutzeroberflächen (GUIs) Auch wenn alle bisher gezeigten Beispiele davon ausgehen, dass Sie von der Python-Shell oder einem Linux-Terminal aus arbeiten, können mit Python auch vollständige GUIs erstellt werden. Dafür benötigen Sie lediglich ein GUI-Toolkit (oder „Framework“) welches all die zahlreichen Kontrolltypen unterstützt, die Sie benötigen –...
7. Eingangs- und Ausgangs-Pins kontrollieren Ein Unterschied zwischen dem Raspberry Pi und anderen Desktop- Computern, Smartphones und Tablets die Sie vielleicht schon verwendet haben ist, dass der Pi mit einem 40-Pin Anschluss entwickelt wurde, der mit eigener Software kontrolliert werden kann. Somit hat der Pi eine gewisse Ähnlichkeit zu Entwicklungsboards wie dem Arduino, jedoch weist der Pi die Leistung und Geschwindigkeit eines gewöhnlichen Computers auf.
Seite 171
beginnt und durch den Schaltkreis wandert, bis er am anderen Anschluss ankommt. Auf seinem Weg liefert der Strom den Komponenten Energie, die sich auf dem Schaltkreis befinden. Wenn der Schaltkreis an irgendeiner Stelle kaputt ist, kann keine Elektrizität fließen und keine Komponente kann betrieben werden. Ein Schaltbild ist eine Zeichnung die zeigt, wie die einzelnen Komponenten miteinander verbunden werden können.
der Stromquelle. Wenn sich keine Geräte dazwischen befinden, gibt es keinen Grund, die Menge der fließenden Elektrizität zu begrenzen. Spannung wird definiert als die Kraft, die Elektrizität durch einen Schaltkreis treibt und wird in Volt (V) gemessen. Beispiele sind 5V und 9V.
Seite 173
Abbildung 2: Layout einer typischen Lochrasterplatte A15-E15 werden verbunden und F15-J15 werden ebenfalls miteinander verbunden. Die beiden Gruppen sind aber weder untereinander, noch mit anderen Spalten verbunden. Den Raspberry Pi mit einer Lochrasterplatte verbinden In der Elektronik ist ein Stecker (male connector) ein Pin, Stecker oder ein Kabel, der in einer Buchse (female connector) angeschlossen wird.
7.3 Der GPIO-Header Der 40-Pin GPIO-Header befindet sich auf dem Pi oben links. Die einzelnen Pins sind von links nach rechts nummeriert, wobei die Pins mit ungeraden Zahlen sich in der unter Reihe befinden und die Pins mit geraden Zahlen in der oberen Reihe. Abbildung 3.
Seite 175
GPIO10 Input/Output. Oder SPI Masterkabel Eingang (SPI_MOSI). GPIO09 Input/Output. Oder SPI Masterkabel Ausgang (SPI_MISO). GPIO25 Input/Output. GPIO11 Input/Output. Oder SPI Clock Kabel (SPI_SCLK). GPIO8 Input/Output. Oder SPI Device Select 0 (SPI_CE0). GPIO7 Input/Output. Oder SPI Device Select 1 (SPI_CE0). ID_SC Reserviert.
Seite 176
Widerstand erstellen. 2. Lernen wie ein GPIO-Pin als Ausgang verwendet wird. 3. Die LED von einem Terminal-Fenster und einem Python-Skript aus an und ausschalten. LEDs müssen in der korrekten Richtung in einem Schaltkreis angebracht werden, da Strom nur in eine Richtung fließt. Ein Bein der LED ist größer als das andere –...
Seite 177
Abbildung 5. Eine LED zum Leuchten bringen Kontrollieren Sie: 1. Dass sich das + Bein in der gleichen Reihe wie das 3.3 V Kabel befindet und das – Bein der LED sich nicht in der gleichen Reihe befindet. 2. Das obere Kabel wird an PIN 1 angeschlossen (3.3 V). 3.
Seite 178
Widerstand zu groß gewählt wurde, können Sie nicht erkennen, ob die LED an ist. Bislang haben Sie den Pi als Batterie verwendet. Nun, da Sie aber wissen, dass Ihr Schaltkreis funktioniert, können Sie die LED vom Pi kontrollieren lassen: 1. Schalten Sie den Pi aus und trennen ihn vom Stromnetz. 2.
Seite 179
ls /sys/class/gpio/gpio2 Die Dateien, die Sie im gpio2 Verzeichnis sehen können, kontrollieren den Status zum GPIO2. Wenn GPIO-Pins exportiert werden, verwenden Sie die GPIO-Nummern und nicht die Pin-Nummern. Um GPIO2 als Ausgang festzulegen und anzuschalten: 1. Im Root Terminal folgenden Befehl eingeben und mit Enter bestätigen: echo out >...
Seite 180
kontrollieren. Dieses Beispiel setzt GPIO2 als Ausgang und lässt die LED blinken. Um dies zu bewerkstelligen, müssen Sie noch das time Modul importieren, welches eine Funktion enthält, um eine Verzögerung einzubauen. 1. Auf dem Desktop auf IDLE3 klicken. 2. In der Python-Shell auf Menu, dann Datei und auf New Window klicken.
Seite 181
RPi.GPIO.setup(2, Rpi.GPIO.OUT) Die Funktion setup() akzeptiert zwei Parameter: Der erste ist die Pin oder GPIO-Nummer (je nachdem ob BOARD oder BCM im Funktionsaufruf von setMode() eingestellt wurde) und das zweite Argument ist entweder RPi.GPIO.IN oder Rpi.GPIO.OUT. Um einen Pin als Ausgang festzulegen, verwenden Sie Rpi.GPIO.OUT. Fügen Sie Ihrem Skript noch folgenden Code hinzu uns speichern Sie die Datei: while True:...
Seite 182
Um ihr Skript auszuführen: 1. Auf dem Desktop einen Doppelklick auf LXTerminal. 2. Zu Ihrem Script navigieren. Wenn Sie die Datei auf dem Desktop gespeichert haben: cd Desktop 3. Folgenden Befehl eingeben und mit Enter bestätigen: Test.py mit dem Namen Ihres Skriptes austauschen. sudo python3 test.py Die LED blinkt nun.
Seite 183
können: Wenn der Schalter nicht gedrückt wird, kann der Eingangs-Pin „schwimmen“. Wenn ein Pin schwimmt, ist er weder auf High, noch auf Low gesetzt und kann zufällig zwischen beiden Pegeln wechseln. Wenn der Schalter gedrückt wird, gibt es im Schaltkreis nur sehr wenig Widerstand, was den Pi beschädigen kann.
Seite 184
GPIO-Pin und wird auf High gesetzt. Im Raspberry Pi sind sowohl Pullup-Widerstände, als auch Pulldown- Widerstände in die GPIO-Pins eingebaut. Sie können in Ihren Software- Programmen auch wählen, welche dieser Widerstände verwendet werden sollen. Den Schaltkreis erstellen Auf dem Pi stellt der oben gezeigte Schaltkreis ein Problem dar. Wenn der GPIO-Pin (die Linie in der Mitte des Diagramms) versehentlich auf einen High-Ausgang (entweder durch den Anwender selbst oder durch das Starten des Pi) gesetzt wird, wird durch Drücken des Schalters ein...
Abbildung 7. Basic Input – schematisch (links) und Lochrasterplatte (rechts) Wenn der GPIO-Pin als Eingang konfiguriert wurde und der interne Pullup-Widerstand des Pi aktiviert ist, bringt der Pullup-Widerstand den GPIO-Pin auf ein High-Signal, wenn der Schalter offen ist. Sobald der Schalter gedrückt wird, sorgt die Verbindung mit Masse dafür, dass kein Strom mehr fließt und der GPIO-Pin somit ein Low-Signal erhält.
Seite 186
echo 0 > /sys/class/gpio/gpio2/active_low Um vom Pin zu lesen, können Sie den cat Befehl verwenden, mit welchem Dateien gelesen und auf dem Terminal ausgegeben werden: Im Root Terminal folgenden Befehl eingeben und mit Enter bestätigen: cat /sys/class/gpio/gpio2/value Folgenden Befehl eingeben, aber NICHT die Enter-Taste drücken.
Seite 187
RPi.GPIO.setmode(RPi.GPIO.BCM) Jetzt muss GPIO2 als Eingang eingestellt und die internen Pullup- Widerstände aktiviert werden: • Fügen Sie folgendes Statement in eine einzelne Zeile hinzu: RPi.GPIO.setup(2, RPi.GPIO.IN, pull_up_down=RPi.GPIO.PUD_UP) Der Parameter pull_up_down kann einen der folgenden drei Werte annehmen: Wert Beschreibung RPi.GPIO.PUD_UP Aktiviert den internen Pullup-Widerstand.
7.6 Kommunikation zwischen 3.3 V und 5 V Geräten Obwohl der Pi eine 5 V Stromversorgung aufweist, handelt es sich um ein 3.3 V Gerät, was bedeutet, dass 3.3 V der maximalen Spannung entsprechen, mit welcher sicher auf die Eingangs-Pins zugegriffen werden kann.
Abbildung 8. Mit Widerständen 5 V auf 3.3 V reduzieren. 2. Eine Diode und einen Pullup-Widerstand verwenden Bei Dioden handelt es sich um passive Geräte, die Strom nur in eine Richtung fließen lassen. Auf Schaltbildern werden sie mit einem Pfeil eingezeichnet, welcher die Stromrichtung angibt.
Seite 190
Geräten zum Einsatz kommt, um Informationen auszutauschen. Der Begriff „serial“ bzw. „seriell“ bedeutet, dass jedes Bit einer Binärzahl (beispielsweise besteht die Zahl 255 aus acht binären Bits – 11111111) nacheinander über das gleiche Kabel geschickt werden. SPI untergliedert Geräte in zwei Kategorien: Masters und Slaves. Der Master stellt dabei das Gerät dar, welches die Kommunikation beginnt.
Seite 191
2. Die MOSI Verbindung wird auf High gesetzt, wenn das gesendete Bit 1 ist. Wenn das gesendete Bit 0 beträgt wird MOSI auf Low-Signal gesetzt. 3. SCK Verbindung wird pulsiert. Wenn beispielsweise die Clock auf Low steht, wenn SPI nicht verwendet wird, dann wird durch das Pulsieren erreicht, dass die Clock abwechselnd auf High und Low gebracht wird.
Seite 192
SPI auf dem Raspberry Pi aktivieren Sie können alle GPIO Eingänge und Ausgänge für SPI verwenden, da diese nur auf High oder Low gesetzt werden müssen und Eingaben genau gleich gelesen werden, wie in diesem Kapitel bereits besprochen wurde. Diesen Vorgang nennt man häufig auch „Bit Banging“. Fünf der Raspberry GPIO-Pins haben...
Seite 193
Folgenden Befehl eingeben und mit Enter bestätigen: sudo nano /etc/modules In der nächsten Zeile am Ende der Datei folgenden Text einfügen: spi-dev 10. Strg + O und danach Enter drücken. 11. Strg + X drücken. Folgenden Befehl eingeben und mit Enter bestätigen: sudo shutdown -r now Wenn der Pi neu gestartet wurde, werden die SPI Module automatisch geladen.
Seite 194
Folgenden Befehl eingeben und mit Enter bestätigen: sudo python3 setup.py install Wenn der Pi mit SPI-Geräten verbunden wird, verbindet sich der GPIO- Pin MOSI (master output, slave input) mit dem SI (slave input) Pin des externen Gerätes. Ebenso wird der GPIO-Pin MISO (master input, slave output) Pin mit dem SO (slave output) Pin verbunden.
Seite 195
1. Auf dem Desktop einen Doppelklick auf IDLE3. 2. In der Python Shell auf Menu, dann File und auf klicken. Folgende Zeilen an den Beginn des Skriptes setzen: import spidev import time Um eine Instanz der Klasse SpiDev zu erstellen und eine Verbindung zu öffnen, folgende Statements hinzufügen: spi = spidev.SpiDev() spi.open(0, 0)
Seite 196
lesen. Der Slave erwartet, dass der Master ein Clock-Signal generiert, welches für die Datenübertragung benötigt wird. Daher kann es sein, dass Sie beim Aufruf der xfer() Methode noch weitere Bytes verwenden müssen. Wenn beispielsweise ein SPI-Gerät erwartet, dass der Master die Sequenz 3,0,0 sendet, bevor ein Byte zurückgeschickt wird, dann muss eine zusätzliche 0 bei xfer() verwendet werden.
um zu ändern, wie die SPI-Methoden arbeiten. Dies ist insbesondere dann nützlich, wenn Sie SPI-Geräte verwenden, die nicht nach dem üblichen Prozess ablaufen. Eigenschaft Beschreibung cshigh Wenn True, wird ein High-Signal verwendet um dem Slave-Gerät mitzuteilen, dass er lauschen und antworten soll. Wenn False, wird ein Low- Signal verwendet.
Seite 198
komplizierter, um es von Null an zu implementieren. Um vorgefertigte I2C Libraries und Module zu verwenden, verwenden Sie am GPIO- Header Pin 3 und Pin 5. Abbildung 11. I2C-Kommunikation zwischen Pi und mehreren Geräten I2C Geräte aktivieren Unter Raspbian ist I2C deaktiviert. Um es zu aktivieren, müssen Sie I2C erst aus dem Modul „Blacklist“...
Seite 199
5. Strg + X drücken. Um das Modul i2c-dev zur Liste der Module hinzuzufügen, die Raspbian beim Booten automatisch laden soll: Im LXTerminal folgenden Befehl eingeben und Enter drücken. sudo nano /etc/modules 2. In einer neuen Zeile folgendes eingeben: i2c-dev 3.
Seite 200
Folgende Befehle eingeben: tar xf i2c-tools_3.1.0.orig.tar.bz2 cd i2c-tools-3.1.0/py-smbus Folgenden Befehl in eine Zeile tippen und Enter drücken: wget http://www.vilros.com/vfiles/ smbusmodule.c Folgende beiden Befehle ausführen: python3 setup.py build sudo python3 setup.py install I2C mit Python3 verwenden Ganz oben in unserem Python-Skript müssen wir das smbus Modul importieren und eine Instanz der Klasse SMBus erstellen.
Seite 201
7.9 Serielle UARTs Ein sog. Universal Asynchronous Receiver/Transmitter (UART) ist ein Chip, der die von einem Mikroprozessor oder Mikrocontroller verwendeten parallelen Daten in serielle Daten umwandet, um mit den Kommunikationsanschlüssen verwendet zu werden. Serielle Ports sind asynchron, was bedeutet, dass Sie gleichzeitig Daten senden und empfangen können und beide Geräte Verbindungen aufbauen können, wann immer sie wollen.
Seite 202
Zeile zu einem Kommentar und Raspbian ignoriert sie einfach. 4. Strg + O und dann Enter drücken. 5. Strg + X eingeben. Folgenden Befehl eingeben und Enter drücken: sudo nano /boot/cmdline.txt Alle Referenzen zu /dev/ttyAMA0 entfernen, so dass die Zeil folgendermaßen aussieht: dwc_otg.lpm_enable=0 console=tty1 root=/dev/ mmcblk0p2 rootfstype=ext4 elevator=deadline...
Seite 203
timeout=0) 3. Die Methode write() zum Senden der Daten verwenden. Beispiel: ser.write(„Hello“) Der erste Parameter beim Aufruf von Serial() ist der Name des Gerätes /dev/tty/AMA0 an der seriellen Schnittstelle. In den GPIO-Headern ist der auf dem Pi verfügbare serielle Anschluss. Der zweite Parameter ist die Verbindungsgeschwindigkeit (auch als „Baudrate“...
Seite 204
inWaiting() verwendet werden. Diese liefert die Anzahl der Bytes zurück, die Ihr Skript noch nicht gelesen hat. Wenn Sie mit der seriellen Verbindung fertig sind, sollten Sie den seriellen Anschluss immer mit einem Aufruf der Methode close() der Klasse Serial schließen.
8. eine IP Kamera bauen IP Kameras sind besondere Arten von Kameras, die nicht mit einem Computer verbunden werden müssen, um die aufgezeichneten Videos und Bilder anzuzeigen. Stattdessen verbinden sie sich direkt mit dem Router des lokalen Netzwerks und stellen die Ausgabe über das Internet Protocol (IP) zur Verfügung.
Seite 206
insbesondere dann nützlich ist, wenn der Pi zusammen mit der Kamera in ein Gehäuse passen sollen. Allerdings kann dieses Kabel auch schnell kaputt gehen. Bitte ziehen oder drehen Sie das Kabel nicht und setzen Sie es keiner Gewichtslast aus. Um das Kamera-Modul mit dem Pi zu verbinden: 1.
Seite 207
Folgenden Befehl eingeben und mit Enter bestätigen: sudo raspi-config 3. Vier Mal die Taste Pfeil-Unten drücken und den Eintrag Enable Camera wählen. Mit Enter bestätigen. 4. Die Taste Pfeil-Rechts drücken und <Enable> wählen. Mit Enter bestätigen. 5. Zwei Mal die Taste Pfeil-Rechts drücken und <Finish> wählen. Mit Enter bestätigen.
8.2 Motion Bei Motion handelt es sich um ein kleines Kommandozeilen-Tool, welches für das Arbeiten mit Kameras unter Linux entwickelt wurde. Es kann Standbilder erstellen, Videos aufzeichnen, Bewegungen erkennen und Live-Streams über das Internet senden. Motion-mmal ist eine Version von Motion, die speziell für das Pi Kamera-Modul entwickelt wurde.
Seite 209
sudo mv motion /usr/bin/motion 7. Folgenden Befehl eingeben und mit Enter bestätigen: sudo mv motion-mmalcam.conf /etc/motion.conf Folgenden Befehl eingeben und mit Enter bestätigen: sudo chown root:root /usr/bin/motion Die Schritte 6-8 verschieben Motion in einen Systemordner und ändern den Besitzer. Die Software konfigurieren Bevor wir Motion starten, sollten Sie die Konfigurationseinstellungen kontrollieren.
Seite 210
target_dir Der Ordner, in welchen Motion Bilder und Videos speichert. stream_port Die Portnummer für den Zugang auf den Live- Stream von anderen Geräten. stream_maxrate Die maximale Anzahl an gesendeten Frames Sekunde, Live-Stream empfangen. output_pictures Diese Option auf off setzen, wenn Sie keine Bilder aufzeichnen möchten, sobald Motion Bewegungen erkennt.
Seite 211
sich, die Optionen ffmpeg_output_movies und output_pictures auf off zu stellen. Andernfalls kann der Speicherplatz Ihrer SD-Karte schnell zu Neige gehen. Um die Konfiguration für Motion zu ändern: 1. Auf dem Raspbian-Desktop einen Doppelklick auf LXTerminal. Folgenden Befehl eingeben und mit Enter bestätigen: nano /etc/motion.conf 3.
Seite 212
Strg + X drücken. Motion starten Mit den Standard-Einstellungen wird Motion über die Kommandozeile gestartet. Sobald die Software so konfiguriert ist, wie Sie es wollen und alles getestet wurde, können Sie Motion so einstellen, dass es automatisch gestartet wird, wenn der Pi gebootet hat und Raspbian gestartet wurde.
Seite 213
motion 8. Strg + O und danach Enter drücken. 9. Strg + X drücken. 10. Um den Pi neu zu starten, geben Sie folgenden Befehl ein und bestätigen mit Enter: sudo shutdown -r now Den Live-Stream von Geräten im Netzwerk betrachten Um den Live-Stream von einem Gerät Ihres lokalen Netzwerks zu betrachten, stellen Sie zunächst sicher, dass Motion läuft und öffnen Sie einen Webbrowser.
Seite 214
Sie müssen eine Regel erstellen, welche eingehenden Traffic auf einem TCP-Port Ihrer Wahl (z.B. 8081) annimmt und diesen dann an Port 8081 auf den Pi weiterleitet (oder den Port, den Sie unter stream_port in der motion.conf eingestellt haben). Um über das Internet auf den Stream zuzugreifen, müssen Sie die extreme IP-Adresse Ihres Routers kennen.
9. Eine intelligentere Klingel errichten Eine Türklingel ist ein Druckknopfschalter, der einen kleinen elektrischen Schaltkreis schließt, sobald ein Besucher die Klingel betätigt. Sobald der Schaltkreis geschlossen ist, fließt Strom zu den Komponenten, die für das Klingelgeräusch sorgen. Mit einem Raspberry Pi können Sie eine viel intelligentere Klingel errichten –...
Die Türklingel an Ihrem Haus ist in der Regel an „Haupt“-Stromversorgung angeschlossen Verbinden Sie die Pi-Türklingel bitte nicht mit der „Haupt“-Stromversorgung suchen einen qualifizierten Elektriker auf, bevor Ihre aktuelle Türklingel entfernen. 9.1 Der Schaltkreis des Schaltknopfes Der Druckknopfschalter den wir in diesem Projekt verwenden, ist der Gleiche wie der in Sektion 7.5 Standardeingabe auf Seite 164 beschrieben.
drehen. Wiederholen Sie den Vorgang auch für die andere Schraubklemme. Es spielt keine Rolle, in welcher Richtung die Kabel angeschlossen werden. 1. Verbinden Sie ein Kabel der Türklingel mit GPIO2 (Pin 3). 2. Verbinden Sie das andere Kabel der Türklingel mit einem Bein des 330 Ω...
Folgenden Befehl eingeben und mit Enter bestätigen: sudo amixer cset numid=3 1 9.3 Eine einfache Türklingel Um eine Türklingen zu bauen, können Sie ein Python-Skript verwenden, welches erkennt, wann die Klingel gedrückt wird und dann einen Sound abspielen. Um zu beginnen: 1.
Seite 219
def Ring(): pass while True: if RPi.GPIO.input(2) == RPi.GPIO.LOW: Ring() Dieser Code erkennt eine gedrückte Türklingel auf die selbe Art und Weise, wie in Kapitel 7 – Eingangs- und Ausgangspins kontrollieren beschrieben wurde. Dann wird die Funktion Ring() aufgerufen, die bislang noch nichts macht.
Seite 220
direkt aus Python-Skripten starten. Um dieses Skript auszuführen: • Im LXTerminal folgenden Befehl eingeben und mit Enter bestätigen: sudo python3 doorbell/doorbell.py Wenn Sie den Schalter drücken, wird die Audiodatei abgespielt. Wenn Sie den Schalter gedrückt halten, wiederholt das Skript die Audiosignal kontinuierlich.
Folgenden Text in die Datei einfügen: #!/bin/sh cd /home/pi/Doorbell sudo amixer cset numid=3 1 sudo python3 doorbell.py 3. Strg + O und danach Enter drücken. 4. Strg + X drücken. Folgenden Befehl eingeben und mit Enter bestätigen: sudo crontab -e Am Ende der Datei folgenden Text in einer neuen Zeile eingeben: @reboot sh /home/pi/Doorbell/doorbell.sh...
Seite 222
von Python jedes Mal ein Bild aufzeichnet, sobald ein Besucher auf die Türklingel drückt. Das Python-Modul picamera beinhaltet die Funktionen, um auf die Kamera zuzugreifen. Time beinhaltet Funktionen, um mit Datum und Zeit zu arbeiten. Fügen Sie Ihrem doorbell.py Skript oben folgende Zeilen hinzu: import picamera import time...
Seite 223
import RPi.GPIO import os import picamera import time RPi.GPIO.setmode(RPi.GPIO.BCM) RPi.GPIO.setup(2, RPi.GPIO.IN, pull_up_down=RPi.GPIO.PUD_UP) camera = picamera.PiCamera() def Ring(): camera.capture("Ring %s.jpg" % time.strftime("%Y%m%d- %H%M%S")) os.system("mpg321 ring.mp3") while RPi.GPIO.input(2) == RPi.GPIO.LOW: pass while True: if RPi.GPIO.input(2) == RPi.GPIO.LOW: Ring()
10. Kostenlose Telefonate mit Google Voice Google Voice ist eine Form von Voice over Internet Protocol (VoIP), die jetzt auch über Google Hangouts zur Verfügung steht. Sie können es verwenden, um kostenlos auf Nummern in den USA und Kanada anzurufen. und Sie erhalten zudem einen Festnetzanschluss, über den andere Sie erreichen können –...
Seite 225
Telefon imitiert) mit dem Server konfigurieren, der die Telefonate über das Internet leitet. Im Gegensatz zu regulären Telefonen, verbinden sich SIP-Telefone über Ethernet einem LAN, statt über Telefonleitung. Ein PBX-Server ist häufig mit einer Telefonleitung und den Computer-Netzwerken verbunden und leitet die Festnetzgespräche an die SIP-Geräte weiter.
Seite 226
4. Überprüfen Ihre Emails bestätigen Registrierung. 5. In Ihrem Webbrowser zur Webseite http://www.ipkall.com navigieren. 6. Auf *Sign-Up* klicken. 7. Im Feld SIP URI username geben Sie Ihren Benutzernamen von sip.pregi.net ein. 8. Im Feld SIP URI@hostname geben Sie sip.pregi.net ein. 9.
Wenn Ihr SIP-Telefon nicht klingelt, überprüfen Sie nochmal alle Einstellungen und versuchen es erneut. 10.2 Google Voice Um sich bei Google Voice zu registrieren müssen Sie: sich in den USA oder Kanada befinden. ; eine Telefonnummer haben (nur für den Registrierungsprozess) und ein Google-Konto besitzen.
7. Schließen Sie den Choose your number Vorgang ab. Wenn Sie die Google Voice Registrierung abgeschlossen haben und Ihre neue Telefonnummer haben: 1. Auf der Google Voice Webseite auf den Button Settings klicken. 2. Im Reiter Phone unter Forward calls to das Kästchen neben Ihrer Telefonnummer entfernen.
Seite 229
5. Die microSD-Karte sicher aus dem PC auswerfen. 6. Den Pi vom Stromnetz trennen und die microSD-Karte einschieben. 7. Den Pi wieder ans Stromnetz anschließen. Wenn Sie ein Ethernet-Kabel verwenden, um den Pi an Ihr Netzwerk anzuschließen und Sie über keine Anzeige verfügen, können Sie auch eine SSH-Verbindung erstellen.
Seite 230
allow-hotplug wlan0 iface wlan0 inet static wpa-ssid <YOUR NETWORK SSID> wpa-psk "<YOUR NETWORK PASSWORD>" address <AN IP ADDRESS TO USE> netmask <YOUR NETWORK NETMASK> gateway <YOUR NETWORK GATEWAY> 4. Strg + O und danach Enter drücken. 5. Strg + X drücken. 6.
Seite 231
Adresse Ihres Pi zugreifen. 3. Auf FreePBX Administration klicken. admin 4. Im ersten Feld eingeben. admin 5. Im zweiten Feld eingeben. 6. Auf Continue klicken. Die SIP-Erweiterungen erstellen Bevor Sie Telefonate weiterleiten können, müssen Sie Erweiterungen (das PBX Äquivalent zu Benutzerkonten) für jedes SIP-Gerät erstellen, das Sie verwenden wollen.
Seite 232
neues Konto erstellen. 2 Im Feld username die Nummer der Erweiterung (z.B. 2001) eingeben. 3 Im Feld password das geheime Passwort eingeben, welches Sie in der FreePBX-Einstellung angegeben haben. 4 Im Feld domain die IP-Adresse Ihres Pi eingeben. 5 Kontrollieren Sie, dass das Telefon sich über USD Port 5060 mit dem Server verbindet.
Seite 233
exit Google Voice und ausgehende Anrufe konfigurieren RasPBX beinhaltet das FreePBX Plugin, um mit Google Voice zu kommunizieren. Dieses Plugin nennt sich „Motif“ und arbeitet über das Extensible Message and Presence Protocol (XMPP). Um dem System ein Google Voice Konto hinzuzufügen: 1 Im FreePBX Administration...
Seite 234
Erweiterungen können diese verwenden, um Telefonate zu führen.Die Standardeinstellungen ermöglichen es, Festnetznummern in den USA und Kanada mittels der 10-Ziffern-Nummer anzurufen oder indem Sie eine 1 gefolgt von der 10-Ziffern-Nummer eingeben. FreePBX verwendet Wählmuster um festzulegen, wie die verschiedenen Telefonnummern gehandhabt werden. Um diese zu überprüfen oder zu ändern: 1 Im FreePBX...
verbinden wollen. 5. Auf Submit klicken. 6. Oben auf der Seite auf Apply Config klicken. Wenn Sie mehrere Google Voice Konten in Ihrem System einstellen und diese zu verschiedenen Erweiterungen weiterleiten möchten, erstellen Sie für jedes Google Voice Konto eigene Regeln und geben Sie im Feld DID Number für jede Regel eine Telefonnummer.
Seite 236
Dieses nützliche kleine Kabel kann einen PC per USB-Anschluss verbinden und mittels Buchse am Pi direkt in den GPIO-Header angeschlossen werden. Der eingebaute Stromkreis kümmert sich um die Konvertierung von Spannungslevels. http://www.vilros.com/usb-to-ttl-cable.html 40-Pin GPIO Flachbandkabel Buchse-zu-Stecker Kabel, externe Schaltkreise an den Raspberry Pi anzuschließen. Es...
Seite 237
Widerstand enthalten. Im Gegensatz zu anderen Komponenten, die Sie sich eventuell speziell für bestimmte Projekte zulegen werden, bietet sich Widerständen an, gleich eine ganze Ladung auf Vorrat zu haben, denn Widerstände werden häufig benötigt. 10 KΩ: http://www.vilros.com/10k-resistors.html 330 Ω: http://www.vilros.com/330-resistors.html...
Seite 238
Wenn angenehm große Knopf gedrückt und gehalten wird, fließt Elektrizität zwischen zwei Klemmen des Schalters. Genau ein solcher Schalter bietet sich auch für das Projekt in Sektion 7.5 „Standardeingabe“ auf Seite 164 an. http://www.vilros.com/big-12mm-buttons.html 10K Trimmpoti Auch unter Namen „Potentiometer“...