Skip to main content

Practice 1 (VS Code): Initial setups and tests

✅ Práctica 1 (VS Code)

En el siguiente blog se presenta la cuadragésima tercerapráctica del laboratorio de control de temperatura y velocidad de un motor.

Objetivo general:

  • Descargar e instalar Visual Studio Code para programar el TSC-Lab utilizando el ESP-IDF (framework que recomienda su fabricante, Espressif)

Materiales:

  • Visual Studio Code
  • TSC-Lab

Introducción:

A lo largo de todas estas prácticas se ha venido programando el ESP-32 del TSC-Lab en el IDE de Arduino. Sin embargo, esta no es la única forma de programarlo, una de ellas e inclusive la que recomienda su fabricante es utilizando el ESP-IDF, siendo este el framework de desarrollo oficial para los ESP32, ESP32-S y ESP32-C Series SoCs, el lenguaje de programación a utilizar será C (auqnue también se puede usar C++). Para programar el TSC-Lab con el ESP-IDF es necesario utilizar un IDE y el que se utilizará a lo largo de las demás prácticas es Visual Studio Code (VS Code). 

En la presente práctica se aprenderá a como descargar e instalar VS Code y sus respectivas extensiones para programarlo en C y con el ESP-IDF, así mismo se aprenderá a instalar el framework en el computador y crear proyectos, para ello se creará el primer programa utilizando el ESP-IDF con el famoso "Hola mundo".  

Procedimiento:

  
  1. Ir al sitio oficial de VS Code y descargar su ejecutable dando clic en Download for Windows.  



  2. Al abrir el ejecutable, aparecerá una ventana como se ve en la imagen de abajo y se debe marcar la casilla de Acepto el acuerdo, posteriormente se debe dar clic en Siguiente



  3. Seleccionar la ruta de instalación del programa o dejar la que viene por defecto y dar clic en Siguiente

  4. Dar clic en Siguiente.


  5. Marcar la casilla de Crear un acceso directo en el escritorio, los demás campos dejar como están y luego se debe dar clic en Siguiente


  6. Clic en Instalar


  7. Una vez completada la instalación se debe dar clic en Finalizar para ejecutar VS Code (se debe tener marcada dicha casilla). 


  8. Una vez ejecutado VS Code, aparecerá una pestaña similar a la de la imagen de abajo. Sin embargo, puede darse el caso de que al ser la primera vez que se ejecute el programa pida una configuración de la interfaz (no es la que se ve en la imagen), se la puede hacer o simplemente omitirla dando clic en las "X" de cerrar de cada pestaña. 


  9. Ahora se procederá a instalar las extensiones, para ello se debe dar clic en el ícono que se muestra en la imagen. 


  10. De manera automática aparecerán las extensiones más populares y se debe seleccionar la que se muestra en la imagen. 



  11. Clic en Install.

  12. En el buscador se debe escribir "esp" y seleccionar la extensión que se muestra en la imagen. Seguido de ello se debe dar clic en Install

  13. Ahora, se procederá a instalar el ESP-IDF en el computador, para ello se debe presionar la combinación de teclas: "Ctrl + shift + p" para abrir el Command Palette y se debe escribir esp-idf: configure, con el fin de que el buscador sugiera la herramienta adecuada y seleccionar aquella que se muestra en la imagen.

      
  14. Aparecerá una pestaña como la que se muestra en la imagen y se debe dar clic en EXPRESS.

  15. Como sugerencia, se debe dejar todo tal cual a excepción del último campo (IDF_TOOLS_PATH), que debe estar dentro de la misma carpeta (esp) que estará el esp-idf y a su vez en una carpeta llamada tools, tal cual como se ve en la imagen.

  16. Clic en Install

  17. Se debe esperar a que el ESP-IDF, ESP-IDF Tools y el Python virtual environment se descarguen e instalen en el computador (el tiempo de espera puede variar según la velocidad del internet y características de la máquina).

  18. Una vez finalizado todo lo anterior, ya se tiene todo lo necesario para programar el ESP-32 usando el ESP-IDF. Ahora, para crear un nuevo proyecto se debe abrir el Command Palette, presionando la combinación de teclas "Ctrl shift p" y se debe escribir esp-idf: new, con el fin de que el buscador sugiera la herramienta adecuada y para así seleccionar aquella que se muestra en la imagen (ESP-IDF: New Project). 

  19. Se deben llenar los campos como nombre del proyecto y seleccionar el directorio según la preferencia de cada estudiante. En la opción de escoger la placa ESP-IDF, se sugiere seleccionar Custom board (a menos que se tenga una versión específica de las opciones que dan) y en la tarjeta, ESP32 module y el puerto serial a seleccionar debe ser el que le asignó el computador al ESP32.

  20. Clic en Choose template.

  21. Para crear un proyecto desde cero, se debe dar clic en el menú desplegable  y seleccionar ESP-IDF, luego se debe dar clic en sample_project y finalmente clic en  Create project using template sample_project.



  22. En la parte inferior derecha aparecerá un mensaje preguntando si se desea abrir el proyecto en una nueva ventana, se le debe dar clic en yes y se puede cerrar la ventana anterior.

  23. Al crearse el proyecto aparecerá una ventana como la que se muestra en la imagen, para continuar se debe dar clic en el recuadro que se muestra.

  24. Omitir cualquier tipo de mensaje que aparezca en pantalla dando clic en la "x" para cerrarlos.

  25. Para abrir el archivo .c y empezar a editar el código, se debe dar clic en main y luego en main.c.

  26. Copiar el siguiente código en el main.c  
    
  1. Antes de compilar y cargar el código, hay que asegurarse que esté seleccionado el respectivo puerto COM, para ello hay que dirigirse al ícono que se encuentra en la parte inferior de la ventana y que tiene forma de enchufe, seleccionar el puerto COM correspondiente y confirmar que dicho cambio se lo desea aplicar en el proyecto.  




  2. Se debe también seleccionar el método por el cual se va a flashear la placa, en este caso será por comunicación serial así que se en la parte inferior de la ventana se debe seleccionar la herramienta que tiene ícono en forma de estrella, luego se debe seleccionar UART y finalmente confirmar que los cambios se realizarán en dicho proyecto.





  3. Para compilar el programa o dicho de otra forma, para construir el proyecto se debe dar clic en el ícono que tiene forma de barril. Una vez dado clic aparecerá un mensaje indicando que se está construyendo el proyecto.





  4. El proceso de construcción del proyecto (compilación) tarda bastante tiempo la primera vez que se lo hace, también dependerá mucho de las características del computador aunque por lo general si es tardío. Para ver el avance de construcción del proyecto se debe abrir el terminal, seleccionando el ícono en forma de ventana de comandos y escogiendo la primera opción que aparece en el lado derecho de la pantalla. Una vez finalizada la construcción aparecerá un mensaje indicando que se realizó de manera exitosa.





  5. Una vez construido el proyecto ya se puede subir el código a la placa o dicho de otra manera ya se puede flashear el proyecto. Para ello hay que dirigirse al ícono que tiene forma de rayo y una vez que finalice el proceso aparecerá un mensaje indicando que se realizó de manera exitosa. Sin embargo, en caso de que se presenten problemas en el flasheo, una posible solución será tener presionado el botón BOOT del ESP32 antes de presionar el ícono del rayo hasta que en el terminal se visualice que se está cargando.





  6. Una vez terminado el flasheo, para visualizar lo que se ha subido a la placa se lo puede hacer abriendo el Monitor Device, para ello hay que darle clic al ícono que tiene forma de computadora.
Nota: existe una alternativa de construir y flashear el proyecto con una sola herramienta, con el ícono que tiene forma de llama de fuego. Sin embargo, eso se debería hacer cuando se está seguro que el código está sin ningún tipo de error. Lo más recomendable es ir haciéndolo de manera separada para así notar cualquier error que se presente y corregirlo.


                  

Comments

Popular posts from this blog

Practice 9: Encoder Implementation (RPM)

✅ Práctica 9 Github Repositories ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI En el siguiente blog se presenta la novena práctica y corresponde a la cuarta del laboratorio de control de velocidad. Objetivo general: Visualizar las RPM del motor en base a la PWM asignada. Objetivos específicos: Comparar los resultados de movimiento con diferentes parámetros. Materiales: PCB de Temperature Control Lab (TSC-Lab) Introducción: En la práctica anterior se puso en marcha en motor asignándole un valor PWM, además brindaba la opción de escoger el sentido de gira. Ahora, en el presente laboartorio se implementa un encoder óptico, que mediante el código de programación en el IDE de Arduino, permite saber a cuantas revoluciones por minuto gira el motor. Es importante mencionar que en esta ocasión se hará uso de interrupciones, cualquier pin GPIO del ESP-32 puede ser utilizado con interrupción, en este caso se ha escogido el 27, pin en el cual está conectado el encoder óptico. Procedimiento: S

Practice 22: Wifi connection

✅ Práctica 22 Github Repositories ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI En el siguiente blog se presenta la vigésima segunda práctica del laboratorio de control de temperatura y velocidad de un motor. Objetivo general: Realizar una conexión a una red WiFi utilizando el TSC-Lab Materiales: TSC-Lab Introducción: En las prácticas anteriores se realizararon la adquisición de datos de temperatura y velocidad de un motor, toda esa información fue almacenada de manera local dentro del computador con ayuda del programa CoolTearm. Sin embargo, lo antes realizado es poco práctico. Hoy en día, la mayoría de la información está almacenada en la nube, documentos, fotografías, notas, mensajes, etc. A consecuencia de esto, surgió el Internet de las Cosas (IOT), que básicamente es la interaxión de dispositivos cotidianos con el internet, por lo general la informción es alojada en algún servidor. En la presente práctica de laboratorio conectaremos el TSC-Lab a internet mediante WiFi para p

Practice 31: MQTT connection (mydata-lab)

✅ Práctica 31 Github Repositories ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI En el siguiente blog se presenta la vigésima octava práctica del laboratorio de control de temperatura y velocidad de un motor. Objetivo general: Realizar una conexión MQTT utilizando el TSC-Lab.  Objetivos específicos: Enviar un mensaje al servidor y verificarlo en MQTTLens. Materiales: MQTTLens TSC-Lab Introducción: En las prácticas anteriores se realizararon conexiones a .diferentes plataformas donde se envió la información e inclusive se pudo visualizar los datos. Sin embargo, poseen muchas limitaciones como por ejemplo ThingSpeak que únicamente permite crear cuatro canales y el envío de información lo hace con un delay mínimo de 14 segundos. Ante ello, la mejor alternativa es trabajar con el servidor del TSC-Lab debido a que no tiene limitaciones en cuanto a la creación de proyectos, ni envío de información. Por esta razón, en la presente prácticase darán los primeros pasos para poder conectarse a

Practice 30: NodeRed (Http) + ThingSpeak

✅ Práctica 30 Github Repositories ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI When using this resource, please cite the original publication: Víctor Asanza, Kevin Chica-Orellana, Jonathan Cagua, Douglas Plaza, César Martín, Diego Hernan Peluffo-Ordóñez. (2021). Temperature and Speed Control Lab (TSC-Lab). IEEE Dataport. https://dx.doi.org/10.21227/8cty-6069 En el siguiente blog se presenta la vigésima séptima práctica del laboratorio de control de temperatura y velocidad de un motor. Objetivo general: Enviar los valores sensados de temperatura del TSC-Lab por WiFi a Node-Red y ThingSpeak.  Materiales: Node-Red Thingspeak TSC-Lab Introducción: En la práctica anterior se aprendió a utilizar y familiarizarse con Node-Red, el envío de información se lo hizo por medio de comunicación serial. Sin embargo, no tiene mucho sentido que se esté enviando información a Node-Red por el puerto serial cuando se puede aprovechar el ESP-32 para conectarse a internet por medio de Wi-Fi. Se usará e

Practice 29: NodeRed (Http) + Telegram

✅ Práctica 29 Github Repositories ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI En el siguiente blog se presenta la vigésima sextapráctica del laboratorio de control de temperatura y velocidad de un motor. Objetivo general: Recibir los valores sensados de temperatura del TSC-Lab a Telegram.  Materiales: Node-Red TSC-Lab Introducción: En la práctica anterior se aprendió a información del TSC-Lab a Node-Red mediante Wi-Fi con protocolo HTTP. Ahora a mas de enviar dicha información se pretende recibirla y monitoreada desde Telegram, la cual es una aplicación enfocada en la mensajería instantánea, el envío de varios archivos y la comunicación en masa. Se la puede descargar desde la tienda de Google Play o App Store. También se la puede utilizar desde su sitio web o versión de escritorio. En esta práctica se crearrá un bot en Telegram el cual al recibir un comando en específico, enviará de manera instantanea el valor de temperatura solicitado. Procedimiento: Nota: se asume que está in

Practice 25: Obtención de datos de Firebase

✅ Práctica 25 Github Repositories ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI When using this resource, please cite the original publication: Víctor Asanza, Kevin Chica-Orellana, Jonathan Cagua, Douglas Plaza, César Martín, Diego Hernan Peluffo-Ordóñez. (2021). Temperature and Speed Control Lab (TSC-Lab). IEEE Dataport. https://dx.doi.org/10.21227/8cty-6069 En el siguiente blog se presenta la cuadragésima segunda práctica del laboratorio de control de temperatura y velocidad de un motor. Objetivo general: Obtención de datos de la Realtime Database de Firebase y almacenarlos en un archivo .csv Materiales: Firebase Google Colab. Introducción: En la práctica anterior se vio como enviar los datos sensados a la Realtime Database de Firebase. Sin embargo, no se aprendió a como obtenerlos. En la presente práctica de laboratorio se mostrará a como acceder a dichos datos para posteriormente almacenarlos en un archivo .csv para que estos luego puedan ser utilizados para cualquier interés po

Práctica 1: Initial setups and tests

✅ Práctica 1 Github Repositories ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI En el siguiente blog se presenta la primera práctica del laboratorio de control de temperatura. Objetivo general: Entender el funcionamiento básico de TSC-Lab para la realización de futuras prácticas. Objetivos específicos: Analizar el comportamiento de la curva cuando los heaters están activados y desactivados. Guardar las mediciones obtenidas con ayuda de Cool Term y exportarlas en un archivo  comma-separtaed-values  (csv). Materiales: Programa Cool Term PCB de Temperature Control Lab (TSC-Lab) Introducción: El laboratorio de control de temperatura es un sistema en lazo cerrado. Sin embargo, en esta y futuras prácticas a realizar se comportará como un sistema de control en lazo abierto ya que no existe retroalimentación, únicamente los heaters se activan y los sensores empiezan a medir el incremento de temperatura y al desactivarlos los sensores miden como la temperatura baja hasta llegar a la t

Practice 15: System 3, using Motor

▷   #TSCLab #TCLab #ESP32 #Arduino #Control #MACI By: Ulbio Alejandro Repositories En el siguiente blog se presenta la vigésima sextapráctica del laboratorio de control de temperatura y velocidad de un motor. Objetivo general: Realizar la identificacion de sistemas, empleando datos anteriormente adquiridos de un Motor DC. Materiales: Matlab TSC-Lab TSC-Lab 3D view Código de Matlab: Introducción: Es importante realizar una prueba en lazo abierto sobre la dinámica del sistema, el mismo que por medio de un Tren de pulsos podemos obtener los datos de la salida, los cuales resultaron la velocidad del motor DC en RPM. Para este ejercicio, se utiliza un archivo denominado OpenLoopMotorDC.csv el cual contiene tanto la entrada como la salida de la planta, cabe destacar que la entrada es un pulso unitario para experimentar la dinámica del sistema. Ilustración 1 Variables de proceso del archivo tipo .csv Mediante código de MATLAB, procedemos abrir el archivo para extraer los datos tanto la entrad

Practice 26 : Over-The-Air programming (OTA)

✅ Práctica 26 Github Repositories ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI When using this resource, please cite the original publication: Víctor Asanza, Kevin Chica-Orellana, Jonathan Cagua, Douglas Plaza, César Martín, Diego Hernan Peluffo-Ordóñez. (2021). Temperature and Speed Control Lab (TSC-Lab). IEEE Dataport. https://dx.doi.org/10.21227/8cty-6069 En el siguiente blog se presenta la vigésima sexta práctica del laboratorio de control de temperatura y velocidad de un motor. Objetivo general: Actualizar el código del TSC-Lab utilizando OTA. Materiales: IOTAppStory TSC-Lab Introducción: A lo largo de todas las prácticas previamente realizadas, cada código se ha cargado al TSC-Lab con ayuda del cable USB por comunicación serial. Sin embargo, esta no es la única forma de hacerlo. Al igual que muchos otros dispositivos como celulares, carros inteligentes, decodificadores, entres otros se le pueden realizar ajustes y configuraciones de manera inalámbrica por una programación p

Practice 35: NodeRed (MQTT) + Telegram

✅ Práctica 35 Github Repositories ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI En el siguiente blog se presenta la vigésima sextapráctica del laboratorio de control de temperatura y velocidad de un motor. Objetivo general: Recibir los valores sensados de temperatura del TSC-Lab a Telegram.  Materiales: Node-Red TSC-Lab Introducción: En la práctica anterior se aprendió a información del TSC-Lab a Node-Red mediante Wi-Fi con protocolo HTTP. Ahora a mas de enviar dicha información se pretende recibirla y monitoreada desde Telegram, la cual es una aplicación enfocada en la mensajería instantánea, el envío de varios archivos y la comunicación en masa. Se la puede descargar desde la tienda de Google Play o App Store. También se la puede utilizar desde su sitio web o versión de escritorio. En esta práctica se crearrá un bot en Telegram el cual al recibir un comando en específico, enviará de manera instantanea el valor de temperatura solicitado. Procedimiento: Nota: se asume que está in