Unlimited PowerPoint templates, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Business
  2. Computer Skills

Steuern von Gleichstrommotoren mit Python mit einem Himbeer-Pi

by
Difficulty:IntermediateLength:LongLanguages:

German (Deutsch) translation by Alex Grigorovich (you can also view the original English article)

In diesem Tutorial zeige ich Ihnen, wie Sie einige Motoren an Ihren Raspberry Pi anschließen. Auf diese Weise kann Ihr Raspberry Pi in der realen Welt interagieren, so dass Sie an einem heißen Tag einen Roboter bauen, einen Ventilator einschalten oder sogar ein Leckerbissen für Ihre Katze oder Ihren Hund fallen lassen können.

Zielsetzung

Wir planen, einen oder zwei Motoren mit möglichst wenigen Komponenten sicher an den Raspberry Pi anzuschließen. Sobald wir die Elektronik auf dem Steckbrett zusammengebaut haben, werde ich Ihnen zeigen, wie Sie diese einfach mit Python steuern können, um den Motor zuerst drehen zu lassen, und dann etwas Kontrolle hinzufügen, um die Motorrichtung zu ändern, damit wir rückwärts gehen können.

Diese Anleitung erfordert ein sorgfältiges Auge, um Fehler zu erkennen, und ein bisschen Mut, insbesondere wenn Sie mit den GPIO-Anschlüssen noch nicht vertraut sind. Ich möchte betonen, dass ich nicht für Schäden an Ihrem Raspberry Pi und / oder Ihren Komponenten verantwortlich bin.

WICHTIG: Schließen Sie keinen Motor an, egal wie klein er direkt an den Raspberry Pi angeschlossen ist. Der Raspberry Pi wird dadurch beschädigt.

Der Hauptprozessor kann nur so viel Energie liefern, dass eine LED leuchtet, etwa 20 mA. Ein Motor benötigt mindestens 400mA Strom, um sich zu drehen.

Bedarf

Um einen Motor zum Laufen zu bringen, benötigen Sie:

  • Ein Himbeer-Pi mit SD-Karte, die mit Raspbian vorinstalliert ist
  • Ein Breadboard zum Anschließen
  • Ein L293- oder SN755410-Motortreiberchip (ich werde in diesem Lernprogramm beide als L293D bezeichnen)
  • Überbrückungskabel, um alles anzuschließen (männlich zu männlich und weiblich zu männlich)
  • Ein oder zwei Gleichstrommotoren für 6 V
  • 4x AA-Batterien und Halter

GPIO-Pins

Wenn Sie Ihren Raspberry Pi noch nicht genau untersucht haben, ist es jetzt vielleicht die beste Zeit, um einen guten Blick zu haben.  Es gibt 26 Pins, die in zwei Reihen von 13 gruppiert sind. Diese werden zusammen als General Purpose Input Output Header oder kurz GPIO bezeichnet. Dies ist eine Mischung aus vier Power-Pins, fünf Masse-Pins und 17 Daten-Pins.


Abbildung 1. Das Layout der GPIOs mit der Pin-Nummerierung. Pin 1 ist oben links mit der Bezeichnung 3V3

Einige dieser Datenpins verfügen über zusätzliche Funktionen wie einen i2c-Bus, einen SPI-Bus und serielle UART-Anschlüsse, die alle mit anderer Hardware verbunden werden können, damit der Raspberry Pi mit Elementen wie einem Arduino, einem Analog-Digital-Wandler (ADC), kommunizieren kann ) oder Zusatzkarten wie PiGlow oder PiFace.

TIPP: Wenn Sie mit den GPIO-Pins arbeiten, sollten Sie dies immer tun, während der Pi vom Stromnetz getrennt ist. Andernfalls kann der Himbeer-Pi durch das Verbinden (oder Kurzschließen) von 2 Pins beschädigt werden.

Schaltung zusammenbauen

Kraft und Masse hinzufügen

Dies ist wichtig, wenn die Stromversorgung des Raspberry Pi ausgeschaltet oder getrennt ist, da Sie versehentlich verhindern möchten, dass Anschlüsse kurzgeschlossen werden.

Als erstes müssen Sie die Stromversorgungs- und Erdungskabel anschließen. Wie bei den meisten Elektronikprojekten erfordert alles, was miteinander verbunden ist, eine gemeinsame Basis. Dies wird mit den schwarzen Drähten gezeigt.


Abbildung 2: Schließen Sie die Stromversorgungs- und Erdungskabel an

Der Boden des Raspberry Pi ist der physikalische Pin 6. Wie in Abbildung 1 dargestellt, wird dies so errechnet, dass man oben links mit Pin 3V3 beginnt und von links nach rechts zählt, so dass 5V Pin 2 ist, GPIO 2 (beschriftet 2) Pin 3 und so auf.

Das Lesen der Pin-Nummern auf IC-Chips (Integrated Circuit) ist einfach, wenn die Kerbe oder der Punkt links angeordnet ist. Dann wird von links unten ein Pin 1 angezeigt. 

Abbildung 3. Pin 1 befindet sich unten links

Datenleitungen hinzufügen

Datenleitungen hinzufügenFügen Sie jetzt drei Drähte von den GPIO-Pins zum L293D hinzu.

  • GPIO 25–Pin 22 > L293D–Pin 1
  • GPIO 24–Pin 18 > L293D–Pin 2
  • GPIO 23–Pin 16 > L293D–Pin 7

Abbildung 4. Fügen Sie die drei GPIO-Kabel hinzu, um den Motor zu steuern

Fügen Sie den Motor hinzu:

  • Motor–wire 1 > L293D–pin 3
  • Motor–wire 2 > L293D–pin 6
Abbildung 5. Befestigen Sie den Akku und den Motor

Es ist äußerst wichtig, dass Sie jede Verbindung vor dem Einlegen der Batterien noch einmal überprüfen. Nur wenn Sie zufrieden sind, dass alles vorhanden ist, verbinden Sie die Batteriedrähte mit den Stromschienen des Steckbretts.

Einen zweiten Motor hinzufügen (optional)

Der L293D zeichnet sich dadurch aus, dass er zwei Motoren unabhängig voneinander bedienen kann und jeder Motor mit unterschiedlichen Geschwindigkeiten oder Richtungen laufen kann. Mit diesem IC kann ein Roboter mit zwei Rädern erstellt werden, der sich leicht drehen, vorwärts und rückwärts bewegen kann.

Das Hinzufügen eines zweiten Motors erfordert nur drei zusätzliche Drähte und einen weiteren Motor.

  • GPIO 11–Pin 23 > L293D–Pin 9
  • GPIO 9–Pin 21 > L293D–Pin 10
  • GPIO 10–Pin 19 > L293D–Pin 15
Das komplette Setup ist bereit für die Robotik

Einschalten

Es ist wichtig, die Verdrahtung zu überprüfen und nochmals zu überprüfen, bevor Sie Ihrem Projekt eine Stromquelle hinzufügen. Ein Teil der Verdrahtung kann etwas fummelig werden. Es ist leicht, eine Verbindung zu übersehen und 5 V an die 3,3 V des Raspberry Pi anzuschließen.

Überprüfen Sie immer Ihre Verkabelung und prüfen Sie sie dann erneut!

Wenn Sie noch keine SD-Karte für Ihren Pi eingerichtet haben, sollten Sie zunächst die Anleitung zur Erstellung einer SD-Karte lesen.

Mit einer frisch erstellten Raspbian-SD-Karte verbinden Sie den Raspberry Pi wie gewohnt und booten.

Fügen Sie die Batterien hinzu und achten Sie darauf, dass Sie auf die richtigen Schienen achten (die langen Streifen oben und unten, falls vorhanden), da nur der schwarze Draht an Masse angeschlossen werden soll und der rote Draht an Plus oder Quelle nur vom Chip.

Als nächstes müssen Sie dem Raspberry Pi mitteilen, dass ein oder zwei Motoren angeschlossen sind. Dazu verwende ich eine Sprache namens Python.  Es wird auf Raspbian installiert, was ein Bonus ist. Wenn Sie ein anderes Betriebssystem wie Arch oder PiDora verwenden, überprüfen Sie noch einmal, ob RPi.GPIO verfügbar ist.

Testen

Um die Motoren zum Laufen zu bringen, klicken Sie doppelt auf LXTerminal auf Ihrem Desktop, um ein Terminalfenster aufzurufen. Hier schreiben Sie Python-Code mit einem Programm namens Nano. Nano ist ein Texteditor, ähnlich wie Notepad oder TextEdit, aber für die Eingabeaufforderung werde ich Ihnen einige Befehle beibringen, wenn Sie neu sind. 

Um den Motor zwei Sekunden lang einzuschalten, verwenden Sie den folgenden Code:

Die ersten beiden Zeilen geben Python an, was im Programm benötigt wird.

Die erste Zeile soll auf ein Modul namens RPi.GPIO zugreifen. Dieses Modul erledigt alle harte Arbeit, die mit dem Ein- und Ausschalten der GPIO-Pins des Raspberry Pi verbunden ist.

In der zweiten Zeile wird die Modulzeit aktiviert, damit das Skript angehalten werden kann, um eine bestimmte Aktion auszuführen. In diesem Fall muss der Motor einige Sekunden eingeschaltet bleiben.

Die Funktion setmode weist RPi.GPIO an, die Board-Nummerierung auf dem Raspberry Pi zu verwenden. Die Zahlen 16, 18 und 22 verwenden wir, um Python mitzuteilen, dass es sich um die Pins handelt, die den Motoren zugeordnet sind.

Wenn Sie den L293D verwenden, können Sie ihm eine Richtung zuweisen, indem Sie eine Seite drehen, um in eine Richtung zu drehen, die als Pin A bezeichnet wird, und umgekehrt, Pin B. Dies ist Pin 22. Ich werde später etwas mehr darüber berichten.

Sagen Sie dem Raspberry Pi schließlich, dass dies alle Ausgänge sind, die mit GPIO.OUT ausgeführt werden.

Wenn das Skript eingerichtet ist, ist der Raspberry Pi bereit, die Motoren zu drehen. Es werden einige Pins aktiviert, warten Sie zwei Sekunden und schalten Sie sie wieder aus, wie im Rest des Skripts gezeigt.

Speichern und beenden Sie durch Drücken von STRG-X. Eine Meldung fordert Sie auf, die Änderungen zu bestätigen. Drücken Sie zur Bestätigung Y und Enter

sudo python motor.py

Wenn sich der Motor nicht dreht, überprüfen Sie noch einmal Ihre Verdrahtung oder Batterien. Das Debuggen und Herausfinden, warum etwas nicht funktioniert, kann ärgerlich sein, ist aber ein nützlicher Schritt, um etwas Neues zu lernen!

Gehen Sie jetzt zurück

Es ist fantastisch, wenn man einen Motor dreht, aber es ist noch besser, wenn man ihn rückwärts dreht, also zeige ich dir, wie das geht.

Es muss nichts an der Verkabelung gemacht werden, das ist jetzt rein Python. Dies wird erreicht, indem ein neues Skript erstellt wird, das als motorback.py bezeichnet wird. Geben Sie den Befehl ein, um das Skript in Nano zu erstellen:

nano motorback.py

Geben Sie den folgenden Code ein:

STRG-X, dann Y gefolgt von Enter zum Speichern.

Das Skript ist dem vorherigen sehr ähnlich, aber wenn Sie rückwärts bemerken, haben wir Motor1A niedrig und Motor1B hoch gemacht.

High und Low sind Programmnamen für Ein und Aus.

Um den Motor zu stoppen, schalten Sie den Motor1E aus.

Aktivieren Sie den Schalter, um den Motor unabhängig von den Vorgängen von A und B ein- und auszuschalten.

Wenn Sie dies als verwirrend empfinden, schauen Sie sich eine Wahrheitstabelle an, um zu sehen, was passiert.

Wahrheitstabelle

Es gibt nur zwei Zustände, in denen der Motor drehen kann, wenn Enable aktiviert oder hoch ist, und entweder A oder B müssen hoch sein, nicht jedoch beide.

Für zwei Motoren schauen Sie sich das folgende Skript an. Alles, was anders ist, sind ein paar Zeilen mehr, um den zweiten Motor einzurichten.

Fazit

In diesem Tutorial habe ich Ihnen die Grundlagen zum Anschließen von Motoren an Ihren Raspberry Pi gezeigt. Wenn Sie erst einmal etwas mit Ihrem brandneuen Pi zu tun haben, kann es einen tiefen Atemzug bedeuten. Wenn Sie jedoch erst einmal mit den GPIO-Pins spielen, ist es schwer zu stoppen.

Dieses Tutorial öffnet die Türen für die Herstellung von Robotern mit blinkenden LED-Lichtern und Ultraschallsensoren, um die Umgebung zu erfassen.

Suchen Sie nach einem Chassis, in dem Sie alles auf einem USB-Ladegerät für Mobiltelefone befestigen können.

Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.