Anwendung des Raspberry Pi in Forschung und Lehre

Größe: px
Ab Seite anzeigen:

Download "Anwendung des Raspberry Pi in Forschung und Lehre"

Transkript

1 Anwendung des Raspberry Pi in Forschung und Lehre Bachelor-Thesis Nico Maas Erstgutachter: Prof. Dr. Helmut G. Folz Einreichung: 30. September 2014

2

3 Selbständigkeitserklärung Ich versichere, dass ich die vorliegende Arbeit (bei einer Gruppenarbeit: den entsprechend gekennzeichneten Anteil der Arbeit) selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe. Ich erkläre hiermit weiterhin, dass die vorgelegte Arbeit zuvor weder von mir, noch von einer anderen Person an dieser oder einer anderen Hochschule eingereicht wurde. Darüber hinaus ist mir bekannt, dass die Unrichtigkeit dieser Erklärung eine Benotung der Arbeit mit der Note nicht ausreichend zur Folge hat und einen Ausschluss von der Erbringung weiterer Prüfungsleistungen zur Folge haben kann. Saarbrücken, 30. September 2014 Nico Maas iii

4

5 Zusammenfassung Linux Einplatinen Computer sind seit dem Erscheinen des Raspberry Pi in 2012 immer präsenter in der IT und ermöglichen die schnelle und unkomplizierte Verbindung und Steuerung realer Hardware mittels modernen Hochsprachen wie C, Python oder Java. Die nachfolgende Arbeit soll an konkreten Beispielen versuchen, die Möglichkeiten des damit eröffneten Physical Computing, zur leichteren Darstellung komplexerer Lehrinhalte zu verwenden und damit den Lernerfolg nachhaltig zu steigern. v

6

7 Any sufficiently advanced technology is indistinguishable from magic. Arthur C. Clarke [4] Danksagung Für die geleistete Hilfe möchte ich mich in aller Form bei meinem Betreuer, Prof. Dr. Helmut G. Folz, dem Labor der Elektrotechnik, namentlich Dipl.-Ing. Thomas Bertel, sowie Prof. Dr. Peter Sturm, dem Team der PiAndMore und meiner Familie bedanken. vii

8

9 Inhaltsverzeichnis Inhaltsverzeichnis ix 1 Einleitung 1 2 Plattform Evaluation Raspberry Pi und BeagleBone Black Raspberry Pi Modell B BeagleBone Black Revision C Vergleich Raspberry Pi Modelle Unterschiede Modell A und B Modell B pre Modell A/B Compute Module Modell A+/B Grundlagen und Installation Peripherie SD Karte Netzteil mit Micro USB Anschluss Netzwerkkabel HDMI auf DVI Adapterkabel / Display mit DVI Eingang Weitere Komponenten Anschluss des Raspberry Pi Raspbian Installation mittels Image Image downloaden Formatieren Image kopieren Backup und Wiederherstellung Installation mittels noobs noobs downloaden Formatieren noobs kopieren Raspbian mit noobs installieren Vorteile von noobs ix

10 4 Konfiguration von Raspbian Erster Boot raspi-config WLAN Zugriff / eduroam Updates rpi-update apt-get Einrichtung Hardware Vorbereitung des I²C / SPI Bus Vorbereitung der seriellen Schnittstelle Einrichtung Software Installation von wiringpi Installation von wiringpi2-python Test des SPI Bus (Optional) GPIO Schnittstelle Aufbau Sicherheitshinweise Logik Level Sicherungen Belastbarkeit der Pins / 3,3 Volt Schiene Belastbarkeit der 5 Volt Schiene Zusammenfassung GPIO GPIO PWM I2C I2S SPI Serial Das Erweiterungsboard Design Routing Testprogramm Bash Programmierung Grundlagen Simon Ablaufdiagramm Programmierung Erweiterungsboard und Hilfsfunktionen LED Ausgabe Switch Eingabe Abschluss x

11 7 Python Programmierung Arbeiten auf dem Raspberry Pi Python 2 / Python Programmierung mittels IDLE Programmierung mittels CLI Grundlagen der Python Programmierung Ausführung Variablen Operatoren Vergleiche und Schleifen Funktionen Bibliotheken Verwendung der GPIO mittels Python Digitale Ausgabe: LEDs Übungsaufgabe zur digitalen Ausgabe Digitale Eingabe: Schalter Übungsaufgabe zur digitalen Eingabe Abschlussprojekt GPIO: Binärzähler Verwendung des I2C Bus mittels Python Adressierung Register des Sensors Interpretation des Temperaturwertes Übungsaufgabe zur Verwendung des I2C Bus Verwendung des SPI Bus mittels Python Adressierung Kommunikation Übungsaufgabe zur Verwendung des SPI Bus Mathematica Grundlagen Benutzung Beispiele Free-form input Beispiele Wolfram Alpha query Verwendung mittels Erweiterungsboard Fazit Zusammenfassung Ausblick Literatur 77 Abbildungsverzeichnis 79 Tabellenverzeichnis 80 xi

12 Listings 81 Abkürzungsverzeichnis 82 A Vorgefertigtes Raspbian Image 85 A.1 Übersicht A.2 Zusätzlich installierte Pakete B Raspberry Pi Hardware HTW 87 B.1 Übersicht C Erweiterungsboard 89 D Code Listings 91 D.1 boardtest.c D.2 gpio.sh D.3 demoled.sh D.4 demoswitch.sh D.5 simon.sh D.6 uebungausgabe.py D.7 uebungeingabe.py D.8 binarycounter.py D.9 lm75b.py D.10 uebungi2c.py D.11 mcp3002.py D.12 mcp3002lib.py D.13 uebungspi.py D.14 wpi.c D.15 wpi.tm xii

13 1 Einleitung Mit dem Erscheinen des Raspberry Pi im Februar 2012 war zum ersten Mal ein kleiner, kostengünstiger und dennoch leistungsfähiger Linux Einplatinen Computer verfügbar. Der ursprünglich zur Fortbildung von Kindern, im IT Bereich gedachte Rechner, etablierte sich in kürzester Zeit im Umfeld von Universitäten, Industrie sowie im Hobby und Freizeit Bereich. Andere Firmen entdeckten die potenziellen Möglichkeiten des neuen Absatzmarktes und entwickelten konkurrierende Plattformen mit teils unterschiedlichen Zielsetzungen und Möglichkeiten. Dazu zählen der BeagleBone Black, Intels Galileo, SECO / Aidilabs UDOO, Hardkernels Odroid sowie Adaptevas Parallella - um nur einige wenige zu nennen. All diese Plattformen haben gemeinsam, dass sie dazu genutzt werden können, als Lehrplattform für den Bereich des sogenannten Physical Computing zu dienen. Beim Physical Computing ist die Software in der Lage durch eine spezielle Hardware Schnittstelle (General-purpose input/output (GPIO)) sowohl Eingaben aus der Umwelt zu empfangen, als auch selbst Ausgaben zu erzeugen. Dies könnte z.b. die Verwendung eines Schalters, Ultraschallsensors oder einer Lichtschranke für die Eingabe, und einer LED, einem Display oder eines Motors für die Ausgabe sein. Da durch verschiedene Frameworks und Libraries diese Schnittstellen nicht nur mittels spezieller Kommandos bedient werden können, sondern auch in Standardsprachen wie z.b. Bash, C, Java oder Python verfügbar sind, ergibt sich damit die Möglichkeit einer professionellen Entwicklung und die Integration dieser Einplatinen Computer in ganze Produkte und Automaten. In der nachfolgenden Arbeit soll aufgezeigt werden, wie ein solcher Linux Einplatinen Computer im Bereich der Forschung und Lehre dazu genutzt werden kann, um Studenten konkrete Lerninhalte leichter zu vermitteln. Dies beinhaltet die Evaluation des geeigneten Produktes aus der Vielzahl der konkurrierenden Systeme, die korrekte Installation und Konfiguration sowie die konkrete Nutzung in verschiedenen Projekten mit Verknüpfung zu den Vorlesungen an der HTW Saar. Um diese Umsetzung einfacher zu gestalten, wurden im Rahmen dieser Thesis eine eigene Erweiterungsplatine für den Raspberry Pi entworfen und gefertigt, wodurch auch die Lehre im Bereich Hardware naher Anwendungen, wie z.b. dem Inter-Integrated Circuit (I2C) oder Serial Peripheral Interface (SPI) Bus möglich wird. Verwendung finden sollen die vorgestellten Aufgaben in einem breitgefächerten Spektrum an Vorlesungen: Betriebssystem Einführung (Bash Programmierung), Systemsicherheit und Management (Python Einführung), Digitaltechnik (Python: 4-bit Zähler), Rechnerarchitektur und Mikroprozessortechnik (SPI und I2C), Mathematik 1-3, Informatikgrundlagen und Graphentheorie (Mathematica). Obwohl bereits einige Vorlesungsbereiche damit aufgegriffen werden, sind die Möglichkeiten die dieser Einplatinen Computer bietet damit keinesfalls erschöpft und könn- 1

14 1 Einleitung ten in Arbeiten anderer Studenten fortgeführt und ergänzt werden. 2

15 2 Plattform Evaluation 2.1 Raspberry Pi und BeagleBone Black Wie bereits erwähnt gibt es neben dem Raspberry Pi noch zahlreiche weitere Konkurrenzprodukte welche ähnliches leisten. Der direkte Konkurrent allerdings ist das von Texas Instruments vorgestellte BeagleBone Black. Nachfolgend werden die beiden Plattformen mit ihren Vor- und Nachteilen verglichen und auf die besondere Eignung im Bereich der Lehre untersucht Raspberry Pi Modell B+ Der Raspberry Pi ist ein Einplatinen Computer mit der ungefähren Grundfläche einer Kreditkarte, nutzt Linux als Betriebssystem und ist zum Preis von knapp 33 e erhältlich. Er verwendet ein Broadcom BCM2835 System on a chip (SoC), welches einen 700 MHz starken ARM1176JZFS (ARM11/ARMv6) Prozessor beinhaltet sowie die 24 GFlops starke Videocore IV Grafikeinheit und 512 MB Arbeitsspeicher. Trotz des geringen Preises verfügt der Raspberry Pi über 4 USB Anschlüsse, einen 100 MBit Netzwerkanschluss, einen Full HD fähigen HDMI Anschluss, sowie einen analogen Audio und Cinch Video Ausgang (über ein Adapterkabel). Insgesamt stehen 40 GPIO Pins zur Verfügung, welche neben generischen Ein- und Ausgängen auch als spezielle Schnittstellen wie Serial, I2C, Inter-Integrated Sound (I2S) und SPI genutzt werden können. Eine Besonderheit bietet der Raspberry Pi mit den Camera Serial Interface (CSI) bzw. Display Serial Interface (DSI): Diese Schnittstellen bieten direkten Anschluss einer speziellen Kamera beziehungsweise eines demnächst verfügbaren TFT Displays an die Videocore IV Grafikeinheit. Durch den Anschluss der eigens entwickelten Kamera können trotz der vergleichsweise geringen CPU Leistung Photos in 2592 x 1944 Pixel, respektive Video ins Full HD Auflösung (1920 x 1080 Pixel) aufgezeichnet und mit Filtern versehen werden. Weiterhin kann die GPU auch in begrenztem Umfang zur Beschleunigung von eigenem Programmcode verwendet werden. Eine Micro SD Karte dient als Massenspeicher und die Stromversorgung erfolgt mittels Micro USB Netzteil. Als Betriebssystem kommt hauptsächlich Raspbian, eine für den ARMv6 optimierte Version von Debian zum Einsatz. Weiterhin sind Versionen von Arch Linux (Arch), Fedora (Pidora), XBMC (XBian, OpenElec, Raspbmc), RiscOS, Android und zahlreichen anderen Betriebssystemen zum Download verfügbar. Die Verwendung des Echtzeitbetriebssystems QNX ist allerdings wegen des fehlenden Board Support Packages nicht möglich. Die Entwicklung des Einplatinen Computers wurde von Eben Upton geleitet. Die Idee zu diesem Projekt kam ihm während seiner Zeit als Director of Studies in Compu- 3

16 2 Plattform Evaluation ter Science am St John s College (Universität Cambridge). Er stellte mit seinen Kollegen fest, dass die Anzahl der Studienbewerber im Bereich der Informatik seit dem Beginn des Jahrtausend stetig rückgängig waren. Die heutigen Jugendlichen und Kinder würden sich zwar immer intensiver mit IT befassen, diese aber nur noch passiv Konsumieren anstatt aktiv damit zu arbeiten. Er sah die Begründung darin, dass eine günstige, hackbare Plattform fehlen würde, sowie er sie selbst in seiner Kindheit in Form des BBC Micro erlebt hatte. [2] Der erste Entwurf des Raspberry Pi war daher nicht der Computer wie er heute verkauft wird, sondern eine Art Klone des BBC Micro auf Basis eines Atmel ATMega 644 (22.1 MHz, 512K SRAM, 320x240 Pixel). Dieser wurde von Eben Upton 2006 während seiner Zeit an der Universität Cambridge entworfen, das Projekt aber schnell eingestellt. Im gleichen Jahr wechselte Eben Upton zum Chiphersteller Broadcom und arbeitete am BCM2835, welcher später auch die Basis für den heutigen Raspberry Pi werden sollte. Insbesondere die Tatsache der guten Multimedia Unterstützung dieses SoC bewog Upton die Arbeit am Raspberry Pi wiederaufzunehmen. Er befürchtete dass der BBC Micro Klone bei der heutigen, mit Facebook und anderen grafischen Anwendungen vertrauten Jugend keinen Anklang finden könnte - ein Computer mit dem BCM2835 hingegen doch. Er gründete die Raspberry Pi Foundation, welche auf Basis des Einplatinen Computers auch Materialien für die Nutzung im Unterricht und der Fortbildung von Kindern und Jugendlichen in den sogenannten MINT Fächern erstellte. Damit ging der erste Raspberry Pi im Februar 2012 in den Verkauf und wurde seither mehr als 3 Millionen mal verkauft [24] BeagleBone Black Revision C Das BeagleBone Black entstammt einer Reihe von verschiedenen Einplatinen Computern, welche ihre Entwicklung 2008 in Form des BeagleBoard, einem 150 US Dollar teuren, 600 MHz schnellen Cortex-A8 Linux Boards begannen. Alle diese Entwicklungsboards haben die Gemeinsamkeit, dass sie von Texas Instruments Entwicklern entwickelt wurden und jeweils als SoC den aktuellen Kern aus dem Portfolio der genanten Firma beinhalteten. Der aktuelle BeagleBone Black (53 e) verwendet ein Texas Instruments AM335X SoC, welches eine 1 GHz starke ARM Cortex A8 CPU beinhaltet, sowie eine PowerVR SGX530 Grafikeinheit mit 1,6 GFlops und 512 MB Arbeitsspeicher. Die Konnektivität nach außen geschieht beim Bone über einen USB Host Port, einen USB Client Port, einen 100 Mbit Netzwerkanschluss sowie einen Micro HDMI Port. Der BeagleBone Black bietet 92 GPIO Pins, welche sich auf zwei Pinleisten verteilen, allerdings je nach verwendeter Peripherie (z.b. dem HDMI Ausgang, oder dem Onboard Speicher) nicht alle verfügbar sind. Als Protokolle dienen dort gleich mehrere Serial Schnittstellen, I2C und SPI Busse sowie ein Controller Area Network (CAN) und I2S Bus zur Verfügung. Als Massenspeicher dienen entweder die verbauten 4 GB emmc Flashspeicher oder eine Micro SD Karte. Die Stromversorgung erfolgt über den USB Client Port oder über ein 5 Volt, 1 Ampere Netzteil. Als Besonderheit existieren 4

17 2.1 Raspberry Pi und BeagleBone Black beim BeagleBone Black zwei Programmable Realtime Unit (PRU), welche jeweils mit 200 MHz getaktet sind und unabhängig von der ARM CPU funktionieren. Diese 32 bit Microcontroller sind mit hoher Bandbreite, sowohl an den eigenen, als auch an den Arbeitsspeicher der ARM CPU angeschlossen und können dazu verwendet werden, rechenintensive oder zeitkritische Aufgaben zu übernehmen, ohne die CPU zu belasten. Alle Geräte der BeagleBoard und BeagleBone Reihe verwendeten Anfangs ein speziell angepasstes Ångström Linux, seit Anfang des Jahres wird das neue BeagleBone Black allerdings mit einer Anpassung von Debian vorinstalliert verkauft. Weiterhin stehen Ubuntu und Android sowie das Echtzeitbetriebssystem QNX zur Wahl Vergleich Raspberry Pi und BeagleBone Black scheinen auf den ersten Blick beide gleich gut zur Verwendung im Bereich der Lehre geeignet zu sein, jedoch gibt es bei genauerer Betrachtung einige wesentliche Unterschiede. Der größte und wesentliche, welcher sich sowohl im Design der Hardware, Software und verfügbaren Materialien widerspiegelt, ist die angepeilte Zielgruppe. Während der Raspberry Pi von Anfang an darauf ausgelegt war im Bereich der Lehre verwendet zu werden und erst später aufgrund des günstigen Preises von Hobbyisten und der Industrie aufgegriffen wurde, war das BeagleBone Black als ein Entwicklungs- und Demoboard für das entsprechende, frei zu erwerbenden SoC gedacht: Beide Hersteller haben die Baupläne ihres Produktes offengelegt, was die eigene Produktion eines solchen Boards ermöglichen würde. Allerdings ist nur der Kern des BeagleBone Black in kleinen, und nicht industriell üblichen Mengen erhältlich. Damit wird schnell klar, dass die Zielsetzung des BeagleBone Black ebenfalls das eines Referenzdesigns zur Integration in die eigene Schaltung ist. Weiterhin unterstützt wird diese These durch die Ausstattung in Hardware und Software: Während der Raspberry Pi mittels digitalem HDMI, sowie analogem Video und Audioanschlüssen, sowie vier USB Ports direkt als Standalone Rechner in fast allen Situationen eingesetzt werden kann, bietet der BeagleBone Black nur den digitalen HD- MI Anschluss im unüblichen Micro HDMI Format, sowie einen USB Port - zu wenig um die übliche Kombination aus USB Maus, Tastatur und WLAN Dongle ohne zusätzliches Zubehör anschließen zu können. Dies gilt allerdings nicht nur für den Bereich der Hardware, sondern auch der Software: Während der Raspberry Pi mit einer Fülle von Entwicklungswerkzeugen und Software (Python, Mathematica, Scratch, Verweis auf Unterrichtsmaterialien uvm.) vorinstalliert kommt, verfügt der BeagleBone Black neben verschiedenen Systemprogrammen ausschließlich über einen Texteditor, Terminal, File Browser, Chrome sowie ein IRC Chat Tool. Zusammengefasst lässt sich also festhalten, dass der BeagleBone Black sicherlich ein gutes Werkzeug für die industrielle Entwicklung auf Basis des verwendeten Chips ist, allerdings für den Einsatz in der Lehre und der Verdeutlichung des Zusammenspiels von Hard- und Software nur bedingt geeignet ist. Nicht zuletzt auch wegen des mehr als anderthalbfach so hohen Preises und der bestehenden Lieferengpässe (Juli 2014), wurde der Raspberry Pi als Basis für die folgende Arbeit gewählt. 5

18 2 Plattform Evaluation Tabelle 2.1: Übersicht [6] Raspberry Pi Modell B+ BeagleBone Black Rev. C SoC Broadcom BCM2835 Texas Instruments AM3358 CPU ARM1176 / ARMv6 ARM Cortex-A8 / ARMv7 700 MHz, Hardware FPU 1 GHz, Hardware FPU RAM 512 MB 512 MB GPU Broadcom VideoCore IV PowerVR SGX GFlops 1,6 GFlops Int. Speicher - 4 GB Ext. Speicher Micro SD Micro SD Netzwerk 10/100 Mbit 10/100 Mbit Stromversorgung 5 2 A USB Micro 5 1 A USB Mini 2.1mm Stecker Abmessungen 85.6 mm x 56 mm 86.4 mm x 53,3 mm Gewicht 45 g 40 g Preis 33 e 53 e Tabelle 2.2: I/O und Peripherie [6] Raspberry Pi Modell B+ BeagleBone Black Rev. C Digitale I/O Pins 3,3V 3,3V Analoge Eingänge - 12-bit ADC (0-1,8V) PWM Ausgänge 2 8 Serial 1 4 SPI 2 2 I2C 1 2 USB Host 4 USB A Anschlüsse 1 USB A Anschluss USB Client - 1 Mini B Anschluss Video Eingang CSI - Video Ausgang HDMI, Cinch, DSI Micro HDMI Audio Ausgang HDMI, Analog Micro HDMI Stromversorgung 50 ma, 1,2 A 250 ma, 1 A Besonderheiten - PRU, CAN Bus 6

19 2.2 Raspberry Pi Modelle 2.2 Raspberry Pi Modelle Seit Beginn der Entwicklung sind einige, verschiedene Modelle des Raspberry Pi erschienen. Am weitesten verbreitet ist das Modell B in der Version 2.0, weshalb auch der Hardware Anteil dieser Bachelor Thesis mit diesem Raspberry Pi durchgeführt wurde. Das neuste Modell, welches zukünftig als Standard dienen soll, ist der Raspberry Pi Modell B+. Die Unterschiede der einzelnen Plattformen sollen nachfolgend kurz erläutert werden Unterschiede Modell A und B Der prinzipielle Unterschied zwischen Modell A und B liegen in der Bestückung der Platinen. Das Modell A verfügt mit 256 MB nur über die Hälfte des Arbeitsspeichers des Modell B. Weiterhin wurde der SMSC LAN9512 entfernt. Dieser Chip diente zeitgleich als USB Hub für die beiden Ports des Modell B, wie auch als Netzwerkinterface. Damit verfügt das Modell A über nur einen USB Port und keinen Netzwerkanschluss. Dadurch wurde zum einen das Gewicht, der Stromverbrauch und schließlich der Preis auf 25 e reduziert. Besonders für mobile Anwendungen ist dieses Modell daher sehr geeignet Modell B pre 2.0 Das Modell B in der Version pre 2.0 war der erste erschiene Raspberry Pi im Februar 2012 und verfügte über 256 MB Arbeitsspeicher, da für das Modell A ursprünglich 128 MB Arbeitsspeicher geplant waren Modell A/B 2.0 Beim Übergang zu Revision 2.0 gab es einige Detailänderungen, so wurden z.b. wenige Pins inklusive des I2C Bus auf der GPIO Leiste um rangiert. Zum ersten Mal gab es auch das funktionsreduzierte Modell A Compute Module Das Compute Module entstand aus der Notwendigkeit eine kleinere, besser in industrielle Systeme und kommerzielle Produkte integrierbare Plattform zu entwickeln. Das Compute Module wurde daher im Format eines DDR2 SODIMM Riegels entworfen, und lässt sich damit leicht und platzsparend integrieren. Zusätzlich zu dem Compute Module wurde weiterhin ein Referenzdesign zur Verfügung gestellt, welches die notwendige Hardware zum Betrieb des Moduls enthielt. Aufgrund des kleinen Formfaktors und der hohen Anzahl an ausgeführten Ports über die SODIMM Leiste, konnte die Anzahl der nutzbaren GPIO Ports von 17 (Modell A/B 2.0) auf 46 gesteigert werden. Zusätzlich erhielt das Compute Modul jeweils zwei Anschlüsse für die CSI und DSI Systeme, was das Modul zur Anbindung von zwei speziellen Displays, sowie dem 7

20 2 Plattform Evaluation Einsatz im Bereich von stereoskopischen Kameraanwendungen befähigte. Das Compute Module verwendet, ähnlich wie der BeagleBone Black (Rev. C), einen 4 GB großen emmc Flashspeicher Modell A+/B+ Das Modell B+ wurde im Juli 2014 vorgestellt und beinhaltete einige Verbesserungen im Vergleich zur Revision 2.0. So verfügt der Raspberry Pi über eine neue, energiesparendere Stromversorgung, einen rauschärmeren analogen Audioausgang, vier statt zwei USB Ports sowie anstatt der bisherigen 26, 40 GPIO Pins. Von diesen 40 Pins sind 28 (vorher 17) für eigene Projekte nutzbar, beim Rest handelt es sich um verschiedene Spannungsschienen (3,3V / 5V), Masse oder die neue Schnittstelle für Erweiterungsmodule (Pi Hats). Das Modell A+ wurde noch nicht veröffentlicht, jedoch ist geplant ähnlich wie beim Übergang von Modell B, Revision 2.0 eine neue Version des Modell A herauszubringen, welche vermutlich ebenfalls die Verbesserungen im Bereich Stromversorgung und GPIO Erweiterung enthalten wird. 8

21 3 Grundlagen und Installation In dem nachfolgenden Kapitel werden die Grundlagen zur Nutzung des Raspberry Pi gelegt. Dies umfasst das benötigte Zubehör zum Betrieb, sowie die Vorbereitung der SD Karte mittels der noobs Software beziehungsweise eines Images. Am Ende dieses Kapitels wird der Raspberry Pi angeschlossen sein und zum ersten Mal booten. 3.1 Peripherie Um den Raspberry Pi das erste Mal einzusetzen, ist es empfehlenswert diesen wie einen handelsüblichen Personal Computer anzuschließen. Neben dem Raspberry Pi ist dazu folgende Hardware nötig: SD Karte Netzteil mit Micro USB Anschluss USB Maus USB Tastatur Netzwerkkabel HDMI auf DVI Adapterkabel Display mit DVI Eingang Bei der erwähnten Hardware sind allerdings noch einige Dinge zu beachten, bzw. kann diese auch im Bedarfsfall durch andere Komponenten ersetzt werden SD Karte Hier sollte mindestens eine 8 GB SD Karte eines Markenherstellers mit einer entsprechenden hohen Class eingesetzt werden. Die aktuelle Version von Raspbian belegt alleine etwas weniger als 4 GB Speicher, so dass beim Einsatz einer 4 GB Karte wenig Platz für eigene Projekte und Erweiterungen blieb, weshalb eine 8 GB Karte empfohlen wird. In den Anfängen der Entwicklung der Raspberry Pi Firmware gab es große Probleme bei der Verwendung von SD Karten unbekannterer Hersteller. Diese Probleme sind zum jetzigen Zeitpunkt fast ausgeschlossen, jedoch empfiehlt es sich dennoch weiterhin aus Gründen der Datensicherheit in das Produkt eines Markenherstellers zu investieren. Die Class beschreibt die Geschwindigkeitseinstufung einer SD Karte. Eine 9

22 3 Grundlagen und Installation möglichst hohe Class, wie z.b. Class 10 empfiehlt sich bei der Verwendung des Raspberry Pi, damit diese nicht zum limitierenden Faktor bei Schreib- und Lesezugriffen wird. Alternativ kann die SD Karte auch durch eine Micro SD Karte mit entsprechendem Adapter ersetzt werden, was beim Raspberry Pi Modell B+ zwingend erforderlich ist Netzteil mit Micro USB Anschluss Als Netzteil könnte beim Raspberry Pi (Modell A und B) prinzipiell ein altes Handyladegerät verwendet werden. Jedoch sollte man aufpassen, dass dieses mindestens 1,2 Ampere Strom liefern kann. Der Raspberry Pi könnte dank seiner auf 1,1 Ampere festgelegten Polyfuse bis zu 5 Watt an Leistung aufnehmen, oder weitere Leistung bis zu dieser maximalen Grenzen an angeschlossene Verbraucher weitergeben. Da besonders günstigere Netzteile den Strom bei höherer Belastung nicht konstant halten können, geht daher die Empfehlung an ein entsprechend starkes Netzteil mit 1,2 Ampere oder höher. Zu niedrige Versorgungsleistung kann sich in Schreib- / Lesefehlern bei der SD Karte, Fehlfunktionen des RPi, bis hin zum Einfrieren des gesamten Systems äußern. Beim Raspberry Pi Modell B+ sind dank der gesunkenen Anforderungen an Strombedarf ein Netzteil mit 1,2 Ampere weiterhin verwendbar, bei der Nutzung aller vier USB Ports empfiehlt sich allerdings die Verwendung eines Netzteils mit mindestens 2 Ampere Leistung, da die 1,1 Ampere Polyfuse durch eine 2 Ampere Polyfuse ersetzt wurde Netzwerkkabel Das Netzwerkkabel soll den Raspberry Pi mit einem Netzwerk, welches Internetzugang wie auch DHCP Service anbietet, verbinden. Dies ist bei normalen Heim Routern wie z.b. einer Fritz!Box Standard. Bei Firmen- oder Universitätsnetzwerken können weitere Schritte zur Einrichtung der Internetverbindung notwendig sein HDMI auf DVI Adapterkabel / Display mit DVI Eingang Um die Videoausgaben des Computers möglichst komfortable anzuzeigen, empfiehlt es sich eine HDMI auf DVI Adapterkabel zu verwenden und dieses mit dem DVI Eingang eines Computer Displays zu verwenden. Alternativ kann der Raspberry Pi auch direkt mit einem HDMI Kabel an einem HDMI Display oder modernen Fernseher angeschlossen werden. Letztere Methode hat den Vorteil, dass die Audiosignale zusammen mit dem Videosingal übertragen werden, was es zu einer idealen Anschlussart für Multimedia Anwendungen macht. Bei der Verwendung des DVI Eingangs muss das Audiosignal zusätzlich vom Raspberry Pi mittels 3,5 mm Klinkekabels abgegriffen und z.b. zu einem Paar Aktivboxen weitergeleitet werden. Sollten weder DVI noch HDMI kompatible Displays verfügbar sein, könnte man im letzten Schritt über die Chinch Buchse einen alten Röhrenfernseher anschließen. 10

23 3.2 Anschluss des Raspberry Pi Weitere Komponenten Je nach Einsatzzweck kann es erforderlich sein, weitere Komponenten zu verwenden. Aufgrund der Tatsache, dass der 5V Eingang des Raspberry Pi (Modell A und B) mit einer 1,1 Ampere Polyfuse abgesichert ist [20] (S.1, oben, F1), welches den gesamten Raspberry Pi versorgt wird schnell klar, dass die beiden USB Ports nicht wie sonst 500 ma pro Port liefern können. Daher müssen Geräte mit höherem Strombedarf (USB Festplatten, größere USB Sticks, etc) an einem aktiven USB Hub betrieben werden, um zum einen die Anzahl der verfügbaren USB Anschlüsse zu erhöhen und zum anderen auch Geräte mit erhöhter Leistungsaufnahme sicher am Raspberry Pi betreiben zu können. Beim Modell B+ ist, insbesondere mit der Verwendung eines 2 Ampere Netzteils, die Problematik zumindest bei größeren USB Sticks und WLAN Dongles behoben wurden. Für besonders energiehungrige Endgeräte empfiehlt sich allerdings auch hier ein aktiver USB Hub. Weiterhin werden für die erste Inbetriebnahme ein aktueller Windows Rechner mit SD Karten Lesegerät und Internetzugriff vorausgesetzt um die SD Karte vorzubereiten. 3.2 Anschluss des Raspberry Pi Für den weiteren Verlauf des Dokumentes wird vorausgesetzt, dass die angegebenen Komponenten vorhanden und der Raspberry Pi angeschlossen, allerdings stromlos und ohne SD Karte bereit steht. 3.3 Raspbian Das bereits erwähnte Raspbian ist die Standard Distribution für den Raspberry Pi. Es handelt sich dabei um ein Debian Derivat, welches den Anforderungen und der Architektur des ARMv6 Prozessors des Einplatinen Computers angepasst wurde. Zusätzlich zu dem reinen Betriebssystem werden auch viele der unter Debian verfügbaren Software Pakete über den Paketmanager apt mit den entsprechenden Anpassungen angeboten. Um Raspbian auf der SD Karte zu installieren bieten sich zwei Möglichkeiten an. Zum einen die Verwendung des sogenannten noobs Systems der Raspberry Pi Foundation oder das bitweise Kopieren eines fertigen Images. 3.4 Installation mittels Image Die traditionelle Art ein Betriebssystem per Image zu installieren ist auch nach der Einführung des noobs Systems weiterhin beliebt. Dies ist darin begründet, dass diese Art der Installation relativ schnell funktioniert. Weiterhin lassen sich auf gleichem Weg Backups von vorhandenen Installationen erstellen und wiederherstellen. Zu guter Letzt ist es auch für weniger bekannte Distributionen ohne Integration in noobs die einzige Möglichkeit diese für die Nutzung auf dem Raspberry Pi vorzubereiten. 11

24 3 Grundlagen und Installation Image downloaden Um das Raspbian Image zu installieren, müssen wir es erst von der Website der Raspberry Pi Foundation herunterladen. Man findet es unter der Adresse org/downloads/. Dort kann man sich entscheiden, ob man das Image von Raspbian per direktem HTTP Download oder per Torrent erhalten möchte. Für die meisten Einsatzzwecke sollte der Download als ZIP Datei die geeignete Wahl sein. In dieser Arbeit wird das aktuelle Image vom Juni 2014 verwendet (Release , Kernel 3.12, 788 MB). Nach dem erfolgreichen Download muss die Datei mittels einem geeigneten Werkzeug (z.b. 7-zip: entpackt werden. Bei der resultierenden, fast 3 GB großen Datei mit der Endung.img handelt es sich um die besprochene Image Datei, welche bitweise die Kopie des Raspbian Betriebssystems enthält. Diese Datei wird in den nächsten Schritten auf die vorhandene SD Karte kopiert Formatieren Um das Image auf die SD Karte kopieren zu können, muss deren Inhalt zuerst gelöscht, die Karte also formatiert werden. Dies ist bei der Verwendung einer neuen und leeren SD Karte nicht notwendig, da die Karte im nächsten Schritt bitweise überschrieben wird. Beim Überschreiben werden normalerweise zwei Partitionen angelegt: Eine FAT32 Partition wie man sie auch bei USB Sticks kennt, sowie eine EXT Partition unterschiedlicher Version. Das EXT Dateisystem entstammt dem Linux Bereich und ist unter Windows nicht lesbar. Will man nun also eine bereits für den Raspberry Pi verwendete SD Karte ein weiteres Mal neu beschreiben, oder ein Backup wiederherstellen, so erscheint die ggf. mehrere GB große SD Karte als nur knapp 56 MB großer, FAT32 formatierter USB Stick im Dateisystem. Durch die Formatierung kann das ursprüngliche Format wiederhergestellt und anschließend mit der vollen Größe auch ein Image wieder zurück gespielt werden. Um unter Windows die SD Karte korrekt zu formatieren, sollte man nicht das Windows eigene Tool verwenden, sondern den SD Formatter der SD Association. Man kann dieses Tool kostenlos unter per Klick auf Download SD Formatter for Windows herunterladen. Nachdem man die EULA angenommen hat, startet der Download der wenigen MB großen ZIP Datei. Sobald man die enthaltene Setup Datei entpackt und das Tool installiert hat, startet man dieses einfach. Das Tool selbst ist relativ einfach gehalten: Unter Drive wählt man das korrekte Laufwerk aus und per Klick auf Format startet man die Formatierung der SD Karte. Dabei ist jedoch darauf zu achten, dass das Tool alle Wechselmedien unter Drive auflistet. Man muss also darauf achten wirklich seine SD Karte zu formatieren, und nicht versehentlich einen USB Stick mit wichtigen Daten. Bevor man allerdings den Vorgang startet, sollte man unter Option noch eine Anpassung vornehmen. In jedem Fall, besonders bei der Vorbereitung einer SD Karte für die Verwendung von noobs, sollte man hier das Format Size Adjustment auf On stellen und den Dialog per Klick auf OK verlassen, sowie die Formatierung per Klick auf Format starten. 12

25 3.4 Installation mittels Image Abbildung 3.1: SD Formatter Abbildung 3.2: SD Formatter Optionen 13

26 3 Grundlagen und Installation Nachdem zwei weitere Sicherheitsabfragen bestätigt wurden, beginnt der Vorgang und endet mit einer Übersicht über die tatsächliche Größe der SD Karte. Der Vorgang ist damit abgeschlossen und das Tool kann beendet werden Image kopieren Um das bereits heruntergeladene Image auf die nun vorbereitete SD Karte zu kopieren, benötigen wir ein weiteres Tool, die Freeware Win32 Disk Imager. Dieses Werkzeug kann man unter der URL per Klick auf Download unamed sequel here herunterladen, installieren und anschließend starten. Abbildung 3.3: Win32 Disk Imager Wie bereits beim SD Formatter gibt es auch hier ein Feld zur Auswahl des korrekten Wechsellaufwerkes ( Device ). Es ist auch dieses Mal genaustens darauf zu achten die SD Karte und nicht einen anderen Wechseldatenträger, wie z.b. einen USB Stick auszuwählen, da im nächsten Schritt alle Dateien auf diesem überschrieben werden. Nachdem die SD Karte als Laufwerk ausgewählt wurde, wählen wir per Klick auf den Dateiordner das vorher heruntergeladene Raspbian Image aus (hier: wheezy-raspbian.img). Nach dem Klick auf Öffnen ist das Tool dann auch schon fertig konfiguriert. Per Klick auf Write beginnt nach einer weiteren Sicherheitsabfrage der Schreibvorgang. Nach Abschluss des selbigen kann die SD Karte ausgeworfen, aus dem Lesegerät entfernt und in den Raspberry Pi eingesetzt werden. Dies schließt das Kopieren des Raspbian Image auf die SD Karte ab. Der Raspberry Pi kann nun an die Stromversorgung angeschlossen werden um Raspbian zu booten Backup und Wiederherstellung Wie bereits eingangs erwähnt kann das Win32 Disk Imager Tool auch dazu verwendet werden, Backups einer bestehenden Raspbian Installation anzufertigen, bzw diese Wiederherzustellen. 14

27 3.5 Installation mittels noobs Wollen wir ein Backup erstellen, so setzen wir die SD Karte in das Lesegerät ein und starten den Win32 Disk Imager. Anders als beim bisherigen Vorgang wählen wir diesmal über den Dateiordner kein fertiges Image aus, sondern geben im entsprechenden Dialogfeld einen eigenen, nicht existierenden Dateinamen ein, z.b. RaspbianBackup.img. Nach dem Klick auf Öffnen sind wir wieder im Hauptdialog und können durch Klick auf den Button Read das Auslesen der SD Karte in die neu angelegte Datei starten. Die Datei wird später die Größe der verwendeten SD Karte haben und kann ohne weitere Änderungen auch nur auf eine solch große, oder größere SD Karte wiederhergestellt werden. Zur Wiederherstellung gehen wir ähnlich vor wie beim Kopieren des Raspbian Images: Wir führen zuerst eine Formatierung der SD Karte wie unter angegeben durch, anschließend kopieren wir das Backup Image anstelle des Raspbian Images auf die SD Karte wie unter beschrieben. 3.5 Installation mittels noobs Um den Einstieg in die Welt des Raspberry Pi zu vereinfachen erfand die Raspberry Pi Foundation die sogenannte noobs oder New Out Of Box Software. Es handelt sich dabei um einen Installationsassistenten welcher, nachdem er auf der SD Karte installiert wurde, den Boot des Raspberry Pi und dort die Auswahl des gewünschten Betriebssystems erlaubt. Erst dann findet die eigentliche Installation statt. Noobs gibt es auch vorinstalliert auf Micro SD Karten samt Adapter im Handel zu kaufen, um den Einstieg mit dem Raspberry Pi zu einer echten Plug and Play Lösung zu machen. Sollte der Installer jedoch beschädigt werden, man noobs selbst auf einer leeren SD Karte installieren wollen oder andere Probleme auftreten, ist es gut die wenigen Schritte bis zur Einrichtung und Nutzung dieses Systems zu kennen, welche nachfolgenden aufgelistet werden noobs downloaden Wie auch bei der direkten Installation von Raspbian muss das noobs Paket erst von der Raspberry Pi Website heruntergeladen werden. Dazu navigieren wir zu und wechseln zum Eintrag noobs. Die New Out Of Box Software gibt es in zwei Versionen: Full und Lite. Bei der Full Version sind alle wichtigen Betriebssysteme bereits auf der SD Karte hinterlegt, so dass eine Offline Installation nach dem Download möglich ist. Die Lite Version benötigt, da nur der Installer auf der Karte untergebracht ist, bei der Installation eine Internetverbindung um die Images herunterzuladen. Je nach Einsatzzweck downloaden wir die passende Version per Klick auf den Download ZIP Button Formatieren Wie bereits bei erklärt muss nun auf gleichem Wege die SD Karte formatiert werden. Nachdem dies abgeschlossen ist, kann noobs selbst im nächsten Schritt auf die SD 15

28 3 Grundlagen und Installation Karte kopiert werden noobs kopieren Abbildung 3.4: noobs nach dem Entpacken auf die SD Karte Nachdem wir die SD Karte vorbereitet haben, entpacken wir den Inhalt des heruntergeladenen Paketes direkt ins Hauptverzeichnis der SD Karte unter Beibehaltung der Datei- und Ordnerstruktur. Auch hierbei wird empfohlen einen bewährten Entpacker wie z.b. 7-zip ( dem Windows eigenem Tool vorzuziehen. Anschließend kann die SD Karte sicher entfernt und schließlich in den Raspberry Pi eingesetzt werden. Damit ist noobs erfolgreich eingerichtet und wir können den Raspberry Pi an die Stromversorgung anschließen, um Raspbian zu installieren Raspbian mit noobs installieren Nach dem Boot des Raspberry Pi erscheint die Oberfläche von noobs, welche uns die Möglichkeit gibt, zum einen die Sprachoptionen und Tastatureinstellungen zu ändern, sowie zum anderen ein Betriebssystem zur Installation auszuwählen und den Prozess zu starten. Da wir, wie auch in der manuellen Methode, Raspbian installieren wollen, aktivieren wir diesen Eintrag mit einem Klick in das entsprechende Kästchen und klicken anschließend auf Install. Nach einer Sicherheitsabfrage beginnt die Installation die nun einige Zeit dauern kann. Nach dem Abschluss der Einrichtung informiert noobs den Nutzer mittels Dialogbox. Nach dem Klick auf OK startet der Raspberry Pi neu und bootet Raspbian Vorteile von noobs Der Vorteil der Installation nach dieser Methode liegt zum einen darin, dass die Sprachoptionen und Tastatureinstellungen welche in noobs eingegeben wurden nach Raspbian 16

29 3.5 Installation mittels noobs Abbildung 3.5: Installation von Raspbian unter noobs übernommen werden, zum anderen aber auch darin, dass man jederzeit beim Booten des Raspberry Pi die Shift Taste gedrückt halten kann, um das noobs Menü erneut aufzurufen. Damit hat man die Möglichkeit Einstellungen zu ändern, wie auch ohne den Einsatz eines PCs andere Betriebssysteme zu installieren. Weiterhin ermöglicht noobs die gleichzeitige Installation mehrerer Betriebssysteme auf einer SD Karte und dient als Bootmanager. 17

30

31 4 Konfiguration von Raspbian Nachdem der Raspberry Pi im letzten Kapitel zum ersten Mal in Betrieb genommen wurde, muss nun die Grundkonfiguration erfolgen. Dies bedeutet zum Beispiel das Tastaturlayout, die Zeitzone und die Internationalisierungsoptionen einzustellen. Anschließend werden die Schritte zur Installation neuer Software und Update bestehender, sowie dem Upgrade der Firmware beschrieben. Am Ende dieses Kapitels werden alle notwendigen Vorbereitung zur Nutzung der GPIO Schnittstelle in verschiedenen Programmiersprachen getroffen sein. 4.1 Erster Boot Nachdem Raspbian nun auf der SD Karte installiert und der Raspberry Pi nun bootet, muss ersteres nun in einer Grundkonfiguration für die Verwendung beim Nutzer eingerichtet werden. Im Idealfall wird dies direkt am Raspberry Pi durch die Verwendung von Maus, Tastatur und Bildschirm erledigt. Sollte dies nicht möglich sein, bzw. eine Einrichtung headless, also ohne Bildschirm über das Netzwerk erfolgen, so kann man dies unter Verwendung eines SSH Tools wie z.b. PuTTY ( greenend.org.uk/~sgtatham/putty/download.html) tun. Die Login Daten bei Raspbian sind, wie auch auf der Downloads ( Seite vermerkt, Nutzer: pi sowie Passwort: raspberry. Dabei ist zu beachten, dass beim direkten Login über die Tastatur, so diese nicht von noobs auf QWERTZ umgestellt wurde, im QWERTY Format Eingaben entgegen nimmt, also u.a. die Position von Z und Y auf der Tastatur vertauscht ist raspi-config Nachdem der Raspberry Pi zum ersten Mal gebootet ist, erscheint das Software Configuration Tool, auch bekannt als raspi-config. Sollte man diese Schritte in einer headless Installation nachvollziehen wollen, so muss man nach Login über PuTTY das Tool manuell durch die Eingabe von sudo raspi-config starten. raspi-config ermöglicht viele Änderungen und Grundeinstellungen. So kann man in diesem Werkzeug z.b. die Verteilung des gemeinsam von CPU und GPU genutzten RAMs ändern, das Nutzerpasswort ändern, den Boot in die grafische Benutzeroberfläche aktivieren oder die Raspberry Pi Kamera aktivieren. Alle Hardwarenahen Änderungen, wie z.b. Übertaktungseinstellungen werden vom Tool in Form der config.txt [8] Datei in der FAT32 Partition der SD Karte abgelegt und sind auch manuell von einem normalen Windows PC änderbar und damit auch eine Wiederherstellung bei z.b. 19

32 4 Konfiguration von Raspbian Abbildung 4.1: raspi-config fehlerhaft konfigurierten Übertaktungseinstellungen möglich. Im Normalfall empfiehlt sich allerdings die Verwendung dieses Tools um Fehler zu vermeiden. Die Navigation in raspi-config erfolgt über folgende Tastenkombinationen: Pfeiltasten Hoch, Runter Page UP, Page Down Schnell Hoch, Schnell Runter Enter Menü betreten ESC Menü verlassen Leertaste Menüpunkt markieren, bei [ ] Auswahl Wir beginnen die Konfiguration im Menü 8 Advanced Options, in dem wir unter Punkt A3 Memory Split den Anteil der Grafikkarte am Gesamtarbeitsspeicher des RPi festlegen. Im Normalfall reicht die Standardeinstellung von 64 MB. Bei sogennaten Headless Konfigurationen, also dem Betrieb des RPi ohne Bildschirm, Maus und Tastatur als Server, kann dort der Anteil der GPU auch auf 16 MB gesenkt werden. Der Name des RPi im Netzwerk kann unter A2 Hostname festgelegt werden. Es empfiehlt sich dort einen sprechenden Namen einzugeben und nicht alle RPi mit dem Standardnamen raspberrypi zu belassen. Unter 7 Overclock: Kann man die Übertaktung des Raspberry Pi einstellen, um eine Leistungssteigerung zu erhalten. Die einzigen beiden sinnvollen Parameter sind dabei None oder Turbo: Mit None betreibt man den Raspberry Pi innerhalb der Standardparameter, mit Turbo erhält man eine sehr starke Übertaktung und Steigerung u.a. der CPU Geschwindigkeit von 700 MHz auf 1 GHz. Dennoch bleibt bei der Nutzung der Turbo Einstellung die Garantie erhalten, da die CPU automatisch diese Übertaktung zurückregelt, sobald die Temperatur der CPU 85 Grad Celsius erreicht [23]. Diese Einstellung ist allerdings auf Grund von Fertigungstoleranzen nicht auf jedem Raspberry Pi zu erreichen. Sollte es Probleme geben, so kann man durch Halten der Shift Taste beim Boot 20

33 4.1 Erster Boot des Raspberry Pi in den abgesicherten Modus wechseln um diese Einstellung zu ignorieren. Sollte man die Raspberry Pi Kamera nutzen wollen, so muss vor dem Anschluss dieses Moduls die Unterstützung für diese mit der Einstellung 5) Enable Camera aktiviert werden. Danach kann man die Kamera an den ausgeschalteten Raspberry Pi anschließen und nach einem erneuten Start nutzen. Um den Raspberry Pi sinnvoll in Deutschland zu nutzen, stellen wir nun unter 4 Internationalization Options die Internationalisierungsoptionen auf unseren Standort und unsere Sprache um. Wir beginnen mit I1 Change Locale und wählen im erscheinenden Menü den Punkt [*] de_de.utf-8 UTF-8 aus, bestätigen die Wahl und beantworten die Frage nach dem Default locale mit de_de.utf-8. Nun werden die Standortparameter erstellt, was einen kurzen Moment dauern kann. Als nächstes ändern wir die Zeitzone unter dem Punkt I2 Change Timezone in dem wir zuerst als Geographic area Europe und dann als Timezone Berlin angeben. Der Raspberry Pi bezieht sich seine Zeitinformationen per NTP über das Netzwerk und stellt die Uhr direkt korrekt ein. Abschließend muss die Einstellung der Tastatur auf das deutsche Schema angepasst werden. Der korrekte Unterpunkt dafür ist I3 Change Keyboard Layout. Generic 105-key (Intl) PC Other German German The default for the keyboard layout No compose key <No> Anschließend wird die neue Keymap erstellt und mit dem nächsten Login aktiv. Um beim nächsten Bootvorgang nicht wieder in der Kommandzeile zu landen, sondern direkt zum Desktop zu booten, aktivieren wir nun unter 3 Enable Boot to Desktop/Scratch die Option Desktop Log in as user pi at the graphical desktop. Aus Sicherheitsgründen empfiehlt es sich im vorletzten Schritt das Passwort des Standardnutzers pi unter 2 Change User Password zu ändern. Zu guter Letzt möchten wir, dass der Raspberry Pi nicht nur die knapp 3 GB Speicher, welche durch das Image bereitgestellt wurden nutzt, sondern die gesamte SD Karte belegt. Daher führen wir als letzte Aktion 1 Expand Filesystem aus. Mit der Bestätigung von Finish im Hauptmenü beenden wir raspi-config und beantworten die Frage nach dem gewünschten Reboot mit Yes. Mit dem Neustart wird das Dateisystem angepasst und der Raspberry Pi bootet schließlich zur grafischen Benutzeroberfläche, dem Desktop. 21

34 4 Konfiguration von Raspbian Abbildung 4.2: Raspbian Desktop 4.2 WLAN Zugriff / eduroam Sollte ein Zugriff auf das eduroam WLAN benötigt werden, muss der Raspberry Pi zuvor mit einem USB WLAN Dongle ausgestattet werden. Eine entsprechende Kompatibilitätsliste geeigneter Modelle kann unter gefunden werden. Anschließend kann unter Nutzung des Wifi Config Tools des RPi unter dem Punkt Manage Networks und Add das WLAN eduroam hinzugefügt werden: Tabelle 4.1: Einstellungen für eduroam Einstellung SSID Authentication Encryption EAP method Identity Password CA certificate Inner auth Wert eduroam WPA2-Enterprise (EAP) CCMP PEAP nutzername@htw-saarland.de Passwort /etc/wpa_supplicant/deutsche-telekom-root-ca-2.crt EAP-MSCHAPV2 Anschließend kann über den Reiter Current Status und die Schaltfläche Connect eine Verbindung hergestellt werden. 22

35 4.3 Updates 4.3 Updates Nachdem wir nun die Grundkonfiguration des Raspberry Pi durchgeführt haben, ist es zwingend erforderlich, zum einen die neuste Firmware wie auch Software Updates zu installieren und die grundlegende Arbeit mit dem Paketmanager apt zu erlernen rpi-update Das Firmware Paket besteht aus dem Kernel von Raspbian, dem GPU Bootloader sowie den benötigten Modulen für den Kernel. Sobald der Raspberry Pi mit Strom versorgt wird sucht die GPU automatisch auf der FAT32 Partition der SD Karte nach einem passenden Bootloader. Mit diesem kann die Grafikeinheit dann die CPU und die restliche Peripherie initialisieren und schließlich den Kernel booten. Die Firmware auf einem aktuellen Stand zu halten ist wichtig, da man nur auf diese Art von Verbesserungen wie z.b. verbesserter Hardwareunterstützung oder Fehlerbeseitigung profitieren kann. Die aktuelle Kernelversion kann man sich mit dem Kommando uname -a anzeigen lassen. Dazu verwenden wir das Tool LXTerminal welches in der oberen, linken Ecke des Desktops abgelegt ist. Als Beispiel sei hier die Ausgabe unseres neu installierten Raspbian angegeben: Linux raspberrypi #691 PREEMPT Wed Jun 18 18:29:58 BST 2014 armv6l GNU/Linux Wie man erkennen kann, handelt es sich hierbei um den Kernel Version welcher am 18. Juni 2014 gegen 18:29:58 kompiliert wurde. Die Zahl #691 ist die Versionsnummer des Kernels. Die Version der GPU Firmware lässt sich durch das Kommando /opt/vc/bin/vcgencmd version herausfinden: Jun :46:58 Copyright (c) 2012 Broadcom version 1a6f79b dcdb9347b33ab16f656b5f067 (clean) (release) Um nun ein Update auf die neuste Version durchzuführen, reicht das Kommando sudo rpi-update. Da es sich hierbei um ein Kommando handelt welches tiefgreifend in wichtige Bereiche des Linux Betriebssystems eingreift, zu welchen unser Standardnutzer pi keinen Zugriff hätte, müssen wir das Kommando sudo vorstellen. Durch dieses Kommando wird der nachfolgende Befehl (hier: rpi-update) mit den Rechten des Linux Administrators, root durchgeführt: sudo rpi-update *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS *** Performing self-update % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed :--:-- --:--:-- --:--: :--:-- --:--:-- --:--: *** Relaunching after update 23

36 4 Konfiguration von Raspbian *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom *** We're running for the first time *** Backing up files (this will take a few minutes) *** Backing up firmware *** Backing up modules *** Downloading specific firmware revision (this will take a few minutes) % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed :--:-- --:--:-- --:--: M M k 0 0:00:24 0:00:24 --:--:-- 525k *** Updating firmware *** Updating kernel modules *** depmod *** Updating VideoCore libraries *** Using HardFP libraries *** Updating SDK *** Running ldconfig *** Storing current firmware revision *** Deleting downloaded files *** Syncing changes to disk *** If no errors appeared, your firmware was successfully updated to f644162e209214bc2d3a7ba79fdf765ba3 *** A reboot is needed to activate the new firmware Um die Installation der neuen Firmware abzuschließen, müssen wir den Raspberry Pi neustarten. Dies geschieht entweder rechts unten im Desktop über die Abmelden Schaltfläche, den Shutdown Icon auf dem Desktop oder mittels Kommandozeile über die Befehle sudo shutdown -h now zum herunterfahren oder sudo shutdown -r now zum neustarten. Nachdem wir nun die Firmware des Raspberry Pi aktualisiert haben, möchten wir uns im nächsten Schritt um seine Software kümmern apt-get APT ist der sogenannte Paket Manager unter dem von Debian abstammenden Raspbian Linux. Pakete können die unterschiedlichsten Arten von Software, Libraries und anderen Abhängigkeiten enthalten. Der Paket Manager selbst verwaltet die Installation sowie die benötigten Grundlagen / Abhängigkeiten um die gewünschte Software auf dem Rechner zu betreiben. Weiterhin können über den Paket Manager nicht nur Software installiert und gelöscht, sondern auch aktualisiert werden. Unter der Nutzung von LXTerminal führen wir den Befehl sudo apt-get update aus. Damit lädt sich der Paket Manager die aktuellen Paketlisten herunter um zu wissen, welche Software in welcher Version für den Nutzer zur Verfügung steht. Mit dem Kommando sudo aptget upgrade starten wir schließlich das Software update. Der Paket Manager berechnet die Abhängigkeiten, benötigten neuen Pakete und verlangt schließlich die Bestätigung 24

37 4.4 Einrichtung Hardware seitens des Nutzers. sudo apt-get upgrade Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen... Fertig Die folgenden Pakete werden aktualisiert (Upgrade): cups-bsd cups-client cups-common dbus dbus-x11 gnupg gpgv libcups2 libcupsimage2 libdbus-1-3 libjpeg8 libsmbclient libwbclient0 libxml2 openssh-client openssh-server python-picamera python-rpi.gpio python3-picamera python3-rpi.gpio rpi-update samba-common smbclient ssh tzdata 25 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Es müssen 13,2 MB an Archiven heruntergeladen werden. Nach dieser Operation werden 100 kb Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren [J/n]? Nachdem diese Frage mit J und der Eingabe von Enter bestätigt wurde, führt der Raspberry Pi die Updates durch. Danach empfiehlt sich ein Neustart von Raspbian. Die Installation von neuen Paketen funktioniert mit dem Kommando sudo apt-get install <Paketname> respektive die Entfernung mit sudo apt-get remove <Paketname>. Diese Kommandos werden wir gleich u.a. bei der Installation von wiringpi2 verwenden. 4.4 Einrichtung Hardware Wie bereits erwähnt, verfügt der Raspberry Pi über eine GPIO Schnittstelle. Die 26 (Modell A,B) respektive 40 Pins (Modell B+) lassen sich je nach Programmierung entweder als digitaler Ein- oder Ausgang verwenden um die unterschiedlichsten Aufgaben zu erfüllen. Einige dieser Pins verfügen noch über spezielle Alternativfunktionen, wie z.b. einen I2C Bus, einen SPI Bus oder einen Universal asynchronous receiver/transmitter (UART) in Form einer RS-232 seriellen Schnittstelle. Die ersten beiden Funktionen sind standardmäßig deaktiviert um dem Nutzer mehr freie GPIO Pins zu bieten, die letztere wird aktiv als serielle Konsole von Raspbian verwendet. Wenn man diese Schnittstellen und Funktionen also für eigene Projekte verwenden möchte, muss man sie erst aktivieren respektive aus der Nutzung anderer Dienste entfernen Vorbereitung des I²C / SPI Bus Um die I2C bzw SPI Funktionen der GPIO Pins zu verwenden, führen wir zunächst ein Update des Paket Managers mit sudo apt-get update durch und installieren anschließend mit sudo apt-get install i2c-tools python-smbus die Pakete für die I2CTools sowie die Python Bibliothek für den SPI Bus. Nachdem dies erfolgt ist, müssen wir die Module für I2C und SPI von der Blacklist entfernen. Die Blacklist verhindert dass diese Module beim Start geladen und damit 25

38 4 Konfiguration von Raspbian die alternativen Funktionen auf der GPIO zur Verfügung stehen. Um dies zu bewerkstelligen können wir entweder mittels LXTerminal und vi über Kommandozeile die entsprechenden Dateien editieren, oder per LXTerminal mit dem Kommando sudo leafpad den Texteditor Leafpad mit root Rechten starten um anschließend die sonst schreibgeschützten Dateien zu editieren. Im ersten Schritt öffnen wir die Datei /etc/modprobe.d/raspi-blacklist.conf und kommentieren die beiden blacklist Befehle für die Module spi-bcm2708 und i2c-bcm2708 mittels vorangestelltem # Zeichen aus: # blacklist spi and i2c by default (many users don't need them) #blacklist spi-bcm2708 #blacklist i2c-bcm2708 Danach speichern wir die Datei. Als nächstes müssen wir die beiden Module in /etc/modules vermerken, damit diese auch beim Start des RPi geladen werden. Dazu hängen wir einfach nach dem letzten Eintrag in der genannten Datei die folgenden Zeilen an: i2c-bcm2708 spi-bcm2708 i2c-dev Das Ergebnis sieht wie folgt aus: # /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. # Parameters can be specified after the module name. snd-bcm2835 i2c-bcm2708 spi-bcm2708 i2c-dev Abschließend müssen wir nur noch den Standardnutzer pi zu den entsprechenden Linux Gruppen hinzufügen, damit er die Berechtigung zur Nutzung dieser Dienste erhält. Standardmäßig sind die Berechtigungen für die SPI und GPIO Gruppe schon erteilt ( groups pi zeigt die zugeteilten Gruppen an). Daher müssen wir nur noch mit dem Befehl sudo adduser pi i2c den Nutzer pi die Rechte für die Gruppe I2C geben. Die durchgeführten Änderungen werden erst nach einem Neustart aktiv Vorbereitung der seriellen Schnittstelle Da im Standardfall die serielle Schnittstelle des RPi von Raspbian als Terminal genutzt wird, kann diese nicht direkt dazu verwendet werden um z.b. einen Global Positio- 26

39 4.5 Einrichtung Software ning System (GPS) Empfänger oder eine Microcontroller Unit (MCU) wie den Arduino anzuschließen. Um diese Funktionalität zu entfernen müssten wir aus der Datei /boot/cmdline.txt die Einträge console=ttyama0, kgdboc=ttyama0, entfernen sowie in der Datei /etc/inittab den Eintrag T0:23:respawn:/sbin/getty -L ttyama vt100 durch voranstellen eines # Zeichens auskommentieren [10]. Da diese Änderung jedoch so häufig durchgeführt wurde und ins besondere Fehler in der /boot/cmdline.txt zu einem nicht bootfähigen System führen können, hat der Nutzer lurch auf Github das Programm rpi-serial-console ( rpi-serial-console) geschrieben, welches diese Änderung vollautomatisch durchführt. Die Installation erfolgt mit den Befehlen sudo wget -O /usr/bin/rpi-serial-console Enter sudo chmod +x /usr/bin/rpi-serial-console Enter was dafür sorgt, dass das Programm nach /usr/bin/rpi-serial-console heruntergeladen und anschließend ausführbar gemacht wird. Anschließend können wir mit sudo rpi-serial-console disable die serielle Konsole von Raspbian deaktivieren. Mit dem Parameter enable diese im Übrigen wieder aktiviert und mit status der aktuelle Zustand der UART abgefragt werden. Wie auch bei den Änderungen für I2C und SPI werden die Änderungen erst nach einem Neustart des RPi aktiv. 4.5 Einrichtung Software Nachdem nun die Hardware soweit vorbereitet ist, beginnen wir damit die entsprechenden Schnittstellen zur Software zu installieren. Als wichtigstes wäre da das Framework wiringpi2 ( welches die Schnittstelle zwischen Hardware und weiteren, spezialisierten Libraries für unterschiedliche Programmiersprachen wie Python oder Java bereitstellt Installation von wiringpi2 Um wiringpi2 zu installieren, wechseln wir mit dem Kommando cd ~ ins Heimverzeichnis unseres Nutzers pi. Anschließend laden wir mittels git clone git://git.drogon.net/wiringpi den Quellcode der Software herunter und wechseln mit cd wiringpi/ in das entsprechende Verzeichnis. Mit dem Kommando./build starten wir schließlich den Build Prozess, sorgen also dafür dass das Programm kompiliert und installiert wird. Dies kann einige Minuten dauern. Nach dem Abschluss des Vorgangs kann man als ersten Test mit dem Kommando gpio -v Informationen über die Software, sowie den verwendeten RPi Type (Model B, Rev.2) ausgeben lassen. gpio version: 2.20 Copyright (c) Gordon Henderson This is free software with ABSOLUTELY NO WARRANTY. 27

40 4 Konfiguration von Raspbian For details type: gpio -warranty Raspberry Pi Details: Type: Model B, Revision: 2, Memory: 512MB, Maker: Sony Und schließlich mittels gpio readall alle GPIO Pins auf ihren Status abfragen Model B BCM wpi Name Mode V Physical V Mode Name wpi BCM v 1 2 5v 2 8 SDA.1 ALT V 3 9 SCL.1 ALT v 4 7 GPIO. 7 IN ALT0 TxD v ALT0 RxD GPIO. 0 IN IN GPIO GPIO. 2 IN v 22 3 GPIO. 3 IN IN GPIO v IN GPIO MOSI ALT v 9 13 MISO ALT IN GPIO SCLK ALT ALT0 CE v ALT0 CE GPIO.17 IN IN GPIO GPIO.19 IN IN GPIO BCM wpi Name Mode V Physical V Mode Name wpi BCM Model B Installation von wiringpi2-python Als Bindeglied zwischen wiringpi2 und der Programmiersprache Python dient die Library wiringpi2-python ( Um diese einzurichten, müssen wir vorher noch einige Erweiterungen für Python installieren: sudo apt-get update Enter sudo apt-get install python-setuptools python-dev Anschließend erfolgt die eigentliche Installation: cd ~ Enter Enter git clone Enter cd WiringPi2-Python/ Enter sudo python setup.py install Enter Um die Funktionalität der Library zu testen möchten wir, wie auch mit gpio -v ermittelt, die Revision unseres RPi Boards anzeigen lassen - diesmal allerdings in Python. 28

41 4.5 Einrichtung Software Wir beginnen also in dem wir mit dem Befehl sudo python die Umgebung starten. Anschließend importieren wir die wiringpi2 Library mittels import wiringpi2 und lassen uns die Revision des Boards ausgeben wiringpi2.piboardrev(). Als Ausgabe erhalten wir wieder >> 2. Damit war der Test erfolgreich und wir können Python mit exit() verlassen Test des SPI Bus (Optional) Um Funktionalität des SPI Bus zu testen, müssen wir die GPIO Pins 9 (MISO) und 10 (MOSI) kurzschließen. Anschließend muss das Testskript heruntergeladen, kompiliert und ausgeführt werden: cd ~ Enter wget Enter gcc spidev_test.c -o spidev_test Enter./spidev_test Enter Sofern die Ausgabe nicht ausschließlich aus Nullen besteht, war der Loopback Test erfolgreich: spi mode: 0 bits per word: 8 max speed: Hz (500 KHz) FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF DE AD BE EF BA AD F0 0D Damit wären alle Vorbereitungen abgeschlossen und wir können mit der Nutzung des Raspberry Pi beginnen. 29

42

43 5 GPIO Schnittstelle Nachdem alle Vorbereitungen zur Nutzung der GPIO Schnittstelle in den letzten Kapiteln getroffen wurden, wird das Ziel in diesem Kapitel sein, mehr über diese Schnittstelle und deren Funktionen zu lernen. Es werden die grundlegenden Sicherheitshinweise im Umgang mit der Schnittstelle erörtert, wie auch die Funktion der einzelnen Bus Systeme. Zum Schluss wird das Erweiterungsboard, welches für diese Arbeit entwickelt wurde, erklärt und mittels einer Testsoftware in C auf Funktionalität getestet. 5.1 Aufbau Die GPIO Schnittstelle ist eine der besonderen Eigenschaften, welche den Raspberry Pi von einem normalen PC unterscheidet. Durch diese Anschlüsse kann der RPi mit zahlreichen Sensoren, Aktoren und Schaltern verbunden werden, um eine Vielzahl von Einsatzzwecken zu ermöglichen. Zu diesem Zweck verfügt die GPIO Leiste über mehrere Arten von Pins: Einfache GPIO Pins GPIO Pins mit Zusatz- / Alternativfunktionen 3,3 Volt / 5 Volt / Ground Anschlüsse Die genannten Pins können in nachfolgender Abbildung 5.1 eingesehen werden: Abbildung 5.1: GPIO Schnittstelle Raspberry Pi Modell A / B / B+ [11] Im vorangegangenen Kapitel 4 haben wir bereits die Alternativfunktionen einiger Pins erwähnt und diese auch für die spätere Nutzung aktiviert. Bevor wir uns aller- 31

44 5 GPIO Schnittstelle dings näher mit den Pins und deren Funktion beschäftigten, müssen wir uns zuerst mit den Einschränkungen des Raspberry Pi und dessen GPIOs vertraut machen. 5.2 Sicherheitshinweise Logik Level Der Raspberry Pi arbeitet mit einem Logik Level von 3,3 Volt. Dies bedeutet, dass die interne Schaltung des Einplatinen Computers die Spannung 3,3 Volt als HIGH oder TRUE erkennt, während 0 V (Ground) als LOW oder FALSE interpretiert wird. Im Bereich der MCU (z.b. Arduino) und SoC (z.b. Raspberry Pi) sind die Verwendung von Spannungen im Bereich von 1,8 Volt, 3,3 Volt und 5 Volt üblich. Im Unterschied zu z.b. dem Arduino ist der Raspberry Pi allerdings keines Falls 5 Volt tolerant, was bedeutet, dass niemals mehr als 3,3 Volt direkt an einen der GPIO Pins angelegt werden dürfen, da sonst das SoC beschädigt werden könnte Sicherungen Der Raspberry Pi verfügt über eine 1,1 Ampere (Modell A und B), respektive 2 Ampere (Modell B+) starke Polyfuse welche direkt an den Micro USB Port der Spannungsversorgung angeschlossen ist. Die GPIO Pins selbst verfügen über keinerlei Schutz gegen Verpolung, Kurzschluss oder Überspannung. Daher sollten Änderungen an den GPIO Pins nur im ausgeschalteten / stromlosen Zustand des RPi gemacht werden Belastbarkeit der Pins / 3,3 Volt Schiene Die 3,3 Volt Versorgung des Raspberry Pi wurde ursprünglich so entworfen, das jeder der 17 Pins mit 3 ma belastet werden konnte, was eine Gesamtbelastbarkeit von 51 ma ergibt. Allerdings bezieht sich diese Bewertung nur darauf, wenn alle Pins genutzt werden. Prinzipiell ist jeder Pin in der Lage bis zu 16 ma belastet zu werden - solange die feste Gesamtlast 51 ma nicht überschreitet, weil sonst Schäden an der Hardware auftreten können [16]. Diese Zahlen beziehen sich ausschließlich auf die Raspberry Pi Modelle A und B, das neue Modell B+ erhielt eine neue Spannungsversorgung und stellt weitere GPIO Pins zur Verfügung. In wieweit dadurch die Versorgung der GPIO Pins verbessert wurde, ist noch nicht publiziert wurden Belastbarkeit der 5 Volt Schiene Die 5 Volt Versorgung wird beim Raspberry Pi Modell A und B durch eine 1,1 Ampere Polyfuse eingeschränkt, welche selbst ca. 100 ma Stromabfall bewirkt. Daher ist die Belastbarkeit durch die Differenz aus der Beschränkung der Polyfuse und dem Eigenbedarf des Raspberry Pi, sowie weiterer angeschlossener Geräte zu errechnen. Beim Raspberry Pi Modell A (ca. 500 ma) erhält man daher 500 ma, beim Modell B (ca

45 5.3 GPIO ma) 300 ma Reserven für z.b. Erweiterungsplatinen oder USB Geräte. Beim Modell B+ wurde die Polyfuse auf 2 Ampere erhöht und zusätzlich durch die neue Spannungsversorgung der Strombedarf des Raspberry Pi selbst reduziert, weshalb man davon ausgehen kann, dass die zusätzlichen Reserven dort - je nach verwendetem Netzteil - mehr als 1,3 Ampere betragen können Zusammenfassung Nur im ausgeschalteten Zustand an der GPIO Leiste arbeiten Keine Spannungen über 3,3 Volt an den Raspberry Pi anschließen Keine Pins kurzschließen Schaltung immer doppelt auf Verpolung / falsche Belegung überprüfen Belastbarkeit beachten, größere Lasten z.b. mit Transistor schalten 5.3 GPIO Wie bereits in Abbildung 5.1 dargestellt, verfügt die GPIO Schnittstelle über eine Vielzahl an unterschiedlichen Pins deren Möglichkeiten wir nun genauer erörtern werden GPIO Die in grüner Farbe gekennzeichneten Pins stellen die normalen GPIO Pins ohne weitere Zusatzfunktionen da. Diese Pins dienen je nach Nutzereinstellung als digitale Einoder Ausgabe und können entweder über Einsatz des gpio Programms aus dem wiringpi2 Package, oder direkt per echo angesteuert werden. Als erster Schritt muss zuerst der entsprechende GPIO Pin exportiert, also für die Nutzung im Linux Userspace vorbereitet werden. Anschließend muss die Art der Verwendung angegeben werden, also ob der Pin zur Ein- oder Ausgabe dienen soll. Abschließend kann der Status des Pins ausgelesen, beziehungsweise HIGH oder LOW gesetzt werden - je nach Einsatzzweck. # Beispiel für die direkte Verwendung in Bash mittels echo # Pin 24 exportieren sudo echo "24" > /sys/class/gpio/export # Pin 24 als Ausgabe festlegen echo "out" > /sys/class/gpio/gpio24/direction # Pin 24 auf HIGH setzen echo 1 > /sys/class/gpio/gpio24/value # Pin 24 auf LOW setzen echo 0 > /sys/class/gpio/gpio24/value # Export von Pin 24 aufheben 33

46 5 GPIO Schnittstelle echo "24" > /sys/class/gpio/unexport # Pin 27 exportieren sudo echo "27" > /sys/class/gpio/export # Pin 27 als Eingabe festlegen echo "in" > /sys/class/gpio/gpio27/direction # Pin 27 auslesen cat /sys/class/gpio/gpio27/value # Export von Pin 27 aufheben echo "27" > /sys/class/gpio/unexport Die Verwendung mit dem Tool gpio geht noch etwas einfacher und benötigt keine root Rechte: # Beispiel für die direkte Verwendung in Bash mittels gpio # Pin 24 exportieren und als Ausgabe festlegen gpio export 24 out # Pin 24 auf HIGH setzen gpio -g write 24 1 # Pin 24 auf LOW setzen gpio -g write 24 0 # Export von Pin 24 aufheben gpio unexport 24 # Pin 27 exportieren und als Eingabe festlegen gpio export 27 in # Pin 27 auslesen gpio -g read 27 # Export von Pin 27 aufheben gpio unexport PWM Pulse-width modulation (PWM) ist ein Verfahren mit welchem die Breite eines ausgegebenen Stromimpulses kontrolliert werden kann. In diesem Zusammenhang wird der Begriff duty cycle verwendet, um die Dauer des HIGH Zustandes des Pins innerhalb einer Zeiteinheit zu beschreiben. Entspricht der duty cycle z.b. 60%, so führt der Pin in genau diesem Prozent einer Zeiteinheit Strom. Durch das lückenhafte Versorgen des Gerätes mit Strom sinkt die Spannung je nach duty cycle von 100% auf bis 0% ab. Mit dieser Technik können damit nicht nur die Helligkeit von LEDs kontrolliert werden, sondern im Sonderfall auch die Stellung von Servo Motoren. PWM ist bei dem Raspberry Pi auf dem GPIO 18 verfügbar. Aufgrund der besonderen Technik (prinzipiell dem schnellen, kontrollierten Ein- / Ausschalten des Pins) ist eine sinnvolle Nutzung mittels echo Befehls nicht gegeben. Allerdings kann auch in diesem Fall das Programm gpio genutzt werden: 34

47 5.3 GPIO # Beispiel für die direkte Verwendung in Bash mittels gpio # Pin 18 exportieren und als Ausgabe festlegen gpio export 18 out # Pin 18 in PWM Modus versetzen gpio -g mode 18 pwm # Pin 18 als PWM auf 100% duty cycle setzen gpio -g pwm # Pin 18 als PWM auf 25% duty cycle setzen gpio -g pwm # Pin 18 als PWM auf 10% duty cycle setzen gpio -g pwm # Pin 18 als PWM auf 1% duty cycle setzen gpio -g pwm # Pin 18 als PWM auf 0% duty cycle setzen gpio -g pwm 18 0 # Export von Pin 18 aufheben gpio unexport I2C Inter-Integrated Circuit (I2C) ist ein Bussystem, welches 1982 von der Firma Philips (heute: NXP Semiconductors) veröffentlicht wurde. Dieses System sollte vorrangig dazu genutzt werden, einzelne Komponenten innerhalb eines geschlossen Systems miteinander zu verbinden, z.b. Mikrocontroller mit verschiedenen Arten von Sensoren, Speichern und Analog/Digital bzw. Digital/Analog Wandlern. Da das System neben der Versorgungsspannung und Masse nur zwei Leitungen (SDA für Daten, SCL für Takt) benötigt wird es auch als Two Wire Interface (TWI) bezeichnet. SDA wie SCL müssen durch einen hochohmigen Widerstand an die Versorgungsspannung angeschlossen werden, da der Bus im Leerlauf Konstant HIGH signalisiert (Pull-Up). In einem normalen I2C Netzwerk erzeugt der Master, meist ein Mikrocontroller, den Takt für den SCL Port und fragt die einzelnen Slaves, meist simple Sensoren oder Signalwandler, unter Verwendung des SDA Ports ab. Es ist allerdings auch möglich Master-Master Netzwerke zu erstellen und Teilnehmer bei aktivem Netzwerk an- und abzuklemmen (Hot-Swap) [25], S. 444 / [19]. Der Raspberry Pi verfügt über zwei I2C Busse. Bei der Revision pre 2.0 wurde nur der Bus 0 auf dem GPIO Header ausgeführt. Mit dem Wechsel zur Revision 2.0 wanderte der Bus 0 auf ein zusätzliches Verbindungsfeld (P5) und auf dem GPIO Header lag nun der Bus 1 an. Beim Modell B+ änderte sich dieser Zustand dahingehend, dass der Header P5 wieder entfiel, der Bus 1 weiterhin auf seiner Stelle auf dem GPIO Header verblieb und der Bus 0 fortan als ID_I2C geführt wurde und für die Nutzung durch den Anwender nicht mehr verfügbar war. Der I2CBus auf dem Raspberry Pi arbeitet in der Standard Geschwindigkeit (100 khz) und im Fast-Mode (400 khz). Theoretisch kann ein I2C Bus bis zu 127 Teilneh- 35

48 5 GPIO Schnittstelle mer adressieren. Mittels des Befehls i2cdetect -y 1 können alle Geräte auf dem Bus 1 angezeigt werden: a b c d e f 00: : : : UU : : : : Unter anderem ist hier die Adresse 0x48 angezeigt, welches die hexadezimale Adresse eines LM75B Temperatursensors ist. Da laut Datenblatt dieses Sensors die Temperatur bei diesem Gerät im ersten Register liegt, können wir nun mit dem Befehl i2cget -y 1 0x48 0x00 auf dem Bus 1 an der Geräteadresse 48 das Register 0 auslesen. Wir erhalten die Antwort in Form einer hexadezimalen Notation, z.b. 0x23, was im dezimal System einer Temperatur von 35 Grad Celsius entspricht I2S Nach dem Erfolg von I2C folgte 1986 Philips Erweiterung I2S. Dabei handelt es sich um ein Bussystem, welches ausschließlich zur Verwendung innerhalb von Audiogeräten vorgesehen war. Es wurden hierbei wieder ein Takt Signal (SCK) und ein Daten Signal (SD) verwendet, zusätzlich wurden diese beiden Leitungen allerdings noch um eine sogenannte Word Select (WS) Leitung ergänzt. Je nachdem ob sich Word Select im Zustand LOW oder HIGH befindet, werden die übertragenen Daten dem linken, respektive rechtem Audiokanal zugeordnet. Da die Übertragung vollständig digital geschieht, ist sie verlustfrei und daher für die Verbindung von z.b. Digitalen Signal Prozessoren und Digital/Analog Wandlern geeignet. Beim Raspberry Pi ist der I2S Bus bei der Revision pre 2.0 nicht vorhanden, bei der Revision 2.0 auf dem Header P5 zu finden und bei dem Modell B+ auf dem GPIO Header. [21] SPI Der Serial Peripheral Interface (SPI) Bus wurde 1979 von Motorola in Form eines Mikrocontrollers auf Basis des Motorola Mikroprozessors veröffentlicht. Im Gegensatz zum I2C Bus von Philips wurde er nicht getrennt formal beschrieben, sondern ist nur vage in den Unterlagen des Controllers als Teil dessen definiert [15]. Das SPI System verwendet vier Anschlüsse: Takt (SCLK), Master Out - Slave In (MOSI), Master In - 36

49 5.3 GPIO Salve Out (MISO), sowie Slave Select (SS). Der Takt wird hierbei konstant vom Master über SCLK vorgegeben, und die Daten je nach Senderichtung entweder über MOSI (vom Master zum Slave) oder MISO (vom Slave zum Master) ausgetauscht. Zusätzlich muss für jedes zu adressierende Gerät im Bus eine Slave Select Leitung bereitstehen. Diese wird vom Master auf LOW gezogen, um den Slave in Empfangsbereitschaft zu schalten. Der Vorteil dieses Systems liegt in der vollduplexfähigen Kommunikation, der Nachteil in der Anzahl der benötigten n Slave Select Leitungen pro n Geräte in der Sternverbindung. Sollte man kompatible Slave Geräte gleicher Bauart verwenden, so können diese auch kaskadiert werden, womit nur eine Slave Select Leitung nötig ist. Die Geräte können dann wie ein Schieberegister ausgelesen werden [25], S Auf dem Raspberry Pi sind drei SPI Controller verfügbar, jedoch nur einer auf die GPIO Leiste ausgeführt. Der Controller kann auf 0.5 MHz, 1 MHz, 2 MHz, 4 MHz, 8 MHz, 16 MHz und 32 MHz Taktrate eingestellt werden [13]. Die maximal verwendbare Taktrate hängt aber auch vom verwendeten Slave ab. SPI kann unter Raspberry Pi am besten über die entsprechende Library mittels Python oder C angesteuert werden Serial Die serielle Schnittstelle (auch V.24 oder RS-232-C genannt) wurde 1969 von der Electronic Industries Association (EIA) für die Nutzung im Computer Umfeld definiert, was den ursprünglichen Einsatzzweck von RS-232 im Umfeld der Fernschreiber erweiterte [7]. Serielle, asynchrone Verbindungen wurden vor den Zeiten der Breitbandverbindungen genutzt um Modems mit dem Computer zu verbinden um Zugriff zum Internet oder dem Telefonnetz herzustellen. Mit dem Aufkommen von A-/S-DSL und Kabelbreitbandverbindungen wurde diese Schnittstelle an regulären Rechnern immer unwichtiger, kann aber bis heute vorgefunden werden. Eine besondere Bedeutung nimmt dieses Interface weiterhin bei eingebetteten Systemen, Mikrocontrollern, GPS Empfängern, wissenschaftlichen Geräten sowie Netzwerkequipment und Servern ein. Die Übertragung der seriellen Schnittstelle erfolgt prinzipiell über zwei Adern: RX (Recieve) und TX (Transmit). Die Verbindung muss direkt zwischen Sender und Empfänger hergestellt und die beiden Datenadern überkreuzt angeschlossen werden, also RX des Senders auf TX des Empfängers und umgekehrt. Zusätzlich muss die Masse (GND) beider Systeme miteinander verbunden werden. Als Geschwindigkeiten werden häufig 4800, 9600, und Baud (Zeichen pro Sekunde) verwendet. Eine Besonderheit ist im Bereich von eingebetteten Systemen, Mikrocontrollern, GPS Empfängern und anderen Klein- und Kleinstgeräten zu beachten: Im Gegensatz zu den im RS-232- C definierten Signalpegeln von -15 Volt bis +15 Volt [12] setzen diese Geräte oft einen sogenannten TTL Pegel (Transistor-Transistor Logic) ein, welcher zwischen 0 Volt und 3,3 Volt, respektive 5 Volt liegen kann. Dies trifft auch auf den Raspberry Pi zu, weshalb dessen serielle Schnittstelle in keinem Fall direkt mit dem PC zu verbinden ist, da sonst eine Beschädigung des SoC des Raspberry Pi möglich ist. Durch die Nutzung eines TTL-Serial Konverters ist diese Verbindung gefahrlos möglich. 37

50 5 GPIO Schnittstelle Auf dem Raspberry Pi kann die serielle Schnittstelle auf verschiedene Arten genutzt werden. Zum einen um einen GPS Empfänger anzuschließen, einen Mikrocontroller mit Arduino Bootloader zu programmieren oder um Modell A Boards ohne Netzwerkinterface per PPP (Point-to-Point Protocoll) in ein Netzwerk zu integrieren. Ein einfaches und empfehlenswertes Tool um die serielle Schnittstelle zu nutzen, stellt minicom dar. 5.4 Das Erweiterungsboard Um die Nutzung der GPIO des Raspberry Pi zu ersten Testzwecken so einfach wie möglich zu machen, wurde im Rahmen dieser Thesis ein Erweiterungsboard entworfen und zur Verwendung im Rahmen der Lehre der HTW Saar in zehnfacher Stückzahl aufgebaut Design Das Design sollte so ausgelegt sein, dass es möglichst klein, kostengünstig und dennoch vielseitig verwendbar sein sollte. Durch die Entwicklung des Boards sollten besonders Fehler die beim Aufbau der Schaltungen mit der GPIO Leiste auftreten könnten verhindert werden, und der Fokus auf die Entwicklung der Software gelegt werden. Da zum Zeitpunkt des Beginns dieser Thesis der Raspberry Pi Modell B+ noch nicht verfügbar war, wurde die Platine auf Basis des Modell A/B Rev. 2.0 entwickelt und ist auf beiden Versionen ohne Einschränkungen verwendbar. Ebenfalls ist die Nutzung mit dem neuen Modell B+ möglich, wobei allerdings keine korrekte mechanische Entlastung wie bei den Modellen A/B Rev. 2.0 durch ein passendes Bohrloch gegeben ist. Das Erweiterungsboard stellt folgende Merkmale zur Verfügung: Vier einfarbige LEDs Vier Taster LM75B (I2C Temperatursensor) MCP3002 (SPI Zweikanal Analog/Digital Wandler) mit angeschlossenem Light Dependent Resistor (LDR) Dabei sind die LEDs in einem Steuerkreuz angeordnet und den betreffenden Tastern zugeordnet Routing Die Belegung und Anschlüsse der einzelnen Komponenten auf dem Erweiterungsboard lässt sich der angefügten Grafik und Tabelle entnehmen. 38

51 5.4 Das Erweiterungsboard LM75B Nor t h Eas t Wes t Sout h Bauteil Bemerkung GPIO LED North grün, PWM 18 LED East rot 23 LED West gelb 25 LED South blau 24 Switch North Pull-Down 4 Switch East Pull-Down 17 Switch West Pull-Down 22 Switch South Pull-Down 27 LM75B SDA 2 SCL 3 MOSI 10 MISO 9 SCLK 11 CS / SS 8 MCP3002 MCP3002 Abbildung 5.2 & Tabelle 5.1: Erweiterungsboard und Routing der Komponenten Als Besonderheiten sei dabei zu erwähnen, dass die erste LED (LED North / grün) am PWM Anschluss des RPi angeschlossen ist, um die Nutzung dieses Verfahrens zu demonstrieren. Die LEDs selbst werden nicht direkt von den GPIO Pins versorgt, sondern schalten einen Transistor, welche wiederum die Schaltlast übernimmt und die LEDs mit 5 Volt Spannung versorgt. Weiterhin werden die Taster durch einen Pull-Down Widerstand konstant auf LOW gezogen, sind also mit der Masse des Raspberry Pi verbunden. Es ist üblich Taster entweder per Pull-Down auf LOW oder per Pull-Up auf HIGH zu ziehen, um einen stets definierten Zustand zu erreichen. Erst beim Schließen des Kontaktes wird der entsprechende GPIO Port mit 3,3 Volt Spannung verbunden. Zur Temperaturmessung steht ein LM75B zur Verfügung, ein I2C Sensor, welcher direkt auf dem Board verbaut ist. Durch das normale Auslesen des Wertes mittels i2cget erhält man den Temperaturwert in 8 bit Darstellung, also nur Abstufungen von einzelnen Grad. Möchte mit die kompletten 11 bit Auflösung des Sensors ausnutzen, also eine Auflösung von bis zu 0,125 Grad Celsius Unterschied erreichen, so muss das entsprechende Register in doppelter Byte Länge ausgelesen und ausgewertet werden. Dazu kommen wir in einem späteren Kapitel. Der erwähnte Lichtsensor (LDR) verhält sich wie ein Widerstand und erreicht je nach einfallendem Licht Werte zwischen 40,5 k und 1 M Ohm. Da der Raspberry Pi allerdings 39

52 5 GPIO Schnittstelle über keinen Analog/Digital Wandler verfügt um z.b. eine Spannungsmessung durchzuführen, wird der an einem MCP3002 angeschlossen, einem externen Analog Digital Converter (ADC) welcher über SPI angesprochen wird. Insgesamt bleiben damit ausschließlich die GPIO Pins 14 und 15 (TX/RX der Serial Verbindung) und GPIO 7 (SPI Slave Select 1) ungenutzt Testprogramm Um die Funktionalität des Erweiterungsboards zu überprüfen, gibt es im Home Verzeichnis des Raspberry Pi Hauptnutzers pi den Unterordner RPi_HTW/boardTest, welchen das in C geschrieben Testprogramm boardtest beinhaltet. Es verwendet die bereit vorher installierte wiringpi2 Library, um die unterschiedlichen Funktionen des Erweiterungsboards auf Funktionalität zu überprüfen. Dazu gehören die LEDs, die PWM Funktionalität, die Schalter wie auch der I2C Bus mit dem angeschlossenen LM75B Temperatursensor und dem SPI Bus mit dem MCP3002 ADC Wandler. Letzterer gibt auf Kanal 0 den Helligkeitswert des angeschlossenen LDR wieder. Um es zu nutzen muss es zuerst kompiliert werden, was der Aufruf von make erledigt. Anschließend kann das Programm unter Verwendung von sudo sudo./boardtest gestartet werden. Eine Beispielausgabe sieht wie folgt aus: LED Test beginnt NORTH: LED gruen EAST: LED rot WEST: LED gelb SOUTH: LED blau LED Test beendet PWM Test beginnt PWM Test beendet Switch Test beginnt NORTH: Switch druecken NORTH: Switch ok EAST: Switch druecken EAST: Switch ok WEST: Switch druecken WEST: Switch ok SOUTH: Switch druecken SOUTH: Switch ok Switch Test beendet LM75B Temperatursensor Test beginnt LM75B: Grad Celsius LM75B: Grad Celsius LM75B: Grad Celsius LM75B: Grad Celsius LM75B: Grad Celsius 40

53 5.4 Das Erweiterungsboard LM75B: Grad Celsius LM75B: Grad Celsius LM75B: Grad Celsius LM75B: Grad Celsius LM75B: Grad Celsius LM75B Temperatursensor Test beendet MCP3002 ADC Test beginnt MCP Channel 0: 232 MCP Channel 0: 320 MCP Channel 0: 348 MCP Channel 0: 72 MCP Channel 0: 48 MCP Channel 0: 300 MCP Channel 0: 332 MCP Channel 0: 724 MCP Channel 0: 612 MCP Channel 0: 616 MCP3002 ADC Test beendet Die boardtest.c ist im Anhang D.1 verzeichnet. Sollte ein eigenes Programm ohne die make File kompiliert werden, so ist es wichtig, den Schalter -lwiringpi anzugeben. Beispielsweise: gcc -o test test.c -lwiringpi. 41

54

55 6 Bash Programmierung In diesem Kapitel soll die Nutzung des Erweiterungsboards unter Verwendung der Bash anhand eines Beispielprojektes aufgezeigt werden: Ziel wird es sein, einen Klon des alten elektronischen Spiels Simon zu erstellen, und damit die in der Vorlesung Betriebssystem Einführung gelernten Grundlagen zu vertiefen und festigen. 6.1 Grundlagen Simon Simon ist ein 1977 erfundenes, elektronisches reaktions- und Merkspiel auf Basis des Texas Instruments TMS1000 Mikrocontrollers [18]. Simon verfügt über vier LEDs (grün, rot, blau, gelb) und entsprechend, den Farben zugewiesene Taster. Das Spiel beginnt in dem eine zufällige Farbe auf dem Spielzeug aufleuchtet und der Spieler eben dem dieser Farbe entsprechenden Schalter drückt. War er erfolgreich, werden in der nächsten Runde die Farbe des ersten Zyklus plus eine weitere Farbe vorgegeben, welcher der Spieler wieder in der richtigen Reihenfolge eingeben muss. Das Spiel endet falls der Spieler eine falsche Kombination eingibt. Abbildung 6.1: Simon 43

56 6 Bash Programmierung Ablaufdiagramm Ein prinzipieller grober Ablauf des Spiels ist in Abbildung 6.2 aufgezeigt. Darüber hinaus empfiehlt es sich zusätzlich den Start und das Ende des Programms durch die Verwendung aller LEDs zu kennzeichnen und gegeben falls einen rekursiven Aufruf beim Ende durchzuführen. Abbildung 6.2: Flowchart Simon 6.2 Programmierung Alle genannten Dateien sind im Home Verzeichnis des Hauptnutzers pi im Unterordner RPi_HTW/Simon zu finden. 44

57 6.2 Programmierung Erweiterungsboard und Hilfsfunktionen Das Erweiterungsboard bietet für dieses Projekt die vier genannten LEDs, nebst den benötigten Schaltern. Um die Entwicklung zu vereinfachen steht die gpio.sh im Anhang D.2 zur Verfügung, welche die benötigten Funktionen zur Nutzung der an die GPIO Pins angeschlossenen LEDs und Schalter bereitstellt. Für jede LED existiert jeweils eine Funktion, um diese ein-, beziehungsweise auszuschalten. Für die Schalter gibt es jeweils eine Funktion, welche den aktuellen Status zurück gibt (0 für LOW beziehungsweise nicht gedrückt, 1 für HIGH beziehungsweise gedrückt). lednorthon() lednorthoff() ledeaston() ledeastoff() ledweston() ledwestoff() ledsouthon() ledsouthoff() switchnorth() switcheast() switchwest() switchsouth() Neben diesen Funktionen gibt es noch mehrere Hilfsfunktionen: ledon() ledoff() ledblink() ledblinkfast() Die beiden ersten Hilfsfunktionen schalten alle LEDs an, beziehungsweise aus. Die letzteren beiden lassen jeweils alle LEDs einmal mit einem Abstand von 0,5, respektive 0,25 Sekunden aufblinken. In den nachfolgenden beiden Unterkapiteln werden wir diese Funktionen nutzen. 45

58 6 Bash Programmierung LED Ausgabe Um eine LED per Bash anzusteuern, können wir unter Verwendung der gpio.sh folgendes Skript erstellen: #!/ bin/bash source gpio. sh lednorthon sleep 2 lednorthoff Mit source gpio.sh binden wir die gpio.sh und ihre Hilfsfunktionen ein, welche wir mit lednorthon beziehungsweise lednorthoff nutzen um die grüne LED an- beziehungsweise auszuschalten. sleep 2 rundet das ganze Programm ab und erzeugt eine Pause von zwei Sekunden, damit der sonst zu schnelle Schaltvorgang für das menschliche Auge sichtbar wird. Das Codelisting der demoled.sh ist als Langversion auch im Anhang D.3 verfügbar. Nachdem die Datei erstellt wurde, muss sie unter Verwendung des Befehls chmod +x dateiname ausführbar gemacht, und anschließend mittels./dateiname gestartet Switch Eingabe Die Eingabe ist wie die LED Ausgabe ebenfalls sehr einfach zu bewerkstelligen: #!/ bin/bash source gpio. sh while : do if [ $( switchnorth ) = 1 ] then echo " North gedrueckt " lednorthon else lednorthoff fi done Das Programm läuft in diesem Beispiel in einer endlosen Schleife, welche mittels der Tastenkombination Strg + C unterbrochen werden kann. Durch die while Schleife wird ständig geprüft, ob der Schalter North gedrückt wurde. Ist dies der Fall, wird eine entsprechende Nachricht ausgegeben, und die dazu passende LED angeschaltet. Sollte dem nicht so sein, wird die LED ausgeschaltet. Es gibt auch die Möglichkeit Pins nicht per polling, also dauerndem Abfragen auf einen Wechsel des Zustandes zu überprüfen, sondern per Interrupt. Dies setzt aber eine höhere Programmiersprache voraus und ist daher leider in Bash nicht möglich (siehe dazu: priority-interrupts-and-threads/). 46

59 6.3 Abschluss 6.3 Abschluss Mit den hier gelernten Grundlagen, sowie dem Wissen aus der Vorlesung Betriebssystem Einführung sollte es nun möglich sein, einen einfachen Klon des Spiels Simon mittels des Raspberry Pi und dem Erweiterungsboard zu erschaffen. Das Musterprogramm simon.sh ist im Anhang D.5 zu finden, allerdings nicht auf der SD Karte vorinstalliert, um die Studenten zur Entwicklung einer eigenen Lösung anzuhalten. 47

60

61 7 Python Programmierung Nachdem wir im vorangegangenen Kapitel die Nutzung der GPIO mittels Bash gelernt haben, wollen wir diese Fähigkeiten nun mit der Programmiersprache Python vertiefen. Dieses Kapitel soll als leichter Einstieg in die Sprache Python die Grundlagen für die Vorlesung Systemmanagement und Sicherheit liefern, wie auch die praktische Nutzung von Bus Systemen, wie sie in Rechnerarchitektur und Mikroprozessortechnik gelehrt werden verdeutlichen. Am Ende dieses Kapitels werden sowohl die Grundlagen zur Nutzung von Python gelegt, als auch der I2C, wie auch der SPI Bus, in die Nutzung eingeflossen sein. 7.1 Arbeiten auf dem Raspberry Pi Python 2 / Python 3 Python ist ähnlich wie PHP, eine Skriptsprache die zur Ausführung einen Interpreter benötigt. Von Python gibt es inzwischen zwei verschiedene Versionen: Python 2 (2.7.x) und Python 3 (3.4.x). Python 3 enthält Verbesserungen, welche allerdings die Kompatibilität unter anderem wegen der Entfernung redundanter Befehle zu alten Skripten brechen kann. Da die Version 2 bereits länger existiert, viele Bibliotheken nur in dieser Version funktionieren, und dieser Branch immer noch mit aktuellen Updates versorgt wird, ist Python 2 auch auf dem Raspberry Pi die empfohlene und verwendete Standardversion. Sollten durch den vorzeitigen Abbruch eines Programms LEDs im aktiven Zustand verbleiben, können die GPIO Pins mittels des CLI Kommandos gpio reset zurückgesetzt und damit die LEDs ausgeschaltet werden Programmierung mittels IDLE Verwendet man den Raspberry Pi als vollwertigen PC, empfiehlt sich die Nutzung des Python Integrated Development Environment (IDE) IDLE. IDLE liegt auf dem RPi in zwei Versionen vor. Einmal als IDLE (zur Nutzung mittels Python 2) als auch als IDLE3 (welches Python 3 einsetzt). Wie bereits erwähnt werden wir Python 2, und damit das normale IDLE nutzen. Da die Nutzung der GPIO Pins root Rechte erfordert, sollte man IDLE nicht per Klick auf das Desktop Icon, sondern mittels LXTerminal unter Verwendung des Befehls sudo idle & starten, um die Anwendung im Kontext des root Nutzers zu starten. Die Nutzung selbst ist sehr einfach: Über das Menü File, New Window kann man ein neues Editor Fenster erstellen, in welchem man seinen Python Code schreiben, laden und speichern kann. Ausgeführt wird dieser Code über das Menü Run per Klick auf Run Module. 49

62 7 Python Programmierung Programmierung mittels CLI Sollte man den RPi Headless verwenden, also ohne Bildschirm und Eingabegeräte, empfiehlt sich die Nutzung eines Texteditors wie vi in Kombination mit python direkt auf Ebene des Command Line Interface (CLI) / der Shell. Dazu sollte man seinen Programmcode mit einem Editor seiner Wahl schreiben, speichern und schließlich direkt unter Verwendung von sudo python dateiname ausführen. 7.2 Grundlagen der Python Programmierung Ausführung Es gibt drei prinzipielle Möglichkeiten ein Python Programm auszuführen: 1.) Die direkte Eingabe der Befehle in eine interaktive Shell wie IDLE oder python auf dem CLI. 2.) Der direkte Aufruf einer geschriebenen Skriptdatei mittels python dateiname.py im CLI. 3.) Die Verwendung der Shebang Zeile (#!/usr/bin/python) als erste Zeile in einer Skriptdatei, gefolgt vom setzen des X / Ausführungbarkeits-Bits (./chmod +x dateiname.py) und dem anschließenden Aufruf im CLI (./dateiname.py). Um Python kennen zu lernen empfiehlt sich besonders am Anfang die Arbeit in einer interaktiven Shell, für die spätere Programmentwicklung die Methoden Zwei und Drei Variablen Variablen werden bei Python durch Zuweisung eines Wertes angelegt: #!/ usr/bin/python meininteger =2+3 meinfloat =5.0 meinstring =" Hallo Welt " print ( meininteger ) print ( meininteger / 2) print ( meinfloat / 2) print ( meinstring + "!" + " Binaer %s Hex %s" % ( bin ( meininteger ), hex ( meininteger ))) Dies erzeugt die Ausgabe: Hallo Welt! Binaer 0 b101 Hex 0 x Operatoren Python verwendet die üblichen arithmetischen Operatoren. Besondere Beachtung fällt dabei auf den verwendeten Datentyp: Sollte ein Integer Wert geteilt werden, so ist das 50

63 7.2 Grundlagen der Python Programmierung Tabelle 7.1: Arithmetische Operatoren Operation Ergebnis Bezeichnung Summe Differenz 5 * 1 5 Produkt 5 / 2 2 Quotient (Integer) 5.0 / Quotient (Float) 5 % 2 1 Modulo 2 ** 3 8 Power Ergebnis ebenfalls ein Integer. Wenn im Rahmen dieser Rechenoperation eine rationale Zahl entsteht, so wird diese abgerundet und als ganze Zahl dargestellt. Die Vergleichsoperatoren sind ebenfalls bekannt sofern man Vorkenntnisse in Java besitzt: Tabelle 7.2: Vergleichsoperatoren Operation x == y x!= y x > y x < y x >= y x<= y Bezeichnung Gleichheit Ungleichheit Größer Kleiner Größer-gleich Kleiner-gleich Da in diesem Dokument mit hardwarenahen Anwendungen gearbeitet wird, ist es auch von Bedeutung die binären, bitweisen Operatoren zu kennen. Dies ist besonders wichtig da Geräte in Bussystemen wie I2C oder SPI ihre Ergebnisse in einzelnen Registern speichern, welche meist wenige Byte umfassen. Dabei besitzt häufig jedes Bit eines Bytes eine eigene Relevanz, zum Beispiel die Konfiguration eines Pins als Einoder Ausgang, je nachdem ob dessen Bit gesetzt ist oder nicht. Durch die binären, bitweisen Operationen können diese Werte entsprechend schnell gesetzt beziehungsweise ausgelesen werden. Um einen Wert in binärer Schreibweise eingeben zu können, muss ihm der Präfix 0B vorgestellt werden. So würde zum Beispiel die Zahl 0B von Python als 240 verstanden werden. Alternativ können die binären, bitweisen Operationen auch mit den Werten in beliebiger anderer, zum Beispiel dezimaler Schreibweise angewandt werden. Die vier wichtigsten Operationen, welche auch schon in den Vorlesungen Digital- 51

64 7 Python Programmierung technik 1 und Mikroprozessortechnik gelehrt wurden, sollen an dieser Stelle noch einmal kurz wiederholt werden: 1.) Binäres Und: Es werden jeweils die Werte gleicher Position beider binärer Notationen per Und miteinander verknüpft. Sollten diese beide Wahr entsprechen, ist auch das Ergebnis Wahr - sonst Falsch. Tabelle 7.3: Binäres Und x y x & y ) Binäres Oder: Das binäre Oder entspricht der gleichen Wirkungsweise wie Und, allerdings wird die Ausgabe Wahr solange entweder eine oder beide Werte Wahr sind. Tabelle 7.4: Binäres Oder x y x y ) Binäres XOR: XOR, welches auch zur Verschlüsselung genutzt wird, erwartet als Voraussetzung für eine Wahre Ausgabe zwei unterschiedliche Eingaben. Tabelle 7.5: Binäres XOR x y x ˆ y

65 7.2 Grundlagen der Python Programmierung 4.) Binäres 1er Komplement: Das 1er Komplement wird zur Berechnung im Bereich der Mikrocontroller verwendet und negiert alle Eingaben. Tabelle 7.6: Binäres 1er Komplement x x Tabelle 7.7: Binäre, bitweise Operatoren Operation Ergebnis Bezeichnung x & y / 1 Binäres Und x y / 255 Binäres Oder x ˆ y / 254 Binäres XOR x / -16 Binäres 1er Komplement Vergleiche und Schleifen Eine wichtige Besonderheit bei Python ist das Fehlen von Klammern zum Kapseln von Schleifen oder Befehlsfolgen. Stattdessen verwendet Python Einrückungen wie die Tabulator Taste, um den Programmcode zu formatieren und strukturieren. Dies erzeugt sauberen und lesbaren Code, welcher ohne diese Einrückungen nicht lauffähig ist. Im nächsten Beispiel wird eine while Schleife und eine verschachtelte if Anweisung gezeigt. Da die letzte Zeile sich auf der gleichen Ebene wie die Vergleiche befinden, ist sie kein Teil davon und wird nach der Abarbeitung der Vergleiche aufgerufen. #!/ usr/bin/python meininteger =40 while meininteger < 45: if meininteger == 42: print (" Integer ist 42! ") elif meininteger < 42: print (" Integer ist kleiner als 42 ") else : print (" Integer ist groesser als 42 ") meininteger += 1 Dies erzeugt die Ausgabe: Integer ist kleiner als 42 Integer ist kleiner als 42 53

66 7 Python Programmierung Integer ist 42! Integer ist groesser als 42 Integer ist groesser als 42 Die for Schleife kann auf mehrere Art genutzt werden: #!/ usr/bin/python # Zaehlschleife, Werte zwischen 0 und 5 ( von 0-4) ausgeben for i in range (0,5) : print (i) # Äquivalent zur for each # jedes Element einer Liste verwenden sprachen = [" Python ", " Java ", "C", " Haskell "] for i in sprachen : print ("% s ist eine Programmiersprache " % i) # jeden Buchstaben eines Strings ausgeben meinstring =" Hallo Welt " for i in meinstring : print (i) Dies erzeugt die Ausgabe: Python ist eine Programmiersprache Java ist eine Programmiersprache C ist eine Programmiersprache Haskell ist eine Programmiersprache H a l l o W e l t Funktionen Funktionen werden in Python mittels def definiert. Als Beispiel wollen wir an dieser Stelle zwei Algorithmen aus der Vorlesung Programmierung 1 [9] verwenden, in diesem Fall die Berechnung des größten gemeinsamen Teilers. 54

67 7.2 Grundlagen der Python Programmierung #!/ usr/bin/python import timeit # Importiere die Python Bibliothek timeit zur Laufzeitmessung von Funktionen def ggtintuitiv (m, n): # Definiere die erste Funktion ggtintuitiv, welche die Teiler einzeln probiert m = abs (m) n = abs (n) teiler = 1; groessterteiler = 1 while (( teiler <= m) and ( teiler <= n)): if ( ( m % teiler == 0 ) and ( n % teiler == 0) ): groessterteiler = teiler teiler += 1 return groessterteiler def ggteuklid (m, n): # Definiere die zweite Funktion ggteuklid, welche den Algorithmus nach Euklid verwendet m = abs (m) n = abs (n) r = m % n while (r > 0) : m = n n = r r = m % n return n t_ intuitiv = timeit. Timer (" ggtintuitiv ( , ) ", " from main import ggtintuitiv ") # Erstelle ein neues Objekt von der Klasse Timer. # Der erste Parameter ist die zur Messung auszuführende Funktion, # der zweite Parameter die einmalig auszuführende Setup Anweisung, bei der wir die zu messende # Funktion nocheinmal in den Kontext einbinden zeit_ intuitiv = t_ intuitiv. timeit (1) # Führe die Messung einmal durch und schreibe die vergangene Zeit in die Variable t_euklid = timeit. Timer (" ggteuklid ( , ) ", " from main import ggteuklid ") zeit_ euklid = t_ euklid. timeit (1) print (" Inuitiv : " + str ( ' {:.2 f} '. format ( zeit_intuitiv )) + " Sekunden ") print (" Euklid : " + str ( ' {:.10 f} '. format ( zeit_euklid )) + " Sekunden ") # Gebe jeweils die abgelaufene Zeit für beide Berechnungen aus # '{:.2 f}'. format ( Variable ) beschränkt die Anzahl der Nachkommastellen print (" Euklid ist : " + str ( ' {:.2 f} '. format ( zeit_intuitiv / zeit_euklid )) + "x schneller ") 55

68 7 Python Programmierung # Berechne wie vielfach Euklid schneller ist, wandle den Float in einen String um und gebe den Wert aus Im direkten Vergleich zu den Folien (Seite 16/18) von Herrn Folz kann man erkennen, dass die nötigen Anpassungen in den Algorithmen minimal waren. Die Beispielausgabe zeigt dass die Berechnung die geringen Ressourcen des Raspberry Pi stark beanspruchen und wie massiv der Unterschied zwischen beiden Implementationen in der Laufzeit aussieht: Inuitiv : Sekunden Euklid : Sekunden Euklid ist : x schneller Besonders interessant wird es, wenn man diese Werte jeweils der entsprechenden Implementation in Java und C++ auf einem Intel Core i7-620m mit 2,66 GHz (JDK 1.6 und GNU C++) gegenüberstellt: Tabelle 7.8: Laufzeiten beider Algorithmen in Sekunden RPi Python i7 Java i7 C++ ggtintuitiv 28,54 0,163 0,043 ggteuklid , , Wie man erkennen kann bleibt die effiziente Implementierung nach Euklid auch auf dem Raspberry Pi mit seinen geringen Ressourcen gut verwendbar, während die intuitive Version spürbare Verzögerungen erzeugt. Es zeigt sich, dass im Bereich der Embedded Systeme auch heute noch eine ressourcensparende Programmierung notwendig ist und unabhängig von der verwendeten Programmiersprache zum guten Stil gehören sollte Bibliotheken Im vorangegangen Abschnitt haben wir bereits mit timeit eine Bibliothek verwendet, ohne auf die Verwendung dieser genauer einzugehen. Bibliotheken können, wie auch in anderen Sprachen dazu genutzt werden, den Funktionsumfang zu erweitern. In Python werden Bibliotheken normal durch die Verwendung von import, gefolgt vom Bibliotheksname eingebunden. Beispielsweise import time, womit die gesamte Bibliothek time eingebunden wird. Möchte man nur einzelne Module aus der Bibliothek einbinden, so kann man dies mit dem Schema from time import sleep tun. Damit wird nur das Modul sleep aus der Bibliothek time eingebunden. Um einer doppelten Nutzung des gleichen Namespaces vorzubeugen, kann man Module und Bibliotheken auch beim Import mittels as umbenennen: So kann nach dem Import mit import time as zeit das Modul sleep unter Verwendung von zeit.sleep() aufgerufen werden. 56

69 7.3 Verwendung der GPIO mittels Python 7.3 Verwendung der GPIO mittels Python Nachdem wir bereits die GPIO in Bash mittels der abstrahierenden gpio.sh verwendet haben, werden wir diesmal die Pins mittels der wiringpi2-python Bibliothek direkt ansprechen. Die wichtigsten Funktionen sind in der WiringPi API Dokumentation ( bzw. WiringPi Referenz ( nachlesbar Digitale Ausgabe: LEDs Beginnen wir mit der digitalen Ausgabe unter Verwendung des Erweiterungsboards. Zur Hilfestellung sei an dieser Stelle die entsprechenden LEDs und ihre GPIO Nummern vermerkt: Tabelle 7.9: LEDs auf dem Erweiterungsboard Bauteil Bemerkung GPIO LED North grün, PWM 18 LED East rot 23 LED West gelb 25 LED South blau 24 #!/ usr/bin/python import wiringpi2 as wpi # Importiere die Python Bibliothek wiringpi2 unter # dem Namen wpi zur Nutzung der GPIO from time import sleep # Importiere das Modul sleep aus der # Python Bibliothek time wpi. wiringpisetupgpio () # Initialisiert die Bibliothek unter Nutzung des # BCM GPIO Namenschema wpi. pinmode (18,1) # Definiert den Port der gruenen LED als Ausgabe wpi. digitalwrite (18,1) # Setzt den Port der gruenen LED auf HIGH sleep (0.5) # Wartet eine halbe Sekunde wpi. digitalwrite (18,0) # Setzt den Port der gruenen LED auf LOW Dieses Listing entspricht dem Hello World des Physical Computing: Es schaltet die grüne LED an, aus und beendet das Programm. 57

70 7 Python Programmierung Übungsaufgabe zur digitalen Ausgabe Um das Verständnis für die grundlegende Nutzung von Python und der GPIO zu Vertiefen empfiehlt sich folgende Übungsaufgabe: Man erstelle einen Programmcode um alle LEDs, beginnend mit der Grünen, im Uhrzeigersinn einzuschalten. Anschließend sollen, wieder beginnend mit der Grünen, alle LEDs wieder ausgeschaltet werden. Nachdem Durchlauf dieser Prozedur soll dieser Vorgang bis zur Eingabe von Strg + C wiederholt werden. Die Lösung der Aufgabe findet sich im Anhang unter D Digitale Eingabe: Schalter Nachdem wir nun die digitale Ausgabe beherrschen, wenden wir uns der digitalen Eingabe zu. Wir beginnen mit der Auflistung der Schalter auf dem Erweiterungsboard: Tabelle 7.10: Schalter auf dem Erweiterungsboard Bauteil Bemerkung GPIO Switch North Pull-Down 4 Switch East Pull-Down 17 Switch West Pull-Down 22 Switch South Pull-Down 27 #!/ usr/bin/python import wiringpi2 as wpi wpi. wiringpisetupgpio () wpi. pinmode (4,0) # Definiert den Port des North Switches als Eingabe while True : print (" North Switch : %d" % ( wpi. digitalread (4) )) # Wert des North Switches auslesen und ausgeben In diesem Fall nutzen wir pinmode mit dem Pin des ersten Schalters und setzen seinen Modus auf 0, was der Eingabe entspricht. Anschließend können wir in einer endlos Schleife den Wert dieses Pins abfragen und auf der Python Konsole ausgeben Übungsaufgabe zur digitalen Eingabe Als Übung zur digitalen Eingabe verwenden wir ein kleines Reaktionsspiel unter Nutzung der vier LEDs und einem Schalter. Wie bei der vorherigen Übung sollen bei diesem Programm alle LEDs zum Leuchten gebracht werden. Es gilt weiterhin die Richtung im Uhrzeigersinn, allerdings soll diesmal die blaue LED den Anfang machen. 58

71 7.3 Verwendung der GPIO mittels Python Weiterhin sollen die LEDs nicht dauerhaft an- oder ausgeschaltet werden, sondern in jedem Zyklus einmal kurz aufblinken. Zwischen jeder LED soll eine Pause von einer halben Sekunde liegen. Ziel des Spieles soll es sein, den äußerten Schaltern (South / S) zu drücken, kurz bevor die grüne LED leuchtet. Sollte dies erfolgreich sein, so soll die LED zweimal kurz aufblinken, die Pause zwischen dem aufleuchten der einzelnen LEDs um den Wert 0.05 reduziert, die aktuelle Rundenanzahl ausgegeben werden und das Spiel wieder bei der blauen LED starten. Sollte man zu früh oder zu spät drücken, so soll die falsche LED aufleuchten und eine entsprechende Nachricht auf dem Bildschirm angezeigt werden und das Programm sich selbst beenden. Gleiches gilt, falls man gar nicht den Schalter in der Runde betätigt. Die Lösung der Aufgabe findet sich im Anhang unter D Abschlussprojekt GPIO: Binärzähler Als Abschlussprojekt soll an dieser Stelle ein Vier-Bit-Binärzähler programmiert werden. Dabei sollen zwei Schalter und alle vier LEDs verwendet werden. Der äußerte Schalter (South / S) soll dabei bei jeder Betätigung im Python Programm eine Zählvariable um 1 erhöhen, während der darüber liegende Schalter (West / W) den Zähler auf 0 zurücksetzen soll. Das Programm soll bis zu 15 zählen und danach wieder zu 0 umbrechen und von vorne zu zählen beginnen. Die LEDs sollen bei diesem Projekt die Ausgabe der Zahl in binärer Notation ermöglichen. Dabei ist jede LED als eine Stelle einer vierstelligen, binären Notation zu verstehen: 2³ 2⁰ 2² 2¹ Abbildung 7.1: Festlegung des binären Wertes jeder LED Zusätzlich zu der Ausgabe der Zahl über die LEDs, soll das Programm weiterhin den Wert über die Konsole in den Formen Dezimal, Binär und Hexadezimal ausgeben. Die Lösung der Aufgabe findet sich im Anhang unter D.8. 59

72 7 Python Programmierung 7.4 Verwendung des I2C Bus mittels Python Im nachfolgenden Beispiel wird schrittweise erörtert, wie der I2C Bus mit wiringpi2, hier in Python verwendet wird. Als Beispiel dazu dient der verbaute LM75B Temperatursensor. Die nachfolgenden technischen Daten lassen sich im Datenblatt des Sensors unter [14], respektive in der Datei RPi_HTW/Datenblaetter/LM75B.pdf auf dem Raspberry Pi finden Adressierung Wie bereits unter Abschnitt erklärt, hat jeder Teilnehmer im I2C Bus eine eindeutige, hexadezimal notierte Adresse. Da allerdings verschiedene Anwendungszwecke mehrere Geräte einer Art erfordern könnten (zum Beispiel mehrere LM75B in einem Bus, um die Temperatur an verschiedenen Punkten eines Raumes zu überwachen), haben viele Hersteller die Möglichkeit mitgegeben, die Adresse ihres I2C Gerätes durch Adressanschlüsse zu verändern. Diese Adresspins können wir in dem Pinout des Datenblattes unter 6.1, Figure 2 (Pin configuration for SO8) einsehen: Abbildung 7.2: LM75B Pinout Da hier mit A0, A1 und A2 gleich drei Pins zur Verfügung stehen, können also je nach unterschiedlichen Verbindungen mit HIGH (3,3V) und LOW (Ground) bis zu 2 3, also acht unterschiedliche Adressen erzeugt werden. Dies bedeutet, dass bis zu acht Geräte im gleichen Bus ohne Adresskonflikt angeschlossen werden können. Wie sich diese Konfiguration der Pins auf die Adresse auswirkt, ist unter 7.3, Table 4 ersichtlich: Abbildung 7.3: LM75B Adresstabelle Die ersten vier Bit sind immer die Folge Anschließend wird die Wertigkeit der Bits (Eins oder Null) dadurch bestimmt, ob die Adresspins entweder HIGH (1) 60

73 7.4 Verwendung des I2C Bus mittels Python oder LOW (0) sind. In dem Fall des vorliegenden Erweiterungsboards wurden alle Adresspins mit Ground verbunden, entsprechen also Null. Dadurch entsteht die fertige Geräteadresse von oder 0x48. Das fehlende, letzte Bit wird im I2C Bus verwendet um festzulegen, ob es sich um lesende oder schreibende Anfrage im Bus handelt. Dies wird allerdings durch die verwendete Bibliothek durchgeführt. In unserem Beispiel öffnen wir die entsprechende I2C Verbindung wie folgt: lm75b_ file = wpi. wiringpii2csetup (0 x48 ) # Verbindung zu LM75B oeffnen if lm75b_ file < 0: print (" Kann den I2C Bus nicht oeffnen!") else : Register des Sensors In I2C System wird sowohl die Konfiguration, als auch der Datenaustausch über 8 oder 16 Bit tiefe Register erledigt. Der LM75B hat, wie unter 7.4, Table 5 zu sehen ist vier davon: Abbildung 7.4: LM75B Register Das 16 Bit tiefe Temperaturregister (0x00), das 8 Bit tiefe Konfigurationsregister (0x01) sowie zwei 16 Bit tiefe Register für Temperaturschwellwerte bei denen der Sensor unterschiedliche Aktionen unternehmen kann: Hysteresis (0x02) und Overtemperature shutdown (0x03). Damit ist klar, dass wir für die Auswertung der Temperatur das Register 0x00 mit 16 Bit auslesen müssen. lm75_ temp = wpi. wiringpii2creadreg16 ( lm75b_file, 0) # Register 0 von LM75B in 16 Bit Tiefe auslesen 61

74 7 Python Programmierung Interpretation des Temperaturwertes Wie der ausgelesene Wert zu interpretieren ist, findet sich im Bereich 7.4.3, Table 9: Abbildung 7.5: LM75B Temperatur Register Die dort gekennzeichneten Bits D10-D0 enthalten den nötigen, 11 Bit langen Temperaturwert. Die restlichen Bits des LSByte (Stellen 4-0) sind durch das X als Don t Care gekennzeichnet und sollten ignoriert werden. Am einfachsten erhält man den Temperaturwert, in dem man den ausgelesenen Wert wie im Datenblatt beschrieben in den MSB und den LSB Bereich aufteilt. Der LSB Bereich muss anschließend um fünf Stellen nach rechts geshiftet werden und mit einer sieben verundet werden, um die übrigen Stellen in dem Byte gleich Null zu setzen. Anschließend muss das HSB um drei Stellen nach links geshiftet und mit dem vorbereiten LSB Bereich logisch durch ein Order verbunden werden. Damit werden die beiden Bestandteile sauber zusammengesetzt. Zum Schluss muss nur noch der erhaltene Wert mit multipliziert, oder durch acht geteilt werden, um die Temperatur in Grad Celsius zu erhalten. lm75b_hi = ( lm75_temp & 0 xff ) lm75b_ lo = ( lm75_ temp >> 8) # In 2x 8 Bit Werte ( High und Low Bit) umwandeln n = lm75b_ hi << 3 (( lm75b_ lo >> 5) & 0 x07 ) # gemaess Datasheet des Sensors aus den ausgelesenen # 2 Bytes die korreten 11 Bits fuer den Temperaturwert # extrahieren und shiften lm75b_ temp = n / 8.0 # 11 Bit Wert in Temperatur umwandeln Das gesamte Listing ist im Anhang D.9 einsehbar Übungsaufgabe zur Verwendung des I2C Bus Um die gelernten Fähigkeiten zu festigen, soll in dieser Übung eine Temperatursteuerung unter Verwendung des LM75B entwickelt werden. Der Sensor soll zum Start die Umgebungstemperatur messen und diese als Standardtemperatur verwenden. Sollte die Temperatur ein Grad unter diese Temperatur fallen, soll mit der blauen LED angezeigt werden, dass der Raum abgekühlt ist. Sollte die Temperatur hingegen ein Grad über diese Temperatur steigen, soll dies mit der roten LED repräsentiert werden. Die Idealtemperatur soll mit der grünen LED dargestellt werden. Zusätzlich zu den Übergängen dieser Zustände, soll - sofern der Zustand stabil ist - der Name des Zustandes und die aktuelle Temperatur ausgegeben werden. Die Lösung der Aufgabe findet sich im Anhang unter D

75 7.5 Verwendung des SPI Bus mittels Python 7.5 Verwendung des SPI Bus mittels Python Nachdem nun die Kommunikation über den I2C Bus erfolgreich funktioniert, wenden wir uns dem letzten Bauteil auf dem Erweiterungsboard zu, dem MCP Kanal 10 Bit Analog/Digital Wandler mit SPI Bus. Damit erweitern wir den RPi um zwei analoge Eingänge. In unserem Beispiel wird der erste Kanal, Kanal 0 dazu genutzt den Wert eines angeschlossenen Lichtsensors / LDR auszulesen. Da es sich um einen 10 Bit Wandler handelt, kann dieser die angelegte analoge Spannung von 0 bis 3,3 V in einem digitalen Wertebereich von 0 bis 1024 (2 10 ) darstellen. Das bedeutet, dass jede analoge Spannungssteigerung von 3,3 mv sich in einer Erhöhung des digitalen Wertes um 1 auswirkt. Die folgenden technischen Daten lassen sich im Datenblatt des Wandlers unter [17], respektive in der Datei RPi_HTW/Datenblaetter/MCP3002.pdf auf dem Raspberry Pi finden Adressierung Wie bereits in Abschnitt beschrieben haben die SPI Bus Teilnehmer keine eigene Adresse, sondern werden über eine eigene Leitung zum Master (Slave Select) in den Kommunikationsmodus geschaltet. In dem Fall des Erweiterungsboards wurde der MCP3002 auf den Slave Select 0 gelegt, den ersten der beiden Slave Selects. Diese sind in keinem Fall mit den internen beiden ADC Kanälen des MCP3002 zu verwechseln, welche nicht zur Kommunikation dienen, sondern zur Messung von analogen Spannungen - der eigentlichen Aufgabe des MCP3002. Da wir weiterhin die Übertragungsgeschwindigkeit beim Öffnen des SPI Bus angeben müssen, suchen wir im Datenblatt nach den entsprechenden Angaben. Auf Seite drei findet man unter Timing Parameters, Clock Frequency die entsprechenden Angaben: Abbildung 7.6: MCP3002 SPI Bus Geschwindigkeit Da der MCP3002 auf dem Erweiterungsboard mit 3,3 V Spannung versorgt wird, liegt die maximale Geschwindigkeit für den SPI Bus bei 1,2 MHz. Da der Controller des RPi allerdings ganze vielfache bevorzugt, werden wir eine Geschwindigkeit von 1 MHz verwenden - sowie den Slave Select 0. #!/ usr/bin/python import wiringpi2 as wpi from binascii import hexlify from binascii import unhexlify mcp3002_ channel =0 if wpi. wiringpispisetup (0, ) < 0: print (" Kann den SPI Bus nicht oeffnen!") 63

76 7 Python Programmierung else : Kommunikation Die Kommunikation beim SPI Bus verläuft bidirektional, in dem eine gewisse Anzahl an Bytes in Form eines Bytebuffers über den Bus versendet, und gleichzeitig wieder von der Gegenstelle mit Daten gefüllt wird. Das heißt, dass nach erfolgter Kommunikation der Sendebuffer mit den Zieldaten überschrieben wurde. Der Ablauf dieser Kommunikation kann im Datenblatt der Abbildung 6-2 entnommen werden: Abbildung 7.7: MCP3002 SPI Kommunikation D IN beziehungsweise MCU Transmitted Data beschreibt dabei die Kommunikation vom RPi zum MCP3002, D OUT beziehungsweise MCU Received Data die umgekehrte Richtung. Wie wir sehen beginnt die Kommunikation im ersten Byte bei D IN mit einem Don t Care, gefolgt von einem feststehenden Startbit. Anschließend folgen drei Bits welche bestimmte Optionen festlegen: SGL/DIFF, ODD/SIGN und MSBF. Beendet wird das Byte mit weiteren drei Don t Care Bits. Das zweite Byte besteht völlig aus Don t Care Bestandteilen, die wir beliebig mit Eins und Null füllen könnten. Für die bessere Lesbarkeit werden wir allerdings alle Don t Care Bits mit Null füllen. Unser bisheriger Kommunikationsbuffer sieht also so aus: Tabelle 7.11: Vorläufiger Kommunikationsbuffer Bit Mode 0 1??? Die Bedeutung und korrekten Einstellungen für die noch fehlenden Werte von SGL/- DIFF und ODD/SIGN kann man in der Tabelle 5-1 nachlesen: 64

77 7.5 Verwendung des SPI Bus mittels Python Abbildung 7.8: MCP3002 Konfigurationsbits Es handelt sich dabei um Konfigurationsbit mit welchem man die Funktionsart des MCP3002 einstellen kann. SGL/DIFF bestimmt ob der Analog/Digital Wandler entweder die Spannung an einem seiner beiden Kanäle lesen (Einstellung 1) oder ob er den Unterschied zwischen beiden Kanälen feststellen soll (Einstellung 0). Da wir die Spannung am Kanal 0, an dem auch der LDR angeschlossen ist messen wollen, müssen wir das SGL/DIFF Bit auf 1 setzen. In diesem Modus wird das ODD/SIGN Bit dazu genutzt, den Kanal auszuwählen. Ist das Bit auf 0 gesetzt, wird Kanal 0 gemessen, wird es auf 1 gesetzt, wird der Kanal 1 gemessen. Somit sind unsere Einstellungen für SGL/DIFF 1 und für ODD/SIGN 0. Das letzte Bit, MSBF", sorgt dafür, dass die Kommunikation im MSB Format abläuft, wenn es gesetzt ist. Ansonsten arbeitet der Wandler mit LSB. Wir lassen diese Einstellung auf 0. Damit steht unser Buffer für die Kommunikation fest: Tabelle 7.12: Kommunikationsbuffer Bit Mode Wir müssen diese Werte nur entsprechend in Python in das entsprechende Format bringen und auf Slave Select 0 übertragen: buffer =((6+ mcp3002_ channel ) < <12) buffer = '{0: x} '. format ( int ( buffer )) # Wandle den dezimalen Integer in einen # hexadezimalen String um, ohne das Praefix # 0x davorzustellen buffer = unhexlify ( buffer ) # Wandle den Hex String in einen Byte String um if ( wpi. wiringpispidatarw (0, buffer ) == -1): # Anforderung auf den SPI Bus auf Slave # Select 0 schreiben und 65

78 7 Python Programmierung # gleichzeitig ( bi - direktional ) mit der # Antwort den Buffer ueberschreiben print (" Schreibfehler auf SPI Bus!\ n") else : Nachdem die Kommunikation beendet ist, befindet sich im Buffer bereits die Antwort in Form eines Byte Strings, welche dann nur noch in einen Integer Wert umgewandelt werden muss: buffer = hexlify ( buffer ) # Wandle den Byte String nach Hex um buffer = int ( buffer, 16) # Wandle den Hex String in einen # dezimalen Integer Wert um Dieser Wert kann nun noch formatiert und ausgegeben werden. Das gesamte Listing ist im Anhang D.11 einsehbar. Zusätzliches zu der hier beschriebenen, manuellen Kommunikation bietet wiringpi2 bereits eine Bibliothek, welche die Kommunikation mit dem MCP3002 vereinfacht. Das entsprechende Listing befindet sich im Anhang D Übungsaufgabe zur Verwendung des SPI Bus Nachdem nun die Nutzung des SPI Bus erlernt wurde, soll in der nachfolgenden Übungsaufgabe der Einsatz des LDR als Näherungssensor realisiert werden: Um die Messwerte leichter zu visualisieren, soll dazu die Bibliothek curses verwendet werden. Mit dieser Bibliothek kann in der Konsole ein virtuelles Fenster erzeugt werden, in dessen Koordinatensystem man zum Beispiel eine horizontale Linie zeichnen kann. Wichtig ist dabei zu erwähnen, dass diese Bibliothek nicht in IDLE läuft und daher der Aufruf direkt aus LXTerminal wie in Abschnitt als 2) und 3) beschrieben erfolgen muss. Wegen dem Aufruf von curses wird das Programm in diesem Fall durch das Drücken einer beliebigen Taste beendet und sollte nicht per Strg + C abgebrochen werden. #!/ usr/bin/python import curses from time import sleep screen = curses. initscr () # curses in der Konsole initialisieren dims = screen. getmaxyx () # y, x Groesse des Bildschirms in Array ablegen # dims [0] entspricht y Wert # dims [1] entspricht x Wert screen. nodelay (1) # nodelay Modus aktivieren um screen. getch () # im non - Blocking Modus zu betreiben while ( screen. getch () == -1) : # fuehre die Schleife aus solange keine 66

79 7.5 Verwendung des SPI Bus mittels Python # Taste gedrueckt wurde screen. erase () # Bildschirm loeschen screen. hline (20, 0, '-', 40) # horinzontale Linie aus - Zeichen malen # hline ( y Koordinate, x Beginn, ch Zeichen, n Laenge ) screen. refresh () # Bildschirm neu laden sleep (0.1) curses. endwin () # Beenden Die Aufgabe wird nun sein, dieses Skript dahingehend zu ergänzen, dass die horizontale Linie jeweils den aktuellen Messwert des an den MCP3002 angeschlossenen LDR anzeigt. Wichtig wird dabei sein, jeweils zum Start des Skriptes den aktuellen Messwert als Maximalwert zu erfassen, sowie den Wert jeweils korrekt zu skalieren, damit der Lichtsensor als Eingabegerät für z.b. ein Spiel verwendbar werden könnte. Die Lösung befindet sich im Anhang D

80

81 8 Mathematica In dem letzten Kapitel dieser Arbeit soll die Einführung in die Nutzung der Software Mathematica und deren Verwendung mit den GPIO Pins im Vordergrund stehen. Dabei soll gegen Ende des Kapitels sowohl die grundlegende Nutzung der Software selbst, wie auch die Verwendung in Kombination mit dem Erweiterungsboard verständlich geworden sein. Diese Software könnte besonders in den Vorlesungen Mathematik 1-3, sowie Informatikgrundlagen und Graphentheorie Verwendung finden. 8.1 Grundlagen Die Software Wolfram Mathematica ist ein mathematisch-naturwissenschaftliches Programm zur Lösung unterschiedlichster Probleme. Dies beinhaltet die Lösung von Gleichungen, Zeichnung von Plots, Darstellung und Visualisierung von Problemen sowie Datenanalyse. Damit kann Mathematica im Bereich der Mathematik, Computerwissenschaften, Physik, Biologie, Medizin, Ingenieurswesen, Finanz- und Sozialwissenschaften eingesetzt werden. Die Besonderheiten dieser Software umfassen neben zahlreichen Sonderfunktionen wie Cloud- und Grindcomputing, wissensbasiertem Programmieren, Integration neuer Technologien wie Internet of Things und webbasierten Sensoren auch eine leistungsfähige API, sowie die Möglichkeit eigene Programme mittels des MathLink Protokolls als Datenquelle und -senke in Wolfram zu integrieren. Aufgrund des großen Funktionsumfangs und der Leistungsfähigkeit dieser Software ist diese im Normalfall für Studenten nur eingeschränkt oder gar nicht zugänglich. Durch die kostenlose Integration der aktuellen Version von Wolfram Mathematica in Raspbian, dem Betriebssystem des Raspberry Pi, wird dieses Werkzeug also für einen größeren Nutzerkreis verfügbar. Weiterhin können durch die Nutzung des Raspberry Pi als Schnittstelle auch I2C, SPI und GPIO Sensoren und Aktoren mittels MathLink Protokolls von anderen Raspberry Pis oder vollwertigen Mathematica Arbeitsplätzen verwendet werden. 8.2 Benutzung Mathematica ist auf dem RPi in zwei Varianten installiert: wolfram, die CLI basierte Form von Mathematica, welche ausschließlich zur Verwendung im reinen Textmodus und in Verbindung mit Skripten gedacht ist, sowie mathematica, welche alle Features in der grafischen Benutzeroberfläche bietet - inklusive der Ausgabe von Grafiken und Plots. Für unsere Einsatzzwecke werden wir mathematica einsetzen. 69

82 8 Mathematica Beispiele Free-form input Zu berechnende Ausdrücke werden in Mathematica einfach in das sogenannte Sketchbook, dem Hauptfenster der Software eingegeben und durch Bestätigung mittels + Enter ausgewertet. Diese Form von Eingabe nennt sich Free-form input und wird von Mathematica offline auf dem RPi gelöst. So können Berechnungen wie 1+1, 3/4*(5-2)^2 oder ganze Gleichungen (Solve[x^3+x^2-8x-12==0,x]) und auch bestimmte Integrale (Integrate[Sin[x],{x,0,Pi}]) einfach und direkt gelöst werden. Die möglichen Befehle und Verwendungsmöglichkeiten können in der ausführlichen Sprachreferenz von Wolfram unter nachgelesen werden Beispiele Wolfram Alpha query Wesentlich leistungsfähiger ist allerdings die Nutzung der Wolfram Alpha query, welches die Eingaben online an die Wolfram Alpha Compute Engine weiterleitet. Wie in Abbildung 8.1 gezeigt, erfolgt die Umstellung dieser Eingabe per Klick auf das + Zeichen im Sketchbook. Abbildung 8.1: Umstellung der Eingabeart in Wolfram Wichtig ist, dass die Nutzung dieses Softwareteils nur bei aktiver Internetanbindung möglich ist. Die Stärke von Wolfram Alpha liegt in der Auswertung natürlicher Sprache in mathematische Zahlen. Kombiniert mit der Menge der in der Compute Engine 70

83 8.2 Benutzung hinterlegten Daten, sind dadurch interessante Auswertungen mit sehr geringem Aufwand möglich. So zum Beispiel die wissenschaftlich nicht relevante Berechnung der Anzahl aller Einwohner von Frankreich mal der Höhe des Eiffelturms: Abbildung 8.2: Berechnung mittels Wolfram Alpha Weitere Beispiele und mögliche Einsatzzwecke sind in der Dokumentation von Wolfram Alpha unter zu finden. 71

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

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

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

Memeo Instant Backup Kurzleitfaden. Schritt 1: Richten Sie Ihr kostenloses Memeo-Konto ein

Memeo Instant Backup Kurzleitfaden. Schritt 1: Richten Sie Ihr kostenloses Memeo-Konto ein Einleitung Memeo Instant Backup ist eine einfache Backup-Lösung für eine komplexe digitale Welt. Durch automatisch und fortlaufende Sicherung Ihrer wertvollen Dateien auf Ihrem Laufwerk C:, schützt Memeo

Mehr

Mein eigener Homeserver mit Ubuntu 10.04 LTS

Mein eigener Homeserver mit Ubuntu 10.04 LTS In diesem Tutorial zeige ich ihnen wie sie mittels einer Ubuntu Linux Installation einen eigenen Homeserver für Windows Freigaben aufsetzen (SMB/CIFS). Zunächst zur der von mir verwendeten Software- /Hardwarekombination:

Mehr

Anleitung # 4 Wie mache ich ein Update der QBoxHD Deutsche Version

Anleitung # 4 Wie mache ich ein Update der QBoxHD Deutsche Version Anleitung # 4 Wie mache ich ein Update der QBoxHD Deutsche Version Stand: 25. Juni 2009 Voraussetzung Das Update ist notwendig, um Fehler und Neuentwicklungen für die QBoxHD zu implementieren. Es gibt

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

-Bundle auf Ihrem virtuellen Server installieren.

-Bundle auf Ihrem virtuellen Server installieren. Anleitung: Confixx auf virtuellem Server installieren Diese Anleitung beschreibt Ihnen, wie Sie das Debian-Confixx- -Bundle auf Ihrem virtuellen Server installieren. 1. Schritt: Rufen Sie die Adresse http://vsadmin.host-4-you.de

Mehr

Anleitung zur Installation von Windows XP Professional und dem Multilanguage Interface

Anleitung zur Installation von Windows XP Professional und dem Multilanguage Interface Anleitung zur Installation von Windows XP Professional und dem Multilanguage Interface Installation Windows XP Professional Den Computer / Laptop einschalten und Windows XP Professional Installations CD

Mehr

EASYINSTALLER Ⅲ SuSE Linux Installation

EASYINSTALLER Ⅲ SuSE Linux Installation EASYINSTALLER Ⅲ SuSE Linux Installation Seite 1/17 Neuinstallation/Update von Meytonsystemen!!! Die Neuinstallation von MEYTON Software ist relativ einfach durchzuführen. Anhand dieser Beschreibung werden

Mehr

Installation LehrerConsole (für Version 6.2)

Installation LehrerConsole (für Version 6.2) Dr. Kaiser Systemhaus GmbH Köpenicker Straße 325 12555 Berlin Telefon: (0 30) 65 76 22 36 Telefax: (0 30) 65 76 22 38 E-Mail: info@dr-kaiser.de Internet: www.dr-kaiser.de Installation LehrerConsole (für

Mehr

Leitfaden für die Installation der Videoüberwachung C-MOR

Leitfaden für die Installation der Videoüberwachung C-MOR Dieser Leitfaden zeigt die Installation der C-MOR Videoüberwachung als VM mit der freien Software VirtualBox von Oracle. Die freie VM Version von C-MOR gibt es hier: http://www.c-mor.de/download-vm.php

Mehr

Zunächst empfehlen wir Ihnen die bestehenden Daten Ihres Gerätes auf USB oder im internen Speicher des Gerätes zu sichern.

Zunächst empfehlen wir Ihnen die bestehenden Daten Ihres Gerätes auf USB oder im internen Speicher des Gerätes zu sichern. Anleitung zum Softwareupdate Eycos S 75.15 HD+ Eine falsche Vorgehensweise während des Updates kann schwere Folgen haben. Sie sollten auf jeden Fall vermeiden, während des laufenden Updates die Stromversorgung

Mehr

Live Update (Auto Update)

Live Update (Auto Update) Live Update (Auto Update) Mit der Version 44.20.00 wurde moveit@iss+ um die Funktion des Live Updates (in anderen Programmen auch als Auto Update bekannt) für Programm Updates erweitert. Damit Sie auch

Mehr

Rechnernetze Praktikum. Versuch 5: Linux embedded. Ziel

Rechnernetze Praktikum. Versuch 5: Linux embedded. Ziel Rechnernetze Praktikum Versuch 5: Linux embedded Ziel Installieren des Betriebssystems Raspian auf einem Raspberry mit anschließender Konfiguration und Installation weiterer Programme unter Linux. Greifen

Mehr

Installation und Sicherung von AdmiCash mit airbackup

Installation und Sicherung von AdmiCash mit airbackup Installation und Sicherung von AdmiCash mit airbackup airbackup airbackup ist eine komfortable, externe Datensicherungslösung, welche verschiedene Funktionen zur Sicherung, sowie im Falle eines Datenverlustes,

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

Recover Anleitung ONE XCELLENT-10 Tablet via USB Stick

Recover Anleitung ONE XCELLENT-10 Tablet via USB Stick Recover Anleitung ONE XCELLENT-10 Tablet via USB Stick Um Ihr ONE T10-E1 Tablet wieder in den Auslieferungszustand zurück zu versetzen, wenn das vorinstallierte Windows 8.1 nicht mehr startet, führen Sie

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

Windows Vista Security

Windows Vista Security Marcel Zehner Windows Vista Security ISBN-10: 3-446-41356-1 ISBN-13: 978-3-446-41356-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41356-6 sowie im Buchhandel

Mehr

Anleitung zur Durchführung von Softwareaktualisierungen THERMOMAX THX - DL

Anleitung zur Durchführung von Softwareaktualisierungen THERMOMAX THX - DL Anleitung zur Durchführung von Softwareaktualisierungen THERMOMAX THX - DL Datenlogger Einleitung Sehr geehrte Damen und Herren, vielen Dank das Sie sich für ein Produkt aus unserem Hause entschieden haben.

Mehr

Leitfaden zur Installation von Bitbyters.WinShutdown

Leitfaden zur Installation von Bitbyters.WinShutdown Leitfaden zur Installation von Bitbyters.WinShutdown für Windows 32 Bit 98/NT/2000/XP/2003/2008 Der BitByters.WinShutDown ist ein Tool mit dem Sie Programme beim Herunterfahren Ihres Systems ausführen

Mehr

Anleitung zur Nutzung des SharePort Utility

Anleitung zur Nutzung des SharePort Utility Anleitung zur Nutzung des SharePort Utility Um die am USB Port des Routers angeschlossenen Geräte wie Drucker, Speicherstick oder Festplatte am Rechner zu nutzen, muss das SharePort Utility auf jedem Rechner

Mehr

Lizenzen auschecken. Was ist zu tun?

Lizenzen auschecken. Was ist zu tun? Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.

Mehr

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung Nach dem Update auf die Version 1.70 bekommen Sie eine Fehlermeldung,

Mehr

Netzwerk einrichten unter Windows

Netzwerk einrichten unter Windows Netzwerk einrichten unter Windows Schnell und einfach ein Netzwerk einrichten unter Windows. Kaum ein Rechner kommt heute mehr ohne Netzwerkverbindungen aus. In jedem Rechner den man heute kauft ist eine

Mehr

TeamSpeak3 Einrichten

TeamSpeak3 Einrichten TeamSpeak3 Einrichten Version 1.0.3 24. April 2012 StreamPlus UG Es ist untersagt dieses Dokument ohne eine schriftliche Genehmigung der StreamPlus UG vollständig oder auszugsweise zu reproduzieren, vervielfältigen

Mehr

MetaQuotes Empfehlungen zum Gebrauch von

MetaQuotes Empfehlungen zum Gebrauch von MetaQuotes Empfehlungen zum Gebrauch von MetaTrader 4 auf Mac OS Auch wenn viele kommerzielle Angebote im Internet existieren, so hat sich MetaQuotes, der Entwickler von MetaTrader 4, dazu entschieden

Mehr

Raspberry Pi. Grundlagen Workshop Pi and More 5 Nico Maas

Raspberry Pi. Grundlagen Workshop Pi and More 5 Nico Maas Raspberry Pi Grundlagen Workshop Pi and More 5 Nico Maas Zur Person Nico Maas IT Systemelektroniker (RZ UNI SB) Praktische Informatik (HTW SB) mail@nico-maas.de www.nico-maas.de @nmaas87 22.06.2014 Nico

Mehr

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten. ewon - Technical Note Nr. 001 Version 1.3 Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten. 19.10.2006/SI Übersicht: 1. Thema 2. Benötigte Komponenten

Mehr

How to install freesshd

How to install freesshd Enthaltene Funktionen - Installation - Benutzer anlegen - Verbindung testen How to install freesshd 1. Installation von freesshd - Falls noch nicht vorhanden, können Sie das Freeware Programm unter folgendem

Mehr

Handbuch B4000+ Preset Manager

Handbuch B4000+ Preset Manager Handbuch B4000+ Preset Manager B4000+ authentic organ modeller Version 0.6 FERROFISH advanced audio applications Einleitung Mit der Software B4000+ Preset Manager können Sie Ihre in der B4000+ erstellten

Mehr

Für Windows 7 Stand: 21.01.2013

Für Windows 7 Stand: 21.01.2013 Für Windows 7 Stand: 21.01.2013 1 Überblick Alle F.A.S.T. Messgeräte verfügen über dieselbe USB-Seriell Hardware, welche einen Com- Port zur Kommunikation im System zur Verfügung stellt. Daher kann bei

Mehr

Wissenswertes über LiveUpdate

Wissenswertes über LiveUpdate Wissenswertes über LiveUpdate 1.1 LiveUpdate «LiveUpdate» ermöglicht den einfachen und sicheren Download der neuesten Hotfixes und Patches auf Ihren PC. Bei einer Netzinstallation muss das LiveUpdate immer

Mehr

Installationsanleitung CLX.PayMaker Home

Installationsanleitung CLX.PayMaker Home Installationsanleitung CLX.PayMaker Home Inhaltsverzeichnis 1. Installation und Datenübernahme... 2 2. Erste Schritte Verbindung zur Bank einrichten und Kontoinformationen beziehen... 4 3. Einrichtung

Mehr

Konfiguration Firewall (Zyxel Zywall 10) (von Gruppe Schraubenmeier)

Konfiguration Firewall (Zyxel Zywall 10) (von Gruppe Schraubenmeier) Konfiguration Firewall (Zyxel Zywall 10) (von Gruppe Schraubenmeier) Firewall über Seriellen Anschluss mit Computer verbinden und Netzteil anschliessen. Programm Hyper Terminal (Windows unter Start Programme

Mehr

Updateseite_BuV-PlugIn-NERZ-Gesamt

Updateseite_BuV-PlugIn-NERZ-Gesamt Autoren Dipl.-Ing. H. C. Kniß Dipl.-Math. L. Givorgizova Ersteller Geschäftsstelle NERZ e. V. Kölner Straße 30 D-50859 Köln Version: 5.0 Stand: 15.02.2013 Status: akzeptiert 1 Allgemeines 1.1 Änderungsübersicht

Mehr

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

IBM Software Demos Tivoli Provisioning Manager for OS Deployment Für viele Unternehmen steht ein Wechsel zu Microsoft Windows Vista an. Doch auch für gut vorbereitete Unternehmen ist der Übergang zu einem neuen Betriebssystem stets ein Wagnis. ist eine benutzerfreundliche,

Mehr

USB DISK ANSCHLUSS WAHLTASTER. Vorteile dieses USB Interfaces:

USB DISK ANSCHLUSS WAHLTASTER. Vorteile dieses USB Interfaces: USB Floppy Disk Das USB Floppy Laufwerk ersetzt das 1.44MB Diskettenlaufwerk durch einen USB Stick. Bis zu 100 virtuelle Disketten können auf einem USB Stick (bis zu 4GB Größe) gespeichert werden. Vorteile

Mehr

Anleitung RS232-Aufbau

Anleitung RS232-Aufbau 2015 Anleitung RS232-Aufbau 1 Dokumentation Aufbau und Inbetriebnahme RS-232 1. Anlage aufbauen 2 2. Netzwerkkonfiguration 2 o Allgemein 2 o Zentral PC 4 o Drucker 5 3. OpticScore Server Deinstallieren

Mehr

UpToNet Events and Artists Installation der Testversion und Einrichten einer Demodatenbank

UpToNet Events and Artists Installation der Testversion und Einrichten einer Demodatenbank UpToNet Events and Artists Installation der Testversion und Einrichten einer Demodatenbank UpToNet Event&Artist UpToNet Events and Artists - Anleitung: Einrichten der Demodatenbank Unter folgender URL

Mehr

H A N D B U C H FILEZILLA. World4You Internet Service GmbH. Hafenstrasse 47-51, A-4020 Linz office@world4you.com

H A N D B U C H FILEZILLA. World4You Internet Service GmbH. Hafenstrasse 47-51, A-4020 Linz office@world4you.com H A N D B U C H FILEZILLA Hafenstrasse 47-51, A-4020 Linz Inhaltsverzeichnis S C H R I T T 1 : DOWNLOAD... 3 S C H R I T T 2 : SETUP... 3 S C H R I T T 3 : EINSTELLUNGEN... 6 S C H R I T T 4 : DATENÜBERTRAGUNG...

Mehr

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt. Internet, Codes und Update ab Version 13 Um Ihnen einen möglichst schnellen Zugang zu den aktuellsten Programmversionen zu ermöglichen liegen Update-Dateien für Sie im Internet bereit. Es gibt drei Möglichkeiten

Mehr

WORKSHOP VEEAM ENDPOINT BACKUP FREE

WORKSHOP VEEAM ENDPOINT BACKUP FREE WORKSHOP VEEAM ENDPOINT BACKUP FREE Haftungsausschluss Ich kann für die Richtigkeit der Inhalte keine Garantie übernehmen. Auch für Fehler oder Schäden die aus den Übungen entstehen, übernehme ich keine

Mehr

How to install ubuntu by crypted file system

How to install ubuntu by crypted file system How to install ubuntu by crypted file system Enthaltene Funktionen: - Installation eines verschlüsselten Ubuntu Systems Voraussetzung: - Internetverbindung - Iso-Image Download unter: http://wiki.ubuntuusers.de/downloads/oneiric_ocelot

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

Firmware-Update, CAPI Update

Firmware-Update, CAPI Update Produkt: Modul: Kurzbeschreibung: Teldat Bintec Router RT-Serie Firmware-Update, CAPI Update Diese Anleitung hilft Ihnen, das nachfolgend geschilderte Problem zu beheben. Dazu sollten Sie über gute bis

Mehr

1. Frage: Was muss ich tun, um einen Wechselrichtertreiber auf den neusten Stand zu bringen oder gegen einen anderen Herstellertreiber zu tauschen?

1. Frage: Was muss ich tun, um einen Wechselrichtertreiber auf den neusten Stand zu bringen oder gegen einen anderen Herstellertreiber zu tauschen? FAQ - Häufig gestellte Fragen 1. Frage: Was muss ich tun, um einen Wechselrichtertreiber auf den neusten Stand zu bringen oder gegen einen anderen Herstellertreiber zu tauschen? 1.1 Antwort: Es muss entweder

Mehr

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In

Mehr

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG Um mit IOS2000/DIALOG arbeiten zu können, benötigen Sie einen Webbrowser. Zurzeit unterstützen wir ausschließlich

Mehr

GMM WLAN-Transmitter

GMM WLAN-Transmitter Inhaltsverzeichnis 1. Produktbeschreibung... 2 2. Konfiguration... 2 Verbindung... 2 Konfiguration der Baudrate... 2 Access Point... 3 3. Datenübertragung... 3 4. Technische Daten... 4 Kontakt... 5 1 1.

Mehr

Windows 7-Installation leicht gemacht

Windows 7-Installation leicht gemacht Windows 7-Installation leicht gemacht Wenn Sie Windows 7 haben wollen, und bisher nicht Windows Vista hatten, kommen Sie nicht um eine Komplettinstallation herum. Diese dauert etwa 45 Minuten. COMPUTER

Mehr

Informatik I Tutorial

Informatik I Tutorial ETH Zürich, D-INFK/D-BAUG Herbstsemester 2015 Dr. Martin Hirt Daniel Jost Informatik I Tutorial Dieses Tutorial hat zum Ziel, die notwendigen Tools auf dem eigenen Computer zu installieren, so dass ihr

Mehr

Patch Management mit

Patch Management mit Patch Management mit Installation von Hotfixes & Patches Inhaltsverzeichnis dieses Dokuments Einleitung...3 Wie man einen Patch installiert...4 Patch Installation unter UliCMS 7.x.x bis 8.x.x...4 Patch

Mehr

Hier ist die Anleitung zum Flashen des MTK GPS auf der APM 2.0. Prinzipiell funktioniert es auch auf der APM 2.5 und APM 1.

Hier ist die Anleitung zum Flashen des MTK GPS auf der APM 2.0. Prinzipiell funktioniert es auch auf der APM 2.5 und APM 1. Hier ist die Anleitung zum Flashen des MTK GPS auf der APM 2.0. Prinzipiell funktioniert es auch auf der APM 2.5 und APM 1. Vorweg: Die neue MTK Firmware 1.9 (AXN1.51_2776_3329_384.1151100.5_v19.bin) ist

Mehr

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht

Mehr

Tutorial - www.root13.de

Tutorial - www.root13.de Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk

Mehr

Folgeanleitung für Fachlehrer

Folgeanleitung für Fachlehrer 1. Das richtige Halbjahr einstellen Folgeanleitung für Fachlehrer Stellen sie bitte zunächst das richtige Schul- und Halbjahr ein. Ist das korrekte Schul- und Halbjahr eingestellt, leuchtet die Fläche

Mehr

Anleitung zum Prüfen von WebDAV

Anleitung zum Prüfen von WebDAV Anleitung zum Prüfen von WebDAV (BDRS Version 8.010.006 oder höher) Dieses Merkblatt beschreibt, wie Sie Ihr System auf die Verwendung von WebDAV überprüfen können. 1. Was ist WebDAV? Bei der Nutzung des

Mehr

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern Windows XP in fünf Schritten absichern Inhalt: 1. Firewall Aktivierung 2. Anwendung eines Anti-Virus Scanner 3. Aktivierung der automatischen Updates 4. Erstellen eines Backup 5. Setzen von sicheren Passwörtern

Mehr

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Handbuch timecard Connector 1.0.0 Version: 1.0.0 REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Furtwangen, den 18.11.2011 Inhaltsverzeichnis Seite 1 Einführung... 3 2 Systemvoraussetzungen...

Mehr

Installationsanleitung CLX.PayMaker Office

Installationsanleitung CLX.PayMaker Office Installationsanleitung CLX.PayMaker Office Inhaltsverzeichnis 1. Installation und Datenübernahme... 2 2. Erste Schritte Verbindung zur Bank einrichten und Kontoinformationen beziehen... 4 3. Einrichtung

Mehr

NuVinci Harmony Software und Firmware. Anleitung in deutscher Sprache

NuVinci Harmony Software und Firmware. Anleitung in deutscher Sprache NuVinci Harmony Software und Firmware Anleitung in deutscher Sprache NuVinci Desktop ( Harmony Programmierung ) Software Für Hersteller und Händler Download über eine abgesicherte Internetverbindung http://harmony.fallbrooktech.net/

Mehr

NetSeal Pro. Installations- und Bedienungsanweisung. Printserver L1 USB. Höns-Electronic GmbH & Co KG Bremen www.hoens-electronic.

NetSeal Pro. Installations- und Bedienungsanweisung. Printserver L1 USB. Höns-Electronic GmbH & Co KG Bremen www.hoens-electronic. NetSeal Pro Installations- und Bedienungsanweisung Printserver L1 USB Höns-Electronic GmbH & Co KG Bremen www.hoens-electronic.de Inhalt Inhalt...2 Vorbereitungen...3 Allgemeines... 3 Installation der

Mehr

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden. Track in Route umwandeln ACHTUNG: Ein Track kann nur dann in eine Route umgewandelt werden, wenn der Track auf Wegen gefahren wurde. Ein Querfeldein-Track kann nicht in eine Route umgewandelt werden, da

Mehr

MailUtilities: Remote Deployment - Einführung

MailUtilities: Remote Deployment - Einführung MailUtilities: Remote Deployment - Einführung Zielsetzung Die Aufgabe von Remote Deployment adressiert zwei Szenarien: 1. Konfiguration der MailUtilities von einer Workstation aus, damit man das Control

Mehr

WOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten:

WOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten: WOT Skinsetter WOT Skinsetter steht für World of Tanks skinsetter (WOTS von nun an). Mit diesen Tool können Sie Skins importieren und ändern, wann immer Sie möchten auf einfache Weise. Als World of Tanks

Mehr

HTBVIEWER INBETRIEBNAHME

HTBVIEWER INBETRIEBNAHME HTBVIEWER INBETRIEBNAHME Vorbereitungen und Systemvoraussetzungen... 1 Systemvoraussetzungen... 1 Betriebssystem... 1 Vorbereitungen... 1 Installation und Inbetriebnahme... 1 Installation... 1 Assistenten

Mehr

Installationsanleitung für das Touch Display: S170E1-01 LCD A170E1-T3 ChiMei - egalaxy

Installationsanleitung für das Touch Display: S170E1-01 LCD A170E1-T3 ChiMei - egalaxy Installationsanleitung für das Touch Display: S170E1-01 LCD A170E1-T3 ChiMei - egalaxy 1. Schnellanleitung - Seite 2 2. Ausführlichere Anleitung - Seite 3 a) Monitor anschließen - Seite 3 Alternativer

Mehr

Windows / Mac User können sich unter folgenden Links die neueste Version des Citrix Receiver downloaden.

Windows / Mac User können sich unter folgenden Links die neueste Version des Citrix Receiver downloaden. Zugriff auf Citrix 1 EINRICHTUNG WICHTIG: 1. Sollten Sie als Betriebssystem bereits Windows 8 nutzen, müssen Sie.Net Framework 3.5 installiert haben. 2. Ihre Einstellungen in den Programmen werden jedes

Mehr

KONFIGURATION TECHNICOLOR TC7200

KONFIGURATION TECHNICOLOR TC7200 Kabelrouter anschliessen Schliessen Sie den Kabelrouter wie oben abgebildet an. Das Gerät benötigt nun 30-60 Minuten bis es online ist und das erste Update installiert. Nach dem Update startet das Modem

Mehr

A.u.S. Spielgeräte GmbH A-1210 Wien Scheydgasse 48 Tel.+43-(0)1-271 66 00 Fax. +43-(0)1-271 66 00 75

A.u.S. Spielgeräte GmbH A-1210 Wien Scheydgasse 48 Tel.+43-(0)1-271 66 00 Fax. +43-(0)1-271 66 00 75 Inhaltsverzeichnis Seite 1. Einleitung. 2 2. Vorraussetzung.. 2 2.1 Software 2 2.2 Hardware.. 2 3. Vorbereitung... 3 4. Programmierung 4 5. Ändern des Schlüssels... 6 6. Test 6 7. Informationen.. 7 1.Einleitung

Mehr

Installation / Aktualisierung von Druckertreibern unter Windows 7

Installation / Aktualisierung von Druckertreibern unter Windows 7 Rechenzentrum Installation / Aktualisierung von Druckertreibern unter Windows 7 Es gibt drei verschiedene Wege, um HP-Druckertreiber unter Windows7 zu installieren: (Seite) 1. Automatische Installation...

Mehr

Bedienungsanleitung für. Android Stick 2.0

Bedienungsanleitung für. Android Stick 2.0 Bedienungsanleitung für Android Stick 2.0 Android Stick 2.0 Bedienungsanleitung Danke, dass Sie unser innovatives Produkt erworben haben. Bitte lesen Sie sorgfältig die Bedienungsanleitung bevor Sie das

Mehr

Paragon Online WinPE Builder Service

Paragon Online WinPE Builder Service PARAGON Software GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0)761 59018-201 Fax +49 (0)761 59018-130 Internet www.paragon-software.de E-Mail vertrieb@paragon-software.de

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

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com

Mehr

SFTP SCP - Synology Wiki

SFTP SCP - Synology Wiki 1 of 6 25.07.2009 07:43 SFTP SCP Aus Synology Wiki Inhaltsverzeichnis 1 Einleitung 1.1 Grundsätzliches 2 Voraussetzungen 2.1 Allgemein 2.2 für SFTP und SCP 3 Installation 3.1 Welche openssl Version 3.2

Mehr

Tutorial Windows XP SP2 verteilen

Tutorial Windows XP SP2 verteilen Tutorial Windows XP SP2 verteilen Inhaltsverzeichnis 1. Einführung... 3 2. Windows XP SP2 bereitstellen... 3 3. Softwarepaket erstellen... 4 3.1 Installation definieren... 4 3.2 Installationsabschluss

Mehr

Hardware: QNAP TS 112 mit der Firmware 3.5.2 Build 1126T mit 500GB Speicher Twonky Media Version 6.0.38

Hardware: QNAP TS 112 mit der Firmware 3.5.2 Build 1126T mit 500GB Speicher Twonky Media Version 6.0.38 Konfiguration eines NAS Laufwerkes Am Beispiel eines QNAP Laufwerkes werden die wichtigsten Einstellung für ein NAS Laufwerk, sowie für den Twonky Media Server aufgezeigt, um ein optimales Zusammenspiel

Mehr

Folgeanleitung für Klassenlehrer

Folgeanleitung für Klassenlehrer Folgeanleitung für Klassenlehrer 1. Das richtige Halbjahr einstellen Stellen sie bitte zunächst das richtige Schul- und Halbjahr ein. Ist das korrekte Schul- und Halbjahr eingestellt, leuchtet die Fläche

Mehr

Anwenderdokumentation PersoSim

Anwenderdokumentation PersoSim Anwenderdokumentation PersoSim Die nachfolgende Anwenderdokumentation soll dem Anwender bei der Installation und den ersten Schritten im Umgang mit PersoSim helfen. Installation Grundvoraussetzung für

Mehr

Anleitungen zum Publizieren Ihrer Homepage

Anleitungen zum Publizieren Ihrer Homepage Anleitungen zum Publizieren Ihrer Homepage Einrichtung und Konfiguration zum Veröffentlichen Ihrer Homepage mit einem Programm Ihrer Wahl Stand Februar 2015 Die Anleitungen gelten für die Homepage-Produkte:

Mehr

Windows7 32/64bit Installationsanleitung der ROBO-PRO-Software

Windows7 32/64bit Installationsanleitung der ROBO-PRO-Software Windows7 32/64bit Installationsanleitung der ROBO-PRO-Software Inhalt: Inhaltsverzeichnis Kompatibilitätstabelle... 2 Ablauf der Installation... 2 Anpassen der Installation der ROBO-PRO Software... 3 USB-Treiberinstallation

Mehr

1. Melden Sie sich als Administrator an und wechseln Sie zum Desktop

1. Melden Sie sich als Administrator an und wechseln Sie zum Desktop Anleitung für die Erstinstallation von ZensTabS1 auf einem Windows 8 PC. Bei der Erstinstallation von ZensTabS1 versucht der Installer als Voraussetzung das MS Framework 1.1 zu installieren, falls es seither

Mehr

INSTALLATION VON INSTANTRAILS 1.7

INSTALLATION VON INSTANTRAILS 1.7 INSTALLATION VON INSTANTRAILS 1.7 InstantRails 1.7 ist ein Paket, das Ruby, Rails, Apache, MySQL und andere Tools, z.b. phpmyadmin in vorkonfigurierter Form enthält. Das Paket muss in einem Verzeichnis

Mehr

Installationsanleitung bootfähiger USB-Stick PSKmail v.1.0.0.0

Installationsanleitung bootfähiger USB-Stick PSKmail v.1.0.0.0 Installationsanleitung bootfähiger USB-Stick PSKmail v.1.0.0.0 Haftungsausschluss: Die Benutzung der Software geschieht auf eigene Gefahr, es kann nicht für Schäden oder Datenverlust im Zusammenhang mit

Mehr

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11 Kurzanleitung MEYTON Aufbau einer Internetverbindung 1 Von 11 Inhaltsverzeichnis Installation eines Internetzugangs...3 Ist mein Router bereits im MEYTON Netzwerk?...3 Start des YAST Programms...4 Auswahl

Mehr

Daten am USB Stick mit TrueCrypt schützen

Daten am USB Stick mit TrueCrypt schützen Daten am USB Stick mit TrueCrypt schützen Das Programm installieren und einrichten ACHTUNG: In der nachfolgenden Anleitung wird der USB Stick immer mit USB-STICK (H:) angegeben! Diese Bezeichnung wurde

Mehr

2. Word-Dokumente verwalten

2. Word-Dokumente verwalten 2. Word-Dokumente verwalten In dieser Lektion lernen Sie... Word-Dokumente speichern und öffnen Neue Dokumente erstellen Dateiformate Was Sie für diese Lektion wissen sollten: Die Arbeitsumgebung von Word

Mehr

Eigene Dokumente, Fotos, Bilder etc. sichern

Eigene Dokumente, Fotos, Bilder etc. sichern Eigene Dokumente, Fotos, Bilder etc. sichern Solange alles am PC rund läuft, macht man sich keine Gedanken darüber, dass bei einem Computer auch mal ein technischer Defekt auftreten könnte. Aber Grundsätzliches

Mehr

Clientkonfiguration für Hosted Exchange 2010

Clientkonfiguration für Hosted Exchange 2010 Clientkonfiguration für Hosted Exchange 2010 Vertraulichkeitsklausel Das vorliegende Dokument beinhaltet vertrauliche Informationen und darf nicht an Dritte weitergegeben werden. Kontakt: EveryWare AG

Mehr

Einrichten der Fritz Box für JOBST DSL

Einrichten der Fritz Box für JOBST DSL Jobst DSL Einrichten der Fritz Box für JOBST DSL Diese Anleitung ist nur für die Verwendung mit Jobst DSL gedacht Jobst DSL Ohmstraße 2a 92224 Amberg Tel.: 09621 487650 Ausgabe 2 (06/15) Sehr geehrter

Mehr

ARAkoll 2013 Dokumentation. Datum: 21.11.2012

ARAkoll 2013 Dokumentation. Datum: 21.11.2012 ARAkoll 2013 Dokumentation Datum: 21.11.2012 INHALT Allgemeines... 3 Funktionsübersicht... 3 Allgemeine Funktionen... 3 ARAmatic Symbolleiste... 3 Monatsprotokoll erzeugen... 4 Jahresprotokoll erzeugen

Mehr

ClouDesktop 7.0. Support und Unterstützung. Installation der Clientsoftware und Nutzung über Webinterface

ClouDesktop 7.0. Support und Unterstützung. Installation der Clientsoftware und Nutzung über Webinterface ClouDesktop 7.0 Installation der Clientsoftware und Nutzung über Webinterface Version 1.07 Stand: 22.07.2014 Support und Unterstützung E-Mail support@anyone-it.de Supportticket helpdesk.anyone-it.de Telefon

Mehr

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX Allgemeines Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX Stand 21.11.2014 Die Yeastar MyPBX Telefonanlagen unterstützen die automatische Konfiguration der tiptel 3010, tiptel 3020 und tiptel 3030

Mehr

Installation SQL- Server 2012 Single Node

Installation SQL- Server 2012 Single Node Installation SQL- Server 2012 Single Node Dies ist eine Installationsanleitung für den neuen SQL Server 2012. Es beschreibt eine Single Node Installation auf einem virtuellen Windows Server 2008 R2 mit

Mehr