Aus Raspberry Pi Geek 08/2018

Raspberry Pi steuert Fischertechnik-Roboter (Seite 2)

Dieses Verhalten ermöglicht es, den Stromfluss dauerhaft zu begrenzen. Elektroniker bezeichnen die PTC-Sicherung daher auch als selbstrückstellende Sicherung. Sie dient oft zum Schutz von Leistungselektronik; in unserer Schaltung finden sich an mehreren Stellen PTC-Sicherungen.

Polling

Es gibt zwei grundlegende Möglichkeiten, einen digitalen Eingang abzufragen: Polling oder Interrupt-Verarbeitung. In den meisten Ihrer Projekte haben Sie sicher das Polling verwendet. Dabei fragt man einen Eingang kontinuierlich ab, um dessen Status zu ermitteln. Das genügt für die meisten Projekte vollkommen, hat allerdings einige Nachteile.

So erhalten Sie auf diesem Weg immer nur eine Momentaufnahme eines Eingangs: Rufen Sie das Signal etwa im Sekundentakt ab, bekommen Sie nicht mit, was in der Zwischenzeit an dem Eingang geschieht. Es könnten Hunderte Impulse unbemerkt vorbeirauschen.

Ein weiteres Problem liegt darin, dass der Raspberry Pi nicht echtzeitfähig ist. Stellt das Betriebssystem keine CPU-Zeit zur Verfügung, weil es gerade an etwas anderem arbeitet, wird unser Programm gar nicht zum richtigen Zeitpunkt ausgeführt. Geht es also darum geht, schnell auf Ereignisse zu reagieren, eignet sich das Polling denkbar schlecht. Zudem belastet das Polling die begrenzten Ressourcen des RasPi, das System muss ja regelmäßig den Code zum Einlesen der Eingänge ausführen.

Die Alternative zum Polling bietet die Interrupt-Verarbeitung. Dabei meldet die abgefragte Hardware sich selbstständig, sobald sich ein Signalpegel verändert. Die Hardware löst dazu einen sogenannten Interrupt (Unterbrechung) aus, auf den Software direkt reagieren kann.

Da die Priorität dieser Art von Interrupts sehr hoch liegt, führt das System die entsprechenden Programmteile auf jeden Fall umgehend aus. Daher sollten Sie darauf achten, Endlosschleifen innerhalb von Interrupt-Programmen zu vermeiden: Sie könnten damit das komplette System destabilisieren. Halten Sie die entsprechenden Programmteile immer sehr kurz und verwenden Sie nach Möglichkeit keine Schleifen darin.

Das ist aber auch der einzige Nachteil, den die Interrupt-Verarbeitung im Gegensatz zum Polling besitzt. Programmteile, die Interrupts verarbeiten, nennt man im Allgemeinen Interrupt-Handler.

Fischertechnik-Motoren

Der Fischertechnik-Baukasten “Automation Robotics” enthält vier Gleichstrommotoren. Sie arbeiten mit 9 Volt und haben je nach Belastung eine Stromaufnahme von bis zu 250 Milliampere. Zwei dieser Motoren verfügen über Drehimpulsgeber, die pro Motorumdrehung 75 Impulse erzeugen. Durch das Zählen dieser Impulse lässt sich die Anzahl der Umdrehungen ermitteln. Legt man nun noch einen definierten Nullpunkt fest, lässt sich der Motor immer wieder an bestimmte Stellen positionieren – eine für den Bau von Robotermodellen sehr nützliche Fähigkeit.

Um die Signale des Impulsgebers auszuwerten, müssen wir uns den Geber etwas detaillierter ansehen. Er arbeitet mit 9 Volt Betriebsspannung und gibt die Impulse über einen sogenannten Open-Collector-Ausgang aus. Zur Verdeutlichung, was ein Open Collector ist, werfen Sie bitte einen Blick auf Abbildung 4.

Abbildung 4: Digitalausgang versus Open Collector.

Abbildung 4: Digitalausgang versus Open Collector.

Bausteine mit dieser Eigenschaft verfügen an ihrem Ausgang nicht über einen eingebauten Kollektorwiderstand. Schließt man sie wie gewohnt an einen digitalen Eingang an, erhält man kein verwertbares Signal. Erst durch einen zusätzlichen externen Widerstand bekommt man eine funktionierende Ausgangsstufe.

Warum kommt die Open-Collector-Technik nun so oft zum Einsatz, wenn man diese Bauteile ohne zusätzliche Beschaltung nicht verwenden kann? Es gibt tatsächlich einige gute Argumente für das Verwendung dieser Technik. Durch den offenen Kollektor lässt sich der externen Widerstand und auch die Betriebsspannung frei wählen. Damit kann man die Spannung und auch den möglichen Strom in weiten Grenzen frei wählen, was einen sehr flexiblen Einsatz ermöglicht.

Open-Collector-Ausgänge finden sich in vielen Halbleitern. So verwenden etwa alle Bausteine, die mit I2C arbeiten, an den Busanschlüssen Open-Collector-Ausgänge. Das ermöglicht es, den I2C-Bus an die Anzahl der Teilnehmer anzupassen. Daher finden sich an einem solchen Bus immer Pullup-Widerstände zum Terminieren.

Testaufbau

Um sich mit der Funktionsweise der Fischertechnik-Motoren vertraut zu machen, bauen Sie ein einfaches Modell (Abbildung 5) aus einem Motor, der eine Spindel antreibt. Über die Spindel lässt sich eine Spindelmutter an verschiedenen Stellen positionieren. An den beiden Enden signalisieren Mikroschalter die Endlagen. Die Verdrahtung der einzelnen Komponenten mit der Steuerplatine zeigt Abbildung 6, auf dem Youtube-Account des Autors [3] sehen Sie den Testaufbau in Aktion.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 8 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben