Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Llevar información a través de Hardware es mucho más rápido que por software, y
eso nos permite el DMA.
—------------------------------------------------------------------------------------------------------------------------
CISC RISC
—------------------------------------------------------------------------------------------------------------------------
El ESP32 cuenta con dos núcleos solamente. En comparación con un celular, un celular
actual (2022) cuenta con ocho núcleos
El procesador es de tamaño de 5x5 mm.
El cristal, la memoria externa toca ponerselas al integrado para que pueda funcionar.
Recomendado comprar los módulos WROOM para iniciar desde ahí en aplicaciones
industriales.
WROVER -> Orientado para el manejo de cámaras, y más RAM. Pero no se puede
programar porque no tiene USB a TTL. Si se requiere programar, toca comprar el conversor.
Pueden haber aplicaciones que duran de 2 a 5 años sólo con la batería, debido al manejo
de energía que tiene. Puede consumir, si se configura bien 5uA para esa aplicación
particular.
Módulo CAN no hay, pero hay uno similar llamado TWAI. Parece que es el mismo pero con
un nombre distinto debido a motivos de patente.
—------------------------------------------------------------------------------------------------------------------------
Tiene dos pulsadores: Uno para programar, otro para resetear el sistema.
https://dl.espressif.com/dl/package_esp32_index.json
Datasheet:
esp32_datasheet_en.pdf (espressif.com)
El ESP32 no tiene reloj interno, es necesario agregar un cristal externo. El ESP32 adquirido
lo tiene. Hay unos que no.
RESET Y CLOCK
Tiene tres niveles de RESET: CPU, núcleo y sistema (encendido, bown out, WDT, deep
sleep…)
La frecuencia de operación por defecto del ESP32 es de 240 MHz, pero es posible
modificarla. Para realizar la modificación es necesario agregar en Arduino la siguiente linea:
#include “soc/rtc.h”
Y en setup:
rtc… ¿?
El void setup() sólo se ejecuta una vez. Este espacio es para dictar las configuraciones al
ESP32, como qué puertos se usarán, etc.
El puerto de VDD 3V3 es un pin de SALIDA el cual permite suministrar 3.3V. El regulador
que tiene incluido convierte los 5V de alimentación a los 3.3 V de salida.
En los PIC para encender un led, programando en bajo nivel se iba a 50 bytes, acá nos
salió muchísimo más.
De los 4 MB de memoria que se supone que andan disponibles, el Arduino lo mira como un
SSD y lo particiona. 1 MB es para los códigos del usuario, 1 MB para programación OTA, 1
MB o más se comporta para guardar info.
Cuando se use por Bluetooth toca modificar esa partición. En Herramientas (Tools) se
puede ver la partición.
Toca mantener presionado el boot para cuando se vaya a cargar el programa. Cuando
Arduino avise que se va a cargar el programa, se puede soltar.
Wokwi es un simulador para el ESP32. El ESP32 se puede programar tanto por C como
por uPython (Micro Python). Al usar Wokwi no se le puede modificar la frecuencia de
operación.
Clase 25-01-2022
Escoger dos temas para exponer. La exposición será para dentro de dos semanas, creo.
(Preguntar acerca si se toman todas las sub-temáticas que estaban ahí, o el enfoque que
uno quiera)
—-----------------------------------------------------------------------------------------------------------------------
Interrupciones en el ESP32:
Se resalta que la función de interrupción no se debe colocar código largo ni bloqueante
Toca especificar qué pin va a interrumpir la operación secuencia del ESP32, y con qué
flanco.
Cuando se presiona el botón de pullup, pues vamos a leer un bajo, pero antes de ver un
cero sólido habrán rebotes.
La razón por la cual se dan saltos tan grandes de veces presionado el botón en el código de
interrupciones, es porque el flanco de paso de alto a bajo no se da suavemente, sino que se
dan rebotes. Se puede eliminar por software o por hardware.
Volviendo al RTOS.
tarea1 -> Acción que queremos ejecutar
Clase 01/02/2022
Archivo prueba de velocidad para probar velocidad de nucleos de sistema para diversos
controladores (Prueba_Velocidad_DosNucleos)
Al trabajar con SempahoreHandle, el primero que tome el ‘testigo’ es el que hara la accion,
hasta que no se termine de ejecutar el que tome el testigo, no se ejecuta la otra
Touch sensors
El ESP32 también cuenta con un módulo de conteo aparte del de temporización. Para los
que quieran ir más allá recomienda revisar el manual técnico del ESP32. El contador de
pulsos se encuentra en el capítulo 17. También recomienda revisar el Capítulo 16, por
ejemplo, esto permite controlar de manera robusta un puente H. Poco comentado por la
literatura, pero altamente interesante. En el API Reference está las funciones que permiten
controlar esto: MCPWM para lo del capítulo 16.
Para la próxima clase conseguir, en lo posible, una pantalla LCD I2C o una pantalla
OLED I2C/SPI, modulo receptor infrarrojo, control remoto infrarrojo Arduino (Este
último no sé si sea opcional)
Esto fue una mención algo por encima, al parecer.
Cualquier GPIO se puede utilizar como PWM. Hay 16 canales de PWM, 8 de alta velocidad
y 8 de baja velocidad.
La frecuencia del pwm está relacionado con el Duty Cycle D: a mayor frecuencia, menor
resolución.
Tabla de relación entre frecuencia y resolución:
El ESP32 tiene sensor de Efecto Hall, por tanto, es posible aprovechar campos magnéticos.
Los DAC no se pueden reubicar, creo.
DMA -> Acceso directo a memoria.
Clase 10 - 02 - 2022
● Normalmente los pines 8 y 7 no se utilizan.
● El CTS y RTS resultan muy obsoletos para las altas velocidades de ahora.
El nombre se lo damos nosotros. TxD anda por defecto al PIN17, y RxD al 16. Para cambiar
esa configuración desde alto nivel:
En el loop:
Si llegaramos a necesitar más puertos seriales se pueden emular por software. Aunque eso
quitará recursos, pero con el ESP32 no resultará un problema.
Clase 24-02–2022
Clase 03-01-2022
El ESP32 permite crear un host, y una página. Es un punto de acceso suave (Access
point) porque no nos podemos conectar a ninguna página: sólo se puede conectar a lo que
tiene el ESP32 guardado. Ejemplo: WiFiAccessPort_JGB.
Espiff permite crear una red de ESP32 con un aplicativo llamado ESPAP (Wifi) o ESPNOW
(Bluetooth).
Duda de Juan Andres: Al final en el ESP32 hay 720 datos registrados. Para calcular
armónicos no necesitamos conocer la frecuencia, solamente que hay dos períodos de la
señal.
Para poder almacenar datos en el ESP32 toca instalar algo adicional como el ESPIFF o el
LTIFFS. Todo se sube a su memoria flash.
Lo ideal es que no se vean nuestras credenciales, por tanto, se hace un archivo header
aparte donde se define esto.
Ahí se define la red y la clave de la misma.
Hay 2^16 direcciones que se pueden definir para comunicación. Hay direcciones que ya
andan predefinidas.
UDP_Comunicacion_JD.ino
En este programa que nos comparte se quería crear con una ip estática, pero eso no se va
a usar. Se generan unas variables para generar unas muestras de una función seno o
números. Se va a obtener un vector de datos en ambos.
Ninguno de los dos de udp nos sirvió, triste.
Los audífonos inalámbricos que se conectan a bluetooth son estéreo, dos canales y son
48kHz cada uno. El bluetooth es una comunicación muy rápida. Con la función micros()
ahí medimos el tiempo.
Bluetooth BLE
Séptima Evaluación: Dudas
1. ¿Cómo hago para muestrear una señal bien? R// Asumir que ya tenemos las
muestras.
2. ¿El dispositivo que debe recibir debe ser otro ESP32?
3. ¿Qué recomienda para calcular el valor eficaz y el valor medio? ¿Sirve el algoritmo
que presenté la vez pasada?
4. ¿En dos períodos deben estar las 720 muestras o en cada período 720 muestras?
5. ¿El lector de código de barras qué dispositivo puede ser? R// El celular
6. ¿Cómo hacer para enviar solamente 360 o 720 muestras y medir el tiempo? R//
Primero miremos con 720 y luego miramos.
¿Podemos asumir que ya tenemos la señal muestreada? Sí. ¿Cómo llegó la información?
No importa, las muestras andan ahí ya.
Octava evaluación:
Vamos a guardar en una base de datos el tipo de elemento identificado con la certeza (80%
diodo, por ejemplo) y la fecha en la que se guardó. Probablemente usemos una tarjeta
MAIX.
Solamente se tomarán en cuenta elementos de inserción, no de montaje superficial.
Una persona debe estar atenta con la información y mandarla a un servidor web, mientras
que otra persona debe tomar las imágenes.
Toca crear una carpeta con resistencias, diodos, condensadores. Más o menos toca usar 50
fotos por cada vaina.
Inteligencia Artificial: IA
Para imágenes, para cosas más sofisticadas toca cambia de plataforma; la ESP32 en ese
aspecto no resulta ser la más adecuada debido a la memoria.
Todo se construye alrededor de un Perceptrón, que es como una ‘neurona’ que tiene N
entradas. Esas entradas van a pasar a través de unas variables (w - weight)
En ingeniería tratamos de utilizar back propagation para evitar que sean tan aleatorias las
redes.
Entrar a:
https://playground.tensorflow.com