espBerry-LOGO

Scheda di sviluppo espBerry ESP32 con GPIO Raspberry Pi

Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-1

INFORMAZIONI SUL PRODOTTO

Specifiche

  • Fonte di energia: Più fonti
  • GPIO: Compatibile con l'intestazione GPIO a 40 pin Raspberry Pi
  • Funzionalità wireless:
  • Programmazione: IDE Arduino

Sopraview

espBerry DevBoard combina la scheda di sviluppo ESP32DevKitC con qualsiasi HAT Raspberry Pi collegandosi all'intestazione GPIO a 40 pin compatibile con RPi integrata. Non vuole essere un'alternativa al Raspberry Pi, ma piuttosto un'estensione delle funzionalità dell'ESP32 utilizzando l'ampia gamma di HAT RPi disponibili sul mercato.

Hardware

Connettore di alimentazione
L'espBerry può essere alimentato tramite varie fonti. Fare riferimento al manuale dell'utente per informazioni dettagliate sulle fonti di alimentazione disponibili.

espBerry Schemi
espBerry è stato progettato per mappare il maggior numero possibile di segnali (GPIO, SPI, UART, ecc.). Tuttavia, potrebbe non coprire tutti gli HAT disponibili sul mercato. Per adattare e sviluppare il tuo HAT, fai riferimento allo schema di espBerry. Puoi scaricare gli schemi completi di espBerry (PDF) Qui.

La piedinatura del DevKit ESP32
La piedinatura del DevKit ESP32 fornisce una rappresentazione visiva della configurazione dei pin della scheda. Per un completo view dell'immagine della piedinatura, fare clic su Qui.

L'intestazione GPIO a 40 pin del Raspberry Pi
Il Raspberry Pi presenta una fila di pin GPIO lungo il bordo superiore della scheda. espBerry è compatibile con l'intestazione GPIO a 40 pin presente su tutte le attuali schede Raspberry Pi. Tieni presente che l'intestazione GPIO non è popolata su Raspberry Pi Zero, Raspberry Pi Zero W e Raspberry Pi Zero 2 W. Prima del Raspberry Pi 1 Modello B+, le schede avevano un'intestazione più corta a 26 pin. L'intestazione GPIO ha un passo dei pin di 0.1 (2.54 mm).

Connessione alla porta SPI
La porta SPI su espBerry consente la comunicazione seriale full-duplex e sincrona. Utilizza un segnale di clock per trasferire e ricevere dati tra un controllo centrale (master) e più dispositivi periferici (slave). A differenza della comunicazione UART, che è asincrona, il segnale di clock sincronizza il trasferimento dei dati.

Domande frequenti

  • Posso utilizzare qualsiasi HAT Raspberry Pi con espBerry?
    espBerry è progettato per essere compatibile con qualsiasi HAT Raspberry Pi collegandosi all'intestazione GPIO a 40 pin integrata. Tuttavia, potrebbe non coprire tutti gli HAT disponibili sul mercato. Per ulteriori informazioni, fare riferimento allo schema di espBerry.
  • Quale linguaggio di programmazione posso usare con espBerry?
    espBerry supporta la programmazione utilizzando il popolare IDE Arduino, che offre eccellenti capacità di programmazione.
  • Dove posso trovare ulteriori informazioni e risorse?
    Sebbene questo manuale dell'utente fornisca informazioni dettagliate, puoi anche esplorare post e articoli online per risorse aggiuntive. Se hai bisogno di ulteriori informazioni o hai suggerimenti, non esitare a contattarci.

Sopraview

  • L'espBerry DevBoard combina il Sviluppo ESP32-DevKitC scheda con qualsiasi HAT Raspberry Pi collegandosi all'intestazione GPIO a 40 pin compatibile con RPi integrata.
  • Lo scopo di espBerry non dovrebbe essere percepito come un'alternativa al Raspberry Pi ma come un'estensione delle funzionalità dell'ESP32 attingendo alla vasta offerta di HAT RPi sul mercato e sfruttando vantaggitage delle molteplici e flessibili opzioni hardware.
  • espBerry è la soluzione perfetta per la prototipazione e le applicazioni Internet of Things (IoT), in particolare quelle che richiedono funzionalità wireless. Tutti i codici open sourceampprendiamo il vantaggiotage del popolare IDE Arduino con le sue eccellenti capacità di programmazione.
  • Di seguito spiegheremo le caratteristiche hardware e software, inclusi tutti i dettagli che devi sapere per aggiungere il Raspberry HAT di tua scelta. Inoltre, forniremo una raccolta di hardware e softwareamples per dimostrare le capacità di espBerry.
  • Tuttavia, ci asterremo dal ripetere informazioni già disponibili tramite altre risorse, ad esempio post e articoli online. Ovunque riteniamo che siano necessarie ulteriori informazioni, aggiungeremo riferimenti da studiare.
    Nota: Stiamo facendo del nostro meglio per documentare ogni dettaglio che potrebbe essere importante per i nostri clienti. Tuttavia, la documentazione richiede tempo e non sempre siamo perfetti. Se hai bisogno di ulteriori informazioni o hai suggerimenti, non esitare a farlo contattaci.

Caratteristiche espBerry

  • Processore: ESP32 DevKitC
    • Dual-core Xtensa a 32 bit a 240 MHz
    • WiFi IEEE 802.11 b / g / n 2.4 GHz
    • Bluetooth 4.2 BR/EDR e BLE
    • SRAM da 520 kB (16 kB per la cache)
    • 448 kB di ROM
    • Programmabile tramite cavo USB A/micro–USB B
  • Intestazione GPIO a 40 pin compatibile con Raspberry Pi
    • 20 GPIO
    • 2 x SPI
    • 1 x UART
  • Potenza in ingresso: 5 VCC
    • Protezione da inversione di polarità
    • Sovravoltage Protezione
    • Jack connettore a cilindro di alimentazione ID 2.00 mm (0.079ʺ), diametro esterno 5.50 mm (0.217ʺ)
    • Disponibili opzioni 12/24 VCC
  • Campo di funzionamento: Temperatura ambiente -40°C ~ 85°C
    Nota: La maggior parte degli HAT RPi funziona a 0°C ~ 50°C
  • Dimensioni: 95 mm x 56 mm – 3.75 x 2.2”.
    Conforme a Specifiche meccaniche HAT Raspberry Pi standard

Hardware

  • In generale, la scheda di sviluppo espBerry combina il modulo ESP32-DevKitC con qualsiasi HAT Raspberry Pi collegandosi all'intestazione GPIO a 40 pin compatibile con RPi.
  • Le connessioni più utilizzate tra ESP32 e RPi HAT sono la porta SPI e UART, come spiegato nei capitoli seguenti. Abbiamo anche mappato diversi segnali GPIO (General Purpose Input Output). Per informazioni più dettagliate sulla mappatura fare riferimento allo schema.
  • Stiamo facendo del nostro meglio per fornire una buona documentazione. Tuttavia, ti preghiamo di comprendere che non possiamo spiegare tutti i dettagli ESP32 in questo manuale utente. Per informazioni più dettagliate si rimanda al Guida introduttiva a ESP32-DevKitC V4.

Componenti della scheda espBerry

Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-2

Connettore di alimentazione

  • L'espBerry può essere alimentato tramite diverse fonti:
    • Il connettore Micro-USB sul modulo ESP32 DevKitC
    • Il jack da 5 V CC da 2.0 mm
    • La morsettiera da 5 V CC
    • Alimentatore esterno collegato all'RPi HAT
  • Esistono HAT Raspberry Pi che consentono di fornire alimentazione esterna (ad esempio 12 V CC) direttamente all'HAT. Quando si alimenta l'espBerry tramite questo alimentatore esterno, è necessario impostare il ponticello del selettore della fonte di alimentazione su "EXT". Altrimenti, deve essere impostato su “A bordo”.
  • È possibile alimentare l'espBerry internamente ("On Board") pur mantenendo l'alimentazione applicata all'HAT.

espBerry Schemi 

  • espBerry è stato progettato per mappare il maggior numero possibile di segnali (GPIO, SPI, UART, ecc.). Tuttavia, ciò non significa necessariamente che espBerry copra tutti gli HAT disponibili sul mercato. La tua fonte definitiva per gli adattamenti e lo sviluppo del tuo HAT deve essere lo schema di espBerry.

    Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-3

  • Fare clic qui per scaricare gli schemi completi di espBerry (PDF).
  • Inoltre, nei capitoli seguenti abbiamo aggiunto il pinout dell'intestazione GPIO a 32 pin ESP40 DevKitC e Raspberry Pi.

La piedinatura del DevKit ESP32
Per un pieno view dell'immagine sopra, clicca qui.

Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-4

L'intestazione GPIO a 40 pin del Raspberry Pi

  • Una caratteristica potente del Raspberry Pi è la fila di pin GPIO (ingresso/uscita per uso generale) lungo il bordo superiore della scheda. Un header GPIO a 40 pin si trova su tutte le attuali schede Raspberry Pi (non popolate su Raspberry Pi Zero, Raspberry Pi Zero W e Raspberry Pi Zero 2 W). Prima del Raspberry Pi 1 Modello B+ (2014), le schede comprendevano un header più corto a 26 pin. L'intestazione GPIO su tutte le schede (incluso il Raspberry Pi 400) ha un passo pin di 0.1″ (2.54 mm).

    Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-5

  • Per ulteriori informazioni, fare riferimento a Hardware Raspberry Pi: GPIO e header a 40 pin.
  • Per ulteriori informazioni sugli HAT Raspberry Pi, fare riferimento a Schede e HAT aggiuntivi.

Connessione alla porta SPI

  • SPI sta per Serial Peripheral Interface, un'interfaccia seriale full-duplex e sincrona. L'interfaccia sincrona richiede un segnale di clock per trasferire e ricevere dati. Il segnale dell'orologio è sincronizzato tra un controllo centrale (“master”) e più dispositivi periferici (“slave”). A differenza della comunicazione UART, che è asincrona, il segnale di clock controlla quando i dati devono essere inviati e quando dovrebbero essere pronti per la lettura.
  • Solo un dispositivo master può controllare l'orologio e fornire un segnale di clock a tutti i dispositivi slave. I dati non possono essere trasferiti senza un segnale orario. Sia il master che lo slave possono scambiarsi dati tra loro. Non è richiesta la decodifica dell'indirizzo.
  • L'ESP32 ha quattro bus SPI, ma solo due sono disponibili per l'uso e sono noti come HSPI e VSPI. Come accennato in precedenza, nella comunicazione SPI, è sempre presente un controller (noto anche come master) che controlla altri dispositivi periferici (noti anche come slave). È possibile configurare l'ESP32 come master o slave.

    Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-6

  • Su espBerry, i segnali assegnati agli IO predefiniti:

    Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-7

  • L'immagine sotto mostra i segnali SPI dal modulo ESP32 all'intestazione GPIO RPi come estratto dallo schema.

    Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-8

  • Sono disponibili molti tipi di schede ESP32. Schede diverse da espBerry potrebbero avere pin SPI predefiniti diversi, ma puoi trovare informazioni sui pin predefiniti nella loro scheda tecnica. Ma se i pin predefiniti non sono menzionati, puoi trovarli utilizzando uno schizzo di Arduino (usa il primo collegamento qui sotto).
  • Per ulteriori informazioni, vedere:
  • L'espBerry utilizza la connessione VSPI come impostazione predefinita, il che significa che se utilizzi i segnali predefiniti, non dovresti riscontrare problemi. Esistono modi per modificare l'assegnazione dei pin e passare a HSPI (come spiegato nei riferimenti precedenti), ma non abbiamo esplorato questi scenari per espBerry.
  • Vedi anche la nostra sezione sulla programmazione della porta SPI.

Connessione alla porta seriale (UART).

  • Oltre alla porta USB integrata, il modulo di sviluppo ESP32 dispone di tre interfacce UART, ovvero UART0, UART1 e UART2, che forniscono comunicazione asincrona a una velocità fino a 5 Mbps. Queste porte seriali possono essere mappate su quasi tutti i pin. Su espBerry, abbiamo assegnato IO15 come Rx e IO16 come Tx, che sono collegati a GPIO16 e GPIO20 sull'intestazione a 40 pin come mostrato qui:

    Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-9

  • Abbiamo scelto di non utilizzare i segnali RX/TX (GPIO3/GPIO1) standard sul DevKit ESP32, poiché vengono spesso utilizzati per stampe di prova tramite il monitor seriale dell'IDE Arduino. Ciò potrebbe interferire con la comunicazione tra ESP32 e RPi HAT. È invece necessario mappare IO16 come Rx e IO15 come Tx per software, come spiegato nella sezione Software di questo manuale.
  • Vedi anche la nostra sezione sulla programmazione seriale (UART).

Software

  • Di seguito spiegheremo brevemente gli aspetti di programmazione più importanti per espBerry. Come accennato in precedenza in questo manuale utente, aggiungeremo riferimenti online laddove riteniamo che siano necessarie ulteriori informazioni.
  • Per ulteriori informazioni, progetti praticiamples, vedi anche il nostro Suggerimenti per la programmazione ESP32.
  • Inoltre, ci sono molti example di Letteratura sulla programmazione ESP32, che valgono l'investimento.
  • Tuttavia, consigliamo vivamente di utilizzare Progetti elettronici con ESP8266 ed ESP32, soprattutto per i tuoi progetti di applicazioni wireless. Sì, oggigiorno sono disponibili molti buoni libri e risorse online gratuite, ma questo è il libro che stiamo utilizzando. Ha reso il nostro approccio a Bluetooth, BLE e WIFI un gioco da ragazzi. Programmare applicazioni wireless senza problemi è stato divertente e le condividiamo sul nostro web sito.

    Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-10

Installazione e preparazione dell'IDE Arduino

  • Tutta la nostra programmazione sampi le sono stati sviluppati utilizzando l'IDE Arduino (Integrated Development Environment) per la sua facilità di installazione e utilizzo. Inoltre, online sono disponibili una miriade di schizzi Arduino per l'ESP32.
  • Per l'installazione, attenersi alla seguente procedura:
    • Fase 1: Il primo passo sarebbe scaricare e installare l'IDE Arduino. Questo può essere fatto facilmente seguendo il collegamento https://www.arduino.cc/en/Main/Software e scaricando l'IDE gratuitamente. Se ne hai già uno, assicurati di avere la versione più recente.
    • Fase 2: Una volta installato, apri l'IDE di Arduino e vai su Files -> Preferenze per aprire la finestra delle preferenze e individuare “Gestione schede aggiuntive URLs:” come mostrato di seguito:

      Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-11

      • La casella di testo potrebbe essere vuota o già contenerne altre URL se l'hai usato in precedenza per un'altra tavola. Se è vuoto, incolla semplicemente quanto segue URL nella casella di testo.
        https://dl.espressif.com/dl/package_esp32_index.json
      • Se la casella di testo ne contiene già qualche altro URL basta aggiungere questo URL ad esso, separarli entrambi con una virgola (,). Il nostro aveva già il Teensy URL. Siamo appena entrati nel URL e ha aggiunto la virgola.
      • Una volta terminato, fare clic su OK e la finestra scomparirà.
    • Fase 3: Vai su Strumenti -> Schede -> Gestori schede per aprire la finestra Gestione schede e cercare ESP32. Se la URL è stato incollato correttamente, la finestra dovrebbe trovare la schermata seguente con il pulsante Installa, basta fare clic sul pulsante Installa e la scheda dovrebbe essere installata.

      Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-12
      La schermata sopra mostra l'ESP32 dopo l'installazione.

    • Fase 4: Prima di iniziare la programmazione, è necessario impostare e selezionare l'hardware ESP32 appropriato (sono disponibili più opzioni). Passare a Strumenti -> Schede e selezionare Modulo di sviluppo ESP32 come mostrato qui:

      Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-13

    • Fase 5: Apri Gestione dispositivi e controlla a quale porta COM è collegato il tuo ESP32.

      Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-14

  • Quando usi espBerry, cerca il bridge da USB a UART CP210x di Silicon Labs. Nella nostra configurazione mostra COM4. Torna all'IDE Arduino e in Strumenti -> Porta, seleziona la porta a cui è connesso il tuo ESP.

    Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-15

  • Se sei un principiante con l'IDE Arduino, fai riferimento a Utilizzo del software Arduino (IDE).

Programmazione della porta SPI

  • Quanto segue rappresenta solo una breve panoramicaview della programmazione SPI. La programmazione SPI non è facile, ma ogni volta che iniziamo un nuovo progetto, cerchiamo il codice online (ad esempio github.com).
  • Ad esempio, per programmare il controller CAN MCP2515, stiamo utilizzando una versione modificata della libreria MCP_CAN per Arduino di Cory Fowler, ovvero stiamo utilizzando le sue conoscenze e i suoi sforzi per il nostro progetto.
  • Tuttavia, vale la pena dedicare del tempo a comprendere la programmazione SPI a livello di base. Ad esempio, espBerry ha i segnali SPI mappati come mostrato qui:

    Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-16

  • Queste impostazioni devono essere applicate nel codice dell'applicazione. Fare riferimento alle seguenti risorse per ulteriori informazioni sulla programmazione SPI con ESP32:

Programmazione della porta seriale (UART).

  • Su espBerry abbiamo assegnato IO15 come Rx e IO16 come Tx, che sono collegati a GPIO16 e GPIO20 sull'intestazione a 40 pin.
  • Abbiamo scelto di non utilizzare i segnali RX/TX (GPIO3/GPIO1) standard sul DevKit ESP32, poiché vengono spesso utilizzati per stampe di prova tramite il monitor seriale dell'IDE Arduino. Ciò potrebbe interferire con la comunicazione tra ESP32 e RPi HAT. È invece necessario mappare IO16 come Rx e IO15 come Tx per software.

    Scheda di sviluppo espBerry-ESP32 con Raspberry Pi-GPIO-FIG-17

  • Il codice sopra rappresenta un'applicazione example utilizzando Serial1.
  • Quando lavori con ESP32 sotto l'IDE Arduino, noterai che il comando Serial funziona perfettamente ma Serial1 e Serial2 no. L'ESP32 ha tre porte seriali hardware che possono essere mappate su quasi tutti i pin. Per far funzionare Serial1 e Serial2, è necessario coinvolgere la classe HardwareSerial. Come riferimento, cfr ESP32, Arduino e 3 porte seriali hardware.
  • Vedi anche il nostro post Progetto espBerry: ESP32 con chip USB-UART CH9102F per velocità seriale fino a 3 Mbit/s.

INFORMAZIONI SULL'AZIENDA

Documenti / Risorse

Scheda di sviluppo espBerry ESP32 con GPIO Raspberry Pi [pdf] Manuale d'uso
Scheda di sviluppo ESP32 con GPIO Raspberry Pi, ESP32, Scheda di sviluppo con GPIO Raspberry Pi, Scheda con GPIO Raspberry Pi, GPIO Raspberry Pi

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *