domingo, 2 de junio de 2024

ESP32 Micropython y Thonny IDE

El ESP32 es un microcontrolador muy potente y versátil con módulos WiFi y Bluetooth integrados de bajo costo y alta potencia desarrollado por la compañía china Espressif
Muy utilizado en el internet de las cosas, domótica, robótica y una amplia gama de proyectos y aplicaciones, sobre todo, si son aplicaciones que necesiten un bajo consumo de energía. 
Es fácil de programar y cuenta con una gran comunidad a sus espaldas.
Es el sucesor del más que famoso ESP8266 el cual es mono núcleo y no cuenta con comunicación bluetooth. En una de las cosas que si se parecen es en su bajo costo, se pueden encontrar desde unos 3€ aproximadamente.

A día de hoy, en 2024, existen varias series y modelos del microcontrolador ESP32, cada uno con características y enfoques específicos pero en este articulo vamos a centrarnos en el modelo WROOM32.

Especificaciones técnicas de microcontrolador ESP32:

  • Arquitectura: Xtensa Dual-Core 32-bit LX6.
  • Frecuencia CPU: Hasta 240MHz.
  • RAM total disponible: 528KB (parte de ella esta reservada para el sistema).
  • BootROM: 448KB.
  • FlashROM interna: No. 
  • FlashROM externa: código y datos, vía SPI Flash; tamaño normal 4MB 
  • GPIO: 34 (los puertos GPIOs están multiplexados con otras funciones, incluidas FlashROM externa, UART, etc.) 
  • UART: 3 RX/TX UART (no hardware handshaking), one TX-only UART 
  • SPI: 4 interfaces SPI (una usada por FlashROM) 
  • I2C: 2 I2C (implementación bitbang disponible en cualquier pin) 
  • I2S:
  • ADC: 12-bit SAR ADC hasta 18 canales
  • DAC: 2 8-bit DACs 
  • RMT: 8 Canales que permiten una transmisión/recepción precisa del pulso. 
  • Programming: Usando el gestor de arranque BootROM desde UART: debido al FlashROM externo y al gestor de arranque BootROM siempre disponible, el ESP32 no se puede bloquear.



 En este caso vamos a instalar el firmware en el módulo ESP32 WROOM-32. Lo podemos descargar desde la web microython.org  y seleccionamos la placa en cuestión "ESP32/WROOM". 


Una vez tenemos el firmware descargado, tenemos que pasar el archivo .bin a la placa ESP32. 
Para este proceso usaremos esptool.py. Puedes descargar esptool.py aquí. Para instalar el firmware usaremos varios comandos desde el terminal linux. El primero es para borrar la memoria flash:

python3 -m esptool --chip esp32 --port /dev/ttyUSB0 erase_flash 

y el siguiente es para cargar el archivo .bin en la memoria Flash del microcontrolador:
     
python3 -m esptool --chip esp32 --port /dev/ttyUSB0 --baud 460800 write_flash -z 0x1000 x.bin 

donde "x" sera la ruta del archivo como por ejemplo /home/usuario/Descargas/ESP32_GENERIC-20240222-v1.22.2.bin 



Programando con Micropython: 


 Al contrario que la plataforma Arduino, basada en C++, micropython es una implementación de Python. Es decir es la misma que se utiliza en cualquier programa creado con python. Esto hace que su sintaxis sea mas legibles y su curva de aprendizaje más sencilla gracias a la gran cantidad de bibliotecas disponibles. Además es un lenguaje apto tanto para personas que estan empezando en la programación de microcontroladores tanto para programadores con más experiencia. Eso si, al no tener tanta trayectoria su comunidad no es tan grande como la de Arduino. 

 Una vez tenemos el firmware instalado tenemos que usar un programa para poder comunicarnos con el chip. Para este proceso existen diferentes IDE's (Integrated Development Environment) que nos facilitan el proceso de pasar los archivos al microcontrolador. Entre estas posibilidades nos encontramos con programas como: 

Thonny lo podemos descargar desde los repositorios con: sudo apt install thonny
Con Thonny instalado ya tenemos todo lo necesario para programar el microcontrolador. 

Entre las principales características de Thonny encontramos:

  • Interfaz intuitiva: Cuenta con una interfaz gráfica simple y clara, diseñada para facilitar la comprensión y el uso por parte de usuarios principiantes.
  • Paso a paso: Permite ejecutar el código línea por línea, lo que ayuda a visualizar el flujo del programa y comprender mejor cómo funciona.
  • Depuración visual: Ofrece herramientas de depuración visual que permiten identificar y corregir errores en el código de manera más sencilla.
  • Modo "paso atrás": Permite retroceder en la ejecución del programa para analizar el comportamiento en pasos previos.
  • Variables paso a paso: Muestra el valor de las variables en cada línea de código, lo que facilita comprender su comportamiento durante la ejecución del programa.
  • Ejercicios y tutoriales integrados: Incluye una serie de ejercicios y tutoriales interactivos para guiar a los usuarios en el aprendizaje de Python.
  • Extensible: Thonny es extensible mediante plugins, lo que le permite añadir nuevas funcionalidades.
  • Soporte para múltiples plataformas: Está disponible para sistemas operativos Windows, macOS y Linux.

Un programa de prueba el típico "blink" para el LED que viene en placa. 
Parpadeo LED:

  import machine
  import utime

  led = machine.Pin(2, machine.Pin.OUT)
  
  while True:
  	led.On()
  	utime.sleep(1)
  	led.Off()
  	utime.sleep(1)
 


 Una vez lo tenemos todo instalado es muy cómodo de programar e implementar nuevas opciones ya que muchas de las bibliotecas que usualmente se usan en Python son las mismas para MicroPython.


Conclusión: 


En conclusión MicroPython es una herramienta versátil y poderosa que puede usarse en una amplia gama de aplicaciones en una gran cantidad de microcontroladores. Su facilidad de uso y legibilidad lo hacen ideal tanto para principiantes como aficionados e incluso profesionales. Sin duda, MicroPython es un lugar excelente para comenzar en el mundo de los microcontroladores.


Saludos!!!

sábado, 9 de marzo de 2024

Kdenlive, edita vídeo con código abierto

 Kdenlive es un editor de vídeo no lineal gratuito y de código abierto disponible para Linux, Windows y macOS. 

Tengo que decir que el editor que utilizo para mis vídeo del canal de youtube y Kdenlive ha mejorado mucho con los años (no como mis vídeos jajaja). Al principio era muy fácil que se quedara colgado o que simplemente desapareciera la pantalla, esto ya no pasa. O es algo muy raro. También editar con un portátil con mas de 10 años tampoco era lo mejor. Para lo que lo uso a mi me va bien, y como todo, cuanto más tiempo de uso mejoramos nuestra curva de aprendizaje.

Uno de los puntos fuertes de Kdenlive es que cuenta con una comunidad activa, comprometida y, generalmente, apasionada del software libre. Podemos tener información tanto en el foro oficial como en canales de Youtube tipo "Locos por Linux" o "Punto Edu".

Aquí hay algunas de las características más destacables de Kdenlive:

Edición multipista:

  • Línea de tiempo con soporte para una cantidad ilimitada de pistas de video y audio.
  • Mezcla de audio con varios canales.
  • Edición de subtítulos y títulos.

Efectos y transiciones:

  • Amplia gama de efectos de video y audio preinstalados.
  • Posibilidad de crear y personalizar efectos.
  • Transiciones profesionales para suavizar los cambios entre escenas.

Herramientas de edición:

  • Corte, recorte y edición de clips de video y audio.
  • Edición de fotogramas clave para crear animaciones.
  • Corrección de color y herramientas de mejora de imagen.
  • Estabilización de vídeo para eliminar el temblor. 

Formatos de archivo:

  • Soporte para una amplia variedad de formatos de vídeo y audio.
  • Edición de archivos sin necesidad de transcodificación.
  • Exportación a diferentes formatos, incluyendo MP4, MOV, AVI y WMV.
  • Soporte para hardware de aceleración.

Su interfaz personalizable: 

La interfaz de Kdenlive es modular y se puede personalizar para adaptarse a tu flujo de trabajo. Puedes mover, ocultar y acoplar paneles para crear un espacio de trabajo cómodo y eficiente.


Kdenlive es una excelente opción para editores de vídeo principiantes que buscan una herramienta gratuita y fácil de usar. Pero tampoco deja indiferentes a editores de vídeo más experimentados que necesitan una herramienta con una amplia gama de funciones. pero en definitiva para cualquier persona  que busque una alternativa gratuita a editores de vídeo comerciales como Adobe Premiere Pro o Final Cut Pro.

Si estás interesado en aprender más sobre Kdenlive:

Sitio web oficial de Kdenlive: https://kdenlive.org/es/

Documentación de Kdenlive: https://docs.kdenlive.org/es/

Foro de la comunidad de Kdenlive: https://discuss.kde.org/tag/kdenlive

Animo a la comunidad a probarlo 

Saludos!!!






sábado, 2 de marzo de 2024

WLED el mejor control para tus tiras LED


WLED es un firmware de código abierto que te permite controlar tiras de LED digitales RGB con un microcontrolador ESP8266 o ESP32. Es una de las mejores alternativas a los controladores LED tradicionales, ya que ofrece una gran flexibilidad y personalización a través de una interfaz web intuitiva.

Empecemos!

Una tira de LED direccionable es un tipo de tira de LED que te permite controlar el color y el brillo de cada LED individual. La más popular es la denominada WS2812B y es la tira de led que he usado en varios proyectos con unos resultados totalmente satisfactorios. Uno de ellos es la iluminación para la caja del PC.


domingo, 18 de febrero de 2024

Documenta tu proyecto con doxygen y doxygen-gui

Este es uno de esos programa de los de... como no lo conocí esto antes... Si, Doxygen es una herramienta de generación de documentación para código fuente. Es una herramienta gratuita y de código abierto que se puede usar para generar documentación en HTML, LaTeX, RTF, PDF y otros formatos.


Es genial si tienes que compartir código con otros miembros de un equipo de trabajo o para recordar que hacía ese código que escribiste hace años. Otra ventaja es que en la mayoría de las distribuciones ya lo tienen incluido en sus repositorios.

Instalación desde repositorios Ubuntu

Para instalar Doxygen solo tienes que abrir una terminal y ejecuta el siguiente comando:


sudo apt install doxygen

Este comando instalará la última versión estable de Doxygen en tu sistema.

Instalación desde binarios

domingo, 28 de enero de 2024

Mejorando teclado Mars Gaming


 Muy buenas a todos!

Normalmente no nos fijamos mucho ( o nos fijamos demasiado) en el elemento que más utilizamos para controlar nuestro ordenador, el teclado y el ratón. En este caso, El teclado. 

Los hay de muchos tamaños colores y precios... y oiga que precios... un teclado de un marca más o menos puntera no baja de los 100, que ojo, yo no digo que no lo cueste, pero no es muy accesible para todos los bolsillos. En mi caso buscaba que tuviera dos características básicas, que fuera TKL (Ten Key Less) por sus siglas en ingles y que viene a significar que tienes 10 teclas menos y es un poco más pequeño, la otra característica es que tuviera RGB. 

El RGB me parece algo que, además de quedar muy bonito en los vídeos, es muy útil en muchos ambitos y no solo para jugar. En mi caso tengo hasta 5 posibilidades. Uno para jugar, los otros para programar y uno que es con todas las teclas en blanco que va muy bien por la noche

Bueno que me lío... Buscando por aquí y allá encontré el Mars Gaming MKREVOPRO y no me pareció excesivamente barato, tampoco quería comprar una porquería de 10€. Este me costo en torno a 35 o 40€.



El tema del RGB fue un poco duro al principio incluso parecía que no iba a poder usarlo ya que al usar GNU/Linux no trae drivers ni programa con el que poder controlarlo. Y así conocí  OpenRGB.


OpenRGB es un software para gestión todos tus dispositivos RGB desde una sola aplicación tanto en Linux como en Windows. Este programa tiene una gran cantidad de opciones y una buena comunidad donde encontrar solución a casi todo. De echo, si no es por ellos ahora tendría un triste teclado sin colorines.

Lo primero que hice fue instalar las librerías que recomiendan en su web

sudo apt install git build-essential qtcreator qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libusb-1.0-0-dev libhidapi-dev pkgconf libmbedtls-dev


Lo Una vez hemos instalado las dependencias nos vamos a la pagina https://gitlab.com/CalcProgrammer1/OpenRGB/-/releases/release_0.7#Linux-64-bit y hacemos clic en la parte superior nos da varias opciones y la que use fue Source code (zip) en la parte superior

OpenRGB descarga

viernes, 26 de enero de 2024

Actualizar Python en Ubuntu con apt

 Revisando la versión de Python y aprovechando una reinstalación del sistema que he realizado hace poco, tenía que revisar unos programas y antes de empezar he revisado la versión que tengo actualmente instalada y era la 3.1 lo que me pareció un poco baja ya que la ultima vez, y la que tengo en el otro equipo, es la 3.8 . 

Para actualizar Python primero vemos la versión que tenemos actualmente instalada con el comando:

$python3 --version

Python 3.10.12


Una vez tenemos esta información actualizamos el sistema con el siguiente comando: