Uncategorized – eluckie https://eluckie.com Blog de tecnología para el bienestar Sat, 22 Mar 2025 20:16:37 +0000 es hourly 1 https://eluckie.com/wp-content/uploads/2025/01/cropped-favicon-32x32.png Uncategorized – eluckie https://eluckie.com 32 32 Haciendo una app de notas con Python y Flet https://eluckie.com/2025/03/22/haciendo-una-app-de-notas-con-python-y-flet/ https://eluckie.com/2025/03/22/haciendo-una-app-de-notas-con-python-y-flet/#respond Sat, 22 Mar 2025 19:28:18 +0000 https://eluckie.com/?p=51

by Ing. Eluckie


Hace ya bastante tiempo decidí iniciar en el mundo de la programación. “Es útil y yo soy bueno en lógica” -pensé-, jajaja tal vez no fue como yo lo imaginé.

Después de casi dos años, y algunos proyectos universitarios, decidí que quería un desafío: hacer mi propio editor de texto. Así que hablaremos de mi experiencia creando una app para apuntar mis notas diarias, ¡no te lo pierdas!

¡Sean bienvenidos a una nueva entrega de ELUCKIE! El día de hoy les he preparado mi experiencia creando mi primera app (mi primer programa). Escogí crear una app de notas .txt utilizando Python y el framework Flet. Este es un desafío personal que creo que, sea este u otro, eventualmente llegaría, lo necesitaría, y gradualmente quiero mejorarlo.

Índice

  1. ¿Por qué un editor de texto?
  2. ¿Por qué hacer una app y no utilizar una ya hecha?
  3. Python y Flet
  4. IDE
  5. Funcionalidades de mi programa
  6. Futuro
  7. Referencias

1. ¿Por qué un editor de texto?

De entre todas las opciones que hay de proyectos para practicar, ¿por qué escogí un simple editor de textos? Bueno, esta respuesta tiene dos vertientes:

  1. La primera es porque soy una persona a la que le gusta el orden y documentar todo. De hecho, actualmente ya me encuentro utilizando la app Obsidian (la cual recomiendo mucho) para llevar un control sobre mis actividades diarias, los problemas a los que me enfrento y las soluciones que encuentre, entre otras cosas…
  2. La segunda parte de la respuesta coincide con el hecho de que, cuanto más estudio, más me doy cuenta que no sé nada 😂😂. Ok tal vez no tanto así.
    Pero me encantaría aprender sobre cómo estructurar datos, leer y escribir ficheros, etc… cosas que deberían ser básicas con las que aún tengo problemas.

2. ¿Por qué rayos hacer una app desde cero y no simplemente usar una ya hecha?

Sí, lo sé. Es mucho más fácil, práctico y hasta productivo utilizar una app que alguien más ya hizo. Un programa por el que un desarrollador ya sufrió dolores de cabeza por nosotros.

Aparte del hecho que hago esto como un desafío que me permitirá aprender, también es el hecho de que casi ningún programa que haya usado me ha dejado completamente satisfecho. Seguramente estoy siendo muy exigente o tengo gustos raros jaja 😅.
El punto es que no he encontrado una pieza de software que cumpla al 100% con mis necesidades; o sí, pero es de paga mensual…

2.1 App que pudieran satisfacer mis necesidades, pero prefiero usar como inspiración.

Durante mi vida he utilizado varios programas para tomar notas, dentro de los cuales se encuentran:

  • Obsidian (el que uso para gestionar mis actividades, bitácora y demás…)
  • Notion
  • OneNote
  • Evernote
  • Marktext
    Las cuales no son poca cosa y todas tienen sus virtudes y sus puntos a mejorar.
    En lo personal, yo recomiendo Obsidian ya que es la que más se ha adaptado a mis necesidades, la app es gratuita y ofrece un sistema de sincronización excelente con un costo super accesible ($5 USD/mes). Incluso, si te gusta juguetear, puedes implementar tu propia sincronización con OneDrive o Google Drive y no pagar la membresía, pero tiene sus fallas.

Notion también me encantó, especialmente porque te ofrece almacenamiento y sincronización completamente gratuitos. Sin embargo, tus archivos se guardan en los servidores de la empresa y estás limitado a un uso constante con internet… Lo cual para mí es un “deal breaker” desafortunadamente.
Si para ti no es un problema, Notion también cuenta con formatos ya hechos para organizar tus actividades, proyecto, colaboración en equipo y demás.

Del último que hablaré en este artículo es OneNote. Este es un programa de Microsoft que también es muy bueno, pero implementa un formato propietario que te obliga a siempre usar esa app en específico y, generalmente, con una licencia de Office 360. OneNote funciona excelente si eres estudiante, un creativo, o necesitas (casi literalmente) una “libreta” en tu computadora.
A mí me encantó porque compré la licencia de Office 2019, y precisamente la dejé porque cambié de computadora y no pude con el gasto de otra licencia.

Si conoces algún otro software que no haya mencionado, ¡házmelo saber!

3. Python y Flet

Decidí implementar estas dos herramientas principalmente por su facilidad de uso. En el caso de Flet es un framework de Python que permite hacer app multiplataforma. Y, en el caso de Python, porque es el lenguaje de programación que mejor domino de todos.

3.1 Hablemos de Flet

Este es un framework que nos permite realizar ligeras aplicaciones multiplataforma: web, escritorio y móvil. Está basado en una filosofía de estructura y funcionalidad similares a Flutter de Google [1]. Casi podríamos decir que es como utilizar Flutter con Python.

Como todo, esto cuenta con sus ventajas y sus desventajas. Dentro de las ventajas más notorias son:

  • Su facilidad de uso: iniciar una app es MUY sencillo y escala relativamente bien.
  • Se pueden realizar aplicaciones web, de escritorio y móviles.
  • Bajo conocimiento inicial.
  • Rápido desarrollo.
    Y sus desventajas más notorias serían:
  • Funcionalidades un tanto “limitadas”.
  • Compilar el código es tedioso y una pesadilla si usas MacOS.
  • El paquete compilado termina siendo muy pesado.
  • El código fuente puede ser vulnerado.
  • entre otras que luego hablaremos…

4. El IDE a utilizar

En este apartado no hay mucho que comentar, no me quise romper la cabeza e implementé mi IDE de confianza: Visual Studio Code. El cual cuenta con una muy buena integración con Python, ya tengo mucha experiencia con, y (¿por qué no?) es gratuito 😊.

5. Funcionalidades de mi programa

Inicialmente comenté que sería una app simple que pudiera leer, escribir y crear archivos .txt. Objetivo el cual se cumplió con éxito, aunque su desarrollo no fue nada sencillo: muchas desveladas, dolores de cabeza y reestructurar varias veces la arquitectura.

De cualquier forma logré que mi software super sencillo hiciera los siguiente:

  1. Utilización instantánea: Recién inicias el software y ya puedes crear un .txt nuevo para que no se te olvide lo que estabas por anotar. Al terminar de plasmar tu primera idea puedes guardar el archivo y continuar editando como si nada.
  2. Crear, abrir, leer y escribir archivos .txt y .md (sin renderización de contenido aún 🥲).
  3. Creé igualmente 3 temas para cuidar tus ojos: tema claro, cálido y oscuro.

El código está aún por compartirse en GitHub como licencia GPL para que lo pruebes y lo utilices si es de tu agrado 😉.

6. Futuro

Sin duda aun me queda mucho de programación por aprender. Sin embargo, después de realizar este programa, verlo funcionando y utilizarlo como una herramienta más de mi laptop, me he sentido muy contento y entusiasmado a continuar desarrollando, a continuar compartiendo.

Espero que este aporte pueda ser de utilizada para alguien más aparte de mí. Y aún falta presentarlo a mis compañeros de trabajo.

Por otro lado, deseo expandir esta herramienta para que haga más cosas aparte de editar archivos .txt, como son:

  • Editar archivos Markdown (.md) y renderizarlos en tiempo real como Obsidian o Notion.
  • Editar archivos .csv e implementar funcionalidades con Javascript o Python.
  • Diagramas.
  • entre otras ideas locas…

¿Te late alguna utilidad? ¿O te gustaría que implementase alguna otra? ¡No olvides comentar! 😊

Asimismo, me he dado cuenta que si lo que quiero es ampliar las utilidades de mi programa, necesitaré ya sea otro framework o, incluso, otro lenguaje de programación.
Por facilidad me gustaría implementar TypeScript con React y Electron. De esta manera facilitaré el desarrollo y portabilidad a distintos sistemas. Sin embargo, considerando el peso total de mi aplicación, y las funcionalidades que llevará; quizás sea pertinente buscar un lenguaje de programación más veloz, como Java, y así no sacrificaría portabilidad entre MacOs y Windows. Diría Linux también porque soy fan, pero es algo que no puedo garantizar aún.

Despedida :3
Como siempre, muchas gracias por leer, ¿Qué te pareció? Deja tu comentario en la sección de abajo, estaré encantado de leerte.

¡Yo soy Ernesto Luckie y nos vemos en la siguiente entrega!

Esta es una página en la que hablamos de tecnología y cómo esta puede usarse para mejorar nuestra calidad de vida.

  • Vlogs
  • Artículos (como este)
  • Shorts
  • Gameplays
  • Y hasta pequeñas contribuciones de mí para ti 😊

Aquí aprenderás, te divertirás, y si te lo propones, inventarás… No olvides seguirnos en nuestras redes sociales:

También puedes acceder a mi tienda en línea donde encontrarás gadgets, componentes electrónicos, proyectos, módulos, domótica, impresión 3D y demás… Entra a https://kalecon.com

Referencias:

  1. https://flet.dev/docs/
]]>
https://eluckie.com/2025/03/22/haciendo-una-app-de-notas-con-python-y-flet/feed/ 0
¡Automatización! Aprende Arduino https://eluckie.com/2025/01/28/automatizacion-aprende-arduino/ https://eluckie.com/2025/01/28/automatizacion-aprende-arduino/#respond Tue, 28 Jan 2025 21:56:57 +0000 https://eluckie.com/?p=46

Arduino es una tarjeta de desarrollo ampliamente utilizada en el mundo de la ingeniería. Ya sea por su facilidad de uso, bajo costo o la gran comunidad de personas que aportan a este gran proyecto que es Arduino.

En sí, existen diferentes tipos de tarjetas Arduino que más o menos se adaptan a las necesidades de los proyectos que estemos realizando.

Sean bienvenidos a una nueva entrega de ELuckie! El día de hoy hablaremos sobre el proyecto Arduino y todo lo que necesitas saber.

Esta entrega estará basada en lo que a mí (como Mecatrónico) me hubiera gustado que me dijeran cuando estudié y necesitaba aprender para hacer mis proyectos de fin de cursos.

¡ANTES DE COMENZAR! En esta entrega hablaremos de los conceptos clave, así como controlar el brillo de un LED con un potenciometro.

Basta de introducción y vayamos al grano, ¿qué es Arduino?

Es complicado hablar de micro-controladores sin haber tomado alguna clase de electrónica digital. Y ahí está lo bonito de Arduino: es tan fácil que no necesitas tanto conocimiento previo.

Eso sí, necesitarás mucha paciencia y ganas de aprender. Y con el apoyo de este vlog, estoy convencido de que podrás dominar Arduino muy pronto… o al menos, sabrás cómo comenzar para cumplir con tus proyectos.

Arduino es un a plataforma de hardware libre basada en un a placa con un micro-controlador y un entorno de desarrollo, diseñado para hacer que la electrónica sea más accesible para todos. Su objetivo principal es facilitar la creación de proyectos electrónicos interactivos desde los más simples hasta los más complejos, sin necesidad de ser un experto en programación o ingeniería electrónica.

Una placa Arduino recibe información a través de los pines de entrada (como sensores de temperatura o botones), procesa esa información en su microcontrolador, y luego actúa enviando señales a través de los pines de salida para controlar dispositivos como LEDs, motores o pantallas. Este ciclo de lectura, procesamiento y acción es lo que permite a Arduino interactuar con el mundo físico de una manera simple pero potente.

Una de las características que hace a Arduino tan popular es su capacidad para integrarse con una gran variedad de sensores y actuadores, permitiendo controlar desde luces y motores hasta dispositivos más complejos como robots y sistemas automatizados. Además, un software de código abierto, el Arduino IDE, facilita la programación de la tarjeta, con un lenguaje de programación simple basado en C++.

Como dato curioso, he llegado a utilizar el Arduino Mega (junto con más componentes) para hacer un impresora 3D. Aquí dejo la imagen.

Mencioné que hay varios tipos, estos son:

  1. Arduino UNO: La más popular y utilizada desde principiantes hasta profesionales. Tiene un microcontrolador ATmega328 y ofrece 14 pines digitales y 6 entradas analógicas, lo que la hace perfecta para proyectos simples de control de luces, sensores, o actuadores.
  2. Arduino MEGA: Ideal para proyectos más grandes que requieren más pines de entrada/salida. Esta placa tiene 54 pines digitales y 16 entradas analógicas, lo que la hace ideal para proyectos de robótica más avanzados o sistemas con muchos sensores y actuadores.
  3. Arduino NANO: Esta es una versión más pequeña que el Arduino UNO, perfecta para proyectos donde el tamaño es un factor crítico. Aunque compacta, sigue siendo muy versátil y es ideal para proyectos de micro-robótica.
  4. Arduino Leonardo: Esta placa tiene la particularidad de poder actuar como un dispositivo USB (como un teclado o ratón), lo que la hace perfecta para proyectos de interacción directa con la computadora.
  5. Arduino DUE: Esta placa es mucho más potente que las anteriores, ya que usa un micro-controlador ARM de 32 bits. Es ideal para proyectos que requieren mayor capacidad de procesamiento, como sistemas avanzados de control.

Es posible que existen más variaciones, sin embargo, estas son las más comunes.

¿Sabías qué? 😱

Los fundadores de Arduino solían reunirse en un bar llamado Bar di Re Arduino en Ivrea, Italia. El bar, a su vez, llavaba el nombre de un antiguo rey de la región llamado Arduino de Ivrea, quien fue rey de Italia en el siglo XI. Así que decidieron nombrar a la plataforma “Arduino” en honor a ese lugar, donde surgieron muchas de las primeras ideas para el proyecto.

Bar di Re Arduino significa “Bar del Rey Arduino”.

¿Cómo surgió Arduino?

“Arduino fue inventado en el año 2005 por un estudiante del instituto IVRAR, Massimo Banzi, quien, en un principio, pensaba en hacer Arduino por una necesidad de aprendizaje para los estudiantes de computación y electrónica del mismo instituto, ya que (en ese momento) adquirir una placa de micro-controladores era bastante caro y no ofrecían el soporte adecuado; no obstante, nunca se imaginó que esta herramienta se llegaría a convertir, en años posteriores, en el líder mundial de tecnologías DIY (Do It Yourself).”[1].

La historia continúa, sin embargo, nosotros procederemos con el contenido introductorio a esta plataforma. Los links para que leas más están en la descripción.

El Entorno de Desarrollo Integrado (IDE) Arduino:

No podemos decir que utilizamos Arduino sino hablamos de su IDE. Esta es una herramienta esencial para programar y cargar código en las placas Arduino. Este software, dispobible para Windows, macOS y Linux, ofrece una interfaz sencilla y fácil de usar, diseñada tanto para principiantes como para expertos. El IDE de Arduino utiliza un lenguaje basado en C/C++, y permite escribir, compilar y cargar programas (denominados “sketches”) directamente a la placa.

Además, cuenta con una amplia colección de librerías preinstaladas que facilitan la interacción con sensores, motores, y otros componentes, haciendo que la creación de proyectos electrónicos sea más accesible para todos.

En recientes versiones del software ya incorpora un gestor de paquetes externos. Ya sea para facilitar funciones en la tarjeta Arduino o, incluso, que te permiten utilizar tarjetas de otros proyectos (no arduinos) como el ESP32.

Creo que ya entendimos lo que es y lo que hace Arduino. Ahora sí viene lo interesante: ¡Controlar el brillo de un LED con un potenciometro!

Este es el experimento más sencillo e ilustrativo que se me vino a la mente, y considero que es bastante completo ya que incorpora una lectura mediante un puerto análogo y una salida digital (que simula ser análoga) mediante Modulación por Ancho de Pulso PWM.

Materiales que necesitamos:

  • 1 Placa Arduino UNO (Nano, Mega, o similar).
  • 1 LED. Aunque te recomendamos aquirir al menos 2.
  • 1 Resistencia de 330Ω.
  • 1 Potenciómetro (5Ω ó 10KΩ recomendados).
  • Cables y una protoboard.

¿Cómo funciona?

El potenciómetro es un dispositivo que actúa como una resistencia variable. A medida que giras su eje, el valor de la resistencia cambia, lo que modifica el voltaje que llega al pin analógico de Arduino. Arduino lee este valor analógico, lo convierte a un valor de salida de PWM y ajusta el brillo del LED en función de la posición del potenciómetro.

El valor que Arduino lee del potenciómetro varía entre 0 y 1023, y luego lo mapeamos a un rango de 0 a 255 para controlar la señal de PWM que ajusta el brillo del LED.

Conexión del circuito

  1. Conecta el potenciómetro:
    • El pin del medio del potenciómetro (wiper) va al pin A0 de Arduino.
    • Uno de los extremos del potenciómetro se conecta al 5V de Arduino.
    • El otro extremo del potenciómetro va al GND.

  2. Conecta el LED:
    • Conecta el ánodo (la pata más larga) del LED al pin 9 de Arduino.
    • El cátodo del LED (la pata más corta) se conecta a un extremo de la resistencia de 220Ω.
    • El otro extremo de la resistencia va al GND de Arduino.

Código para controlar el brillo del LED:

// Declaramos las variables
int potPin = A0;    // Pin donde está conectado el potenciómetro
int ledPin = 9;     // Pin donde está conectado el LED (con PWM)
int potValue = 0;   // Variable para almacenar el valor del potenciómetro
int brightness = 0; // Variable para almacenar el valor del brillo del LED

void setup() {
  pinMode(ledPin, OUTPUT); // Configura el pin del LED como salida
}

void loop() {
  potValue = analogRead(potPin);               // Lee el valor del potenciómetro (0 a 1023)
  brightness = map(potValue, 0, 1023, 0, 255); // Mapea el valor a un rango de 0 a 255
  analogWrite(ledPin, brightness);             // Ajusta el brillo del LED
  delay(10);                                   // Pequeña pausa para suavizar la lectura
}

Explicación del código

  1. Lectura del potenciómetro:
    La función analogRead(potPin) toma el valor de voltaje del potenciómetro y lo convierte en un número entre 0 y 1023. Este valor representa la posición del potenciómetro, desde 0 (mínimo) hasta 1023 (máximo).

  2. Mapeo del valor:
    Utilizamos la función map() para convertir el valor leído (que está en el rango de 0 a 1023) a un valor entre 0 y 255. Esto es necesario porque el pin de salida PWM en Arduino controla el brillo del LED en un rango de 0 a 255 (siendo 0 apagado y 255 el brillo máximo).

  3. Salida PWM:
    La función analogWrite(ledPin, brightness) ajusta el brillo del LED usando una señal de PWM. Esto cambia el ciclo de trabajo de la señal para variar el brillo del LED en función de la posición del potenciómetro.

  4. Pequeña pausa:
    El delay(10) asegura que el programa no se ejecute demasiado rápido, lo que podría provocar fluctuaciones en la lectura del potenciómetro.

Resultado Final
Al girar el potenciómetro, notarás cómo el brillo del LED varía de manera suave, dependiendo de la posición del potenciómetro. Si el potenciómetro está al mínimo, el LED estará apagado; si está al máximo, el LED brillará con toda su intensidad.

Posibles problemas y soluciones
• El LED no se enciende: Asegúrate de que has conectado correctamente el ánodo y el cátodo del LED. También revisa las conexiones del potenciómetro.
• El brillo no varía suavemente: Puede ser que la conexión del potenciómetro no esté firme o que el valor del mapeo no esté ajustado correctamente.

FIN

Por ahora 😂😂… Así es, ¿nos hizo falta algo? ¿Quieres que incluyamos algún tema en particular? ¿Tienes alguna duda? Nos encantaría leerte en la caja de comentarios.

En definitiva, este no puede ser el final de una introducción para Arduino. Y, es que, ya sea la parte de la programación, o la electrónica; INCLUSO más allá: domótica, automatización, brazos robot, CNC, impresión 3D, y la lista sigue…
Arduino es una excelente plataforma para empezar y hasta para hacer más que solo proyectos académicos.

¡Gracias por estar una semana más! Gran BOOM ya estamos en youtube, TikTok, Facebook e Instagram. Búscanos!

Referencias:

  1. https://arduinodhtics.weebly.com/historia.html
]]>
https://eluckie.com/2025/01/28/automatizacion-aprende-arduino/feed/ 0
Hello world! https://eluckie.com/2025/01/07/hello-world/ https://eluckie.com/2025/01/07/hello-world/#comments Tue, 07 Jan 2025 04:19:27 +0000 https://eluckie.com/?p=1 Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

]]>
https://eluckie.com/2025/01/07/hello-world/feed/ 1