espBerry-LOGO

espBerry ESP32-Entwicklungsboard mit Raspberry Pi GPIO

espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-1

PRODUKTINFORMATIONEN

Technische Daten

  • Energiequelle: Mehrere Quellen
  • GPIO: Kompatibel mit dem 40-poligen GPIO-Header des Raspberry Pi
  • Drahtlose Funktionen: Ja
  • Programmierung: Arduino IDE

Überview

Das espBerry DevBoard kombiniert das ESP32DevKitC-Entwicklungsboard mit jedem Raspberry Pi HAT, indem es an den integrierten RPi-kompatiblen 40-Pin-GPIO-Header angeschlossen wird. Es ist nicht als Raspberry Pi-Alternative gedacht, sondern vielmehr als Erweiterung der Funktionalität des ESP32 durch Nutzung der breiten Palette an auf dem Markt erhältlichen RPi-HATs.

Hardware

Stromquellenanschluss
Der espBerry kann über verschiedene Quellen mit Strom versorgt werden. Detaillierte Informationen zu den verfügbaren Stromquellen finden Sie im Benutzerhandbuch.

espBerry-Schaltpläne
Der espBerry wurde entwickelt, um möglichst viele Signale (GPIO, SPI, UART usw.) abzubilden. Es deckt jedoch möglicherweise nicht alle auf dem Markt erhältlichen HATs ab. Informationen zur Anpassung und Entwicklung Ihres eigenen HAT finden Sie im Schaltplan von espBerry. Sie können die vollständigen espBerry-Schaltpläne (PDF) herunterladen. Hier.

Die Pinbelegung des ESP32 DevKit
Die Pinbelegung des ESP32 DevKit bietet eine visuelle Darstellung der Pin-Konfiguration der Platine. Für eine volle view Klicken Sie im Pinbelegungsbild auf Hier.

Der 40-polige GPIO-Header des Raspberry Pi
Der Raspberry Pi verfügt über eine Reihe von GPIO-Pins entlang der Oberkante der Platine. Der espBerry ist mit dem 40-Pin-GPIO-Header kompatibel, der auf allen aktuellen Raspberry Pi-Boards zu finden ist. Bitte beachten Sie, dass der GPIO-Header auf Raspberry Pi Zero, Raspberry Pi Zero W und Raspberry Pi Zero 2 W unbestückt ist. Vor dem Raspberry Pi 1 Model B+ hatten Platinen einen kürzeren 26-Pin-Header. Der GPIO-Header hat einen Pinabstand von 0.1 (2.54 mm).

SPI-Port-Verbindung
Der SPI-Port am espBerry ermöglicht serielle Vollduplex- und synchrone Kommunikation. Es nutzt ein Taktsignal zum Übertragen und Empfangen von Daten zwischen einer zentralen Steuerung (Master) und mehreren Peripheriegeräten (Slaves). Im Gegensatz zur asynchronen UART-Kommunikation synchronisiert das Taktsignal die Datenübertragung.

Häufig gestellte Fragen

  • Kann ich jeden Raspberry Pi HAT mit dem espBerry verwenden?
    Der espBerry ist so konzipiert, dass er mit jedem Raspberry Pi HAT kompatibel ist, indem er an den integrierten 40-Pin-GPIO-Header angeschlossen wird. Es deckt jedoch möglicherweise nicht alle auf dem Markt erhältlichen HATs ab. Weitere Informationen finden Sie im Schaltplan des espBerry.
  • Welche Programmiersprache kann ich mit espBerry verwenden?
    Der espBerry unterstützt die Programmierung mit der beliebten Arduino IDE, die hervorragende Programmierfunktionen bietet.
  • Wo finde ich zusätzliche Informationen und Ressourcen?
    Während dieses Benutzerhandbuch detaillierte Informationen bietet, können Sie auch Online-Beiträge und -Artikel nach zusätzlichen Ressourcen durchsuchen. Wenn Sie weitere Informationen benötigen oder Anregungen haben, können Sie uns gerne kontaktieren.

Überview

  • Das espBerry DevBoard kombiniert das ESP32-DevKitC-Entwicklung Board mit jedem Raspberry Pi HAT durch Anschluss an den integrierten RPi-kompatiblen 40-Pin-GPIO-Header.
  • Der Zweck des espBerry sollte nicht als Raspberry Pi-Alternative verstanden werden, sondern darin, die Funktionalität des ESP32 zu erweitern, indem das umfangreiche Angebot an RPi-HATs auf dem Markt genutzt und erweitert wirdtage der vielfältigen und flexiblen Hardwareoptionen.
  • Der espBerry ist die perfekte Lösung für Prototyping- und Internet-of-Things-Anwendungen (IoT), insbesondere für solche, die drahtlose Funktionen erfordern. Alle Open-Source-CodesampLass uns vorankommentage der beliebten Arduino IDE mit ihren hervorragenden Programmierfähigkeiten.
  • Im Folgenden erklären wir Ihnen die Hardware- und Softwarefunktionen, inklusive aller Details, die Sie wissen müssen, um den Raspberry HAT Ihrer Wahl hinzuzufügen. Darüber hinaus stellen wir eine Sammlung von Hard- und Software zur Verfügungamples to demonstriert die Fähigkeiten des espBerry.
  • Wir werden jedoch davon absehen, Informationen zu wiederholen, die bereits über andere Ressourcen, d. h. Online-Beiträge und Artikel, verfügbar sind. Wo immer wir der Meinung sind, dass zusätzliche Informationen erforderlich sind, fügen wir Referenzen hinzu, damit Sie diese studieren können.
    Notiz: Wir bemühen uns sehr, jedes Detail zu dokumentieren, das für unsere Kunden wichtig sein könnte. Allerdings braucht die Dokumentation Zeit und wir sind nicht immer perfekt. Wenn Sie weitere Informationen benötigen oder Anregungen haben, wenden Sie sich bitte an uns kontaktiere uns.

espBerry-Funktionen

  • Prozessor: ESP32 DevKitC
    • 32-Bit Xtensa Dual-Core mit 240 MHz
    • WiFi IEEE 802.11 b / g / n 2.4 GHz
    • Bluetooth 4.2 BR/EDR und BLE
    • 520 kB SRAM (16 kB für Cache)
    • 448 kB ROM
    • Programmierbar per USB-A/Micro-USB-B-Kabel
  • Raspberry Pi-kompatibler 40-poliger GPIO-Header
    • 20 GPIO
    • 2 x SPI
    • 1 x UART
  • Eingangsleistung: 5 V Gleichstrom
    • Verpolungsschutz
    • Übervolumentage-Schutz
    • Power Barrel Connector Jack 2.00 mm Innendurchmesser (0.079 Zoll), 5.50 mm Außendurchmesser (0.217 Zoll)
    • 12/24 VDC-Optionen verfügbar
  • Betriebsbereich: -40°C bis 85°C
    Notiz: Die meisten RPi-HATs arbeiten bei 0 °C bis 50 °C
  • Abmessungen: 95 mm x 56 mm – 3.75 Zoll x 2.2 Zoll
    Entspricht Standardmäßige mechanische Spezifikationen für den Raspberry Pi HAT

Hardware

  • Im Allgemeinen kombiniert das espBerry-Entwicklungsboard das ESP32-DevKitC-Modul mit jedem Raspberry Pi HAT, indem es eine Verbindung zum integrierten RPi-kompatiblen 40-Pin-GPIO-Header herstellt.
  • Die am häufigsten verwendeten Verbindungen zwischen dem ESP32 und dem RPi HAT sind der SPI- und der UART-Port, wie in den folgenden Kapiteln erläutert. Wir haben auch mehrere GPIO-Signale (General Purpose Input Output) zugeordnet. Genauere Informationen zur Zuordnung finden Sie im Schaltplan.
  • Wir sind sehr bemüht, eine gute Dokumentation bereitzustellen. Bitte haben Sie jedoch Verständnis dafür, dass wir in dieser Bedienungsanleitung nicht alle ESP32-Details erläutern können. Nähere Informationen finden Sie im ESP32-DevKitC V4 Erste Schritte.

espBerry Board-Komponenten

espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-2

Stromquellenanschluss

  • Der espBerry kann über mehrere Quellen mit Strom versorgt werden:
    • Der Micro-USB-Anschluss am ESP32 DevKitC-Modul
    • Die 5 VDC-Buchse 2.0 mm
    • Der 5-V-DC-Klemmenblock
    • Externes Netzteil an den RPi HAT angeschlossen
  • Es gibt Raspberry Pi HATs, die es ermöglichen, den HAT direkt mit externer Stromversorgung (z. B. 12 VDC) zu versorgen. Wenn Sie den espBerry über dieses externe Netzteil mit Strom versorgen, müssen Sie den Jumper am Stromquellenwähler auf „EXT“ setzen. Andernfalls muss es auf „On Board“ eingestellt werden.
  • Es ist möglich, den espBerry intern („On Board“) mit Strom zu versorgen, während der HAT weiterhin mit Strom versorgt wird.

espBerry-Schaltpläne 

  • Der espBerry wurde entwickelt, um möglichst viele Signale (GPIO, SPI, UART usw.) abzubilden. Dies bedeutet jedoch nicht unbedingt, dass espBerry alle auf dem Markt erhältlichen HATs abdeckt. Ihre ultimative Quelle für Anpassungen und die Entwicklung Ihres eigenen HAT muss der Schaltplan von espBerry sein.

    espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-3

  • Klicken Sie hier, um die vollständigen espBerry-Schaltpläne (PDF) herunterzuladen.
  • Darüber hinaus haben wir in den folgenden Kapiteln das ESP32 DevKitC und die Pinbelegung des 40-poligen GPIO-Headers des Raspberry Pi hinzugefügt.

Die Pinbelegung des ESP32 DevKit
Für eine vollständige view Klicken Sie hier, um das Bild oben zu sehen.

espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-4

Der 40-polige GPIO-Header des Raspberry Pi

  • Ein leistungsstarkes Merkmal des Raspberry Pi ist die Reihe von GPIO-Pins (General Purpose Input/Output) entlang der Oberkante der Platine. Ein 40-poliger GPIO-Header ist auf allen aktuellen Raspberry Pi-Boards zu finden (unbestückt auf Raspberry Pi Zero, Raspberry Pi Zero W und Raspberry Pi Zero 2 W). Vor dem Raspberry Pi 1 Model B+ (2014) verfügten die Platinen über einen kürzeren 26-Pin-Header. Der GPIO-Header auf allen Platinen (einschließlich des Raspberry Pi 400) hat einen Pinabstand von 0.1″ (2.54 mm).

    espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-5

  • Weitere Informationen finden Sie unter Raspberry Pi-Hardware – GPIO und der 40-Pin-Header.
  • Weitere Informationen zu Raspberry Pi HATs finden Sie unter Add-On-Boards und HATs.

SPI-Port-Verbindung

  • SPI steht für Serial Peripheral Interface, eine serielle Vollduplex- und synchrone Schnittstelle. Die synchrone Schnittstelle benötigt ein Taktsignal zum Übertragen und Empfangen von Daten. Das Taktsignal wird zwischen einer zentralen Steuerung („Master“) und mehreren Peripheriegeräten („Slaves“) synchronisiert. Im Gegensatz zur asynchronen UART-Kommunikation steuert das Taktsignal, wann Daten gesendet werden und wann sie zum Lesen bereit sein sollen.
  • Nur ein Master-Gerät kann die Uhr steuern und allen Slave-Geräten ein Taktsignal bereitstellen. Ohne Taktsignal können keine Daten übertragen werden. Sowohl Master als auch Slave können Daten untereinander austauschen. Es ist keine Adressdekodierung erforderlich.
  • Der ESP32 verfügt über vier SPI-Busse, es stehen jedoch nur zwei zur Nutzung zur Verfügung, und zwar als HSPI und VSPI. Wie bereits erwähnt, gibt es bei der SPI-Kommunikation immer einen Controller (auch Master genannt), der andere Peripheriegeräte (auch Slaves genannt) steuert. Sie können den ESP32 entweder als Master oder Slave konfigurieren.

    espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-6

  • Auf dem espBerry sind die den Standard-IOs zugewiesenen Signale:

    espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-7

  • Das folgende Bild zeigt die SPI-Signale vom ESP32-Modul zum RPi-GPIO-Header als Auszug aus dem Schaltplan.

    espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-8

  • Es gibt viele Arten von ESP32-Boards. Andere Boards als das espBerry verfügen möglicherweise über andere Standard-SPI-Pins, Informationen zu Standard-Pins finden Sie jedoch in ihrem Datenblatt. Wenn die Standard-Pins jedoch nicht erwähnt werden, können Sie sie mithilfe einer Arduino-Skizze finden (verwenden Sie den ersten Link unten).
  • Weitere Informationen finden Sie unter:
  • Der espBerry verwendet standardmäßig die VSPI-Verbindung. Wenn Sie also die Standardsignale verwenden, sollten keine Probleme auftreten. Es gibt Möglichkeiten, die Pinbelegung zu ändern und zu HSPI zu wechseln (wie in den obigen Referenzen erläutert), aber wir haben diese Szenarien für den espBerry nicht untersucht.
  • Siehe auch unseren Abschnitt zur SPI-Port-Programmierung.

Serielle (UART) Portverbindung

  • Neben dem integrierten USB-Anschluss verfügt das ESP32-Entwicklungsmodul über drei UART-Schnittstellen, nämlich UART0, UART1 und UART2, die eine asynchrone Kommunikation mit einer Geschwindigkeit von bis zu 5 Mbit/s ermöglichen. Diese seriellen Ports können nahezu jedem Pin zugeordnet werden. Auf dem espBerry haben wir IO15 als Rx und IO16 als Tx zugewiesen, die wie hier gezeigt mit GPIO16 und GPIO20 am 40-Pin-Header verbunden sind:

    espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-9

  • Wir haben uns entschieden, die Standard-RX/TX-Signale (GPIO3/GPIO1) auf dem ESP32 DevKit nicht zu verwenden, da sie häufig für Testdrucke über den seriellen Monitor der Arduino IDE verwendet werden. Dies kann die Kommunikation zwischen dem ESP32 und dem RPi HAT beeinträchtigen. Stattdessen müssen Sie IO16 per Software als Rx und IO15 als Tx zuordnen, wie im Abschnitt „Software“ dieses Handbuchs erläutert.
  • Siehe auch unseren Abschnitt zur seriellen (UART) Programmierung.

Software

  • Im Folgenden erläutern wir kurz die wichtigsten Programmieraspekte für den espBerry. Wie bereits in diesem Benutzerhandbuch erwähnt, werden wir Online-Referenzen hinzufügen, wenn wir der Meinung sind, dass zusätzliche Informationen erforderlich sind.
  • Weitere praktische Projekte finden Sie hieramples, siehe auch unsere ESP32-Programmiertipps.
  • Darüber hinaus gibt es viele Exampweniger von ESP32-Programmierliteratur, die die Investition wert sind.
  • Wir empfehlen jedoch dringend die Verwendung Elektronische Projekte mit dem ESP8266 und ESP32, speziell für Ihre drahtlosen Anwendungsprojekte. Ja, heutzutage sind viele gute Bücher und kostenlose Online-Ressourcen verfügbar, aber dieses Buch verwenden wir. Es machte unseren Umgang mit Bluetooth, BLE und WIFI zu einem Kinderspiel. Es hat Spaß gemacht, drahtlose Anwendungen problemlos zu programmieren, und wir teilen sie auf unserer Website web Website.

    espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-10

Installieren und Vorbereiten der Arduino IDE

  • Alle unsere ProgrammierungenampDateien wurden aufgrund der einfachen Installation und Verwendung mit der Arduino IDE (Integrated Development Environment) entwickelt. Darüber hinaus sind online unzählige Arduino-Skizzen für den ESP32 verfügbar.
  • Gehen Sie für die Installation wie folgt vor:
    • Schritt 1: Der erste Schritt wäre das Herunterladen und Installieren der Arduino IDE. Dies geht ganz einfach, indem Sie dem Link https://www.arduino.cc/en/Main/Software folgen und die IDE kostenlos herunterladen. Wenn Sie bereits eine haben, stellen Sie sicher, dass Sie über die neueste Version verfügen.
    • Schritt 2: Öffnen Sie nach der Installation die Arduino-IDE und gehen Sie zu Files -> Einstellungen, um das Einstellungsfenster zu öffnen und den „Additional Boards Manager“ zu suchen URLs:“, wie unten gezeigt:

      espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-11

      • Das Textfeld ist möglicherweise leer oder enthält bereits etwas anderes URL wenn Sie es zuvor für ein anderes Board verwendet haben. Wenn es leer ist, fügen Sie einfach das Folgende ein URL in das Textfeld ein.
        https://dl.espressif.com/dl/package_esp32_index.json
      • Wenn das Textfeld bereits etwas anderes enthält URL füge das einfach hinzu URL Trennen Sie dazu beide durch ein Komma (,). Unseres hatte bereits den Teensy URL. Wir haben gerade das betreten URL und fügte das Komma hinzu.
      • Wenn Sie fertig sind, klicken Sie auf OK und das Fenster verschwindet.
    • Schritt 3: Gehen Sie zu Extras -> Boards -> Board-Manager, um das Board-Manager-Fenster zu öffnen und nach ESP32 zu suchen. Wenn die URL korrekt eingefügt wurde, sollte in Ihrem Fenster der folgende Bildschirm mit der Schaltfläche „Installieren“ angezeigt werden. Klicken Sie einfach auf die Schaltfläche „Installieren“ und Ihr Board sollte installiert werden.

      espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-12
      Der obige Screenshot zeigt den ESP32 nach der Installation.

    • Schritt 4: Bevor Sie mit der Programmierung beginnen, müssen Sie die entsprechende ESP32-Hardware auswählen (es gibt mehrere Optionen). Navigieren Sie zu Tools -> Boards und wählen Sie ESP32 Dev Module aus, wie hier gezeigt:

      espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-13

    • Schritt 5: Öffnen Sie den Gerätemanager und prüfen Sie, an welchem ​​COM-Port Ihr ESP32 angeschlossen ist.

      espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-14

  • Wenn Sie den espBerry verwenden, achten Sie auf die Silicon Labs CP210x USB-zu-UART-Brücke. In unserem Setup wird COM4 angezeigt. Gehen Sie zurück zur Arduino IDE und wählen Sie unter Extras -> Port den Port aus, mit dem Ihr ESP verbunden ist.

    espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-15

  • Wenn Sie ein Anfänger mit der Arduino IDE sind, lesen Sie bitte Verwendung der Arduino-Software (IDE).

SPI-Port-Programmierung

  • Das Folgende stellt nur einen kurzen Überblick darview der SPI-Programmierung. SPI-Programmierung ist nicht einfach, aber wenn wir ein neues Projekt starten, suchen wir online nach Code (z. B. github.com).
  • Um beispielsweise den CAN-Controller MCP2515 zu programmieren, verwenden wir eine modifizierte Version der MCP_CAN-Bibliothek für Arduino von Cory Fowler, d. h. wir nutzen sein Wissen und seinen Einsatz für unser Projekt.
  • Dennoch lohnt es sich, Zeit zu investieren, um die SPI-Programmierung auf einer grundlegenden Ebene zu verstehen. Beispielsweise verfügt der espBerry über die Zuordnung der SPI-Signale wie hier gezeigt:

    espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-16

  • Diese Einstellungen müssen im Code der Anwendung angewendet werden. Weitere Informationen zur SPI-Programmierung mit dem ESP32 finden Sie in den folgenden Ressourcen:

Programmierung der seriellen Schnittstelle (UART).

  • Beim espBerry haben wir IO15 als Rx und IO16 als Tx zugewiesen, die mit GPIO16 und GPIO20 am 40-Pin-Header verbunden sind.
  • Wir haben uns entschieden, die Standard-RX/TX-Signale (GPIO3/GPIO1) auf dem ESP32 DevKit nicht zu verwenden, da sie häufig für Testdrucke über den seriellen Monitor der Arduino IDE verwendet werden. Dies kann die Kommunikation zwischen dem ESP32 und dem RPi HAT beeinträchtigen. Stattdessen müssen Sie per Software IO16 als Rx und IO15 als Tx zuordnen.

    espBerry-ESP32-Development-Board-with-Raspberry-Pi-GPIO-FIG-17

  • Der obige Code stellt eine Anwendung dar, zample mit Serial1.
  • Wenn Sie mit dem ESP32 unter der Arduino IDE arbeiten, werden Sie feststellen, dass der Serial-Befehl einwandfrei funktioniert, Serial1 und Serial2 jedoch nicht. Der ESP32 verfügt über drei serielle Hardware-Ports, die fast jedem Pin zugeordnet werden können. Damit Serial1 und Serial2 funktionieren, müssen Sie die HardwareSerial-Klasse einbeziehen. Als Referenz siehe ESP32, Arduino und 3 serielle Hardware-Ports.
  • Siehe auch unseren Beitrag espBerry-Projekt: ESP32 mit CH9102F USB-UART-Chip für serielle Geschwindigkeit bis zu 3 Mbit/s.

ÜBER DAS UNTERNEHMEN

Dokumente / Ressourcen

espBerry ESP32-Entwicklungsboard mit Raspberry Pi GPIO [pdf] Benutzerhandbuch
ESP32-Entwicklungsboard mit Raspberry Pi GPIO, ESP32, Entwicklungsboard mit Raspberry Pi GPIO, Board mit Raspberry Pi GPIO, Raspberry Pi GPIO

Verweise

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *