Raspberry Pi 2 Model B mit einer einzelnen LED

gepostet am 25.07.2015 um 09:07 Uhr

Das schöne Spielzeug Raspberry Pi… Viele nutzen es als Medien-, VPN- oder andere Server. Die Pins werden kaum genutzt. Doch gerade für einen Programmierer ist die einfache und Hardwarenahe Programmierung ein sehr interessanter Aspekt des Himbeerkuchens. Also ändern wir das jetzt mal. Und dafür nehmen wir uns eine einfach LED, einen Widerstand, ein Steckbrett, ein paar Kabel und natürlich den Raspberry Pi.

 

Was benötigen wir

Um unser kleines Projekt umzusetzen benötigen wir:

  • Den Raspberry Pi 2 Model B (Amazon)
  • Mindestens eine Handelsübliche LED (Amazon)
  • Mindestens einen elektrischen Widerstand (Ich benutze bei den oben verlinkten LEDs und einer Spannung von +3,3V einen 165 Ω Widerstand. Dieser ist mit in dem verlinkten Paket dabei)
  • Ein Steckbrett (Amazon)
  • Ein Female-Male Kabelpaket (Amazon)

Software die verwendet wird:

  • Raspbian als OS für den Himbeerkuchen
  • kDevelop als Entwicklungsumgebung

 

Die technische Grundlage

Die LED

Eine LED (light-emitting diode) ist eine Licht aussendende Diode wobei eine Diode ein Halbleiterelement ist, das Strom nur in einer Richtung durchlässt. Das Schaltzeichen sieht folgendermaßen aus:

 

Symbol_LED_+-.svg

 

 

 

 

 

Die LED hat zwei kleine Füßchen. Eines davon ist die Kathode (-) und eines die Anode (+). Es gibt zwei Möglichkeiten diese beiden Dinge zu unterscheiden:

Tip 1: Die Kathode ist meist das kürzere Füßchen. Die Eselsbrücke ist hier Kathode ist der Minuspol, Minus = Kürzer.
Tip 2: Ist die LED rund, hat sie meist auf der Seite der Kathode eine abgeflachte Kante.

Der Widerstand

Ein elektrischer Widerstand ist ein Element, mit dem wir den Strom in einem Stromkreis begrenzen können. Würden wir das nicht machen, würde unsere LED sofort durchbrennen. Das Schaltzeichen eines Widerstandes schaut folgendermaßen aus:

resistor-symbol

 

 

 

 

Der Schaltkreis

Betrachten wir nun unseren Schaltkreis. Damit unsere LED leuchten kann, müssen wir sie an einen Pin mit mit einer Ausgangsspannung von 3,3V hängen. Hier müssen wir die Anode verbinden. Dann benötigen wir einen “Ground” wo unser Strom wieder “Abfließen” kann. Dort wird die Kathode verbunden. Aber achtung! Dazwischen muss unser Widerstand. Ob der nun vor oder hinter die LED geschalten wird, ist egal (für die Interessierten: Kirchhoffsche Maschenregel). Unser Schaltbild aufgezeichnet sieht also so aus:

Bildschirmfoto 2015-07-25 um 09.43.19Wie wir sehen können, werden hier die Schaltzeichen die oben gezeigt wurden in einem Gesamtbild für unsere Schaltung zusammengefasst. Wie bereits erwähnt ist es hier egal ob wir den Widerstand vor oder nach der LED in die Schaltung einfügen.

 

 

 

 

Die Pins

Kommen wir zu den Pins am Raspberry Pi. Der Raspberry Pi hat sogenannte GPIO Pins. GPIO bedeutet General Purpose Input/-Output, also soviel wie Allzweck Ein- u. Ausgabe. Diese Pins haben eine Belegungsstruktur, die man kennen muss, um zu wissen, wo man seine Kabel anstecken muss. Schauen wir uns also mal die Pinbelegung an (Bild von element14.com! Link zum Original: http://www.element14.com/community/docs/DOC-73950/l/raspberry-pi-2-model-b-gpio-40-pin-block-pinout):

GPIO_Pi2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Nicht erschrecken. So kompliziert wie es scheint ist es nicht. Die erste Frage die sich stellt ist, welcher Pin denn nun welche Nummer hat. Dafür drehen wir den Raspberry einmal um. Wie wir auf dem Bild sehen können gibt es oben Links ein quadratisches Element. Alle anderen sind rund. Wenn man auf die Rückseite (oder Unterseite) des Raspberry schaut, sieht man eine quadratische Lötstelle:

rpi-hinten

 

 

 

 

 

 

 

 

 

Wenn wird das Gerät wieder umdrehen wissen wir also, was mit dem quadratischen Element gemeint ist.

 

Schließen wir unsere LED an

Schaltung auf dem Steckbrett

Zuerst setzen wir unsere Schaltung auf dem Steckbrett. Wie das Steckbrett intern verbunden ist, seht ihr hier (grüne Linien):

steckbrett

 

 

 

 

 

 

 

 

 

So lange wir den Stromkreis richtig hinbekommen ist es ziemlich egal, wie wir unser Brett verkabeln. Meine Verkabelung ist so passiert:

SteckbrettSchaltung

Das ist die Schaltung in der der Widerstand nachgeschalten ist. Wenn wir die LED erst falsch verbaut haben, dann ist das nicht ganz so tragisch. Wie ich bereits beschrieben habe, ist eine LED ein Halbleiterelement das Strom nur in eine Richtung durchlässt. Wenn sie falsch herum eingesteckt ist, leuchtet sie einfach nicht. Das ist freilich nicht immer so. Sind die Spannungen höher kann die Durchbruchspannung erreicht werden, der Strom schlägt gegen die Durchlassrichtung durch und zerstört das Halbleiterelement. Bei einer Spannung von 3,3V und einer normalen LED ist das aber kaum zu befürchten.

Das Rote Kabel ist der Stromzufluss (technische Stromrichtung, die Elektronen laufen in die andere Richtung). Das grüne Kabel (das hier fast schwarz erscheint) läuft zu einem Ground-Pin des Pi. Ich habe die beiden Kabel aus Gewohnheit weiter unten eingesteckt. Ich kann somit alle Steckplätze bis nach oben hin benutzen um andere Elemente parallell an der Versorgungsspannung zu betreiben.

 

 

Unser Steckbrett ist nun richtig verschalten. Um zu testen ob wir die Schaltung richtig gesetzt haben, benutzen wir erstmal den Pin des Pi, der uns eine Versorgungsspannung von 3,3 V gibt. Wir haben sogar zwei davon. Ich benutze hier den ganz oben links. Also los! Verbinden wir die LED mit der Versorgungspannung und beobachten wir, ob sie leuchtet:

 

PiTestschaltung

 

 

 

 

 

 

 

 

 

Unsere LED sollte nun leuchten. Wenn nicht, überprüft noch einmal die Schaltung.

 

WiringPi und das Ansteuern der LED

Vorbereitungen:

So. Nun kommen wir langsam zum Eingemachten. Kleine Programmierkenntnisse und kleine Linuxkenntnisse wären ab jetzt hilfreich. Zuerst müssen wir uns eine Bibliothek namens WiringPi auf dem Raspberry Pi installieren. Diese hilft uns, aus dem Code heraus direkt die Hardware, also in dem Fall dieser Bibliothek die Pins, anzusteuern.

WiringPi Homepage.

Bei den nachfolgenden Befehlen gehe ich davon aus, dass ihr Raspbian als OS auf dem Raspberry Pi installiert habt. Dennoch sollten die Terminal-Befehle für fast alle Linux Betriebsysteme (Debian Distributionen) gültig sein. Ich werde keine Screenshots beilegen da dies nicht zum Thema dieses Tutorials gehört. Man kann sich aber über alle Befehle sehr einfach informieren.

Wir müssen nun also zuerst die Bibliothek installieren. Dafür öffnen wir am Raspberry Pi die Console und gebt folgende Befehle ein:

Damit haben wir ein kleines Programm installiert das git heißt. Damit können wir auf sogenannte Repositories zugreifen auf denen Entwickler ihre Projekte veröffentlichen können. Nun holen wir uns von diesem Repository das WiringPi. Navigiert in der Console in das Verzeichnis in dem ihr WiringPi speichern wollt. Dort “klont” ihr euch das Projekt und führt ein Installationsscript aus:

In das kopierte Verzeichnis navigieren und die aktuellsten Sourcen “ziehen” (pull):

Das Installationsscript ausführen:

Für weitere Informationen könnt ihr auch auf die Seite von WiringPi gehen und euch die Installationsanleitung ansehen: Seite.

Richtig verkabeln:

Wir müssen jetzt noch kurz die Verkabelung an unserem Raspberry Pi ändern, da wir den 3,3 V Anschluss nicht Ansteuern können. Dieser ist nur für die Stromversorgung von Peripherie gedacht. Also stecken wir nur unser Versorgungskabel (rot) um:

Steuerschaltung

Ich habe das Versorgungskabel meiner Schaltung an den ersten ansteuerbaren Pin angeschlossen. Das ist der Pin mit der Nummer 11 und dem Namen GPIO17. In WiringPi hat er die ID 0 (Null).

 

 

 

 

 

 

 

Und der Entwickler sprach: Es werde Licht! Und es ward Licht!!!

WiringPi hat uns ein kleines Programm für den Terminal mit installiert. Dieses können wir über den Befehl gpio erreichen. Versuchen wir zuerst unsere LED an und auszuschalten. In der ersten Zeile stelle ich den Modus für den Pin mit der ID 0 auf Out. Das bedeutet, dass der Pin nun als Ausgang benutzt wird. In den Zeilen zwei und drei lege ich auf den Pin mit der ID 0 zuerst eine 1 (Strom an) dann eine 0 (Strom aus):

Die LED muss damit ein Mal ein und dann wieder aus gegangen sein. Wir haben es also geschafft und steuern mit dem Raspberry Pi unsere LED an. Und jetzt wird es interessant.

 

Programmieren! Und das Hardwarenah.

Wir können nun also unsere ifs und elses und voids und ints schnappen und uns eine schöne Logik zusammenbauen und die LED tun lassen was wir wollen! (Nur den Kaffee kann sie noch nicht kochen! Wenn das jemand schafft, schreibt doch ein Tutorial darüber! 🙂 )

Als Entwicklungsumgebung benutze ich kdevelop. Ihr könnt natürlich benutzen was euch lieb ist. Ich werde jetzt keinen Grundkurs Programmierung machen. Es wäre nicht schlecht wenn ihr erste Erfahrungen mit C++ habt und die generellen Dinge wie Compiler, Entwicklungsumgebung, Linker, Bibliothek, etc. versteht. Legen wir also Los und Coden:

Ich erstelle ein Programm das uns die LED in einer Periode von genau einer halben Sekunde ein und wieder aus macht:

 

Wenn ihr nun das gebaute Executable mit sudo startet (WiringPi benötigt sudo um auf die Hardware zugreifen zu können), dann blinkt eure LED fröhlich im Sekundentakt. Ihr könnt nun so viel Tüfteln wie ihr wollt und Morsecode über die Leerzeile morsen oder was weiß ich was euch alles einfällt! Viel Spaß beim Programmieren!!! 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.