Der Raspberry Pi, dieser unscheinbare kleine Computer im Kreditkartenformat, hat sich als unglaublich vielseitiges Werkzeug für Hobbyisten, Lernende und Entwickler erwiesen. Seine Anwendungsmöglichkeiten reichen von einfachen Programmierübungen bis hin zu komplexen Automatisierungssystemen. Eine besonders faszinierende Anwendung, die das Potenzial des Raspberry Pis unterstreicht, ist die Farberkennung. Dieses Projekt ist nicht nur technisch interessant, sondern kann auch einen wertvollen Beitrag leisten, insbesondere für Menschen mit Farbsehschwäche.

Stellen Sie sich ein Gerät vor, das die Farbe eines Objekts identifizieren und Ihnen diese Farbe sogar ansagen kann. Genau das ermöglicht ein Farberkennungsprojekt mit dem Raspberry Pi und einem passenden Farbsensor. Es ist ein DIY-Projekt, das Ihnen nicht nur neue Fähigkeiten im Umgang mit Hardware und Software vermittelt, sondern auch zeigt, wie Technologie das tägliche Leben erleichtern kann. Die Grundidee ist einfach: Ein Sensor misst das von einem Objekt reflektierte Licht, der Raspberry Pi verarbeitet diese Daten und gibt die erkannte Farbe aus.

Wie funktioniert die Farberkennung mit dem Raspberry Pi?
Das Herzstück dieses Projekts ist der Farbsensor. Dieser Sensor ist in der Lage, das Licht, das von einer Oberfläche reflektiert wird, zu messen und in elektrische Signale umzuwandeln. Die gängigste Methode zur digitalen Darstellung von Farben ist das RGB-Modell (Rot, Grün, Blau). Der Sensor liefert also Werte für die Intensität der roten, grünen und blauen Lichtanteile.
Der Raspberry Pi liest diese RGB-Werte vom Sensor aus. Um jedoch eine Farbe eindeutig zu identifizieren und sie einer grundlegenden Farbe (wie Rot, Grün, Blau, Gelb usw.) zuzuordnen, ist die direkte Verwendung der RGB-Werte oft nicht ideal. Hier kommt das HSV- oder HSL-Farbmodell ins Spiel, genauer gesagt der Hue-Wert. Hue (Farbton) ist ein Parameter, der die "reine" Farbe beschreibt, unabhängig von Sättigung (Reinheit der Farbe) oder Helligkeit (Luminanz). Durch die Umrechnung der RGB-Werte in den Hue-Wert erhält man eine Zahl, die direkt den Farbton repräsentiert. Zum Beispiel haben Rottöne einen Hue-Wert nahe 0 oder 360 Grad, Grüntöne liegen um 120 Grad und Blautöne um 240 Grad.
Der Raspberry Pi verarbeitet den berechneten Hue-Wert und vergleicht ihn mit vordefinierten Bereichen, die den Grundfarben zugeordnet sind. Liegt der Hue-Wert beispielsweise zwischen 330 und 30 Grad (unter Berücksichtigung des Übergangs von 360 zu 0), wird die Farbe als Rot erkannt. Liegt er zwischen 90 und 150 Grad, ist es Grün, und so weiter. Dieser Prozess ermöglicht es dem System, die "Hauptfarbe" des Objekts zu bestimmen, das dem Sensor präsentiert wird.
Die Ausgabe der erkannten Farbe kann auf verschiedene Weisen erfolgen. Eine häufige Methode ist die Ausgabe auf der Konsole (Terminal). Für eine noch praktischere Anwendung, insbesondere für Menschen mit Sehschwierigkeiten, kann ein Text-to-Speech (TTS)-Modul verwendet werden. Wenn ein Knopf gedrückt wird (oft an einen GPIO-Pin des Raspberry Pi angeschlossen), liest das System die erkannte Farbe laut vor. Zusätzlich kann ein kleines OLED-Display integriert werden, das nicht nur die erkannte Farbe, sondern auch die rohen RGB- und die berechneten HSV-Werte anzeigt.
Voraussetzungen für das Farberkennungsprojekt
Dieses Projekt wird als mittelschwer eingestuft. Das bedeutet, dass grundlegende Kenntnisse im Umgang mit dem Raspberry Pi und der Kommandozeile hilfreich sind, aber auch Anfänger mit etwas Geduld und Lernbereitschaft können es umsetzen.
Materialien (Zutaten):
- Raspberry Pi (Modell 3B/B+, 4B oder neuer empfohlen)
- Farbsensor (z.B. TCS3200 oder ähnlich)
- Optional: 0.96 Zoll OLED-Display (I2C-basiert)
- Optional: Ein Taster (Button)
- Jumper-Kabel (Stecker-Buchse und optional Stecker-Stecker)
- Optional: Ein Breadboard und eine Raspberry Pi GPIO-Erweiterungsplatine (erleichtert den Aufbau)
- MicroSD-Karte (mindestens 8GB, besser 16GB oder mehr)
- USB-C Netzteil für Raspberry Pi
Werkzeuge:
- Computer (PC oder Laptop) zum Flashen der SD-Karte
- Internetverbindung (WLAN oder Ethernet)
- Optional für lokale Arbeit am Pi: HDMI-Bildschirm/Monitor, USB-Tastatur, USB-Maus
- Optional für remote Arbeit: SSH-Client (in modernen Betriebssystemen oft integriert oder als separates Programm wie PuTTY)
Vorbereitung des Raspberry Pi
Der erste Schritt besteht darin, das Betriebssystem auf die MicroSD-Karte zu bringen. Wenn Sie noch kein aktuelles Raspberry Pi OS installiert haben, laden Sie den Raspberry Pi Imager von der offiziellen Raspberry Pi Webseite herunter (raspberrypi.org/downloads). Mit diesem Tool können Sie das neueste Raspberry Pi OS (oder eine andere Distribution) einfach auf die MicroSD-Karte schreiben.
Nachdem das Betriebssystem auf der SD-Karte ist, gibt es zwei Hauptmethoden, um den Raspberry Pi einzurichten und zu konfigurieren: lokal direkt am Pi oder remote über SSH von einem anderen Computer im Netzwerk.
Lokale Einrichtung (mit Monitor, Tastatur, Maus):
Stecken Sie die vorbereitete MicroSD-Karte in den Raspberry Pi. Verbinden Sie Monitor, Tastatur und Maus mit dem Pi. Verbinden Sie den Pi über ein Netzwerkkabel mit Ihrem Router oder stellen Sie eine WLAN-Verbindung her (dies kann während des ersten Bootvorgangs konfiguriert werden). Schließen Sie das Netzteil an, um den Pi zu starten. Folgen Sie den Anweisungen des Einrichtungsassistenten auf dem Bildschirm, um die grundlegenden Einstellungen wie Sprache, Tastaturlayout, WLAN (falls nicht per Kabel verbunden) und Benutzerpasswort vorzunehmen.
Remote-Einrichtung (über SSH):
Diese Methode erfordert keinen Monitor, Tastatur oder Maus direkt am Pi, dafür aber einen zweiten Computer und eine Netzwerkverbindung. Bevor Sie die SD-Karte in den Pi stecken, müssen Sie SSH aktivieren und optional die WLAN-Zugangsdaten konfigurieren.
Um SSH zu aktivieren, stecken Sie die SD-Karte kurz in Ihren PC. Sie sehen eine Partition namens BOOT. Erstellen Sie in diesem Hauptverzeichnis eine leere Datei namens `ssh` (stellen Sie sicher, dass sie keine Dateierweiterung wie `.txt` hat). Unter Windows müssen Sie eventuell im Datei-Explorer unter "Ansicht" die Option "Dateinamenerweiterungen" aktivieren, um dies korrekt zu tun.
Um WLAN zu konfigurieren, erstellen Sie in der BOOT-Partition eine Datei namens `wpa_supplicant.conf` und fügen Sie folgenden Inhalt ein (ersetzen Sie "YOUR_COUNTRY", "YOUR_SSID" und "YOUR_PASSWORD" durch Ihre Daten):
country=YOUR_COUNTRY ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="YOUR_SSID" psk="YOUR_PASSWORD" }Stecken Sie nun die SD-Karte in den Pi. Verbinden Sie den Pi mit Strom. Wenn Sie WLAN konfiguriert haben, wird er versuchen, sich mit diesem Netzwerk zu verbinden. Wenn Sie dies nicht getan haben oder eine Kabelverbindung bevorzugen, verbinden Sie den Pi per Ethernet-Kabel mit Ihrem Router.
Nachdem der Pi hochgefahren ist (dies kann 2-3 Minuten dauern), müssen Sie seine IP-Adresse im Netzwerk herausfinden. Das können Sie über die Weboberfläche Ihres Routers tun oder indem Sie einen IP-Scanner verwenden (z.B. Angry IP Scanner). Öffnen Sie auf Ihrem PC ein Terminal oder PowerShell und verbinden Sie sich per SSH:
ssh pi@<IP-ADRESSE-DES-PI>Das Standardpasswort ist `raspberry`.
System aktualisieren und konfigurieren:
Unabhängig davon, ob Sie lokal oder remote arbeiten, sollten Sie das System auf den neuesten Stand bringen. Führen Sie im Terminal des Pi (oder über Ihre SSH-Verbindung) folgenden Befehl aus:
sudo apt update && sudo apt upgrade -yDies aktualisiert die Paketliste und installiert alle verfügbaren Updates. Anschließend müssen Sie die I2C-Schnittstelle aktivieren, die für das OLED-Display benötigt wird. Starten Sie das Konfigurationstool mit:
sudo raspi-configWählen Sie im Menü "3 Interface Options" > "P5 I2C" > "Yes". Bestätigen Sie und verlassen Sie das Tool. Ein Neustart ist eventuell erforderlich.
Installation der benötigten Software
Nun müssen die für das Projekt erforderlichen Programme und Bibliotheken installiert werden. Führen Sie die folgenden Befehle im Terminal aus:
Stellen Sie sicher, dass der Python-Paketmanager `pip` installiert ist:
sudo apt install python3-pip -yInstallieren Sie den Git-Client, um den Projektcode von GitHub herunterzuladen:
sudo apt install git -yLaden Sie den Projektcode herunter und wechseln Sie in das Projektverzeichnis:
git clone https://github.com/WhaddaMakers/Whadda_you_see_RPi.git
cd ./Whadda_you_see_RPiInstallieren Sie das Text-to-Speech-Modul (oft über ein Skript bereitgestellt):
sudo chmod +x install_tts.sh
sudo ./install_tts.shInstallieren Sie die benötigten Python-Bibliotheken, die im `requirements.txt` File gelistet sind:
pip3 install -r requirements.txtFalls Sie Kopfhörer über den 3,5-mm-Audioanschluss verwenden möchten, stellen Sie sicher, dass die Audioausgabe korrekt eingestellt ist. Dies können Sie erneut mit `sudo raspi-config` tun:
sudo raspi-configWählen Sie "1 System options" > "S2 Audio" > "1 Headphones".
Hardware-Aufbau: Verbinden der Komponenten
Der nächste Schritt ist das physikalische Verbinden des Farbsensors, des optionalen OLED-Displays und des Tasters mit den GPIO-Pins des Raspberry Pi. Obwohl es möglich ist, alles direkt mit Stecker-Buchse-Jumper-Kabeln zu verbinden, macht die Verwendung eines Breadboards und einer GPIO-Erweiterungsplatine den Aufbau übersichtlicher und einfacher.
Die folgenden Tabellen zeigen die notwendigen Verbindungen für den Farbsensor (TCS3200-basiert) und das OLED-Display:
Verbindungen Farbsensor (TCS3200) zu Raspberry Pi:
| TCS3200 Pin | Raspberry Pi Pin |
|---|---|
| VCC | 3V3 (Pin 1 oder 17) |
| GND | GND (Pin 6, 9, 14, 20, 25, 30, 34, 39) |
| OE | GND (Pin 6, etc.) |
| LED | GND (Pin 6, etc.) |
| S0 | GPIO 5 (Pin 29) |
| S1 | GPIO 6 (Pin 31) |
| S2 | GPIO 13 (Pin 33) |
| S3 | GPIO 19 (Pin 35) |
| OUT | GPIO 26 (Pin 37) |
Beachten Sie, dass die GPIO-Nummern (z.B. GPIO 5) die BCM-Nummerierung sind, während die Pin-Nummern die physischen Pins auf der GPIO-Leiste des Raspberry Pi sind.
Verbindungen 0.96" OLED-Display zu Raspberry Pi (I2C):
| OLED Pin | Raspberry Pi Pin |
|---|---|
| VCC | 3V3 (Pin 1 oder 17) |
| GND | GND (Pin 6, etc.) |
| SCL | SCL1 (GPIO 3, Pin 5) |
| SDA | SDA1 (GPIO 2, Pin 3) |
Wenn Sie einen Taster verwenden, verbinden Sie ein Bein des Tasters mit einem GPIO-Pin (z.B. GPIO 20, Pin 38) und das andere Bein mit GND (z.B. Pin 39). Achten Sie auf die korrekte Polarität und verwenden Sie gegebenenfalls interne Pull-up- oder Pull-down-Widerstände des Raspberry Pi, um ein sauberes Signal zu erhalten.
Der Code und die Logik
Das Projekt verwendet Python, um die Sensorwerte auszulesen und die Farberkennung durchzuführen. Im Kern des Python-Skripts liegt die Logik zur Umrechnung der vom Sensor gelieferten RGB-Werte in den Hue-Wert. Anschließend wird dieser Hue-Wert analysiert. Bereiche des Hue-Werts werden spezifischen Farbkategorien zugeordnet (z.B. Rot, Gelb, Grün, Blau). Der Code enthält auch die Implementierung für die Kommunikation mit dem Text-to-Speech-System und optional für die Anzeige auf dem OLED-Display.
Wenn der Taster gedrückt wird, triggert dies eine Funktion im Python-Skript. Diese Funktion veranlasst den Sensor, eine Messung durchzuführen. Die gemessenen RGB-Werte werden verarbeitet, der Hue-Wert wird berechnet, und die entsprechende Farbe wird bestimmt. Diese Farbe wird dann entweder auf der Konsole ausgegeben, vom TTS-Modul angesagt oder auf dem OLED-Display angezeigt.
Testen und Nutzung
Nachdem die Hardware angeschlossen und die Software installiert ist, können Sie das Projekt testen. Navigieren Sie im Terminal (falls Sie noch nicht dort sind) in das Projektverzeichnis (`cd ./Whadda_you_see_RPi`). Starten Sie das Hauptskript mit:
python3 main.pyDas Skript sollte starten und auf die Betätigung des Tasters warten. Halten Sie ein Objekt mit einer klaren Farbe vor den Farbsensor. Drücken Sie den Taster. Das System sollte nun die Farbe erkennen und die Ausgabe entsprechend Ihrer Konfiguration (Konsole, TTS, OLED) liefern. Testen Sie verschiedene Farben, um zu sehen, wie gut das System funktioniert.
Mögliche Erweiterungen und Verbesserungen
Das Basisprojekt ist ein hervorragender Ausgangspunkt, kann aber auf verschiedene Weise erweitert werden:
- Kalibrierung: Die Genauigkeit der Farberkennung kann durch eine Kalibrierung verbessert werden. Dabei werden bekannte Farbmuster gemessen und die Zuordnung von Hue-Werten zu Farbkategorien angepasst.
- Mehr Farbkategorien: Das System kann trainiert werden, mehr als nur die Grundfarben zu unterscheiden, z.B. Braun, Lila, Orange, Rosa, Grau, Schwarz und Weiß.
- Benutzeroberfläche: Statt nur eines OLED-Displays könnte ein größerer Bildschirm mit einer grafischen Oberfläche verwendet werden.
- Gehäuse: Bauen Sie ein schönes Gehäuse für das Projekt, um es tragbar und benutzerfreundlicher zu machen.
- Verschiedene Sensoren: Experimentieren Sie mit anderen Farbsensoren, die möglicherweise eine höhere Genauigkeit oder zusätzliche Funktionen bieten.
- Integration: Integrieren Sie das Farberkennungssystem in ein größeres Projekt, z.B. einen Farbsortierroboter.
Häufig gestellte Fragen (FAQs)
Welcher Farbsensor wird in diesem Projekt verwendet?
Basierend auf den Verbindungsdetails wird häufig ein Sensor verwendet, der auf dem TCS3200-Chip basiert. Dieser Chip misst die Intensität von Rot, Grün und Blau.
Warum wird der Hue-Wert verwendet und nicht direkt RGB?
RGB-Werte sind stark von der Beleuchtung und dem Abstand zum Objekt abhängig. Der Hue-Wert beschreibt den Farbton relativ unabhängig von Helligkeit und Sättigung, was die Unterscheidung grundlegender Farben unter verschiedenen Bedingungen erleichtert.
Ist das OLED-Display zwingend erforderlich?
Nein, das OLED-Display ist optional. Die grundlegende Farberkennung kann auch nur mit Terminalausgabe und/oder Text-to-Speech funktionieren.
Kann ich einen anderen Raspberry Pi verwenden als die genannten Modelle?
Ja, die meisten neueren Raspberry Pi Modelle mit einer Standard-40-Pin-GPIO-Leiste (wie Pi Zero W/2W, Pi 3A+) sollten ebenfalls funktionieren, solange sie die notwendigen Schnittstellen (GPIO, I2C) unterstützen und genügend Rechenleistung für die Software bieten.
Meine Sprachausgabe funktioniert nicht. Woran liegt das?
Überprüfen Sie, ob das Text-to-Speech-Modul korrekt installiert wurde (führen Sie das Installationsskript erneut aus). Stellen Sie sicher, dass die Audioausgabe des Raspberry Pi korrekt konfiguriert ist (über `raspi-config`). Stellen Sie sicher, dass Lautsprecher oder Kopfhörer angeschlossen und funktionsfähig sind.
Muss ich den Farbsensor kalibrieren?
Für eine grundlegende Erkennung ist oft keine aufwendige Kalibrierung notwendig, aber für eine höhere Genauigkeit, insbesondere bei der Unterscheidung ähnlicher Farben oder unter wechselnden Lichtverhältnissen, ist eine Kalibrierung sehr empfehlenswert.
Welchen Schwierigkeitsgrad hat dieses Projekt?
Das Projekt wird als mittelschwer eingestuft. Es erfordert grundlegende Kenntnisse des Raspberry Pi, der Kommandozeile und einfacher Verkabelung.
Fazit
Das Farberkennungsprojekt mit dem Raspberry Pi ist ein ausgezeichnetes Beispiel dafür, wie kostengünstige Hardware und Open-Source-Software kombiniert werden können, um nützliche und lehrreiche Geräte zu schaffen. Von der grundlegenden Sensorik über die Datenverarbeitung bis hin zur Ausgabe per Sprache oder Display deckt es viele Aspekte der Elektronik und Programmierung ab. Es ist ein lohnendes Projekt für jeden, der in die Welt der physischen Datenverarbeitung eintauchen oder ein Gerät bauen möchte, das einen konkreten Nutzen hat, insbesondere im Bereich der Barrierefreiheit. Viel Erfolg beim Nachbau!
Hat dich der Artikel Farben erkennen mit Raspberry Pi interessiert? Schau auch in die Kategorie Ogólny rein – dort findest du mehr ähnliche Inhalte!
