1. Python auf dem Raspberry Pi
Thomas Koch @tomy_koch
OpenChaos, Köln, 30. Mai 2013
@
2. Agenda
Specs:
Was ist der Raspberry Pi ?
Anwendungen:
Was kann der Raspberry Pi ?
GPIO mit Python
Programmierung & Beispiele
Weitere Infos
Links, Literatur
05/2013Thomas Koch
3. Einführung: Der Raspberry Pi
Grundlagen
SOC Minicomputer: "System on a chip"
512 MB Hauptspeicher und 700 MHZ ARM CPU
Ethernet-Schnittstelle und zwei USB-Anschlüsse (Modell B)
"BYOP"-Prinzip: "bring your own peripherals“
Lieferung ohne Maus, Tastatur, Netzstecker etc.
Nackte Platine (ohne Gehäuse), ohne SD-Card und OS
Einschränkungen
keine Uhr (ntp nutzen - optional nachrüstbar)
kein BIOS (d.h. Raspi kann NUR von SD-Card booten)
Gründe für den Raspberry Pi
Klein, günstig (ca. 40 €), erweiterbar, offen, grün (3,5 Watt)
05/2013Thomas Koch
4. Hardware: Der Raspberry Pi
05/2013Thomas Koch
Das Board
GPIO (General Purpose Input/Output – mit I²C Bus)
CSI (Camera Serial Interface)
HDMI-Out
OS
Raspbian (Debian)
Arch Linux
RISC OS
5. Monitor am Rapsi anschliessen
05/2013Thomas Koch
Per HDMI
TFT-Monitor, Fernseher etc.
Per Video-Out
z.B: mini-KFZ-TFT 3.5‘‘ (für ca. 20 € bei e-bay)
Lässt sich auch auf 5V-Betrieb (USB) „umbasteln“:
http://kampis-elektroecke.de/?page_id=2631
6. Anwendungsmöglichkeiten
Network Device / Thin-Server
Print- und Webserver, VPN-Server, DHCP-Server etc.
Cloud für eigenes (Heim-)Netzwerk
Raspberry Pi als Mediacenter
XBMC basierende Distributionen wie OpenELEC,
Raspbmc
Oder auch als AirPlay Empfänger
Remote Control
Steuereinheit für eigene Roboter oder Luftfahrzeuge
Home Automation, Alarmanlage, Videoüberwachung…
Kiosk-Systeme
eingebauter Web-Browser "midori" bietet Vollbildmodus
$ midori -e Fullscreen -a <URL>
http://lifehacker.com/5978871/ten-more-awesome-projects-for-your-raspberry-pi
7. Anwendungsbeispiel: für Einsteiger
05/2013Thomas Koch
Email Alert via LED
Einfache Anwendung der GPIO Pins: LED an
GPIO idealerweise via breakout kit ausführen
Verdrahtung auf sog. bread board
http://learn.adafruit.com/raspberry-pi-e-mail-notifier-using-leds
8. Anwendungsbeispiel: für Fortgeschrittene
05/2013Thomas Koch
Raspberry Pi Timelapse Controller
Steuerung einer Digital-Kamera
Mit Zeitraffer-Blenden- &
Belichtungssteuerung (!)
Basiert u.a. auf auf libgphoto2
http://www.gphoto.org
Anzeige über (günstiges)
LCD-Displays
(HDD44780 kompatible Typen)
Steuerung über einfache Schalter
http://blog.davidsingleton.org/raspberry-pi-timelapse-controller/
9. Anwendungsbeispiel: für Profis
05/2013Thomas Koch
Raspberry Pi Cluster
32 Raspberry Pi
je auf 1 GHz übertaktet
Kosten ca. 1.440 US-Dollar
http://t3n.de/news/raspberry-pi-cluster-467237/
10. Mini Tutorial
05/2013Thomas Koch
Erste Schritte
Raspian auf SD-Karte „installieren“ und einstecken
Einstecken (kein An/Aus-Schalter!)
Login: user: pi / pwd: raspberry
Konfiguration:
$ raspi-config
‘enable ssh’
‘change_pass ‘ change system password (for the user 'pi')
http://learn.adafruit.com/adafruits-raspberry-pi-lesson-2-first-time-configuration/overview
Nützliche Debian Pakete
für GPIO: "WiringPi"
https://projects.drogon.net/raspberry-pi/wiringpi/
$ sudo apt-get install git-core
$ git clone git://git.drogon.net/wiringPi
11. GPIO Basics
05/2013Thomas Koch
GPIO per WiringPI steuern
Ports per WiringPI
ansteuern
command-line utility gpio
can be used to program and
setup the GPIO pins
pi@raspi ~ $ gpio readall
+----------+------+--------+------+-------+
| wiringPi | GPIO | Name | Mode | Value |
+----------+------+--------+------+-------+
| 0 | 17 | GPIO 0 | IN | Low |
| 1 | 18 | GPIO 1 | IN | Low |
| 2 | 27 | GPIO 2 | OUT | Low |
| 3 | 22 | GPIO 3 | IN | Low |
| 4 | 23 | GPIO 4 | IN | Low |
| 5 | 24 | GPIO 5 | IN | Low |
| 6 | 25 | GPIO 6 | IN | Low |
| 7 | 4 | GPIO 7 | IN | Low |
| 8 | 2 | SDA | ALT0 | High |
| 9 | 3 | SCL | ALT0 | High |
| 10 | 8 | CE0 | IN | Low |
| 11 | 7 | CE1 | IN | Low |
| 12 | 10 | MOSI | IN | Low |
| 13 | 9 | MISO | IN | Low |
| 14 | 11 | SCLK | IN | Low |
| 15 | 14 | TxD | ALT0 | High |
| 16 | 15 | RxD | ALT0 | High |
| 17 | 28 | GPIO 8 | IN | Low |
| 18 | 29 | GPIO 9 | IN | Low |
| 19 | 30 | GPIO10 | IN | Low |
| 20 | 31 | GPIO11 | IN | Low |
+----------+------+--------+------+-------+
$ gpio mode 0 out
$ gpio write 0 1
$ gpio write 0 0
13. Python auf dem Raspberry PI
05/2013Thomas Koch
Python included
Raspi kommt mit Python 2.7 und 3.2
Zusatzpakete per apt-get oder ‚pip install‘ ziehen
$sudo apt-get update
$sudo apt-get install python-dev
$sudo apt-get install python-rpi.gpio
GPIO mit Python
simple GPIO Python Wrapper: RPi.GPIO
A module to control Raspberry Pi GPIO channels
includes a C extension
any script using RPi.GPIO must run with root privileges!
https://pypi.python.org/pypi/RPi.GPIO
14. Beispiel: RPi.GPIO
05/2013Thomas Koch
LED einschalten
https://projects.drogon.net/raspberry-pi/gpio-examples/tux-crossing/gpio-examples-1-a-single-led/
import RPi.GPIO as GPIO
# header pin numbering BCM GPIO 00..nn
GPIO.setmode(GPIO.BCM)
# Set up the GPIO channels:
# one input and one output
GPIO.setup(17, GPIO.IN)
GPIO.setup(18, GPIO.OUT)
input_value = GPIO.input(17)
print „pin#17 is“, input_value
GPIO.output(18, GPIO.HIGH)
15. Weiterführende Links & Literatur
Websites
Raspberry Foundation
http://www.raspberrypi.org
Adafruit (Tutorials, hardware kits, etc.)
http://learn.adafruit.com
Embedded Linux Wiki http://elinux.org
Online-Magazin: http://www.themagpi.com
Literatur
Raspberry Pi - Einstieg • Optimierung • Projekte
Maik Schmitd, dpunkt verlag, http://www.dpunkt.de/raspi
Getting Started with Raspberry Pi
http://blog.makezine.com/2012/12/25/ten-raspberry-pi-tips
Verlag: o'reilly/makers
05/2013Thomas Koch