O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

LEGO und Elektronik - Raspberry Pi, Arduino, Sensoren, Motoren und vieles mehr einsetzen und programmieren

Book Description

  • Mit Sensoren auf die Umgebung reagieren, Motoren ansteuern, Texte morsen, Pappkarten abschießen uvm.
  • Spannende Projekte mit Bau- und Programmieranleitungen wie z.B. Fernsteuerung eines Roboters mit Smartphone
  • Alle Beispiel-Roboter sind sowohl mit als auch ohne LEGO®-EV3-Komponenten realisierbar

LEGO®-Steine – sei es als selbstgebaute LEGO®-Fahrzeuge, -Roboter oder als LEGO®-Fertigmodelle – lassen sich hervorragend mit Elektronikkomponenten versehen. Die Mikrocontroller Raspberry Pi und Arduino in Verbindung mit günstigen Sensoren und Motoren sind hierfür besonders gut geeignet. In diesem Buch erfahren Sie, wie Sie verschiedene Elektronikkomponenten einsetzen und programmieren.

Im ersten Teil des Buches vermittelt der Autor Grundlagen zu allen technischen Komponenten, mit denen Sie Ihre LEGO®-Modelle oder -Roboter ausstatten können. Sie erhalten eine kurze Einführung in die beiden Mikrocontroller Raspberry Pi und Arduino und erfahren, wie Sie Ihre LEGO®-Steine mit Motoren, diversen Sensoren und weiteren Komponenten ausstatten und diese programmieren können:

  • Getriebemotoren mit Motortreiber
  • Einsatz von diversen Sensoren wie Touch-, Line-, Ultraschall- und Kompass-Sensoren und dazugehörige Aktivitäten wie: auf Helligkeit, Entfernung und Himmelsrichtung reagieren und Gegenstände wahrnehmen
  • LEDs blinken lassen und dimmen
  • Töne produzieren, Texte morsen und Musik ausgeben
  • Einsatz der Raspberry-Pi-Kamera
  • LCD-Displays zur Ausgabe von Daten

In einem separaten Kapitel bauen Sie eigene Sensoren wie einen Licht-, Line- und Touch-Sensor sowie eine Hilfsplatine und eine Stromversorgung, um die im Buch besprochenen Schaltungen für Ihren Roboter oder Ihr LEGO®-Fertigmodell einsetzen zu können.

Im zweiten Teil des Buches finden Sie zahlreiche Projekte mit Robotern, die verschiedene spannende Aufgaben ausführen:

  • Ein Roboter, der sowohl Gegenstände als auch die Tischkante erkennen kann und nicht vom Tisch fällt
  • Lösen eines Labyrinths mithilfe von künstlicher Intelligenz
  • Lernen einer Linienverfolgung gesteuert durch ein neuronales Netz
  • Fernsteuerung mit dem Raspberry Pi und einem Smartphone am Beispiel eines Roboters, der Snacks serviert
  • Sammeln farbiger Joghurtbecher. Dabei wird zur Bilderkennung das Kameramodul des Raspberry Pi sowie der BrickPi+ eingesetzt.

Bei allen Projekten geht der Autor sowohl auf die Hardware als auch auf die entsprechende Programmierung ein.

Hardware:

Im Buch werden sowohl günstige handelsübliche Motoren und Sensoren beschrieben als auch die LEGO®-eigenen Komponenten sowie der BrickPi+.

Alle Erläuterungen im Buch sowie die beschriebenen Elektronikkomponenten und Mikrocontroller können für beliebige Modelle verwendet werden. Sie können einen eigenen Roboter bauen, die LEGO®-Roboter im Buch nachbauen oder als Grundlage ein LEGO®-Fertigmodell verwenden. Für die im Buch verwendeten LEGO®-Roboter gibt es die Bauanleitungen zum kostenlosen Download.

Table of Contents

  1. Impressum
  2. Prolog
  3. Einleitung
  4. Kapitel 1: LEGO als Rahmen für unsere Roboter
    1. 1.1 LEGO mit Elektronikkomponenten versehen
      1. 1.1.1 Folgende Fremdkomponenten werden verwendet
      2. 1.1.2 Folgende LEGO-Elektronikkomponenten werden verwendet
    2. 1.2 Ein vorhandenes LEGO-Modell hacken
  5. Kapitel 2: Den Arduino Uno kennenlernen
    1. 2.1 Der Computer
    2. 2.2 Die Entwicklungsumgebung installieren
      1. 2.2.1 Windows
      2. 2.2.2 OS X
      3. 2.2.3 Linux
      4. 2.2.4 Einrichtung der Entwicklungsumgebung
    3. 2.3 Die Schnittstelle
    4. 2.4 Das Standardprogramm für den Arduino
  6. Kapitel 3: Den Raspberry Pi kennenlernen
    1. 3.1 Der Computer
    2. 3.2 Die GPIO-Schnittstelle
    3. 3.3 Den Raspberry Pi konfigurieren
      1. 3.3.1 Hardwareausstattung
      2. 3.3.2 SD-Karte vorbereiten
      3. 3.3.3 Erster Start von Raspbian
      4. 3.3.4 Mit Python 3 die GPIO-Schnittstelle ansprechen
      5. 3.3.5 Aktivierung der SPI-Schnittstelle
      6. 3.3.6 Anschluss an das WLAN
      7. 3.3.7 Den BrickPi+ anbinden
    4. 3.4 Die Softwareschnittstelle
      1. 3.4.1 Das Rahmenprogramm für die Fremdkomponenten
      2. 3.4.2 Das Rahmenprogramm für das BrickPi+-Modul
      3. 3.4.3 Das Rahmenprogramm für Experimente
  7. Kapitel 4: Hilfsplatinen bauen
    1. 4.1 Einen Licht-Sensor bauen
    2. 4.2 Einen Line-Sensor bauen
    3. 4.3 Touch-Sensoren bauen
    4. 4.4 Eine Hilfsplatine für den Arduino bauen
      1. 4.4.1 Die Spannungsversorgung
      2. 4.4.2 Das I2C-Interface
      3. 4.4.3 Der Taster
      4. 4.4.4 Die LED
      5. 4.4.5 Der Piezo-Schallgeber
    5. 4.5 Eine Hilfsplatine für den Raspberry Pi bauen
      1. 4.5.1 Die Spannungsversorgung
      2. 4.5.2 Die Spannungsteiler
      3. 4.5.3 Das I2C-Interface
      4. 4.5.4 Der Taster
      5. 4.5.5 Die LED
      6. 4.5.6 Der Piezo-Schallgeber
      7. 4.5.7 Das MCP3008 IC
    6. 4.6 Eine Stromversorgung bauen
  8. Kapitel 5: Einsatz von Motoren
    1. 5.1 Getriebemotoren
      1. 5.1.1 Getriebemotoren mit Motortreiber am Beispiel des Arduino
      2. 5.1.2 Getriebemotoren mit Motortreiber am Beispiel des Raspberry Pi
      3. 5.1.3 Umsetzung der analogen Achsstände in digitale Informationen, die Encoder am Beispiel des Arduino
      4. 5.1.4 Die Encoder am Beispiel des Raspberry Pi
      5. 5.1.5 Abfahren der »platonischen Flächen« (1) mit dem Arduino
      6. 5.1.6 Abfahren der »platonischen Flächen« (2) mit dem Raspberry Pi
    2. 5.2 Die LEGO-Motoren
      1. 5.2.1 LEGO-Motoren mit dem BrickPi+ ansteuern
      2. 5.2.2 Abfahren der »platonischen Flächen« (3) mit dem Raspberry Pi und dem BrickPi+-Modul
    3. 5.3 Aufgabe und Lösung
  9. Kapitel 6: Einsatz von Sensoren
    1. 6.1 Auf Helligkeit reagieren
      1. 6.1.1 Fototransistoren verwenden mit dem Arduino
      2. 6.1.2 Fototransistoren verwenden mit dem Raspberry Pi
      3. 6.1.3 Der Color-Sensor von LEGO
      4. 6.1.4 Die hellste Lichtquelle des Raumes finden mit dem Arduino
      5. 6.1.5 Die hellste Lichtquelle des Raumes finden mit dem Raspberry Pi
    2. 6.2 Auf Entfernung reagieren
      1. 6.2.1 Einen Ultraschall-Sensor verwenden mit dem Arduino
      2. 6.2.2 Einen Ultraschall-Sensor verwenden mit dem Raspberry Pi
      3. 6.2.3 Der Ultraschall-Sensor von LEGO
      4. 6.2.4 Einen Infrarot-Sensor verwenden mit dem Arduino
      5. 6.2.5 Einen Infrarot-Sensor verwenden mit dem Raspberry Pi
      6. 6.2.6 Der Infrarot-Sensor von LEGO
      7. 6.2.7 Wänden und Gegenständen ausweichen mit dem Arduino
      8. 6.2.8 Wänden und Gegenständen ausweichen mit dem Raspberry Pi
    3. 6.3 Gegenstände wahrnehmen
      1. 6.3.1 Einen Touch-Sensor verwenden mit dem Arduino
      2. 6.3.2 Einen Touch-Sensor verwenden mit dem Raspberry Pi
      3. 6.3.3 Der Touch-Sensor von LEGO
      4. 6.3.4 Hindernisse erkennen mit dem Arduino
      5. 6.3.5 Hindernisse erkennen mit dem Raspberry Pi
    4. 6.4 Auf die Himmelsrichtung reagieren
      1. 6.4.1 Einen Kompass-Sensor verwenden mit dem Arduino
      2. 6.4.2 Der Kompass-Sensor von Hitechnic für LEGO
      3. 6.4.3 Nach Himmelsrichtungen ausrichten mit dem Arduino
    5. 6.5 Aufgaben und Lösungen
  10. Kapitel 7: Einsatz weiterer Komponenten
    1. 7.1 LEDs verwenden
      1. 7.1.1 Eine LED blinken lasse​n mit dem Arduino
      2. 7.1.2 Eine LED blinken lassen mit dem Raspberry Pi
      3. 7.1.3 Eine LED dimmen mit dem Arduino
      4. 7.1.4 Eine LED dimmen mit dem Raspberry Pi
    2. 7.2 Töne fabrizieren
      1. 7.2.1 Einen Piezo-Schallgeber verwenden mit dem Arduino
      2. 7.2.2 Einen Piezo-Schallgeber verwenden mit dem Raspberry Pi
      3. 7.2.3 Texte morse​n mit dem Arduino
      4. 7.2.4 Texte morsen mit dem Raspberry Pi
    3. 7.3 Die Umgebung visuell auswerten
      1. 7.3.1 Die Raspberry-Pi-Kamera verwenden
      2. 7.3.2 Bunte Pappkarten abschießen mit dem LEGO-Shooter und dem Brick Pi+
    4. 7.4 Musik ausgeben mit dem Raspberry Pi
    5. 7.5 Informationen sichtbar machen
      1. 7.5.1 Ein LCD-Display für den Arduino
      2. 7.5.2 Ein LCD-Display für den Raspberry Pi
    6. 7.6 Aufgaben und Lösungen
  11. Kapitel 8: Auf dem Tisch bleiben mit dem Raspberry Pi
    1. 8.1 Der Roboter
    2. 8.2 Die Sensoren
      1. 8.2.1 Der Ultraschall-Sensor
      2. 8.2.2 Der Touch-Sensor vorne
      3. 8.2.3 Der Touch-Sensor hinten
    3. 8.3 Das Programm
    4. 8.4 Die Parametrisierung
    5. 8.5 Ein Programm für den Arduino
  12. Kapitel 9: Ein Labyrinth lösen mit einem Expertensystem und dem Arduino
    1. 9.1 Erst ein wenig Theorie
    2. 9.2 Der Roboter
    3. 9.3 Die Sensoren
      1. 9.3.1 Der Kompass-Sensor
      2. 9.3.2 Der Line-Sensor
      3. 9.3.3 Der Touch-Sensor
    4. 9.4 Das Programm
    5. 9.5 Die Parametrisierung
    6. 9.6 Ein Labyrinth lösen mit dem Raspberry Pi
  13. Kapitel 10: Die Linienverfolgung mit einem neuronalen Netz mit dem Raspberry Pi
    1. 10.1 Kurze Einführung in neuronale Netze
    2. 10.2 Der Roboter
    3. 10.3 Der Line-Sensor
    4. 10.4 Das klassische Programm zur Linienverfolgung
      1. 10.4.1 Das Programm
      2. 10.4.2 Die Parametrisierung
    5. 10.5 Das Lernen der Linienverfolgung durch ein neuronales Netz
    6. 10.6 Das Durchführen der Linienverfolgung durch ein neuronales Netz
    7. 10.7 Die Linienverfolgung mit dem Arduino
  14. Kapitel 11: Einen Roboter fernsteuern mit dem Raspberry Pi
    1. 11.1 Der Roboter
    2. 11.2 Fernsteuerung mit Raspberry SSH
      1. 11.2.1 Das Programm
      2. 11.2.2 Die Parametrisierung
    3. 11.3 Fernsteuerung mit einem Webserver und PHP
      1. 11.3.1 Das PHP-Programm
      2. 11.3.2 Das Python-Programm
      3. 11.3.3 Die Parametrisierung
    4. 11.4 Der Ausbau des Roboters
    5. 11.5 Einen Roboter fernsteuern mit dem Arduino
  15. Kapitel 12: Joghurtbecher sammeln mit dem Raspberry Pi und dem BrickPi+
    1. 12.1 Der Roboter
    2. 12.2 Die Erkennung der Joghurtbecher per Kamera
    3. 12.3 Die übrigen Sensoren
      1. 12.3.1 Der Kompass-Sensor
      2. 12.3.2 Der Color-Sensor
      3. 12.3.3 Der Touch-Sensor
    4. 12.4 Joghurtbecher sammeln
    5. 12.5 Parametrisieren des Programms
      1. 12.5.1 Joghurtbecher sammeln mit dem Arduino
  16. Kapitel 13: Ein vorhandenes LEGO-Modell aufmotzen
    1. 13.1 Der Roboter mit dem Arduino
    2. 13.2 Der Roboter mit dem Raspberry Pi
    3. 13.3 Die Sensoren
    4. 13.4 Ausblick
  17. Anhang
    1. A.1 Codeschnipsel zu den einzelnen Komponenten
      1. A.1.1 Licht-Sensor
      2. A.1.2 Infrarot-Sensor
      3. A.1.3 Ultraschall-Sensor
      4. A.1.4 Touch-Sensor
      5. A.1.5 Kompass-Sensor
      6. A.1.6 Motortreiber
      7. A.1.7 LED
      8. A.1.8 Piezo-Schallgeber
      9. A.1.9 Aktivlautsprecher
      10. A.1.10 LCD-Display
      11. A.1.11 LEGO-Color-Sensor
      12. A.1.12 LEGO-Infrarot-Sensor
      13. A.1.13 LEGO-Ultraschall-Sensor
      14. A.1.14 LEGO-Touch-Sensor
      15. A.1.15 Hitechnic-Kompass-Sensor
      16. A.1.16 LEGO-NXT-Motor
      17. A.1.17 LEGO EV3 mittlerer Motor
      18. A.1.18 LEGO-EV3-Motor
    2. A.2 Die Programmiersprache C(++)
      1. A.2.1 ​Schnittstellenfunktionen
      2. A.2.2 ​Datentypen
      3. A.2.3 ​Datenstrukturen
      4. A.2.4 ​Steuerungsstatements
      5. A.2.5 ​Programmschleifen
      6. A.2.6 ​Mathematisch-logische Operationen
      7. A.2.7 ​Mathematische und Zeit-Funktionen
      8. A.2.8 ​Serielle Kommunikation
    3. A.3 Die Programmiersprache ​Python
      1. A.3.1 ​Schnittstellenfunktionen
      2. A.3.2 ​Datentypen
      3. A.3.3 ​Datenstrukturen
      4. A.3.4 ​Steuerungsstatements
      5. A.3.5 ​Mathematisch-logische Operationen
      6. A.3.6 Mathematische und Zeit-Funktionen
    4. A.4 Bezugsquellennachweis
    5. A.5 Einrichten eines VNC-Servers für den Raspberry Pi
    6. A.6 Über neuronale Netze
      1. A.6.1 Künstliche neuronale Netze
      2. A.6.2 Das Backpropagation-Netz​