Primer proyecto

Clase 12 de 30 • Curso de IoT: Programación de Microcontroladores ESP32

Clase anteriorSiguiente clase
    Juan David Jiménez López

    Juan David Jiménez López

    student•
    hace un mes

    Que hola mundo tan complicado 😟

    Jess Jay

    Jess Jay

    student•
    hace 2 meses
    Luis Alvarez

    Luis Alvarez

    student•
    hace 3 meses

    RESUMEN

    Comandos disponibles:

    all o build; nos ayuda a crear un archivo ELF basicamente para compilar el proyecto, y este archivo es cargado al dispositivo ESP32.

    ELF (Executable and Linkable Format) ejecutar programas en sistemas operativos como Linux y UNIX. Este formato permite que los sistemas carguen y ejecuten programas de manera eficiente y es ampliamente usado para archivos ejecutables, bibliotecas compartidas y otras aplicaciones. Contiene información sobre cómo se debe ejecutar el programa, incluyendo su estructura y dependencias.

    flash; permite flsherar el proyecto sobre la memoria del chip, basicamente cargar el firmware en la memoria flash del dispositivo. Este proceso es esencial para que el microcontrolador ejecute el código que has desarrollado.

    Generalmente, el comando se ejecuta a través de herramientas como esptool.py, que permite especificar la dirección de memoria y el archivo binario que deseas cargar.

    clean; limpieza del codigo anterior, o fullclean.

    set-target; establecer que modelo de chip se esta utilizando.

    <u>idf.py menuconfig</u>

    Este necesita ser abierto desde la ruta del proyecto blink

    Se ingreso para cambiar la configuracion del dispositivo.

    Se regresa a la terminal y se usa idf.py build para cargar el archivo y despues se averigua el puerto del dispositivo en task devices, los drivers que se instalan tambien son necesarios para que esta actividad pueda llevarse acabo detectando los puertos.

    Andrés González

    Andrés González

    student•
    hace 8 meses

    Un puerto COM (Communication Port) es un tipo de interfaz en computadoras que permite la comunicación entre el ordenador y dispositivos externos, como módems y microcontroladores. En el contexto de proyectos de IoT con ESP32, los puertos COM se utilizan para programar y depurar dispositivos conectados, permitiendo la transferencia de datos y comandos. En proyectos de microcontroladores, es esencial saber cómo gestionar estos puertos para asegurar una correcta comunicación y funcionamiento del dispositivo.

    Andrés González

    Andrés González

    student•
    hace 8 meses

    Hacer flash sobre la memoria del chip se refiere al proceso de escribir datos en una memoria flash, que es un tipo de memoria no volátil utilizada en microcontroladores como el ESP32. Este proceso permite almacenar firmware o datos de configuración, asegurando que la información persista incluso al apagar el dispositivo. En el contexto de proyectos de IoT, es crucial para implementar las funcionalidades deseadas en el microcontrolador. Utilizar herramientas como ESP-IDF facilita este proceso, permitiendo una programación más eficiente.

    Andrés González

    Andrés González

    student•
    hace 8 meses

    Los binarios creados por el comando idf.py build en el contexto del ESP-IDF no son solo archivos .elf. Este comando genera varios tipos de archivos, incluyendo:

    1. .elf: Archivo ejecutable que contiene el código para la carga en el microcontrolador.
    2. .bin: Archivos de imagen de memoria que se utilizan para flashear el dispositivo.
    3. .map: Archivo que muestra la asignación de memoria, útil para depuración.

    Por lo tanto, el .elf es parte de los binarios generados, pero no el único tipo.

    Gabriel Obregón

    Gabriel Obregón

    student•
    hace 8 meses

    Introducción a la Terminal de Comandos en ESP-IDF

    En la clase anterior, repasamos la estructura de un proyecto en ESP-IDF y sus componentes. Ahora, nos enfocaremos en el uso de la terminal de comandos para manejar nuestro proyecto.

    Exploración de Comandos en ESP-IDF

    En la sesión anterior, ejecutamos un comando para listar todas las opciones disponibles en ESP-IDF. Ahora, vamos a aprender a utilizarlas.

    Comandos Básicos en ESP-IDF

    Desde la terminal, podemos ejecutar varios comandos para gestionar nuestro proyecto:

    • Ver versión de ESP-IDF: Nos permite conocer la versión instalada.
    • Seleccionar carpeta de ejecución: Nos ayuda a indicar en qué directorio deben ejecutarse los comandos.

    Algunos de los comandos más importantes son:

    • idf.py all o idf.py build: Compila el proyecto y genera un archivo binario final.
    • idf.py flash: Sube y "flashea" el binario en la memoria del chip.
    • idf.py clean: Elimina archivos de compilaciones previas, útil para corregir errores.
    • idf.py fullclean: Borra todos los archivos generados desde la creación del proyecto.
    • idf.py set-target: Define manualmente la variante de chip ESP32 a utilizar (ESP32, C2, C3, etc.).
    • idf.py menuconfig: Abre un menú de configuración para personalizar el proyecto.

    Uso de menuconfig

    El comando idf.py menuconfig nos permite configurar diversas opciones del ESP32 mediante un menú interactivo, facilitando el proceso sin necesidad de editar archivos de configuración manualmente. Algunas configuraciones incluyen:

    • SDK Tool Configuration: Define el entorno de desarrollo y compilación.
    • Bootloader Config: Configura el código de arranque.
    • Security Features: Habilita opciones de seguridad, como cifrado del microchip.
    • Serial Flasher: Configura el puerto USB para subir nuevos programas.
    • Configuración de particiones: Permite modificar la memoria del chip, similar a un disco duro.

    Un ejemplo común de configuración es el ajuste del GPIO para un LED intermitente:

    1. Definir el número de pin en el que se conectará el LED (por ejemplo, el 4 en ESP32-CAM).
    2. Establecer el periodo de parpadeo (por ejemplo, 1000 ms para 1 segundo).
    3. Guardar los cambios con "S" y salir con "Q".

    Compilación y Carga del Programa

    Una vez configurado el proyecto, el siguiente paso es compilarlo y subirlo a la placa de desarrollo.

    1. Compilar el código: Ejecutar idf.py all o idf.py build.

      • La primera compilación es más lenta, pero las siguientes tardan menos.
      • Si se ejecuta idf.py clean o idf.py fullclean, la compilación volverá a tardar más.
    2. Subir el binario a la placa:

      • Asegurar que la placa esté conectada por USB.
      • Identificar el puerto COM asignado.
      • Ejecutar idf.py -p COM3 flash (reemplazando "COM3" por el puerto correspondiente).

    Una vez cargado, el LED de la ESP32-CAM comenzará a parpadear según lo configurado.

    Consideraciones Finales

    • Diferentes placas pueden tener distintos pines asignados al LED. Revisar la hoja de datos de la ESP32 que se esté utilizando.
    • Si la tarjeta de desarrollo no tiene un LED integrado, se puede conectar uno en una protoboard.
    • Menuconfig es una herramienta útil para evitar la edición manual de archivos de configuración.
    • Tras cargar el programa, la ESP32 puede funcionar sin estar conectada a la computadora, usando una batería externa.
    Deiby Alejandro Triana Archila

    Deiby Alejandro Triana Archila

    student•
    hace 8 meses

    excelente curso...

    Neftali Larios

    Neftali Larios

    student•
    hace un año

    Todo me funciono bien, excelente curso.

    Diego Sandoval Chavarría

    Diego Sandoval Chavarría

    student•
    hace un año

    Para los que tengan la ESP32 WROOM 32, que es algo complicado encontrar una imagen de salidas de los pines, el led esta en el pin 2.

    Julian Francisco Pinchao Ortiz

    Julian Francisco Pinchao Ortiz

    student•
    hace 2 años

    En Linux para ver en que puerto de conexión esta el microcontrolador utilizan el siguiente comando:

    ls /dev/tty*

    Por lo general sabe usar /dev/ttyUSB0

    Luego, para evitar errores al subir el programa usamos:

    sudo adduser <username> dialout

    sudo chmod a+rw /dev/ttyUSB0

    Por ultimo lo copilamos y mandamos el programa con :

    idf.py -p /dev/ttyUSB0 flash

      Joaquín Alejandro Domínguez Lozano

      Joaquín Alejandro Domínguez Lozano

      student•
      hace 2 años

      Me sirvió el de darle permisos de escrtura, gracias

      Para saber si tienen o no los drivers del ESP32 CAM, dónde los drivers son: CH340

      Usa el comando 'lsusb' para listar todos los dispositivos USB conectados. Busca una entrada que mencione "CH340" o algo similar.
    Edward Camilo Quintero Caicedo

    Edward Camilo Quintero Caicedo

    student•
    hace 2 años

    Luego de cargar el programa hay que reiniciar la placa?

    Lo digo porque en consola todo aparece que el programa se cargo se forma exitosa, sin embargo no veo el resultado.

    Nota: En mi caso cargue el programa con un adaptador USB a TTL.

    roger allpillima

    roger allpillima

    student•
    hace 2 años

    hola me pueden ayudar, me sale este error al momento de subirlo a la placa estoy usando ubuntu 23.10

    Alejandro E. Rendon

    Alejandro E. Rendon

    student•
    hace 2 años

    Mi computador no encontraba el puerto en la lista de dispositivos. Revisé y reinstalé drivers pero seguía igual.

    Solución: Cambiar de cable USB. Aunque el otro sirve, podría ser el tamaño (el que sirve es más corto) o la calidad del cable.

    Joaquín Alejandro Domínguez Lozano

    Joaquín Alejandro Domínguez Lozano

    student•
    hace 2 años

    A mi me da este error cuando intento flashearlo, he intentado varias cosas pero hasta ahora nada me ha funcionado. Cuando lo solucione les aviso (tambien tengo una ESP32 CAM c´:

    Captura desde 2023-06-16 00-23-43.png
      Joaquín Alejandro Domínguez Lozano

      Joaquín Alejandro Domínguez Lozano

      student•
      hace 2 años

      Actualización: no puedo :c

      Joaquín Alejandro Domínguez Lozano

      Joaquín Alejandro Domínguez Lozano

      student•
      hace 2 años

      he intentado con las versiones 4.4.4 y 5..0.2, y nada :c

    Pablo Torres Pérez

    Pablo Torres Pérez

    student•
    hace 2 años

    El led integrado en la placa se llama inbuilt LED. Quizá les puede facilitar la búsqueda para su placa de desarrollo. En mi caso el inbuilt LED lo trae en el GPIO 2.

    Hernán Alveiro Erazo

    Hernán Alveiro Erazo

    student•
    hace 3 años

    Si están en linux ubuntu y les aparece el error No serial ports found, es porque el puerto no tiene permiso de escritura, le pueden dar permisos con el comando sudo chmod a+rw /dev/ttyUSB0 o el número del puerto en donde tengan conectada la tarjeta y listo!

    Pablo Garrido Hernandez

    Pablo Garrido Hernandez

    student•
    hace 3 años

    Solucion IDE Version 5

    No aparece puerto COM y idf. py flash e idf. py monitor no funcionaron

    Siempre es emocionante encender un led jaja tuve un problema ocupando la versión 5 del ID y los comandos comandos idf py flash e idf py monitor no funcionaro a pesar de solo tener la placa conectada a mi laptop. Y en administrador de dipositivos no me aparecia ningun puerto COM:

    Captura de pantalla 2023-04-01 133539.png

    Tocó instalar los drivers para CP210x en el caso de mi placa de la pagina silabs ya que el CP2102 es el chip convertidor USB a UART que se encuentra en la placa ESP32.:

    Finalmente desde Administrador de dispositivos en la parte de actualizar controlador y posteriormente buscar controlador alojado en mi equipo solo busqué donde bajé el controlador que fue un .zip que tuve que descomprimir, seleccioné la ruta y al recargar la ventana de administracion de dispositivos ahora me indicaba que mi placa estaba en el COM6, continué con la práctica como indicaba la profe y listo!

    bd146de2-bc77-4251-9db8-52a9fa39652b.jpg
      Jhon Daniel Olmedo Paco

      Jhon Daniel Olmedo Paco

      student•
      hace 2 años

      los drivers que el de arriva se refiere es esto -> https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads

    Victor Armando Avendaño Osorio

    Victor Armando Avendaño Osorio

    student•
    hace 3 años

    En mis tarjetas esp es necesario mantener el boton Boot mientras se flashea para que funcione el flash. Estoy en ubuntu wsl

    Diana Martinez

    Diana Martinez

    student•
    hace 3 años

    Hola, una bonita actualización: Tal parece que a partir de la versión 5 del IDF, ya no es necesario indicar el puerto, podemos solo usar los comandos idf.py flash e idf.py monitor, y el sistema determinará automáticamente el puerto. Claro, si tenemos dos o más dispositivos probablemente falle, o tal vez tome el primero que encuentre.

      Mariana Valencia Gallego

      Mariana Valencia Gallego

      student•
      hace 3 años

      Ahí aproveché esto :D funciona en mac a día de hoy

      Paulo Muñoz Martinez

      Paulo Muñoz Martinez

      student•
      hace 2 años

      Se Nota la procupacion en cada clase, deja un comentario <3