Raspberry Pi Basis-Workshop



Ähnliche Dokumente
Netbeans 6.1 mit SVN Server unter Debian etch mit Windows Clients

Anleitung: DV4Mini auf einem Raspberry Pi

Eprog Starthilfe. 5. Oktober Einleitung 2

How to install freesshd

Rechnernetze Praktikum. Versuch 5: Linux embedded. Ziel

Embedded So)ware. Einrichten der Arbeitsumgebung

Installation DV4mini ausgehend von einem frisch installierten System:

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

mit dem TeXnicCenter von Andreas Both

SFTP SCP - Synology Wiki

Dienste und Runlevel. September 2010 Oliver Werner Linux Systemmanagement 1

Tutorial -

Verteilte Versionskontrolle mit GIT Dortmund Ansgar Brauner - GreenPocket GmbH - Köln

git & git-flow Jens Sandmann Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow / 31

Updatehinweise für die Version forma 5.5.5

Hex Datei mit Atmel Studio 6 erstellen

Informatik I Tutorial

Version 0.3. Installation von MinGW und Eclipse CDT

INHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

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

Step by Step VPN unter Windows Server von Christian Bartl

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Eine Einführung in die Installation und Nutzung von cygwin

SharePoint Workspace 2010 Installieren & Konfigurieren

Nach der Installation des FolderShare-Satellits wird Ihr persönliches FolderShare -Konto erstellt.

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

Step by Step Webserver unter Windows Server von Christian Bartl

FTP-Server einrichten mit automatischem Datenupload für

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

TeamSpeak3 Einrichten

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

INSTALLATION VON INSTANTRAILS 1.7

Die Projek*ools. Files, Git, Tickets & Time

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

Adminer: Installationsanleitung

Informatik 1 Tutorial

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Erstellen der Barcode-Etiketten:

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

WordPress lokal mit Xaamp installieren

Sichern der persönlichen Daten auf einem Windows Computer

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Anbindung des eibport an das Internet

Live Update (Auto Update)

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Geschrieben von: Stefan Sonntag, den 26. Juni 2011 um 09:45 Uhr - Aktualisiert Sonntag, den 26. Juni 2011 um 10:12 Uhr

Wie halte ich Ordnung auf meiner Festplatte?

1 Zugang zum GIT Repository

SJ OFFICE - Update 3.0

Wie man eigene Programme erstellt

1) JAVA JRE auf der QNAP Box installieren

Hallo, Anmeldung auf der Office-Webplattform: Seite 1 von 7 Office 365 Pro Plus

Lizenzen auschecken. Was ist zu tun?

Anbinden der Visualisierung GILLES TOUCH (VNC)

Installation und Inbetriebnahme von Microsoft Visual C Express

Anleitung Captain Logfex 2013

Windows 8/8.1 RecImg-Manager

Shellfire L2TP-IPSec Setup Windows XP

Installation von NetBeans inkl. Glassfish Anwendungs-Server

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

Anleitung: Webspace-Einrichtung

Windows 10 - Clean Install und Aktivierung

Lehrveranstaltung Grundlagen von Datenbanken

Anleitung zur Installation der DataWatch Software auf einem LINUX System ohne grafische Oberfläche

Printserver und die Einrichtung von TCP/IP oder LPR Ports

teamsync Kurzanleitung

C A L D E R A G R A P H I C S. Wie geht das? Benutzen des Backup Verfahrens

Anleitung. Update EBV 5.0 EBV Mehrplatz nach Andockprozess

Manuelles Update eines DV4Mini-Raspberry Pis

Sie müssen sich für diesen Fall mit IHREM Rechner (also zeitgut jk o.ä.) verbinden, nicht mit dem Terminalserver.

SharePoint Demonstration

snom Auto-Provisioning

Installationsanleitung CLX.NetBanking

Installation Hardlockserver-Dongle

-Bundle auf Ihrem virtuellen Server installieren.

Stecken Sie Ihren USB Stick oder Ihre externe USB Festplatte in den USB Steckplatz des Sinus 154 DSL SE.

Änderungsbeschreibung HWS32 SEPA Überweisungen

Fernwartung von Mac OS 9 u. X per VNC

ANLEITUNG NETZEWERK INSTALATION

Installation/Einrichtung einer Datenbank für smalldms

Hochschule Aalen. OpenVPN. Anleitung zur Installation

Installationsanleitungen

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Anleitung für die Verwendung des CIP Pools von eigenen Rechner

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

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

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

Windows 7 Winbuilder USB Stick

1 Was ist das Mediencenter?

Versionsverwaltung mit SVN

Verbinden. der Firma

FastViewer Remote Edition 2.X

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

Möglichkeiten des Parallelbetriebs der VR-NetWorld Software Parallelbetrieb VR-NetWorld Software 4.4x und Version 5.0 ab der 2. Beta!

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Transkript:

Raspberry Pi Basis-Workshop

Teil 1 Was ist ein Raspberry und wozu ist er gut? Wie installiere ich ein System? Einrichtung und Zugriff via SSH Python, diese Schlange! Grundlegende GPIO-Funktionen mit Python

Teil 2 Git(-Hub) WiringPi & Programmieren in C Makefiles Service & Bash Desktop-Rechner

Was ist ein Raspberry? Einplatinen-Computer "Arduino in Linux" - Achtung: 3,3V Logik, nicht 5V tolerant! Ursprünglicher Gedanke: günstige und spielerische Entwicklungsumgebung für Schüler "Missbrauch" von Server, Mediencenter bis Spielekonsole

Systeminstallation Verschiedene Systeme zum Download auf http://www.raspberrypi.org/downloads/ Unter Windows Kopie mit Win32DiskImager http://sourceforge.net/projects/win32diskimager/ Unter Mac und Linux $dd if=image.img of=/dev/sd-karte bs=4m Mac: bs=4m Alternativ werden fertige SD-Karten angeboten

Einrichten des Raspberry Tool raspi-config jederzeit aufrufbar SSH von Haus aus aktiviert Jetzt die ersten Schritte: Verbindung mittels Putty IP-Adresse des Pi, Benutzer pi, Passwort raspberry Verbindung mittels SSH (Linux/Mac) $ssh pi@ip

Raspi-Config Immer zuerst die Partition auf die gesamte SD-Karte mittels Expand Filesystem ausdehnen! Tastatur auf Deutsch stellen 4 -> I3 -> Enter -> Other -> German Optional System auf Deutsch 4 -> I1 -> de_de.utf-8 <Finish> -> yes - REBOOT!

Python Name eigentlich von Monty Python Gut zum Lernen von sauberem Programmieren, da es keine Klammern gibt, sondern alles über Einrückungen gemacht wird. Achtung! Nicht Leerzeichen und Tabs vermischen! Variablen haben keine Datentypen Anderer Syntax bzw. Datentypen, z.b. for(int i=0;i<10;i++){ for i in range(10): range(10) = range(0,10) = [0,1,,9], also Iteration über eine Liste

Beispielscript LED und Taster Wieder zurück zum Raspberry via SSH Installation der GPIO-Funktionen: $sudo apt-get update #Update der Paket-Datenbank $sudo apt-get install python-dev pythonrpi.gpio Anlegen eines neuen Scripts test.py: $nano test.py

test.py from time import sleep #Nur sleep importieren import RPi.GPIO as GPIO #Paket importieren und Namensraum "GPIO" statt RPi.GPIO nutzen GPIO.setmode(GPIO.BOARD) #Pin-Nummern #Alternative wäre GPIO.BCM für GPIO-Namen GPIO.setup(15,GPIO.OUT) #LED am Pin 15/GPIO 22 GPIO.setup(16,GPIO.IN, pull_up_down=gpio.pud_up) #Taster am Pin 16/GPIO 23 mit internem Pull Up while True: #Endlosschleife»if (GPIO.input)==GPIO.LOW:#Taster gedrückt»»gpio.output(15,gpio.high)#led an»»sleep(1) #1s warten»»gpio.output(15,gpio.low) #LED aus #Speichern und Beenden mit CTRL+X (^C)» = entweder Tab oder Leerzeichen, könnte jede Ebene aber auch geändert werden, also: [Tab]Command: [Tab][Space]Command

Verkabeln & Programm testen Taster an GPIO 23 (BCM)/Pin 16 und GND LED mit Widerstand (je nach LED) an GPIO 22/ Pin 15 mit langem Bein (+), kurzes Bein (-) an GND Testen mit: $python test.py Schlägt fehl: GPIOs können nur mit Administrator-Rechten (root) verändert werden Den gleichen Befehl noch mal als root: $sudo!! #!! wird durch vorigen Befehl ersetzt, also $sudo python test.py Beenden mit CTRL+C (^C)

Pause!

Teil 2 Die Annäherung an die Arduino-Schreibweise

Git Git wird hauptsächlich assoziiert mit GitHub Datencontainer Versionskontrollsystem und kostenlose Open- Source-Projekt-Cloud Vorinstalliert, ansonsten Installation mittels $sudo apt-get install git-core

Installation von WiringPi Auf meinen Raspberrys teilweise vorinstalliert: Überprüfen mittels ls ~/wiringpi "Klonen" der aktuellen Version der Git $git clone git://git.drogon.net/wiringpi In das heruntergeladene Verzeichnis wiringpi wechseln $cd wiringpi #Change Directory Installieren $./build #führt das Skript build im aktuellen Verzeichnis >./< aus

Sonstige Git-Funktionen git init - erstellt neue Repository im Verzeichnis git pull - "zieht" sich die neueste Version von externer Git git fetch - synchronisiert lokale und externe Git git status [-s] - Status der Dateien [in Kurzfassung] git add x y - fügt x und y zur Repository git diff - Zeigt alle Änderungen seit letztem Commit git commit - vermerkt Änderungen zur Vorversion git push - "drückt" Änderungen in die externe Git

Schreiben eines C-Programms Zuerst wieder ins Benutzerverzeichnis wechseln: $cd../ #Ein Verzeichnis hoch, da wir ja nur eins bisher tiefer gegangen sind $cd ~/ #Wechselt immer ins Benutzerverzeichnis $nano test.c #Datei test.c bearbeiten

test.c int main(int argc, char *argv[]) { wiringpisetupphys(); #gleiche Pin Nummern wie vorhin #ich bevorzuge wiringpisetup(); pinmode(15,output); pinmode(16,input); pullupdncontrol(16,pud_up); while (1) { if (!digitalread(16)) { digitalwrite(15,high); delay(1000); digitalwrite(15,low); }}}

Kompilieren und ausführen Kompilieren mit gcc: $gcc test.c -lwiringpi -o ledtest Wird -o ledtest weggelassen, so wäre das resultierende Programm a.out benannt. Ausführen mit $sudo./ledtest Beenden mit CTRL+C

Makefiles Anstatt jedes Mal die GCC-Befehle einzugeben einfach nur "machen"! make guckt, ob und was sich geändert hat und kompiliert nur das nötigste. Makefile anlegen mit $nano Makefile

Makefile ledtest:test.c #ledtest hängt von Änderungen bei test.c ab gcc test.c -lwiringpi -o ledtest #wird ausgeführt, wenn sich test.c ändert install: #"Installiert" ledtest mv ledtest /usr/local/bin #verschiebt die Datei clean: #Räumt auf rm -f ledtest #Möglich wären noch weitere Abhängigkeiten, wenn das #Programm aus mehreren Dateien zusammengesetzt ist, #in diesem Falle wäre /usr/lib/wiringpi.h eine halbwegs #dynamische Abhängigkeit #Einrücken muss durch TAB erfolgen!

Machen Um das Programm zu kompilieren einfach nur $make eingeben Zum "Installieren" $sudo make install Ab dann kann es von überall einfach ausgeführt werden: $sudo ledtest

Service einrichten Services sollten nur für Dämonen eingerichtet werden Dämon = im Hintergrund laufendes Programm Dazu mehr gleich. Kurzweilige Programme sind auch akzeptabel (z.b. "led an, fertig.") Services liegen in /etc/init.d/ Neuen Service erstellen: $nano /etc/init.d/ledtest

ledtest #! /bin/bash ### BEGIN INIT INFO # Provides: ledtest # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### END INIT INFO case "$1" in start) /home/pi/ledtest esac exit 0

Service starten und beim Hochfahren automatisch ausführen Ein Service kann mittels $service ledtest start ausgeführt werden Um den Service beim Hochfahren zu starten $update-rc.d ledtest defaults

#include<unistd.h> #include<stdlib.h> Dämon /*Includes, Variablen, Funktionen */ main() { int pid; /*Setupkram, sollte nicht blocken*/ pid = fork(); /*Prozess klonen*/ if (pid < 0) {/*Klonen nicht erfolgreich*/ exit(exit_failure); } else if (pid > 0) {/*Klonen erfolgreich pid > 0 = Vaterprozess, also den, den wir aufgerufen haben*/ exit(exit_success); } /*pid == 0, Kindprozess, also unser Dämon*/ /*sonstiger Programmcode*/ }

Desktop Rechner Um die normale Desktop Oberfläche zu bekommen, einfach $startx eingeben Kann auch bei jedem Boot automatisch zum Desktop wechseln, dazu in der raspi-config 3 Enable Boot to Desktop/Scratch Desktop Log in as user 'pi' aktivieren

Danke für eure Aufmerksamkeit! Der Raspberry lässt sich jetzt mittels $sudo halt herunterfahren