Inhaltsverzeichnis:

ESP32 Dual H Bridge Breakout Board - Gunook
ESP32 Dual H Bridge Breakout Board - Gunook

Video: ESP32 Dual H Bridge Breakout Board - Gunook

Video: ESP32 Dual H Bridge Breakout Board - Gunook
Video: Driving DC Motors with Microcontrollers 2024, Juli
Anonim
ESP32 Dual H Bridge Breakout-Board
ESP32 Dual H Bridge Breakout-Board
ESP32 Dual H Bridge Breakout-Board
ESP32 Dual H Bridge Breakout-Board
ESP32 Dual H Bridge Breakout-Board
ESP32 Dual H Bridge Breakout-Board
ESP32 Dual H Bridge Breakout-Board
ESP32 Dual H Bridge Breakout-Board

Dieses Projekt ist für ein ESP32 Breakout-Board, das als Gehirn Ihres nächsten Roboters entwickelt wurde. Die Funktionen dieses Boards sind;

  • Kann jedes ESP32-Entwicklungskit aufnehmen, das zwei Reihen mit bis zu zwanzig Pins auf einem Zollabstand hat.
  • Ein Platz zum Montieren einer TB6612FNG Dual-H-Brücken-DC-Motorcontroller-Tochterplatine.
  • Ein Zwei-Schrauben-Klemmenblock für jeden Motoranschluss.
  • Ein zwei Schraubklemmenblock und ein Satz von fünf Stiftleisten für Vin & Gnd
  • Zwei Reihen von zwanzig GPIO-Breakout-Pins.
  • Header für zwei HC-SR04 Sonarsensoren, mit Spannungsteilern am Echo-Ausgang.
  • Ein Header zum Anschluss an eine dreifarbige, gemeinsame Anode, LED mit Begrenzungswiderständen.
  • On Board 5V, 1A Spannungsregler mit fünf Header-Pins für 5V & Gnd.
  • Vier Header-Sets für I2C-Verbindungen mit 3,3 V & Gnd für jede Verbindung.
  • Alle Komponenten sind auf einer Seite der Platine montiert.

Die physische Größe der Platine beträgt 90 mm x 56 mm, zweiseitig. Damit liegt es gut innerhalb der Größengrenzen von 100 mm x 100 mm für die meisten kostengünstigen Prototypen der Leiterplattenhersteller.

Alle Dateien, die zum Erstellen eines dieser Boards erforderlich sind, finden Sie hier auf github.

Das Board wurde um das DOIT ESP32 DEVKIT V1 herum entwickelt, das zwei Reihen mit jeweils achtzehn Pins hat. Durch einfaches Schneiden von Leiterbahnen auf der Rückseite der Platine können Sie die dedizierten 5V-, Gnd- und 3.3V-Pins von ihren jeweiligen Bussen trennen. Dann können Sie die Pins an diesen Stellen als GPIO verwenden und die 5V-, Gnd- und 3.3V-Busse mithilfe von Jumpern mit den entsprechenden Pins des von Ihnen verwendeten ESP32-Entwicklungskits verbinden.

Für die Montage des ESP-Entwicklungskits sind zwei Reihen mit zwanzig Löchern vorgesehen. Ich empfehle Ihnen, Buchsenleisten zu kaufen und in die Löcher einzulöten. Auf diese Weise können Sie das ESP32-Entwicklungskit jederzeit entfernen und durch ein anderes ersetzen. Außerdem bietet die Verwendung der Steckdosenleisten viel Platz für die unter dem Entwicklungskit montierten Teile. Ich kaufe gerne vierzig Stiftleisten und Buchsenleisten und schneide sie dann zurecht. Dies hilft, Kosten zu senken. Sie können die Buchsenleisten nicht zwischen zwei Buchsen schneiden, Sie müssen eine Buchse "brennen", um sie abzuschneiden. Mit anderen Worten, eine vierzigpolige Buchsenleiste kann nicht in zwei zwanzigpolige Streifen geschnitten werden. Eine vierzigpolige Buchsenleiste kann in eine zwanzigpolige und eine neunzehnpolige Leiste geschnitten werden.

Schritt 1: TB6612FNG Dual-H-Brücke

TB6612FNG Dual-H-Brücke
TB6612FNG Dual-H-Brücke

Der TB6612FNG ist ein Dual-H-Brücken-Motorcontroller, der einen Schrittmotor oder zwei DC-Hobbymotoren (keine bürstenlosen Motoren) antreiben kann. Es ist ideal für den Antrieb der kleinen, preiswerten Getriebemotoren, die im Handel erhältlich sind. Auf der Breakout-Platine kann eine Tochterplatine mit dem TB6612FNG montiert werden. Das von mir gewählte TB6612FNG-Board ist an mehreren Stellen erhältlich; Sparkfun (p/n ROB-14451, Mouser und Digikey verkaufen auch das Sparkfun-Board), Pololu (p/n 713), EBay, Aliexpress und Gearbest. Die Preise variieren von etwa einem Dollar bis fünf Dollar.

Jeder DC-Motortreiber verwendet drei GPIO-Pins. Zwei GPIO-Pins bestimmen den Motorzustand; vorwärts, rückwärts, ausrollen und bremsen. Der dritte GPIO-Pin ist PWM zur Steuerung der Motordrehzahl. Ein siebter GPIO-Pin steuert den STBY-Pin. Die Steuersignale für den TB6612FNG sind fest mit ESP32 GPIO-Breakout-Pins verdrahtet. Welche GPIO-Pins verwendet werden, hängt von der Art des von Ihnen verwendeten ESP32 Dev Kit ab. Die fest verdrahteten Pins wurden sorgfältig ausgewählt, damit sie bei den meisten ESP32-Dev-Kits mit den GPIO-PWM- und -Ausgangspins übereinstimmen.

Die Motoren werden über zwei zweipolige Schraubklemmenblöcke mit der Bezeichnung Motor A und Motor B angeschlossen. Einer auf jeder Seite der Breakout-Platine. Die Stromversorgung der Motoren erfolgt entweder über einen zweipoligen Schraubklemmenblock oder einen Satz Stiftleisten an einem Ende der Breakout-Platine mit der Bezeichnung Vin. Vin kann eine beliebige Gleichspannung von 6V bis 12V sein. Ein 5V, 1A Spannungsregler wandelt die Vin Spannung in 5V um, um die Sonarsensoren mit Strom zu versorgen.

Das DOIT Dev KIT ist in zwei Größen erhältlich, 30 Pins (15 an einer Seite) und 36 Pins (18 an einer Seite). Ich habe die Anschlüsse für beide Dev-Kits unten aufgelistet.

30-Pin-Entwicklungskit - 36-Pin-Entwicklungskit

AIN1 - 25 - 14 - Richtungssteuerung für Motor A

AIN2 - 26 - 12 - Richtungssteuerung für Motor A

PWMA - 27 - 13 - Drehzahlregelung für Motor A

STBY - 33 - 27 - stoppt beide Motoren

BIN1 - 16 - 15 - Richtungssteuerung für Motor B

BIN2 - 17 - 2 - Richtungssteuerung für Motor B

PWMB - 5 - 4 - Drehzahlregelung für Motor B

Schritt 2: GPIO-Pins

GPIO-Pins
GPIO-Pins

Das Board verfügt über zwei Sätze von zwanzig Stiftleisten für GPIO-Breakout. Jeder GPIO-Header-Satz enthält zwanzig Pins für 3,3 V und zwanzig Pins für Gnd. Die 3,3V-Pins befinden sich zwischen den GPIO-Pins und den Gnd-Pins. Diese Konfiguration verringert die Möglichkeit, dass etwas explodiert, wenn es verkehrt herum eingesteckt wird. Fast alles, was Sie an einen GPIO-Pin anschließen möchten, erfordert entweder eine 3,3-V- oder Gnd-Verbindung oder beides. Durch die dreireihige Konfiguration haben Sie immer einen Strom- und Gnd-Pin für jede Verbindung.

Wenn Sie ein anderes ESP32-Dev-Kit als das DOIT-Dev-Kit verwenden, kann es Vin-, 3.3V- und Gnd-Pins an anderen Stellen als das DOIT-Dev-Kit haben. Die Breakout-Platine hat leicht geschnittene Spuren auf der Rückseite, die geschnitten werden können, um die Vin-, 3.3V- und Gnd-Pins von den jeweiligen Bussen zu isolieren. Sie können dann Überbrückungsdrähte verwenden, um die Vin-, 3.3V- und Gnd-Pins Ihres ESP32-Dev-Kits mit den richtigen Bussen zu verbinden. Die 3,3-V-Pins können mit standardmäßigen zweipoligen Kurzschlusssteckern verbunden werden. Für Gnd-Pin-Verbindungen habe ich ein paar Jumper mit drei Pin-DuPont-Schalen, zwei Crimp-Buchsen und einem kurzen Stück Draht hergestellt. Nachdem ich die Buchsenstifte an jedes Ende des Drahtes gecrimpt hatte, steckte ich sie in die Endschlitze der Dreistiftschale.

Wenn Sie die Trances, die Sie geschnitten haben, jemals wieder verbinden möchten, hat jeder eine Reihe von Durchgangslöchern. Sie können entweder einen U-förmigen Überbrückungsdraht in die Löcher löten oder einen zweipoligen Header hinzufügen und einen standardmäßigen zweipoligen Kurzschlussstecker verwenden, um einen abnehmbaren Jumper herzustellen.

Ein Wort der Vorsicht. Der 3,3-V-Regler des ESP32-Entwicklungskits wird verwendet, um 3,3 V für den ESP32 und alle Peripheriegeräte bereitzustellen, die Sie an den 3,3-V-Bus anschließen. Der Regler hat eine Grenze von 1A. Je höher die Spannung Vin und je mehr Strom Sie ziehen, führt dazu, dass sich der Regler aufheizt. Beachten Sie dies, wenn Sie versuchen, Hochstromgeräte wie LED-Streifen oder Servomotoren mit 3,3 V zu betreiben. Ein paar I2C-Geräte wie Gyros, Beschleuniger und ADC-Wandler sollten kein Problem sein.

Schritt 3: Vin

Vin ist die Eingangsspannung für die Motoren und den 5V-Regler. Vin kann eine beliebige Spannung von 5 V bis 12 V sein. Wenn Sie 5V für Vin verwenden, beträgt die Ausgangsspannung des integrierten 5V-Reglers nicht 5V. Dies liegt daran, dass der 5V-Regler eine Spannung von mehr als 5V haben muss, um auf 5V zu regeln.

Der Vin wird auch als Eingangsspannung für den 3,3-V-Regler des ESP32-Entwicklungskits verwendet.

Das Referenzdesign des ESP-Entwicklungskits verfügt über eine Diode, um die USB-Spannung von der Spannung am Vin-Pin des Entwicklungskits zu isolieren. Die Diode stellt sicher, dass die Vin-Spannung nicht versucht, die USB-Spannung zu treiben, und dass der USB-zu-Seriell-Brückenchip auf dem ESP32-Entwicklungskit nur von der USB-Spannung versorgt wird. Das bedeutet, dass Sie sicher eine Spannungsquelle höher als 5V an den Vin des Breakout-Boards anschließen und gleichzeitig den USB-Anschluss verwenden können, ohne befürchten zu müssen, etwas zu zerstören. Der Spannungsregler des ESP32-Entwicklungskits gehört zur gleichen Familie wie der Spannungsregler, der auf der Breakout-Platine verwendet wird. Dies bedeutet, dass sie den gleichen Eingangsspannungsbereich verarbeiten können.

Schließen Sie den Akku, der die Motoren antreibt, an die Vin-Klemmen an und er wird auch den ESP32 und alle angeschlossenen Peripheriegeräte mit Strom versorgen.

Schritt 4: HC-SR04 Sonarsensoren

HC-SR04 Sonarsensoren
HC-SR04 Sonarsensoren
HC-SR04 Sonarsensoren
HC-SR04 Sonarsensoren

Für den Anschluss des beliebten Sonarsensors HC-SR04 stehen zwei vierpolige Stiftleisten zur Verfügung. Die Stiftleisten befinden sich auf gegenüberliegenden Seiten der Breakout-Platine, in der Nähe der Schraubklemmenblöcke des Motors. Die Header sind für eine Eins-zu-Eins-Verbindung mit dem HC-SR04 eingerichtet.

Der HC-SR04 ist ein 5V-Gerät. Es wird mit 5 V betrieben und sein Ausgangssignal (Echo) liegt bei 5 V. Der ESP32 hat 3,3V GPIO und ist nicht 5V tolerant. Daher benötigen Sie eine Art Spannungspegelwandler, um den 5V-Ausgang des HC-SR04 auf den 3,3V-Pegel des ESP32 zu senken. Die Breakout-Platine verfügt über einen einfachen Spannungsteiler für jedes der HC-SR04 Echo-Signale, um die Pegelumwandlung durchzuführen. Für einen ESP32-GPIO-Pin ist keine Pegelumwandlung erforderlich, um das Trig-Signal des HC-SR04 zu steuern.

Der vierpolige Header für den HC-SR04 bietet die 5V- und Gnd-Anschlüsse für den Sensor. Die 5V werden vom 5V-Regler auf der Breakout-Platine bereitgestellt.

Während ein vierpoliger Header für die Verbindung mit dem HC-SRO4 bereitgestellt wird, wird ein zweipoliger Header bereitgestellt, um die Echo- und Trig-Signale des HC-SR04 mit dem ESP32 zu verbinden. Auf diese Weise können Sie auswählen, welche GPIO-Pins verwendet werden sollen. Verwenden Sie Buchse-zu-Buchse-Überbrückungsdrähte, um die Verbindungen herzustellen. T ist der Trig-Eingang und E ist das spannungspegelkonvertierte Echo-Ausgangssignal.

Es sollte möglich sein, den HC-SR04-Header zu verwenden, um einen anderen 5V-Sensor anzuschließen. Verbinden Sie den Ausgang des 5V-Sensors mit dem Echo-Eingang und verwenden Sie den Spannungsteiler, um ihn in ein 3,3V-Signal umzuwandeln. Der Spannungsteiler verarbeitet Signale mit langsamen Übergängen. Für Hochgeschwindigkeitsübergänge sollten Sie einen aktiven Spannungspegelwandler verwenden. Wenn Sie ein analoges Signal an den Spannungsteiler und dann an einen analogen Eingang des ESP32 anschließen, sollten Sie bei der Berechnung der Volt-pro-Zählung berücksichtigen, dass der Spannungshub null bis 3,3 V und nicht null bis 5 V beträgt.

Sie können beispielsweise einen Vishay TSOP34838 IR-Sensor an die 5V-, Gnd- und Echo-Pins des HC-SR04-Headers anschließen (Echo ist an den Ausgangspin des Sensors angeschlossen). Dann sollten Sie in der Lage sein, IR-Befehle von jeder IR-Fernbedienung zu empfangen, die einen 38-KHz-Träger verwendet.

Schritt 5: Dreifarbige LED

Dreifarbige LED
Dreifarbige LED

Die dreifarbige LED ist eine 5 mm, gemeinsame Anode, Durchgangsloch, RGB-LED. Strombegrenzungswiderstände sind vorhanden und die gemeinsame Anode ist mit dem 3,3-V-Bus verdrahtet. Für die Verwendung der LED steht ein mit RGB gekennzeichneter dreipoliger Header zur Verfügung. Ein Signal mit niedrigem Pegel an einem der RGB-Pins lässt die LED mit dieser Farbe aufleuchten. Das gleichzeitige Ansteuern mehrerer RGB-Eingänge führt dazu, dass mehrere LEDs mit der resultierenden Farbmischung aufleuchten. Sie können Buchse-zu-Buchse-Jumper verwenden, um die RGB-Header-Pins mit den GPIO-Pins Ihrer Wahl zu verbinden. Wenn Sie die LED an einen GPIO-Pin mit PWM-Fähigkeit anschließen, können Sie die Helligkeit der LED durch Variieren der PWM-Low-Zeit variieren. Ich verwende die LEDs gerne, um den Code zu debuggen, an dem ich arbeite.

Schritt 6: I2C-Ausbruch

Das Breakout-Board verfügt über vier Reihen von Header-Pins für die I2C-Schnittstelle. Zwei der Reihen sind jeweils vier Pins und haben 3,3 V und Gnd. Die anderen beiden Reihen haben jeweils fünf Pins und sind für SDA und SCL. Der zusätzliche Pin in jeder dieser Reihen ist so, dass Sie zwei Buchse-zu-Buchse-Überbrückungskabel verwenden können, um die Reihen mit den GPIO-Pins Ihrer Wahl zu verbinden. Der ESP32 kann die SDA- und SCL-Signale an mehreren der GPIO-Pins haben. Bis zu vier 3,3-V-I2C-Geräte können angeschlossen und mit Strom versorgt werden, ohne auf Daisy-Chaining-Kabel zurückgreifen zu müssen. Es gibt keine Pullup-Widerstände für SDA- und SCL-Signale auf der Breakout-Platine. Die Pullup-Widerstände sollten sich an den Geräten befinden, die Sie an den I2C-Bus anschließen.

Hinweis: Für diejenigen, die mit I2C nicht vertraut sind, sind Pullup-Widerstände erforderlich, da die SDA- und SCL-Pins Open-Drain-, Tri-State- und bidirektionale Pins sind. Der Wert der Pullup-Widerstände beeinflusst die Anstiegsgeschwindigkeit und das Klingeln auf dem Bus.

Schritt 7: Stückliste

Alle Widerstände sind SMT 1206.

Alle Kondensatoren sind SMT, Fall A, EIA 3216.

Alle Header und Buchsenleisten haben ein Rastermaß von 0,1 Zoll (2,54 mm).

6 - zwanzigpolige Stiftleisten

6 - fünfpolige Stiftleisten

4 - vierpolige Stiftleisten

1 - dreipolige Stiftleiste

2 - zweipolige Stiftleisten

2 - zwanzigpolige Buchsenleisten

1 - TB6612FNG-Platine, wird mit zwei 8-poligen Stiftleisten geliefert

3 - 10uf Tantalkondensatoren

1 - 10K Widerstand

2 - 2,2K Widerstände

5 - 1K Widerstände

1 - AMS1117, 5V

1 - 5mm, gemeinsame Anode RGB-LED

3 - 3 mm Raster, zweipolig, Schraubklemmen

Optional

3 - zweipolige Stiftleisten - zum Wiederverbinden von geschnittenen Vin-, 3.3V- und Gnd-Leiterbahnen

Schritt 8: Alles einpacken

Dies ist ein sehr vielseitiges ESP32-Breakout-Board mit den gängigsten Funktionen, die von einfachen Robotern benötigt werden, die in das Breakout-Board eingebaut sind.

Das Breakout-Board ist nicht auf ESP32-Entwicklungskits beschränkt. Es kann jede Mikrocontrollerplatine verwendet werden, die zwei Reihen mit bis zu zwanzig Pins auf einem Zollabstand hat. Ein ESP8266 oder ein LPC1768 Board würde passen. Sie können die Platine ohne die TB6612FNG-Tochterplatine zusammenbauen und nur den GPIO ausbrechen. Das Board bietet Ihnen viele Möglichkeiten, es zu verwenden.

Wenn Sie einige dieser Boards herstellen lassen, entfernen Sie den Namen „Macedon Engineering“nicht von den Boards. Sie können diese Boards für jede nicht-kommerzielle Anwendung frei verwenden. Wenn Sie das Board herstellen und verwenden, würde ich mich über einen Hinweis darauf freuen, wofür Sie es verwendet haben. Ich hoffe, dass Sie das Board nützlich finden.

Empfohlen: