Während der letzten drei Jahre habe ich verschiedene Raspberry Pi Roboter gebaut. So habe ich die GPIO Pins des Rapberry Pi vielfältig eingesetzt. Die Roboter die ich im letzten Jahr gebaut habe wurden immer komplexer und ich hatte bald keine freien GPIO Pins mehr an meinem Raspberry Pi übrig. So habe ich mich auf die Suche gemacht nach einer GPIO Erweiterung für meine Projekte. Dieser Port Expander sollte günstig und in der Raspberry Pi Community weit verbreitet sein. So sollte dieser Port Expander eine breite Unterstützung durch die Community haben.

Bei meiner Suche habe ich den PCF8574 Chip gefunden der auf eine kleine Platine gelötet ist und so zusätzliche 8 I/O Ports anbietet. Das PCF8574 Board wird über den I2C Bus an den Raspberry Pi angeschlossen. Das macht das Anschließen mit vier Female-To-Female Kabeln sehr einfach. Es gibt auch im Internet eine Vielzahl in Python programmierte Programme und Bibliotheken die für das PCF8574 Board zusammen mit einem Raspberry Pi  entwickelt wurden.

Das folgende Bild zeigt mein Setup mit einem Relais und dem I/O Port Expander im Vordergrund. Die Getriebemotoren auf der linken Seite gehören zu einem anderen Test.

PCF8574 test setup with all electronics

PCF8574 test setup with all electronics

Es ist auch möglich mehrere I/O Port Expander als eine Kette hintereinander zu schalten. Es ist ein entsprechender Stecker auf jedem PCF8574 vorgesehen der ein Einstecken eines weiteren Borads rechts ermöglicht. Es muss nur jedem Board eine eindeutige I2C Adresse vergeben werden. Das ist über die gelben Jumper direkt durch stecken möglich. So können verschiedene I2C Geräte in einem Roboter verbaut werden ohne das es zu Konflikten mit der I2C Adresse kommt.

Das nächste Bild zeigt das Relais und den I/O Port Expander. In dem vorderen Bildbereich ist das Board mit den gelben Jumpern für das setzen der I2C Adresse zu sehen. Im Hintergrund ist das Relais schon am Port Expander angeschlossen.

PCF8574 test setup with relais

PCF8574 test setup with relais

Nach dem Anschließen des Port Expanders am Raspberry Pi über den I2C Bus (im Bild die vier linken Kabel) und dem Verbinden des Relais an das PCF8574 Board (mittig vom Baord) ist es an der Zeit die notwendige Python Software zu installieren. Ich habe auch ein kleines Python Programm für Testzwecke geschrieben das mein Relais schaltet.

Komponenten List

Raspberry Pi 3 Model B Kit

Das hier angebotene Kit ist sicher für alle interessant die noch keinen eigenen Raspberry Pi haben und sich sonst alle Komponenten einzelnen kaufen müssten.

Vilros Raspberry Pi 3 Ultimate Starter Kit
Preis: EUR 79,99
1 neu von EUR 79,990 gebraucht
Get Your First Taste Of raspberry Pi with this Ultimate Starter Kit from Vilors.

This Is the Raspberry Pi 3 Model B Ultimate Starter Kit From Vilros
It includes the new Raspberry Pi 3 Model B (Latest Version Released on 02/29/2016)

Raspberry Pi 3 Model B Technical Specifications:
• Broadcom BCM2837 64bit ARMv8 Quad Core Processor powered SingleBoard Computer running at 1.2GHz
• 1GB RAM
• BCM43143 WiFi on board
• Bluetooth Low Energy (BLE) on board
• 40pin extended GPIO
• 4 x USB2 ports
• 4 pole Stereo output and Composite video port
• Full size HDMI
• CSI camera port for connecting the Raspberry Pi camera
• DSI display port for connecting the Raspberry Pi touch screen display
• MicroSD port for loading your operating system and storing data
• Upgraded switched Micro USB power source (now supports up to 2.4 Amps)

Kit Content
Raspberry Pi 3- Model B 1GB
Raspberry Pi Enclosure Case (Clear)
32GB Micro SD Card pre-loaded with NOOB
SD Card Adapter
5-Foot EU Micro USB Power Supply 2500 mA
High Quality HDMI Cable
400-Tie-point breadboard (white)
65 Jumper Wires -- 45 pcs--100mm, 10 pcs--150mm, 5 pcs--200mm, 5 pcs--250mm
GPIO Ribbon Cable with Breakout board
45 X 330 Resistors
45X 10K Resistors
2X Big 12mm Buttons
Heatsink for Raspberry Pi - Set of 2 Heat Sinks
10X Yellow LED
10X Red LED

NOTE: The SD Card may appear to be a smaller capacity when you test it on your computer due to partitions placed on the card once the software is installed.

WEEE-Reg.-Nr. DE 29056374

I2C Level Shifter

Der I2C Level Shifter wird benötigt um zwischen der 3,3V Welt des Raspberry Pi und der 5V Welt vieler I2C Sensoren und Geräte hin und her schalten zu können.

ADAFRUIT INDUSTRIES 757 LOGIC LEVEL CONVERTER, 4CH, ARM DEVELOPMENT BOARD (1 piece)
Price: $7.33
10 new from $6.990 used
ADAFRUIT INDUSTRIES 757 LOGIC LEVEL CONVERTER, 4CH, ARM DEVELOPMENT BOARD

PCF8574 Board

Das Board ist ideal um weitere I/O Ports am Raspberry Pi zu ergänzen.

WINGONEER PCF8574 IO Erweiterungsplatine I / O-Expander I2C-Bus Auswertungs-Entwicklungs-Modul
Preis: EUR 7,99
1 neu von EUR 7,990 gebraucht
WINGONEER® trademark Reg.NO:012678447

Features:
Basierend auf dem I2C-Schnittstelle I / O-Erweiterungsmodulen unter Verwendung von zwei I / O auf acht erweitert werden kann I / O (bis zur gleichzeitigen Einsatz 8 PCF8574, erweitert zu 64 I / O)
Maximale Features: unterstützt zwei Arten von Schnittstellen, Zugriff auf das Zielbrett: Pin oder Sitzreihe
2 unterstützt I2C-Bus-Kaskade (über Pin, Sitzreihe Docking-Verfahren gleichzeitig mehrere I2C-Module verwendet werden können)

Produkteigenschaften:
Typ: Modular / Komponenten und Teile
Band: keine
Schnittstelle: I2C
Board Type: Pin oder Sitzreihe

Technische Daten:
Typische Anwendungen: für I / O-Ressourcen-Beschränkungen der MCU I / O-Erweiterung
Die wichtigsten Ressourcen: PCF8574, I2C-Schnittstelle, die 8-Bit-Parallel
Größe: 54 * 15mm
Nettogewicht: 7g

Paket enthalten:
1x WINGONEER® PCF8574 PCF8574T Kommunikationsmodul

Software Installation

Das folgende Kapitel beschreibt die Schritte die notwendig sind um die Software und Bibliothek zu installieren die Du benötigst um das PCF8574 Board am Raspberry Pi zum Laufen zu bekommen. Ich habe ein aktuelles Raspbian als Betriebssystem verwendet.

Bitte installiere alle Software Pakete mit den folgenden Befehlen auf Deinem Raspberry Pi nacheinander.

Befehl: sudo apt-get update

Befehl: sudo apt-get install libffi-dev

Mein Programm verwendet eine von dem User “flyte” geschriebene Bibliothek. Mit dieser ist es sehr einfach möglich den PCF8574 Chip zu steuern. Die Software liegt auf GitHub unter der folgenden URL:

GitHub page: https://github.com/flyte/pcf8574.

Um die Software des Users “flyte” von GitHub zu installieren kannst Du auch den folgenden Befehl ausführen.

Befehl: sudo pip install pcf8574

Nach der Installation ist es möglich über Python mit dem PCF8574 I/O Port Expander zu kommunizieren.

Python Test Program

Ich habe ein kleines Test Programm geschrieben um mein vierfach Relais zu testen. Das Programm schaltet lediglich die I/O Ports des PCF8574 Chips und schaltet so das angeschlossene Relais. Das Relais schaltet dann entsprechend dem Status des I/O Ports ein oder aus.

Du kannst das Programm hier herunter laden, entpacken und im Terminal Fenster auf Deinem Raspberry Pi ausführen.

Download: PCF8574 – Relais Control

Das Programm steht auch auf meinem GitHub Repository zur Verfügung:

GitHub page: https://github.com/custom-build-robots/.

Nach dem Ausführen des Programmes siehst Du im Terminal Fenster Informationen über den Schaltzustand der I/O Ports des Port Expanders. Der Python Programmcode soll Dir eine Idee geben eigene Programme und Steuerungen umgesetzt werden können.

PCF8574 - test program

PCF8574 – test program

Zusammenfassung

Wenn Du keine freien GPIO Pins mehr an Deinem Raspberry Pi zur Verfügung hast, dann ist das PCF8547 Board als I/O Expander ideal. Es bietet Dir  8 zusätzliche Ports an die Du schalten kannst. Du kannst dabei nicht nur den Status des Ports setzen sondern Du kannst diesen auch auslesen. Das ist perfekt für den Fall, dass Du Knöpfe und Schalter in Deinem Projekt verwendest. Mit dem I2C Bus ist es sehr einfach das Board am Raspberry Pi anzuschließen.

(Visited 92 times, 1 visits today)