En estos talleres se cubrirán los aspectos relacionados al uso de las interfaces del microcontrolador ESP32 v4 y su uso mediante el lenguaje MicroPython. En particular, se describe los aspectos relacionados al area de trabajo (protoboard y sus conexiones), seguidamente se realizan dos talleres usando LEDs, el primero es el encendido básico de un LED y el segundo es la simulación de un semáforo de transito usando LEDs. Finalmente se plantea el desarrollo de una actividad usando un pulsador.
El taller a realizar usa los siguientes dispositivos y materiales:
Como se ha indicado en clases el protoboard será nuestro espacio de conexión por lo que se recomienda que todo los dispositivos reposen en la misma. Además, es importante tener en cuenta el diagrama técnico o de puertos de la placa a usar. En la figura siguiente se muestra el diagrama de la placa ESP32 v4
El microcontrolador que se va a usar para nuestras pruebas tiene una dimensión un poco mayor a las placas tradicionales por lo que al conectar al protoboard conectaremos todos los pines de la fila "a" y los pines de la fila "i". En consecuencia, esto nos quedaría solo espacio para trabajar con todos los pines disponibles en la fila "j". En la figura siguiente se muestra lo indicado:
Es decir que si observamos la figura anterior y el esquema PINOUT sólo se tendrá disponibles los siguientes pines ver figura:
Como se observa de este lado tendríamos alimientación 3.3v y de 5v . También, se tiene los GPIO que se muestran en la figura anterior y la conexión a tierra. Cabe indicar qué, en estos talleres se usará la alimentación de voltaje de 3.3v.
Finalmente, se procede a realizar las conexiones de alimentación y tierra del microcontrolador al protoboard. En la figura siguiente se observa la alimentación del pin 6 (protoboard) GND y del pin 19 (protoboard) que corresponde a 3.3v. Adicionalmente, se observa los cables de conexión para la parte inferior del protoboard. Esto permite tener disponibles salidas positivas y negativas en sus extremos.
A continuación, se experimentará con la puesta en marcha de un LED que esté parpadeando cada cierto segundo. Al hacerlo, se aprenderá a controlar el estado de un GPIO en el ESP32.
Este ejemplo contiene un LED conectado en serie y una resistencia de 200 ohmios. Puede utilizar cualquier valor de resistencia entre 200 a 500 ohmios, aunque sin resistencia el LED se puede iluminar pero no es lo recomendado .
Conecte el ánodo del LED (lado más largo) a uno de los GPIO disponibles en el ESP32 y el cátodo directamente a la resistencia. La resistencia directamente a tierra. El esquema de conexión se observa a continuación:
Se ha conectado el LED a GPIO32, aunque se podría haber conectado cualquiera de los otros pines. Existen excepciones ya descritas en clases. Especificamente, en esta versión del microcontrolador los GPIO 34, 35, 36, 39 solo se pueden usar como entradas. Por lo tanto, no podemos utilizar ninguno de ellos para activar el LED. Sin embargo, se pueden usar para otras cosas.
En la figura siguiente se muestra el esquema de conexiones propuesto, más el cable que conecta al LED. Se observa el cable de color naranja que sale desde el GPIO32 (PIN 13) al ánodo del LED.
Abra el IDE de desarrollo Thonny y, una vez adentro conectese al puerto respectivo. Si tiene alguna duda revise el taller de instalación de Thonny. Copie el código que se muestra a continuación y proceda a grabarlo dentro del computador. Para este propósito se le sugiere que cree una carpeta el autor le sugiere un nombre como "MicroExample" y luego grabe el archivo como ejemplo-led.py
.
En la imagen siguiente se muestra la estructura del directorio y el programa una vez que ha sido almacenado en el computador.
En el código:
El objeto Pin se utiliza para controlar los pines de E/S (también conocido como GPIO - entrada/salida de propósito general). Los objetos Pin se asocian comúnmente con un Pin físico que puede conducir un voltaje de salida y voltajes de entrada (lectura). La clase Pin tiene métodos para establecer el modo del Pin (IN, OUT, etc.) y métodos para obtener y establecer el nivel lógico digital. Para el control analógico de un pin, consulte la clase ADC.
Un objeto Pin se construye utilizando un identificador que especifica de forma inequívoca un determinado pin de E/S. Las formas permitidas del identificador y el Pin físico al que se asigna el identificador son específicas del puerto. Las posibilidades para el identificador son un número entero, una cadena o una tupla con puerto y número de Pin.
Más detalles de los métodos del objeto Pin se puede consultar en Guía oficial de MicroPython.
Una vez, grabado el programa ejecútelo y compruebe su comportamiento. Además, verífique que los estados del led enciende y se apaga cada cierto tiempo de espera. En particular, el código espera 2 segundos para cambiar de estado. También, en sus evaluaciones, presione los botones que tiene el microcontrolador. Verifique su comportamiento.
MicroPython en su sistema de ficheros presenta dos archivos que son importantes para la ejecución de los códigos en el microcontrolador estos son: boot.py y main.py
En ese sentido Thonny tiene una caraterísticas que permite observar los archivos que se encuentran en el sistema de archivos del dispositivo (microcontrolador). En consencuencia, se puede escribir directamente al microcontrolador.
Para este propósito:
Lo que se está indicando es que una vez concluya el archivo de inicio (boot) ejecute el programa principal.
main.py
y guardelo en el dispositivo.main.py
y sobre escriba el código con el contenido de ejemplo-led.py
. Guarde y presione el botón reset del microcontrolador.También, pruebe desconectando y conectando el USB del microcontrolador. Observe lo ocurrido.
En está práctica se propone afianzar los conocimientos acerca de las interfaces GPIOs de nuestro controlador. Para este propósito se facilita un código para que posteriormente el estudiante realice las respectivas conexiones y que el semáforo de tránsito entre en funcinamiento.
El módulo LED RGB está hecho de un enchufe a todo color respectivamente (Red, Gree, Blue). El voltaje de entrada PWM de tres pines se puede ajustar en la fuerza de tres colores primarios como son (rojo/azul/verde) para lograr el efecto de mezcla a otros colores. En la figura siguiente se muestra el LED a usar para lograr la práctica.
En particular, se ha propuesto un semáforo con una singularidad en donde se ha reemplazado el color amarillo por el color azul. Esto se debe a que el dispositivo no provee de dicho color. A continuación algunas consideraciones del semáforo de tránsito propuesto:
Copie el siguiente código y cree un nuevo programa, posteriormente guardelo con el nombre ejemplo-semaforo.py
.