Der Erfolg des kompakten Minicomputers, der in jede Westen- bzw. Hosentasche passt, geht vor allem auf seine Vielseitigkeit — gleich mehrere Open-Source-Betriebssysteme stehen bereit — und auf die frei programmierbare Schnittstelle (GPIO) zurück. Das Vorhandensein der Basisinfrastruktur wie Filesystem, Multitasking, TCP/IP und vielem anderem macht es zu einer hervorragenden Alternative zu „gestandenen“ Embedded-Betriebssystemen.
In diesem praxisorientierten Kurs dreht sich alles um den Raspberry Pi, Linux und Python. Im Fokus stehen alt bewährte Betriebssystemkonzepte in Kombination mit hardwarenaher Programmierung.
Linux und die Commandline: Linux ist ein Desktopbetriebssystem. Unter anderem — es ist alles nur eine Frage des vorhandenen Speichers. Das Rasperry ist für Embedded-Verhältnisse mit 512MB reichlich ausgestattet. Ein Desktop ist trotzdem nur mühsam zu betreiben — und ist für ein Embedded-Produktivsystem ohnehin unangebracht. Zurück an die Unix-Anfänge also …
Python Grundlagen: Obwohl der Kursinhalt sprachunabhängig ist, brauchen wir für das weitere Vorgehen eine Programmiersprache. Die Raspberry Foundation, die unter anderem das Ziel verfolgt, Kinder weg vom reinen Computerspielen zurück zum spielerischen Programmieren zu führen, wählt zu Recht Python als die Sprache, das zu erreichen.
Das General Purpose IO (GPIO) Subsystem:
Mit Mikrocontrollern sprechen: Aufgaben wie z.B. Temperaturmessung, IO-Port Expandierung, Pulse Width Modulation (PWM) etc. werden gerne an externe Hardware ausgelagert, die über dedizierte Protokolle angesteuert wird. Hier wird ein Überblick über die Protokolle und über verschiedene Aspekte der Integration in Linux gegeben. Stichworte:
CAN-Bus ist ein Netzwerkprotokoll (Controller Area Network), das zur Kommunikation zwischen Mikrocontrollern verwendet wird — zum Beispiel im Auto. In Linux hat sich eine sehr nette Infrastruktur entwickelt, die das Protokoll nahtlos in den Netzwerkstack einpasst.
Video4Linux (V4L): Das Video-Subsystem, das zusammen mit einer Menge von Hardwaredrivern (unter anderem für das Raspberry-Kamerainterface) die Videofähigkeiten von Linux implementiert.