Roboter mit Raspberry Pi: Mit Motoren, Sensoren, LEGO® und Elektronik eigene Roboter mit dem Pi bauen, die Spaß machen und Ihnen lästige Aufgaben abnehmen
Von E. F. Engelhardt
()
Über dieses E-Book
Für maschinelle Bewegung bieten sich Motoren an. Damit diese Bewegungen einer gewissen Genauigkeit folgen, sind Schrittmotoren erforderlich. Wie Sie Motoren über die GPIO ansteuern, zeigt Ihnen ein ausführliches Kapitel. Damit der Roboter nicht einfach ohne Strom stehen bleibt, lernen Sie, wie eine USV integriert werden kann. Damit ist der Tagesausflug mit Roboter gesichert.
Das erlernte Wissen setzt Engelhardt direkt in konkreten Projekten um: Bauen Sie eine eigene Pan-/Tilt-Kamera. Ein RC-Car lässt sich sehr einfach mit dem Pi steuern und der Staubsaugerroboter ist auch schnell angezapft. Mit der GPIO und dem zuvor gezeigten Basiswissen lassen sich vielfältige Roboterprojekte umsetzen.
Die LEGO®-Mindstorms-Serie stellt bereits Roboter zur Programmierung zur Verfügung. Über den BrickPi lassen sich diese sehr gut mit dem Raspberry Pi steuern – eine aufregende Kombination. Mit dem BrickPi können Sie auch wunderbar einen Roboter mit LEGO®, aber ohne LEGO®-Mindstorms, realisieren. Holen Sie die alten LEGO®-Steine hervor und machen Sie den Lötkolben heiß! Und nicht vergessen: Türe schließen, sonst läuft der Roboter raus.
Mehr von E. F. Engelhardt lesen
Das große inoffizielle FRITZ!Box Handbuch: Mobile Geräte einbinden: iPhone, iPad, Android Bewertung: 0 von 5 Sternen0 BewertungenSchnelleinstieg Raspberry Pi 3: Schritt für Schritt: Installation, Konfiguration, Tuning und Praxiseinsatz Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnlich wie Roboter mit Raspberry Pi
Ähnliche E-Books
Das Franzis Starterpaket Arduino Micro: Das Handbuch für den Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenSensoren - messen und experimentieren mit Arduino und Raspberry Pi Bewertung: 0 von 5 Sternen0 BewertungenDas Action-Buch für Maker: Bewegung, Licht und Sound mit Arduino und Raspberry Pi – Experimente und Projekte Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenMikrocontroller - Der Leitfaden für Maker: Schaltungstechnik und Programmierung für Raspberry, Arduino & Co. Bewertung: 0 von 5 Sternen0 BewertungenAndroid mit Arduino™ Due: Steuern Sie Ihren Arduino™ mit einem Android-Gerät Bewertung: 5 von 5 Sternen5/5Raspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Bewertung: 0 von 5 Sternen0 BewertungenCoole Projekte mit dem Arduino™ Micro: Physical Computing im Projekteinsatz Bewertung: 0 von 5 Sternen0 BewertungenDas inoffizielle iPad-Buch: Jailbreak mit wenigen Klicks und Grundstücksüberwachung mit dem iPad Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Einstieg • Optimierung • Projekte Bewertung: 5 von 5 Sternen5/5Hausautomation mit Raspberry Pi: Alarmanlage, Heizung, Smart Home, W-LAN & Co: 20 Projekte, die Ihr Leben leichter machen Bewertung: 0 von 5 Sternen0 BewertungenHitchhiker's Guide für Python: Best Practices für Programmierer Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi Kinderleicht: Pi 4 mit 8 GB Bewertung: 0 von 5 Sternen0 BewertungenArduino: Mikrocontroller-Programmierung mit Arduino/Freeduino Bewertung: 0 von 5 Sternen0 BewertungenPython programmieren lernen: Der spielerische Einstieg mit Minecraft Bewertung: 0 von 5 Sternen0 BewertungenSmartphone- und Tablet-Hacks: Mess-, Steuer- und Kommunikationsschaltungen selbst gebaut und programmiert Bewertung: 0 von 5 Sternen0 BewertungenBussysteme in der Praxis: Schnittstellen verstehen und in Projekten mit Arduino™ und Raspberry Pi direkt einsetzen Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi | Schritt für Schritt: Das Praxishandbuch mit Grundlagen zu Hardware, Software & DIY-Projekten Bewertung: 0 von 5 Sternen0 BewertungenWindows PowerShell: Grundlagen & Scripting-Praxis für Einsteiger – Für alle Versionen Bewertung: 0 von 5 Sternen0 BewertungenErste Schritte: Eigene IoT-Lösungen mit dem ESP32: Mikrocontroller, Internet und PC Bewertung: 0 von 5 Sternen0 BewertungenRaspberry PI 2 mit Ubuntu Bewertung: 0 von 5 Sternen0 BewertungenDer Maker-Guide für die Zombie-Apokalypse: 20 Survival-Projekte mit einfacher Elektronik, Arduino und Raspberry Pi Bewertung: 0 von 5 Sternen0 BewertungenMach's einfach: Erste Schritte Raspberry Pi programmieren: Der perfekte Einstieg in die Programmierung mit Scratch und Python Bewertung: 0 von 5 Sternen0 BewertungenMach's einfach: Mein Heimnetzwerk mit der Fritz!Box: Installation, Konfiguration und Praxis mit dem Top-Modell FRITZ!Box 7590 Bewertung: 0 von 5 Sternen0 BewertungenEmbedded Linux lernen mit dem Raspberry Pi: Linux-Systeme selber bauen und programmieren Bewertung: 0 von 5 Sternen0 BewertungenMach's einfach: 123 Anleitungen Raspberry Pi 4 als Media Center: Fotos, Audio- und Videostreaming sowie Fernsehen mit KODI Bewertung: 0 von 5 Sternen0 BewertungenEinführung in die C-Programmierung mit dem ATmega32: Aufbau und Programmierung Bewertung: 0 von 5 Sternen0 BewertungenArduino: Ein schneller Einstieg in die Microcontroller-Entwicklung Bewertung: 5 von 5 Sternen5/5
Hardware für Sie
Das Praxisbuch Samsung Galaxy A54 5G - Anleitung für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenLED-Digitalthermometer mit Mikrocontroller AVR ATtiny13 Bewertung: 3 von 5 Sternen3/5Erste Schritte mit dem Raspberry Pi: Installation, Konfiguration, Tuning und Praxis für alle aktuellen Raspberry-Pi-Modelle Bewertung: 0 von 5 Sternen0 BewertungenHausautomation mit Raspberry Pi: Alarmanlage, Heizung, Smart Home, W-LAN & Co: 20 Projekte, die Ihr Leben leichter machen Bewertung: 0 von 5 Sternen0 BewertungenDas Sensor-Buch: Mit Elektronik, Arduino und Raspberry Pi die Welt erfassen Bewertung: 0 von 5 Sternen0 BewertungenArduino: Mikrocontroller-Programmierung mit Arduino/Freeduino Bewertung: 0 von 5 Sternen0 BewertungenFotografie mit dem Smartphone: Der Fotokurs für smarte Bilder hier und jetzt! Bewertung: 4 von 5 Sternen4/5Robotik: LEGO MINDSTORMS, NAO und Raspberry Pi Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Bewertung: 0 von 5 Sternen0 BewertungenSmartphone- und Tablet-Hacks: Mess-, Steuer- und Kommunikationsschaltungen selbst gebaut und programmiert Bewertung: 0 von 5 Sternen0 BewertungenDas Praxisbuch Samsung Galaxy Z Flip - Anleitung für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenDas Praxisbuch Google Pixel 7 & Pixel 7 Pro - Anleitung für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenSchnelleinstieg Banana Pi: 160 Seiten Boards, Installation, Programmierung, Elektronikprojekte und Zubehör nutzen Bewertung: 0 von 5 Sternen0 BewertungenAndroid mit Arduino™ Due: Steuern Sie Ihren Arduino™ mit einem Android-Gerät Bewertung: 5 von 5 Sternen5/5PIC-Mikrocontroller: Grundlagen und Praxisworkshop Bewertung: 0 von 5 Sternen0 BewertungenDas Franzis Starterpaket Arduino Uno: Das Handbuch für den Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenArduino-Projekte: 25 Bastelprojekte für Maker zum Loslegen Bewertung: 0 von 5 Sternen0 BewertungenMicrocontroller für das IoT Bewertung: 0 von 5 Sternen0 BewertungenArduino - Projekte für Haus und Garten: Das Einsteigerseminar Bewertung: 0 von 5 Sternen0 BewertungenElektronischer Würfel mit Mikrocontroller ATtiny13: würfeln, dekorieren, experimentieren Bewertung: 5 von 5 Sternen5/5Einplatinencomputer - ein Überblick Bewertung: 0 von 5 Sternen0 BewertungenAuf dem Tablet erklärt: Wie Sie Ihre guten Ideen einfach und digital visualisieren Bewertung: 5 von 5 Sternen5/5Powerprojekte mit Arduino und C: Schluss mit dem frustrierenden Ausprobieren von Code-Schnipseln! Bewertung: 0 von 5 Sternen0 BewertungenDas Franzis Starterpaket Arduino Mega 2560: Das Handbuch für den Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenDas Praxisbuch Samsung Galaxy S21 / S21+ / S21 Ultra 5G - Anleitung für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenArduino: Ein schneller Einstieg in die Microcontroller-Entwicklung Bewertung: 5 von 5 Sternen5/5Coole Projekte mit dem Arduino™ Micro: Physical Computing im Projekteinsatz Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Roboter mit Raspberry Pi
0 Bewertungen0 Rezensionen
Buchvorschau
Roboter mit Raspberry Pi - E. F. Engelhardt
Vorwort
Wer sich mit Mechanik und Robotik in Kombination mit dem Raspberry Pi beschäftigen möchte, der hat sich ein komplexes Themenfeld ausgesucht. Grundsätzlich ist neben einem Grundverständnis für die Elektronik und die GPIO-Anschlüsse auf dem Raspberry Pi der Wille notwendig, sich mit der Programmierung des Raspberry Pi auseinanderzusetzen.
Gerade wer sich noch nicht lange mit dem Thema Raspberry Pi beschäftigt, für den stellen die GPIO-Anschlüsse noch eine Wissenschaft dar, auch Änderungen im grundsätzlichen Setup des Raspberry Pi sind anfangs eine spannende Angelegenheit. Doch wenn Sie in Sachen Linux und Shell-Umgang schon fit sind, dann sollten Sie sich mit der Raspberry-Pi-Sprache Python beschäftigen: Hier bieten zig Codebeispiele umgehend passende Lösungen zu verschiedenen Problemstellungen an. Egal ob einfach und banal oder technisch kompliziert und verschachtelt mit mehreren Python-Bibliotheken: Mit diesem Buch werden Sie Schritt für Schritt zum Raspberry-Pi-Python-Experten, und Ihnen raubt anschließend keine nervige Fehlermeldung mehr den Schlaf.
Um Mechanik- und Robotik-Modelle zu bauen, bieten sich einige Möglichkeiten – die einfachste Lösung ist die Legokiste im Kinderzimmer. Angereichert mit LEGO®-Technic, lässt sich schon einiges bewegen und umsetzen – wer in Sachen Elektronik und Robotik hier Gas geben möchte, holt sich noch LEGO®-Mindstorms ins Haus. Mit und ohne Kinder: Hier sind einige Stunden Beschäftigung garantiert. Wer jenseits der traditionellen Legowelt mit Mindstorms eigene Lösungen bauen möchte, muss sich spätestens jetzt ernsthaft mit der Elektronik und der Programmierung auseinandersetzen. Hier lernen Sie die Gesetze der Physik und der Mechanik spielerisch kennen: Wer damit später spielen – oder besser, sich damit beschäftigen – will, sollte sich auch mit der Programmierung des Raspberry Pi auseinandersetzen. Hier bringt der Raspberry Pi eine Menge an Programmierschnittstellen mit.
Diese Schnittstellen werden auch benötigt, wenn es darum geht, den Raspberry Pi mit Robotern im Haushalt zu koppeln. In diesem Buch wird das an einem Vorwerk/ Neato-Staubsaugerroboter demonstriert – hier wird das vorhandene Betriebssystem angezapft und mit dem Raspberry Pi gesteuert. Auch wenn Sie keinen Haushaltsroboter im Einsatz haben, die in diesem Projekt beschriebenen Kniffe wie das Anzapfen des USB-Anschlusses, die Steuerung eines Fahrzeugs über eine Webserversteuerung und vieles mehr lassen sich für weitere Raspberry-Pi-Projekte auch dank des vorliegenden Quellcodes schnell und bequem verwenden. Sie benötigen dafür ebenfalls Programmierkenntnisse – denn Mechanik und Robotik machen mehrere komplexe Denkvorgänge notwendig, damit beispielsweise klar ist, welche Motoren sich wie schnell bewegen müssen, um einen Arm zu bewegen und was mit diesem erfasst werden kann. Außerdem müssen Sie sich überlegen, wie eine passende Steuerung in Form einer Software zu funktionieren hat, damit die Motoren im richtigen Moment das Gewünschte in der richtigen Reihenfolge tun.
Das Buch ist kein Einsteigerbuch zum Thema Raspberry Pi und Programmierung, doch nach dem Lesen werden Sie feststellen, dass die Mechanik und Robotik mit dem Raspberry Pi kein Hexenwerk ist. Sie brauchen aber etwas Zeit und Geduld sowie den Willen, auftretende Probleme selbst zu lösen. Wir wünschen Ihnen viel Spaß mit den Projekten!
Autor und Verlag
Sie haben Anregungen, Fragen, Lob oder Kritik zu diesem Buch? Sie erreichen den Autor per E-Mail unter ef.engelhardt@gmx.de.
Inhaltsverzeichnis
1Lenken und Steuern mit der GPIO-Schnittstelle
1.1Betriebssystem und Treiber aktualisieren
1.2Analog-digital-Wandler MCP3008 nachrüsten
Datenblatt prüfen, Funktionen verstehen
MCP3008 auf dem Steckboard nutzen
Programmierung des MCP3008 mit Python
SPI-Schnittstelle aktivieren
SPI-Nutzung ohne Umwege: py-spidev-Modul installieren
1.3Joystick-Steuerung mit dem Raspberry Pi
GPIO-Eingang schalten: Risiken und Nebenwirkungen
Schaltungsdesign vom Steckboard auf die Rasterplatine
Joystick-Steuerung mit Python
Richtungsbestimmung mittels ADC-Werten
1.4I²C-Bus – Schnittstelle wecken und checken
I²C-Geräte und Raspberry-Pi-Revision
1.5Schalten und walten mit Touchsensor
Touch- und Drucksensor – Dateneingabe über den I²C-Bus
Flexibler Zugriff dank I²C- und MRP121-Bibliothek
Inbetriebnahme des MRP121-Touchsensors
2Fahren und bremsen – Motorsteuerung mit dem Raspberry Pi
2.1Die erste Schaltung – LEDs mit ULN2803A steuern
2.2GPIO-Steuerung über die Konsole und Python
Schalten per Konsole
2.3Motoren und Steppermotoren
Oft vernachlässigt: Spannungsversorgung des Motors
2.4Motorsteuerung versus Motortreiber
Mehr Kontrolle – Schrittmotorcontroller
2.5Unipolaren Steppermotor mit ULN2803-IC steuern
Schaltung auf Steckboard umsetzen
Vollschritt- vs. Halbschrittverfahren im Detail
Schritt für Schritt: Vollschritt- und Halbschrittverfahren einsetzen
Vorwärts- und Rückwärtsbewegungen
2.6Praktisch und sicher – USV für den Raspberry Pi
Pi USV in Betrieb nehmen
Ohne Strom nix los – Akkupack auswählen
Pi-USV-Software in Betrieb nehmen
Status der Pi USV erkennen
Status der Pi USV mit Python auslesen
3Pan/Tilt-Kamera im Eigenbau
3.1Raspberry-Pi-Kamera im Robotik-Einsatz
Kameramodul mit dem Raspberry Pi koppeln
Inbetriebnahme per Software
raspistill – Fotografieren über die Kommandozeile
LED abschalten und heimlich fotografieren
Programmierung der Raspberry-Pi-Kamera
3.2Einzellösung: Tower-SG90-Servomotor
3.3Hardware-PWM-Ausgang mit LED testen
3.4Servoblaster-Treiber installieren
3.5Motoren mit Servoblaster in Betrieb nehmen
3.6Servomotor mit Python steuern
3.7Pan/Tilt-Achse und Kamera steuern
3.8Steuerung der Raspberry-Pi-Kamera
3.9Bewegungen und Aufnahmen steuern
3.10Hürden bei der Inbetriebnahme umgehen
Automatischer Log-in: pi vom Start weg
Autostart nach dem Einschalten
4Haushaltshilfe: Staubsauger-Modding
4.1Vorwerk vs. Neato – mehr als nur eine Kopie
Einrichtung und Treiberinstallation
Zugriff über PuTTY auf das Betriebssystem
4.2Staubsauger über Raspberry Pi steuern
Staubsaugerroboter mit Raspberry Pi verbinden
minicom-Modemzugang zum Staubsauger einrichten
minicom-Steuerung für den Staubsauger
Staubsaugerkommandozeile im Überblick
Python-Programmierung über python-serial
Spazierfahrt mit der Kommandozeile – Staubsauger fortbewegen
Zeitplanung für den Staubsauger
4.3Staubsauger und Raspberry Pi koppeln
Aufwecken aus dem Schlafmodus
USB-Geräte über GPIO schalten
Staubsauger mit dem Raspberry Pi verbinden
Schaltung über Kommandozeile prüfen
4.4Roboter über die Webseite steuern
Python-Zugriff über Browser – Bottle im Einsatz
4.5Videostreaming installieren und einbinden
Streaming-Werkzeug laden und installieren
MJPG-Streamer als Live-View-Quelle
Live-View und Steuerung verheiraten
Fotografieren mit dem Vorwerk/Neato-Staubsauger
4.6Drahtlos-Raspberry-Pi einrichten
Raspberry Pi mit drahtloser Stromversorgung
Akkupack und USV für Raspberry Pi kombinieren
WLAN-Netzwerk einrichten und Verbindung aufnehmen
Umschalten zwischen WLAN-Verbindungen
WLAN-Verbindung mit Python steuern
4.7Staubsaugerroboter mit dem Smartphone steuern
USB-Debugging-Modus – Smartphone einrichten
Staubsaugerroboter mit dem Smartphone koppeln
5Schrauben, löten, programmieren: RC-Car-Modding
5.1Basis für das RaspiRoboCAR-Projekt
5.2Lenken und Steuern über die Tastatur
5.3Google-Streetview-RC-Car mit der Raspberry-Pi-Kamera
6LEGO® Pi mit Mindstorms EV3 und LEGO®-Technic
6.1Viel kreativer Spielraum für Technikfantasien
6.2LEGO®-Technic und LEGO®-Mindstorms mit Raspberry Pi aufmotzen
6.3BrickPi: LEGO®-Mindstorms im Eigenbau
BrickPi-Treiber in Betrieb nehmen
BrickPi-Schnittstellen aktivieren
Python-Bibliothek für BrickPi installieren
Motoren und Sensoren im BrickPi-Einsatz
6.4Legokran- und -greifer-Steuerung mit dem Raspberry Pi
Basis, Neigung und Greifer: drei Motoren für den Kran
6.5LEGO®-Modding: Mindstorms im Eigenbau
LEGO®-Steine mit LED-Birnen nachrüsten
Servomotor-Modding für LEGO®-Technic
LEGO®-Extrem-Modding: bis zu 16 Servomotoren steuern
Adressbelegung für den Anschluss am I²C-Bus
Mehrere Servomotoren im Zusammenspiel
AAnhang
APython-Basics auf dem Raspberry Pi
LED-Steuerung mit Python
Schneller Zugriff über die Wiring-Pi-API
Raspberry-Pi-Revision 2: zusätzlicher GPIO-Sockel
Stichwortverzeichnis
Impressum
Lenken und Steuern mit der GPIO-Schnittstelle
Die zentrale Schnittstelle für das Messen, Steuern und Regeln von angeschlossenen Schaltern, Sensoren und Aktoren ist die GPIO-Schnittstelle (General Purpose Input/Output) des Raspberry Pi. Mit dieser Schnittstelle sind Sie für sämtliche Dinge in diesem Buch gerüstet – hier erweitern Sie den Raspberry Pi mit Schaltungen und Funktionen auf dem Steckboard, die später per Lötkolben in ein festes Platinendesign überführt werden können. Neben den Schaltungslösungen der Marke »Eigenbau« können Sie auch auf die hilfreiche Unterstützung in Form von zusätzlich zu erwerbenden Steck- und Erweiterungsboards für die Steuerung von Motoren aller Art zählen – beispielsweise gewöhnliche Gleichstrommotoren, Schritt- oder Steppermotoren, die gerade in der Robotik und bei Mechanikbasteleien mit dem Raspberry Pi eine wesentliche Rolle spielen.
Bild 1.1: Der grundsätzliche Aufbau des Raspberry Pi und der GPIO-Pinleiste Modell B, Revision 2. (Grafik: raspberrypi.org)
Neben dem verbesserten Original werden zunehmend Klonplatinen im Internet angeboten, die auf die grundsätzliche Idee und Raspberry-Pi-Technik setzen. Erwähnenswert ist hier die Banana-Pi-Lösung, die nicht nur die gleichen Abmessungen wie das Original besitzt, sondern ebenfalls mit einer Pin-kompatiblen GPIO-Leiste ausgestattet ist, mit der bestehende Projekte eins zu eins auf eine leistungsfähigere Plattform gehievt werden können.
Bild 1.2: Stark verbesserter Raspberry-Pi-Klon, der nahezu die gleichen Abmessungen wie das Original besitzt und ebenfalls eine Pin-kompatible GPIO-Leiste bietet. (Abbildung: Bananapi.org)
Der im Vergleich zum Original mit 1 GB verdoppelte RAM-Speicher sowie der ARM Cortex A7-Dualkernprozessor mit 1 GHz Takt und die schnellere Grafikeinheit (Mali 400 GPU) beschleunigen die Platine enorm. Zwar stellt der bei Allnet (www.allnet.de) erhältliche Banana Pi mit einem Verkaufspreis von 69 Euro im Vergleich zum Original keine Low-Cost-Lösung mehr dar, er bringt jedoch zusätzlich ähnlich wie das Cubieboard einen SATA-Port mit, mit dem sich eine Festplatte mit bis zu 2 TB Kapazität anschließen lässt.
Wie der Raspberry Pi bietet der Banana Pi die CSI/DSI-Schnittstellen, zwei USB-2.0-Steckplätze sowie je einen HDMI- und einen AV-Videoausgang, außerdem sind noch ein Mikrofon und als zusätzliche Schnittstelle ein Onboard-IR-Empfänger verbaut. Der Klon bringt eine Gigabit-Netzwerkschnittstelle mit, während beim Original mit Ethernet-Anschluss ein 100/10-MBit-Modul verbaut ist.
Bild 1.3: Die Raspberry Pi Foundation stellte im April 2014 das deutlich geschrumpfte Raspberry-Pi-Modul vor, das sich nun besser für kleinere, kompakte Anwendungen eignen soll. (Abbildung: Raspberry Pi Foundation)
Die Raspberry Pi Foundation setzt hier weiter auf Miniaturisierung: Das im April 2014 vorgestellte Compute Module ist mit dem BCM2835-Prozessor und 512 MB RAM wie ein »alter« Raspberry Pi ausgestattet. Statt des Speicherkartenslots sind hier 4 GB eMMc-Flash-Speicher direkt verlötet. Das Compute Modul sieht mit den Abmessungen von 67,7 × 30 mm nicht nur aus wie ein Speichermodul, sondern nutzt auch dieselbe Anschlussleiste wie ein DDR2 SODIMM. Dennoch ist es selbstverständlich, den Raspberry Pi nicht in einem RAM-Steckplatz des Computers einzustecken, sondern dafür das sogenannte »Breakout-Board« zu verwenden, das die bisher bekannten Anschlüsse zur Verfügung stellt.
Bild 1.4: Das Raspberry-Pi-Modul wird in das flachere Breakout-Board eingesetzt, was bei mobileren Robotik-Anwendungen manchmal sinnvoller sein kann, wenn die Bauhöhe begrenzt ist. (Abbildung: Raspberry Pi Foundation)
Ab Juni 2014 soll der neue Raspberry Pi samt Breakout-Board im Handel erhältlich sein, im Mai 2014 wird bei einer Abnahme von 100 Stück für das Compute Modul ein Preis um die 30 Dollar fällig – für das Breakout-Board werden schätzungsweise weitere 10 bis 20 Dollar veranschlagt werden.
1.1Betriebssystem und Treiber aktualisieren
Egal ob Sie selbst eine passende Schaltung im Eigenbau entwickeln oder die eine oder andere Fertiglösung zum Anschluss an den Raspberry Pi nutzen, das A und O ist der Zugriff per Software auf die Schnittstelle bzw. die Funktionen der einzelnen GPIO-Pins. Dafür stehen zahlreiche Möglichkeiten, Zubehör und Erweiterungsboards zur Verfügung, die in den nachfolgenden Kapiteln Schritt für Schritt erklärt und eingesetzt werden. Doch diese technischen Hilfsmittel sind oft wertlos, wenn das Grundsystem nicht stimmt.
Aus diesem Grund stellen Sie mit Kommandos wie sudo apt-get update und sudo apt-get upgrade sicher, dass der Raspberry Pi mit einem aktuellen Betriebssystem samt Treiber bestückt ist. Nach einem etwaigen Neustart per sudo reboot sollten Sie hin und wieder auch das Kommando sudo apt-get dist-upgrade ausführen. Während sich das apt-get upgrade-Kommando primär um Anwendungen und Treiber kümmert, sorgt apt-get dist-upgrade für den aktuellen Kernel und installiert dessen Aktualisierungen.
Hat das Installationsprogramm hier Änderungen durchgeführt, sollten Sie den Raspberry Pi mit sudo reboot neu starten und den dazugehörigen Neustart live mitverfolgen. Nur dann haben Sie die Gewissheit, dass bei der Kernel-Aktualisierung alles gut gegangen ist und alle Dienste wieder starten.
1.2Analog-digital-Wandler MCP3008 nachrüsten
Anders als bei anderen Mikrocontroller-Boards, beispielsweise aus der Arduino-Ecke, fehlen dem Raspberry Pi trotz der Menge an GPIO-Anschlüssen die analogen Eingänge. Ist der Einsatz von kostengünstigen analogen Sensoren gewünscht, ist entweder der direkte Umweg über einen Arduino oder ein Analog-digital-Wandler-Board notwendig, falls auf dem Raspberry Pi bzw. im zu steuernden Programmcode genauere Messwerte verarbeitet werden sollen. Im Raspberry-Pi-Umfeld ist der Analog-digital-Wandler MCP3008-IC (Datenblatt: http://bit.ly/OaQwQh bzw. http://bit.ly/1fkK3gv) sehr verbreitet, der für kleines Geld im Elektronikhandel erhältlich ist.
Datenblatt prüfen, Funktionen verstehen
Um die Funktionsweise und das Zusammenspiel der Anschlüsse zu durchschauen, damit Sie den Analog-digital-Wandler MCP3008-IC mit dem Raspberry Pi einsetzen können, benötigen Sie Informationen aus dem Datenblatt dazu, wie die Kommunikation von Mikrocontroller und MCP3008-Chip vonstatten geht.
Bild 1.5: In der obersten Zeile des Datenblatts in der Abbildung sehen Sie das Chip-Select-Signal, das bei der dargestellten fallenden Flanke von HIGH auf LOW geht.
Um nun eine Datenübertragung anzutriggern, muss zunächst der Clock-Pin (SCLK) auf LOW-Pegel (GPIO-Pin auf False) gesetzt werden. Im nächsten Schritt benötigt der IC einen Befehl, damit dieser den Messwert des gewünschten Kanals zurückliefert. Der MCP3008 hat acht analoge Kanäle (CH0 bis CH7), im Datenblatt wird das Kommando zum Auslesen des Messwerts in der obigen Abbildung bei MCU Transmitted Data (Aligned with falling edge of clock) mit dem Startbit 1 grafisch dargestellt. Hier bezeichnen die mit D0, D1 und D2 bezeichneten Bits den Binärwert des verwendeten Kanals. Somit sind neben den drei Bits für den Kanal noch das Startbit 1 und das SGL/DIFF-Bit notwendig, um den jeweiligen Kanal anzuschubsen, damit dieser anschließend den Messwert zum Mikrocontroller zurückschickt. Wie Sie dies in Programmcode umsetzen, lesen Sie, nachdem Sie die dazu passende Schaltung auf dem Steckboard umgesetzt haben.
MCP3008 auf dem Steckboard nutzen
Um die Grundfunktionen des MCP3008-IC kennenzulernen, bauen Sie im nächsten Schritt eine Beispielschaltung mit einem Drehpotenziometer auf dem Steckboard auf und verbinden den MCP3008-IC mit der SPI-Schnittstelle sowie der Masse und Spannungsversorgung des Raspberry Pi. Der SPI (Serial Peripheral Interface Bus) lässt sich für die Signalübertragung zwischen dem Single Master (in diesem Fall dem Raspberry Pi) und einem oder mehreren Slave-Geräten bestens verwenden.
Die SPI-Schnittstelle selbst benötigt auf der GPIO-Leiste des Raspberry Pi die fünf Pins SCLK (Serial Clock, Taktgeber), MOSI (Master Out, Slave