Descripción general

¡Sí! ¡Es la Feather que estabas esperando! La Huzzah32 es la nueva Feather basada en el ESP32, que incluye el módulo oficial WROOM32. Lleva todo lo bueno de las Adafruit Feather: conversor serie-USB integrado, reset automático para el bootloader, cargador de baterías LiPo y todos los pines GPIO en formato Feather para que puedas usarlo con cualquier Feather Wing.

El módulo WROOM32 que se ve al final de esta Feather contiene un chip dual-core ESP32, 4MB de Flash SPI, antena, y todos los componentes que necesitas para aprovechar este potentísimo procesador. El ESP32 tiene WiFi y Bluetooth (Classic y Low Energy 4.0). ¡Ideal para casi cualquier proyecto conectado a internet!

Adafruit Feather Huzzah32 ESP32

24,80 (20,50 IVA excl.)
En 2 a 3 días

Además es parte del ecosistema Feather, lo que quiere decir que tienes un montón the Feather Wings con todo tipo de accesorios para conectarle. Aunque también puedes utilizar componentes clásicos de Arduino.

El ESP32 es la versión superior al popular ESP8266. En comparación, el ESP32 tiene muchos más pines GPIO, muchas de entradas analógicas, dos salidas analógicas, múltiples periféricos (como una UART extra), dos núcleos para que no tengas que pararlo todo por el WiFi Manager, un procesador a una velocidad de procesamiento mucho más alta, etc.

En Fábrica Digital ya es nuestra plataforma de desarrollo preferida para los proyectos. Conforme el ESP32 consiga popularidad vamos a ver muchos más makers desarrollando exclusivamente para este chip, porque tiene de todo. Algunas de las razones por las que esta Adafruit Feather Huzzah32 es nuestra placa favorita:

  • Procesador hiperpotente de 32 bits: 240 MHz dual core Tensilica LX6 a 600 DMIPS
  • Un montón de RAM (520 KB SRAM) y flash (4 MBytes flash) para programas enormes y complejos.
  • WiFi N: Integrated 802.11b/g/n HT40 Wi-Fi transceiver, baseband, stack and LWIP
  • Bluetooth dual (classic y BLE) que funciona con teléfonos y tablets nuevos y antiguos.
  • Un coprocesador pequeñito que puede correr programas independientemente del procesador principal ¡WOW! Eso sí, se programa solo en ensamblador. Para unos un sueño, para otros una tortura.
  • Reloj en Tiempo Real (RTC) integrado para proyectos que requieren mantener la fecha y hora.
  • ¡Superbajo consumo! Además tiene un conector para baterías LiPo de 3,6V para proyectos completamente sin cables. Con cargador de batería integrado conectando la Feather a un puerto USB o con un cargador de móvil.
  • La calidad de fabricación es excelente, fabricada en Estados Unidos por Adafruit. Nada que ver con otras placas de desarrollo basadas en el ESP32, y solo hace falta verla para darse cuenta.

Además podemos programarla en Arduino IDE (Ir al tutorial), como si de cualquier Arduino se tratase, o con su SDK nativo basado en FreeRTOS para aplicaciones punteras que requieran un RTOS.

Y, por último, avanzados periféricos además de los clásicos a los que estamos acostumbrados:

  • 3 x UARTs o Puertos serie (aunque solo dos están configurados por defecto en Arduino IDE, y uno se utiliza para subir los sketches y depurar).
  • SPI, I²C, I²S para conectar montones de sensores y dispositivos.
  • ADCs de 12 bits de resolución o, lo que es lo mismo, ¡4096 valores!
  • Conversores de digital a analógico reales (DAC).
  • PWM en ¡todos! los pines GPIO.

En Arduino IDE funciona como cualquier otro Arduino, y puedes aprovechar su potente procesador, flash, SRAM y periféricos como el puerto serie, el SPI o el I²C. No obstante, algunas funciones más avanzadas pueden no tener soporte directo en Arduino IDE.

Pinouts

Una de las grandes características del ESP32 es que tiene muchos más pines GPIO que el ESP8266. Se acabaron los malabares para maximizar el uso de tus pines. Hay un par de cosas a tener en cuenta, así que te recomendamos que estudies su pinout cuidadosamente.

Pines de alimentación

  • GND – Tierra común para todos los pines de alimentación y lógica.
  • BAT – Este es el polo positivo del conector JST para la batería LiPo opcional.
  • USB – Es el polo positivo del conector USB.
  • EN – Es el pin ENABLE del regulador integrado de 3,3V. Tiene un pull-up, y solo tienes que conectarlo a GND para desactivarlo.
  • 3V – Es la salida del regulador de 3,3V. Este regulador puede entregar hasta 500mA de pico, pero la mitad se las lleva el ESP32, que consume bastante cuando está activo. Si necesitas alimentar dispositivos externos como LEDs, motores, etc., usa el pin USB o BAT y un regulador adicional externo.

Pines de lógica

Son los pines de entrada/salida de propósito general del microcontrolador. Todos son de nivel 3,3V. Los pines GPIO NO son compatibles con 5V.

Pines serie

RX y TX son los pines para el puerto serie adicional (Serial1), y no están conectados al conversor USB/Serie. Puedes utilizarlo para conectar dispositivos serie como el GPS, sensor de huellas dactilares, etc., sin afectar a la programación.

El pin TX es la salida desde el ESP32. El pin RX es la entrada al ESP32. Ambos utilizan 3,3V de nivel lógico.

Pines I²C y SPI

Puedes utilizar el ESP32 para controlar dispositivos I²C y SPI como sensores, salidas, pantallas, etc. Cuando utilizas Arduino UNO, las librerías Wire y SPI funcionan como con cualquier otra placa Arduino.

Los pines I²C no tienen resistencias de pull-up. Tenlo en cuenta si vas a usar un dispositivo de este tipo.

Pines GPIO y Analógicos

Hay muchísimos pines GPIO y analógicos disponibles para conectar LEDs, botones, interruptores, sensores, etc. La lista de los pines disponibles es:

Fila de abajo:

  • A0 – Entrada analógica A0 y también salida analógica del DAC2. Puede ser también utilizado como GPIO #26. Utiliza el ADC #2.
  • A1 – Entrada analógica A1 y también salida analógica del DAC1. Puede ser también utilizado como GPIO #25. Utiliza el ADC #2.
  • A2 – Entrada analógica A2 y también entrada digital #34. Este pin no puede configurarse como salida digital. Utiliza el ADC #1.
  • A3 – Entrada analógica A3 y también entrada digital #39. Este pin no puede configurarse como salida digital. Utiliza el ADC #1
  • A4 – Entrada analógica A4 y también entrada digital #36. Este pin no puede configurarse como salida digital. Utiliza el ADC #1.
  • A5 – Entrada analógica A5 y también GPIO #4. Utiliza el ADC #2.
  • 21 – Pin de entrada/salida de propósito general #21.

FIla de arriba:

  • 13 – GPIO #13 y también entrada analógica A12 en el ADC #1. También está conectado al LED rojo junto al conector USB.
  • 12 – GPIO #12 y también entrada analógica A11 en el ADC #2. Este pin tiene un pull-down necesario para el arranque, por lo que recomendamos utilizarlo solo como salida digital para no afectar al inicio del programa.
  • 27 – GPIO #27 y también entrada analógica A10 en el ADC #2.
  • 33 – GPIO #33 y también entrada analógica A9 en el ADC #1. Puede también utilizarse para conectar un cristal de 32kHz.
  • 15 – GPIO #15 y también entrada analógica A8 en el ADC #2.
  • 32 – GPIO #32 y también entrada analógica A7 en el ADC #1. Puede también utilizarse para conectar un cristal de 32kHz.
  • 14 – GPIO #14 y también entrada analógica A6 en el ADC #2.

También hay una entrada analógica extra:

  • A13 – GPIO #35 y también entrada analógica A13, que está conectado internamente al divisor de tensión del pin BAT.

Por el funcionamiento del chip, solo el ADC #1 está disponible para lecturas analógicas si se utiliza el WiFi.

Alimentación

Baterías + USB

Feather Huzzah32 ESP32 es fácil de alimentar tanto cuando está conectada al ordenador como con baterías. Hay dos formas de alimentar una Feather. Puedes conectar un cable MicroUSB (con tu ordenador o un cargador de móvil) y la Feather regula el voltaje de 5V del USB a los 3,3V que necesita para funcionar. También puedes conectar una batería de litio de 3,7V al conector JST. Así puedes alimentar la Feather con baterías recargables. Cuando la Feather se conecta a un USB, automáticamente carga la batería LiPo a un ritmo de 200mA. Esto ocurre en caliente, por lo que siempre puedes tener la batería conectada como alimentación de respaldo si el USB falla.

El polo negativo del conector para baterías es el que está más cerca del conector MicroUSB. Es decir, cuando vemos la Feather como en la imagen, el polo positivo del conector JST está a la derecha, y el negativo a la izquierda. Conectar incorrectamente la batería puede destruir tu Feather.

La foto anterior muestra el conector MicroUSB a la izquierda, el conector JST para la batería a su lado (arriba a la izquierda) y el regulador de 3,3V justo a su derecha. También puede verse el circuito de cambio de alimentación justo debajo del conector JST y el circuito de carga de la batería debajo del regulador.

También hay un LED etiquetado CHG junto al conector MicroUSB, que se enciende cuando la batería se está cargando. Este LED también puede parpadear si la batería no está conectada.

Fuentes de alimentación

Tienes muchas opciones para alimentar tu Feather. Tienes el pin BAT, que está conectado al pin positivo del conector JST para la batería. También tienes el pin USB, que es el 5V del puerto USB cuando está conectado. También hay un pin de 3V que está conectado a la salida del regulador. Esta Feather utiliza un regulador LDO de 500mA. Cuando conectes accesorios, reserva siempre al menos 250mA para el módulo WROOM32. Si bien el regulador entrega hasta 500mA, no puedes hacerlo continuamente porque sobrecalentaría el regulador. Este regulador se usa para alimentar el ESP32, que consume unos 200mA continuamente. La buena noticia es que el ESP32 puede ponerse a dormir y en bajo consumo con mucha facilidad.

Midiendo la batería

Si estás usando tu Feather con baterías, probablemente quieras saber a qué nivel se encuentra. Así puedes determinar cuando la batería necesita recarga. Las baterías de litio tienen un máximo de 4,2V y se mueven alrededor de 3,7V durante la mayor parte de su vida, hasta que empieza a bajar su voltaje hasta 3,2V aproximadamente, cuando el circuito de protección salta. Midiendo el voltaje de la batería puedes determinar cuándo te estás acercando a ese mínimo.

Como el ESP32 tiene muchos pines ADC, esta Feather “sacrifica” uno para monitorizar el voltaje de la batería. Puedes leer la mitad del voltaje de la batería en el pin A13. El voltaje se divide por 2 para la lectura, así que no olvides multiplicar por 2 el voltaje obtenido.

Pin ENABLE

Si quieres apagar el regulador de 3,3V, puedes hacerlo con el pin EN. Conecta este pin a GND y el regulador queda desactivado. Los pines BAT y USB seguirán teniendo tensión.

Recuerda

Algunos pines del ESP32 son especiales:

  • A2 / I34 y A3 / I39 son pines de entrada únicamente. Puedes usarlo como entrada analógica, así que recomendamos dejarlos para ese fin.
  • IO12 tiene una resistencia de pull-down necesaria para el arranque. Te recomendamos no usarlo o, si te hace falta, utilizarlo solo como salida para que nada interfiera con el pull-down durante el inicio de la placa.
  • A13 / I35 está conectado al divisor de tensión de la batería para medir su voltaje y no es accesible mediante los cabezales de pines. El voltaje leído aquí está dividido por 2, así que recuerda multiplicarlo por 2 para obtener el voltaje real de la batería.

El LED CHG puede parpadear cuando la Feather está alimentada por USB y no hay batería conectada. Es normal y no quiere decir nada. Cuando se conecta una batería el circuito de carga se estabiliza y el LED deja de parpadear.

Solo puedes utilizar entradas analógicas del ADC #1 si vas a usar el WiFi, ya que el ESP32 utiliza el ADC #2 para procesar la señal de radio del WiFi.

Enlaces útiles

Hoja de datos del ESP32 WROOM32

Manual técnico del ESP32

esp32.com para estar al día de todo sobre el ESP32

Las fuentes del PCB en Eagle

Componente de Fritzing en la librería de Adafruit

Deja un comentario