Raspberry Pi ist ein Prozessor-basiertes Board mit ARM-Architektur, das für Elektronikingenieure und Bastler entwickelt wurde. Der PI ist derzeit eine der vertrauenswürdigsten Projektentwicklungsplattformen. Mit höherer Prozessorgeschwindigkeit und 1 GB RAM kann der PI für viele hochkarätige Projekte wie Bildverarbeitung und Internet der Dinge verwendet werden.
Um hochkarätige Projekte durchführen zu können, muss man die Grundfunktionen von PI verstehen. In diesen Tutorials werden wir alle grundlegenden Funktionen von Raspberry Pi behandeln. In jedem Tutorial werden wir eine der Funktionen von PI diskutieren. Am Ende dieser Raspberry Pi Tutorial-Reihe können Sie selbst hochkarätige Projekte durchführen. Gehen Sie die folgenden Tutorials durch:
- Erste Schritte mit Raspberry Pi
- Himbeer-Pi-Konfiguration
- LED Blinkend
- Raspberry Pi Button Interfacing
- Raspberry Pi PWM-Generation
- Steuerung des Gleichstrommotors mit Raspberry Pi
In diesem Tutorial steuern wir die Geschwindigkeit eines Schrittmotors mit Raspberry Pi. Bei Schrittmotoren erfolgt die Drehung der Welle, wie der Name schon sagt, in Schrittform. Es gibt verschiedene Arten von Schrittmotoren. Hier verwenden wir den beliebtesten, den unipolaren Schrittmotor. Im Gegensatz zum Gleichstrommotor können wir den Schrittmotor durch entsprechende Anweisungen in einen bestimmten Winkel drehen.
Um diesen vierstufigen Schrittmotor zu drehen, liefern wir Leistungsimpulse unter Verwendung der Schrittmotortreiberschaltung. Die Treiberschaltung nimmt logische Trigger von PI entgegen. Wenn wir die logischen Trigger steuern, steuern wir die Leistungsimpulse und damit die Drehzahl des Schrittmotors.
In Raspberry Pi 2 gibt es 40 GPIO-Ausgangspins. Von 40 können jedoch nur 26 GPIO-Pins (GPIO2 bis GPIO27) programmiert werden. Einige dieser Pins erfüllen einige spezielle Funktionen. Mit speziellem GPIO haben wir nur noch 17 GPIO übrig. Jeder dieser 17 GPIO-Pins kann maximal 15 mA Strom liefern. Die Summe der Ströme aller GPIO-Pins darf 50 mA nicht überschreiten . Weitere Informationen zu GPIO-Pins finden Sie unter: LED blinkt mit Raspberry Pi
Auf der Platine befinden sich + 5 V (Pin 2 & 4) und + 3,3 V (Pin 1 & 17) Ausgangsstifte zum Anschließen anderer Module und Sensoren. Diese Stromschienen können nicht zum Antrieb des Schrittmotors verwendet werden, da wir mehr Leistung benötigen, um ihn zu drehen. Wir müssen also den Schrittmotor von einer anderen Stromquelle versorgen. Mein Schrittmotor hat eine Nennspannung von 9 V, daher verwende ich eine 9 V-Batterie als zweite Stromquelle. Suchen Sie nach der Modellnummer Ihres Schrittmotors, um die Nennspannung zu ermitteln. Wählen Sie je nach Bewertung die Sekundärquelle entsprechend aus.
Wie bereits erwähnt, benötigen wir eine Treiberschaltung, um den Schrittmotor anzutreiben. Wir werden hier auch eine einfache Transistortreiberschaltung entwerfen.
Erforderliche Komponenten:
Hier verwenden wir Raspberry Pi 2 Model B mit Raspbian Jessie OS. Alle grundlegenden Hardware- und Softwareanforderungen wurden bereits erläutert. Sie können sie in der Raspberry Pi-Einführung nachschlagen.
- Verbindungsstifte
- 220Ω oder 1KΩ Widerstand (3)
- Schrittmotor
- Tasten (2)
- 2N2222 Transistor (4)
- 1N4007 Diode (4)
- Kondensator-1000uF
- Brotbrett
Schaltungserklärung:
Der Schrittmotor verwendet 200 Schritte, um eine 360-Grad- Drehung durchzuführen, dh eine Drehung von 1,8 Grad pro Schritt. Da wir einen vierstufigen Schrittmotor antreiben, müssen wir vier Impulse geben, um einen einzelnen Logikzyklus abzuschließen. Jeder Schritt dieses Motors vollendet 1,8 Grad Drehung. Um einen Zyklus abzuschließen, benötigen wir 200 Impulse. Es sind also 200/4 = 50 Logikzyklen erforderlich, um eine einzelne Umdrehung durchzuführen. Überprüfen Sie dies, um mehr über Steppers Motors und seine Fahrmodi zu erfahren.
Wir werden jede dieser vier Spulen mit einem NPN-Transistor (2N2222) ansteuern. Dieser NPN-Transistor nimmt den Logikimpuls von PI und treibt die entsprechende Spule an. Vier Transistoren benötigen vier Logik von PI, um vier Stufen des Schrittmotors anzutreiben.
Die Transistortreiberschaltung ist ein schwieriger Aufbau; Hier sollten wir darauf achten, dass ein falsches Anschließen des Transistors die Platine stark belasten und beschädigen kann. Überprüfen Sie dies, um die Schrittmotortreiberschaltung richtig zu verstehen.
Der Motor ist eine Induktion, und so treten beim Schalten des Motors induktive Spitzen auf. Diese Spitze erwärmt den Transistor stark, daher verwenden wir die Diode (1N4007), um den Transistor vor induktivem Spitzen zu schützen.
Um die Spannungsschwankungen zu reduzieren, werden wir einen 1000uF-Kondensator über das Netzteil anschließen, wie im Schaltplan gezeigt.
Arbeitserklärung:
Sobald alles gemäß Schaltplan angeschlossen ist, können wir den PI einschalten, um das Programm in PYHTON zu schreiben.
Wir werden über einige Befehle sprechen, die wir im PYHTON-Programm verwenden werden.
Wir werden die GPIO-Datei aus der Bibliothek importieren. Mit der folgenden Funktion können wir die GPIO-Pins von PI programmieren. Wir benennen auch "GPIO" in "IO" um. Wenn wir also im Programm auf GPIO-Pins verweisen möchten, verwenden wir das Wort "IO".
importiere RPi.GPIO als IO
Manchmal, wenn die GPIO-Pins, die wir verwenden möchten, andere Funktionen ausführen. In diesem Fall erhalten wir während der Ausführung des Programms Warnungen. Der folgende Befehl weist den PI an, die Warnungen zu ignorieren und mit dem Programm fortzufahren.
IO.setwarnings (False)
Wir können die GPIO-Pins von PI entweder anhand der Pin-Nummer an Bord oder anhand ihrer Funktionsnummer referenzieren. Wie 'PIN 35' auf der Platine ist 'GPIO19'. Also sagen wir hier entweder, dass wir den Pin hier durch '35' oder '19' darstellen werden.
IO.setmode (IO.BCM)
Wir setzen vier GPIO-Pins als Ausgang für den Antrieb von vier Spulen des Schrittmotors.
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
Wir setzen GPIO26 und GPIO19 als Eingangspins. An diesen Stiften erkennen wir das Drücken von Tasten.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
Wenn die Bedingung in geschweiften Klammern erfüllt ist, werden die Anweisungen in der Schleife einmal ausgeführt. Wenn also der GPIO-Pin 26 auf Low geht, werden die Anweisungen innerhalb der IF-Schleife einmal ausgeführt. Wenn der GPIO-Pin 26 nicht niedrig wird, werden die Anweisungen innerhalb der IF-Schleife nicht ausgeführt.
if (IO.input (26) == False):
Dieser Befehl führt die Schleife 100 Mal aus, wobei x von 0 auf 99 erhöht wird.
für x im Bereich (100):
Während 1: für die Endlosschleife verwendet wird. Mit diesem Befehl werden die Anweisungen in dieser Schleife kontinuierlich ausgeführt.
Wir haben alle Befehle, die erforderlich sind, um damit die Drehzahlregelung des Schrittmotors zu erreichen.
Nachdem Sie das Programm geschrieben und ausgeführt haben, müssen Sie nur noch die Steuerung bedienen. Wir haben zwei Tasten mit PI verbunden. Eine für die Erhöhung der Verzögerung zwischen den vier Impulsen und eine für die Verringerung der Verzögerung zwischen den vier Impulsen. Die Verzögerung selbst spricht von Geschwindigkeit; Wenn die Verzögerung höher ist, bremst der Motor zwischen den einzelnen Schritten und die Drehung ist langsam. Wenn die Verzögerung nahe Null ist, dreht sich der Motor mit maximaler Drehzahl.
Hierbei ist zu beachten, dass zwischen den Impulsen eine gewisse Verzögerung liegen sollte. Nach einem Impuls benötigt der Schrittmotor einige Millisekunden, um seine Endstufe zu erreichen. Wenn zwischen den Impulsen keine Verzögerung angegeben wird, bewegt sich der Schrittmotor überhaupt nicht. Normalerweise ist eine Verzögerung von 50 ms zwischen den Impulsen in Ordnung. Weitere Informationen finden Sie im Datenblatt.
Mit zwei Tasten können wir also die Verzögerung steuern, die wiederum die Drehzahl des Schrittmotors steuert.