Leer Primero

Como se utiliza este blog?

lunes, 26 de enero de 2026

Sera un poco mas complicado instalar APK's en Android

Bienvenido a mi blog, hoy hablaremos un poco sobre algo por lo que se ha caracterizado Android frente a al sistema operativo iOS de apple, y es por la relativa facilidad de descargar un instalador en formato APK de un repositorio externo, si hemos dicho adiós a una de las apps más emblemáticas de Android como ha sido Nova Launcher, en poco tiempo habrá que levantar la mano para realizar el mismo gesto con una acción muy vinculada al SO de Google: instalar APKs en tu móvil o en tu tablet. Google justifica este enorme cambio en aras de la seguridad de los usuarios de Android.

Un movimiento peculiar que sucedio justo cuando Epic Games le ganó la partida a Google con Fortnite para que se puedan instalar tiendas de terceros, que se tendrá que hacer desde la Google Play Store, ya que actualmente la única forma es descargar justamente un archivo APK desde la web de Epic Games. La nueva norma de Google que se aplicará a partir de 2026 se basa en que todas las apps instaladas fuera de la Play Store deberán provenir de desarrolladores verificados para detener el malware, ya que según Google las apps externas tienen hasta 50 veces más riesgo de sufrir estos ataques.

Play Protect ya no formará parte del sistema de revisión de las APKS y se delega todo en una nueva herramienta de verificación de APKs que obliga a los desarrolladores a identificarse para que se pueda instalar su APK como se viene haciendo. La única excepción que permitira Google para instalar una APK no verificada será hacerlo a través de ADB (Android Debug Bridge), que conlleva activar las opciones de desarrollo de Android y activar una función para poder conectar el móvil al PC con cable usb (algo bastante técnico para un usuario normal).


Google, según SmartWorld, ya ha establecido un calendario para comenzar con las pruebas de esta nueva restricción que impedirá la instalación de un archivo APK como hemos hecho desde siempre en Android. Quedara teoricamente así:

  • Octubre de 2025: las primeras pruebas.
  • Marzo de 2026: el sistema de verificación se activara.
  • En septiembre de 2026 comenzarían los bloqueos en países de alto riesgo.
  • Y el despliegue mundial empezaría en 2027.

Quedan meses y tiempo para que se ejecute una medida que cambia totalmente la forma de entender Android como un sistema operativo que ha sido en parte abierto y que en los últimos años ha sido cercenado con distintas medidas. Por esta misma razón, estos días atrás se ha generado mucho rechazo ante esta medida que aleja a Android de lo que era, como simplemente se puede hacer en Windows al descargar un archivo ejecutable .exe para instalar un programa. Y volvemos a recordar que en los siguientes meses, no solo por la parte que le toca en el juicio con Epic Games sino por la DSA (Ley de Servicios Digitales), se tendrán que aplicar cambios en la Play Store, así que hay margen para que esta nueva medida se pueda detener a tiempo, si es que los usuarios se unen y lanzan alguna reclamación.


"La palabra 'Android', así como los logotipos oficiales, son marcas comerciales con copyright © de Google LLC. Todos los derechos de marca y autor están reservados por sus respectivos propietarios y licencias correspondientes."



Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.


También te puede interesar:

Appteka

Magisk

BusyBox

Unroot

Google Play Store le dirá adiós al formato APK y solo permitirá AAB desde agosto de 2021

Cómo borrar aplicaciones Preinstaladas de fabrica en móviles Android sin Root


domingo, 18 de enero de 2026

Comprobar y actualizar el Arranque Seguro en Windows 11

Bienvenido a mi blog, hoy hablaremos un poco sobre la seguridad en Windows 11, la cual es un elemento clave y cada vez más importante a medida que se lanzan nuevas versiones del sistema operativo Windows. Debemos tener en consideración que el Arranque Seguro evita que el malware de bajo nivel, bootkits, etc, comprometa el proceso de inicio de Windows 11, componente que necesita de nuestra atención.

Lo primero que debemos tener presente es que algunos certificados de Arranque Seguro caducan en el mes de Junio de 2026. Por tanto, a continuación, vamos a explicar cómo revisarlos y actualizarlos. Todo con el fin de proteger nuestro ordenador o PC y evitar problemas de arranque o de seguridad.

Partiendo de esa base, estos certificados a los que nos referimos aquí para el Arranque Seguro de Microsoft, son de 2011 y vencen en Junio de 2026. Ahora bien, los nuevos certificados amplían la protección hasta el año 2053. Eso sí, es probable que los equipos adquiridos a partir de 2024, ya cuenten con los certificados más recientes. Otros los están recibiendo gradualmente a través de Windows Update.

Ver el estado de los certificados de Arranque Seguro

Podemos comprobar el estado de nuestro certificado mediante la herramienta PowerShell y actualizarlo manualmente si no los hemos recibido automáticamente. Debemos saber que a partir de la actualización de seguridad de Enero de 2026, Microsoft ha comenzado la implementación gradual de un nuevo certificado. Esto permitirá que nuestro equipo siga arrancando correctamente y reciba actualizaciones de seguridad.

Y es que en Windows 11, el Arranque Seguro es una función de seguridad disponible en el firmware de la UEFI. Impide modificaciones no autorizadas en archivos críticos del sistema durante su inicio. Esto garantiza que el equipo arranque únicamente con software de confianza del fabricante. Ayuda a protegernos contra el malware de bajo nivel que puede infectar el proceso de arranque y tomar el control de nuestro equipo incluso antes de que se carguen el sistema operativo y el antivirus.

Esta función utiliza claves criptográficas para validar que los módulos de firmware provengan de una fuente fiable. Hay que decir que los certificados de Arranque Seguro siempre han tenido fecha de caducidad, ya que ayudan a garantizar que el equipo siga recibiendo actualizaciones de seguridad.

Por eso, debemos instalar los certificados de 2023 antes de que los de 2011 caduquen en junio de 2026. En la actualización KB5074109 de este mes, Microsoft indicó que las actualizaciones ahora incluyen un subconjunto de datos de alta fiabilidad con el fin de recibir automáticamente nuevos certificados de Arranque Seguro. La implementación será gradual.

Esto significa que no es necesario realizar ningún paso manual para actualizar el Arranque Seguro. Pero veamos cómo comprobar la fecha de caducidad de estos certificados, dado que no recibiremos ninguna notificación indicando que el equipo incluye los más recientes. Para comprobar que ya disponemos de los más recientes, abrimos PowerShell con permisos de administrador y ejecutamos este comando:

[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match 'Windows UEFI CA 2023'

Si recibimos una salida True, es que tenemos el nuevo certificado válido hasta 2053. De lo contrario, False significa que aún tenemos el certificado de 2011 que vence en Junio de 2026.


Actualizar los certificados en Windows 11


Esto quiere decir que si los certificados están a punto de caducar, es posible que Microsoft o el fabricante del equipo nos envíen las actualizaciones de firmware a través de Windows Update. Sin embargo, también podemos actualizar manualmente el Arranque Seguro.

Eso sí, antes de continuar, recomendamos guardar la clave de recuperación de BitLocker y de que la BIOS (UEFI) esté actualizada. También se recomienda hacer una copia de seguridad completa del PC. A partir de ahí, de nuevo abrimos una ventana de la herramienta PowerShell con permisos de administrador y ejecutamos lo siguiente:

reg add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecureboot /v AvailableUpdates /t REG_DWORD /d 0x5944 /f

Este comando establece la clave de registro que indica al sistema operativo que implemente todos los certificados necesarios. Aquí se incluye el de arranque actualizado. Cabe mencionar que esta actualización suele requerir 2 reinicios para aplicarse por completo.


Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.



También te puede interesar:


UEFI y BIOS - Generalidades

DISCOS SSD - GENERALIDADES

Creacion de Particiones desde simbolo del sistema

WinRAR

Fuentes

ShowKeyPlus - Muestra la licencia actual de Windows

HDD Low Level Format Tool v4.40

Activa tu Windows 11 facil


sábado, 8 de marzo de 2025

Triángulo de Sierpinski en Python utilizando el módulo Python Turtle

Bienvenido a mi blog, hoy hablaremos un poco sobre el triángulo de Sierpiński, el cual es un fractal que se construye a partir de un triángulo equilátero y se obtiene al repetir infinitas veces un algoritmo geométrico. Dicho triángulo lleva el nombre del matemático polaco Wacław Franciszek Sierpiński (Varsovia, 1882-1969), quien creó varios objetos fractales, entre ellos el conocido triángulo de Sierpiński. De manera análoga al conjunto de Cantor, este fractal puede obtenerse mediante una sucesión infinita de extracciones.

Fractal (del latín fractus, "irregular", "fragmentado") es una palabra acuñada por el matemático Benoît Mandelbrot para describir la repetición "infinita" de patrones geométricos a diferentes escalas, los cuales muestran versiones cada vez más pequeñas de sí mismos. Las partes pequeñas de un fractal, explicaba Mandelbrot, son semejantes al todo, es decir, al conjunto completo. Lo más interesante es que el matemático demostró que la mayoría de las formas de la naturaleza son fractales. Estos se han utilizado para explicar fenómenos atmosféricos, analizar las redes vasculares y neuronales del cuerpo humano, calcular la longitud de las costas, explicar el crecimiento de los cerebros de los mamíferos, estudiar los seísmos... Incluso en telecomunicaciones se han diseñado antenas fractales, como las que utilizan los teléfonos celulares actuales, ya que mejoran el rendimiento y permiten reducir la longitud de los hilos de estas, disminuyendo a su vez el espacio que ocupan.

En el contexto de los fractales, la iteración se refiere a la aplicación repetida de una regla o un procedimiento para generar la forma o estructura compleja del fractal. En la creación del triángulo de Sierpiński, una fórmula matemática se aplica repetidamente, produciendo un patrón característico. La cantidad de veces que se aplica la fórmula se conoce como el nivel de iteración. La autosimilitud es una característica de los fractales que hace referencia a su capacidad para mantener un patrón o forma similar a sí mismos en diferentes escalas. En otras palabras, una porción de un fractal se asemeja a su forma completa, sin importar la escala en la que se observe. Esta propiedad se conoce como simetría fractal. La autosimilitud es una de las características que hacen que los fractales sean tan interesantes y únicos en el mundo de las matemáticas.

Para generar el triángulo de Sierpiński, vamos a utilizar Python Turtle, un módulo de Python que permite crear gráficos vectoriales mediante comandos simples. Estos comandos controlan un cursor, conocido como tortuga (turtle), que se mueve por la pantalla y dibuja líneas y figuras geométricas, permitiéndonos crear diseños personalizados. Es comúnmente utilizado en la enseñanza de la programación, ya que es fácil de entender y usar. Con Python Turtle, los estudiantes pueden aprender conceptos básicos de programación, como bucles, condicionales y funciones, mientras crean sus propios gráficos. Para utilizar Python Turtle, primero debemos importar el módulo en nuestro script. Luego, podemos crear una instancia de turtle y emplear los comandos mencionados anteriormente para dibujar en la pantalla. Hoy aprenderemos a dibujar el triángulo de Sierpiński con el módulo Python Turtle.

En el siguiente código Python utilizamos el módulo Turtle para dibujar un triángulo equilátero y el triángulo total se forma mediante iteraciones, acá tenemos el desglose del código comentado:

# -------------------------------------------------------------------------
# (| " TriánguloSierpinski.py                                           "|)
# (| "                                                                  "|)
# (| " Script que genera el fractal del triángulo de sierpinski para    "|)
# (| " mostrar a modo de ejemplo, cómo se realiza el procedimiento.     "|)
# (| "                                                                  "|)
# (| " Este código de ejemplo es de dominio público.                    "|)
# (| "                                                                  "|)
# (| " Developer: jorgechac© - Técnico Laboral en Programación UNAB     "|)
# (| " Visita  https://jorgechac.blogspot.com                           "|)
# (| "                                                                  "|)
# (| " Venta de accesorios Arduino/Raspberry Pi Pico/ESP32   	        "|)
# (| " Whatsapp y Ventas NEQUI +573177295861                            "|)
# (| " Bucaramanga - Colombia                                           "|)
# -------------------------------------------------------------------------
import turtle  # Importa la biblioteca turtle para gráficos
import math    # Importa la biblioteca math para cálculos matemáticos

# Función recursiva para dibujar el triángulo de Sierpinski
def sierpinski(t, order, size):
    if order == 0:           # Caso base: dibuja un triángulo equilátero
        for _ in range(3):
            t.forward(size)  # Dibuja un lado del triángulo
            t.left(120)      # Gira a la izquierda 120 grados
    else:
        # Llamadas recursivas para dibujar triángulos más pequeños
        sierpinski(t, order-1, size/2)  # Triángulo inferior izquierdo
        t.forward(size/2)  # Mueve la tortuga a la derecha
        sierpinski(t, order-1, size/2)  # Triángulo inferior derecho
        t.backward(size/2)  # Regresa a la posición original
        t.left(60)  # Gira a la izquierda
        t.forward(size/2)  # Mueve la tortuga hacia arriba
        t.right(60)  # Corrige la dirección
        sierpinski(t, order-1, size/2)  # Triángulo superior
        t.left(60)  # Regresa la dirección original
        t.backward(size/2)  # Vuelve a la posición de inicio
        t.right(60)  # Corrige la orientación

# Configuración del nivel del fractal y tamaño del triángulo
order = 5  # Nivel de recursión del fractal
size = 500 # Tamaño del triángulo principal

# Configuración de la pantalla de Turtle
screen = turtle.Screen()
screen.bgcolor("white")  # Color de fondo blanco
screen.setup(width=size + 50, height=(size * math.sqrt(3)) / 2 + 100)
# Ajusta el tamaño de la ventana

# Configuración de la tortuga para dibujar
t = turtle.Turtle()
t.speed("fastest")  # Velocidad máxima de dibujo
t.pencolor("green") # Color del lápiz

# Posiciona la tortuga para centrar el triángulo en la pantalla
t.penup()  # Levanta el lápiz para mover sin dibujar
t.goto(-size/2, -size/(2*math.sqrt(3)) - 30)
# Mueve la tortuga a la posición inicial, más abajo
t.pendown()  # Baja el lápiz para empezar a dibujar

# Llama a la función para dibujar el fractal
sierpinski(t, order, size)

# Finaliza el dibujo
turtle.done()


Finalmente después de ejecutar el código, se abrirá una nueva ventana y se comenzará a generar la grafica en Python, así:



Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.


Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.



También te puede interesar:


Generación de Formas de Onda en Python utilizando la libreria Matplotlib y Numpy

Dibujo de un arbol de navidad utilizando el módulo Python Turtle

ARBOL DE NAVIDAD EN PYTHON

Dibujando en Python utilizando la libreria Matplotlib y Numpy

Dibujando en Python utilizando el módulo Python Turtle

Dibujo del logotipo de Python utilizando el módulo Python Turtle


jueves, 6 de marzo de 2025

Generación de Formas de Onda en Python utilizando la libreria Matplotlib y Numpy

Bienvenido a mi blog, hoy hablaremos un poco de la generación de formas de onda, la cual es la producción de patrones de señales analógicas o digitales, periódicas o no periódicas. Esta acción, se realiza físicamente mediante dispositivos electrónicos llamados generadores de formas de onda. Un generador de forma de onda, produce formas de onda precisas, incluyendo sinusoidales, cuadradas, triangulares y de rampa, así como formas de onda arbitrarias definidas por el usuario utilizando secuencias de datos o transmitiendo continuamente desde un host o instrumento "peer-to-peer" dentro de sistemas de pruebas de señal mixta.

La generación de formas de onda por software se puede realizar con programas especializados que permiten crear, editar y administrar dichas formas de onda, el día de hoy veremos la generación básica de algunas formas de onda en Python, para ello haremos uso de Matplotlib, la cuál es una librería completa para crear visualizaciones estáticas, animadas e interactivas en Python, y de igual forma también usaremos la librería NumPy, que nos trae el poder computacional de lenguajes como C y Fortran a Python, un lenguaje mucho más fácil de aprender y usar. Vamos a ello directamente y veamos el código en Python con sus respectivos comentarios explicativos:

# -------------------------------------------------------------------------
# (| " FormasdeOnda.py                                                  "|)
# (| "                                                                  "|)
# (| " Script que genera las formas de onda más conocidas para mostrar, "|)
# (| " a modo de ejemplo, cómo se realiza el procedimiento.             "|)
# (| "                                                                  "|)
# (| " Este código de ejemplo es de dominio público.                    "|)
# (| "                                                                  "|)
# (| " Developer: jorgechac© - Técnico Laboral en Programación UNAB     "|)
# (| " Visita  https://jorgechac.blogspot.com                           "|)
# (| "                                                                  "|)
# (| " Venta de accesorios Arduino/Raspberry Pi Pico/ESP32   	        "|)
# (| " Whatsapp y Ventas NEQUI +573177295861                            "|)
# (| " Bucaramanga - Colombia                                           "|)
# -------------------------------------------------------------------------
import numpy as np # Importamos la biblioteca NumPy para proporciona un
                   # objeto de matriz N-dimensional y funciones
                   # matemáticas de alto rendimiento para operar en esas
                   # matrices.
import matplotlib.pyplot as plt  # Importamos Matplotlib para graficar
                                 # y visualizar

# Definición de parámetros
T = 1  # Duración de la señal en segundos
fs = 1000  # Frecuencia de muestreo en Hz (muestras por segundo)
t = np.linspace(0, T, int(T * fs), endpoint=False)  # Vector de tiempo

# Onda Senoidal
f_sine = 5  # Frecuencia de la onda senoidal en Hz
sine_wave = np.sin(2 * np.pi * f_sine * t) # Generación de la señal senoidal

# Onda Cuadrada
f_square = 2  # Frecuencia de la onda cuadrada en Hz
duty_cycle = 0.01  # Ciclo de trabajo (porcentaje del período en alto)
square_wave = np.where(np.mod(np.floor(2 * duty_cycle * fs * t), 2) == 0, 1, -1)
# Generación de la señal cuadrada

# Onda Triangular
f_triangle = 1  # Frecuencia de la onda triangular en Hz
triangle_wave = 2 * np.abs((10 * f_triangle * t) % 2 - 1) - 1
# Generación de la señal triangular

# Onda Diente de Sierra
f_sawtooth = 10  # Frecuencia de la onda diente de sierra en Hz
sawtooth_wave = 2 * (f_sawtooth * t - np.floor(f_sawtooth * t + 0.5))
# Generación de la señal diente de sierra

# Gráfica de las ondas
fig, axs = plt.subplots(4, 1, sharex=True, figsize=(8, 8))
# Crea una figura con 4 subgráficos

axs[0].plot(t, sine_wave)  # Grafica la onda senoidal
axs[0].set_title('Onda Senoidal')  # Título del primer gráfico

axs[1].plot(t, square_wave)  # Grafica la onda cuadrada
axs[1].set_title('Onda Cuadrada')  # Título del segundo gráfico

axs[2].plot(t, triangle_wave)  # Grafica la onda triangular
axs[2].set_title('Onda Triangular')  # Título del tercer gráfico

axs[3].plot(t, sawtooth_wave)  # Grafica la onda diente de sierra
axs[3].set_title('Onda Diente de Sierra')  # Título del cuarto gráfico

plt.xlabel('Tiempo (seg)')  # Etiqueta del eje X para todas las gráficas
plt.show()  # Muestra la gráfica

Finalmente después de ejecutar el código, se abrirá una nueva ventana y se comenzará a generar la grafica en Python con matplotlib, así:


Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.


Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.



También te puede interesar:


Dibujo de un arbol de navidad utilizando el módulo Python Turtle

ARBOL DE NAVIDAD EN PYTHON

Dibujando en Python utilizando la libreria Matplotlib y Numpy

Dibujando en Python utilizando el módulo Python Turtle

Dibujo del logotipo de Python utilizando el módulo Python Turtle


lunes, 1 de enero de 2024

Dibujo de un arbol de navidad utilizando el módulo Python Turtle

Bienvenido a mi blog, hoy hablaremos un poco de Python turtle, el cual es un módulo de Python que permite crear gráficos vectoriales mediante el uso de comandos simples. Estos comandos controlan un cursor, conocido como tortuga (turtle), que se mueve por la pantalla y dibuja líneas y figuras geométricas y nos permite crear diseños personalizados. Es comúnmente utilizado en la enseñanza de la programación, ya que es fácil de entender y usar. Con Python turtle, los estudiantes pueden aprender conceptos básicos de programación como bucles, condicionales y funciones mientras crean sus propios gráficos. Algunos ejemplos de cómo utilizar la función turtle incluyen:

  • Mover el cursor hacia adelante utilizando el comando "forward()"
  • Girar el cursor utilizando el comando "left()" o "right()"
  • Cambiar el color de la línea utilizando el comando "pencolor()"
  • Escribir texto en la pantalla utilizando el comando "write()"
  • Mostrar o ocultar el cursor utilizando el comando "showturtle()" o "hideturtle()"

Para utilizar la función turtle, primero debemos importar el módulo en nuestro script. Luego, podemos crear una instancia de turtle y utilizar los comandos mencionados anteriormente para dibujar en la pantalla. Hoy aprenderemos a dibujar un sencillo arbol navideño con el modulo Python Turtle.

En el siguiente código Python utilizamos el módulo Turtle para dibujar un patrón que representa un árbol de Navidad, se utiliza la biblioteca Turtle para crear un patrón visual con círculos y cuadrados. La figura se forma mediante iteraciones y se utilizan diferentes colores para los círculos en ciertos puntos del patrón. Este código utiliza dos tortugas, una para dibujar cuadrados (representando los niveles del árbol) y otra para dibujar círculos (representando las bolas de Navidad). El patrón se crea mediante bucles y la posición de las tortugas se ajusta en cada iteración. Finalmente, se agrega un mensaje de texto y la ventana se cierra al hacer clic, aca tenemos el desglose del codigo comentado:
# -------------------------------------------------------------------------
# (| " christmastree.py                                                 "|)
# (| "                                                                  "|)
# (| " Este sencillo y corto código en Python, utiliza el módulo Turtle "|)
# (| " para dibujar un patrón que representa un árbol de Navidad, se    "|)
# (| " utiliza la biblioteca Turtle para crear un patrón visual con     "|)
# (| " círculos y cuadrados. La figura se forma mediante iteraciones y  "|)
# (| " se utilizan diferentes colores para los círculos en ciertos      "|)
# (| " puntos del patrón.                                               "|)
# (| "                                                                  "|)
# (| " Este código de ejemplo es de dominio público.                    "|)
# (| "                                                                  "|)
# (| " Developer: jorgechac© - Técnico Laboral en Programación UNAB     "|)
# (| " Visita  https://jorgechac.blogspot.com                           "|)
# (| "                                                                  "|)
# (| " Venta de accesorios Arduino/Raspberry Pi Pico/ESP32   	        "|)
# (| " Whatsapp y Ventas NEQUI +573177295861                            "|)
# (| " Bucaramanga - Colombia                                           "|)
# -------------------------------------------------------------------------

# Se importar la biblioteca turtle para graficos simples
import turtle

# Se configura la pantalla con dimensiones 800x600
screen = turtle.Screen()
screen.setup(800, 600)

# Se crea un objeto turtle llamado 'circle' para representar las bolas
# de adorno
circle = turtle.Turtle()
circle.shape('circle')
circle.color('red')
circle.speed('fastest')
circle.up()

# Se crea un objeto turtle llamado 'square' para representar los bloques
# cuadrados del árbol
square = turtle.Turtle()
square.shape('square')
square.color('green')
square.speed('fastest')
square.up()

# Posiciona el objeto 'circle' en la parte superior del árbol y lo marca
# como circulo inicial
circle.goto(0, 280)
circle.stamp()

# Inicializar variable de ajuste
k = 0

# Bucle para dibujar los bloques del árbol y las bolas de adorno, es decir
# se itera para crear el patrón
for i in range(1, 17):
    y = 30 * i
    for j in range(i - k):
        x = 30 * j
        # Posiciona y marca el bloque en la posición actual y su reflejo
        # simétrico
        square.goto(x, -y + 280)
        square.stamp()
        square.goto(-x, -y + 280)
        square.stamp()

# Añade bolas de adorno de color rojo y amarillo en ciertas filas del árbol
    if i % 4 == 0:
        x = 30 * (j + 1)
        circle.color('red')
        circle.goto(-x, -y + 280)
        circle.stamp()
        circle.goto(x, -y + 280)
        circle.stamp()
        k += 2

    if i % 4 == 3:
        x = 30 * (j + 1)
        circle.color('yellow')
        circle.goto(-x, -y + 280)
        circle.stamp()
        circle.goto(x, -y + 280)
        circle.stamp()

# Cambia el color del objeto 'square' a marrón para representar el tronco
# del árbol
square.color('brown')

# Bucle para dibujar el tronco del árbol, es decir añadir más filas al
# patrón
for i in range(17, 20):
    y = 30 * i
    for j in range(3):
        x = 30 * j
        # Posiciona y marca el bloque del tronco y su reflejo simétrico
        square.goto(x, -y + 280)
        square.stamp()
        square.goto(-x, -y + 280)
        square.stamp()

# Crea un objeto turtle llamado 'text_turtle' para mostrar un mensaje
text_turtle = turtle.Turtle()
text_turtle.hideturtle()
text_turtle.up()
text_turtle.color('blue')
text_turtle.goto(350, -280)
text_turtle.write("Christmas tree in Python by jorgechac", align='right', font=('Arial', 10, 'bold'))

# Esperamos a que el usuario haga clic en la ventana para cerrarla
turtle.exitonclick()

Finalmente después de ejecutar el código, se abrirá una ventana independiente y se comenzará a generar el Arbol de Navidad, asi:




Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.



Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.




También te puede interesar:






martes, 26 de diciembre de 2023

ARBOL DE NAVIDAD EN PYTHON


Bienvenido a mi blog, hoy hablaremos un poco de como escribir codigo para realizar un sencillo arbol de navidad y visualizarlo en la consola de Python, utilizando para esto la herramienta Microsoft Visual Studio Code, para ello desglosare el codigo fuente y le ire añadiendo los comentarios para tratar de explicar lo que se esta haciendo paso a paso de la siguiente forma (sobra decir que tu visual studio code debe tener instalado la extension para trabajar con Python):



# -------------------------------------------------------------------------
# (| " Arbol.py                                                         "|)
# (| "                                                                  "|)
# (| " Este sencillo y corto código en Python, utiliza códigos de escape"|)
# (| " ANSI para imprimir en la consola colores y formato de texto;     "|)
# (| " Simulando la apariencia de un arbol de navidad en la consola.    "|)
# (| "                                                                  "|)
# (| " Este código de ejemplo es de dominio público.                    "|)
# (| "                                                                  "|)
# (| " Developer: jorgechac© - Técnico Laboral en Programación UNAB     "|)
# (| " Visita  https://jorgechac.blogspot.com                           "|)
# (| "                                                                  "|)
# (| " Venta de accesorios Arduino/Raspberry Pi Pico/ESP32   		"|)
# (| " Whatsapp y Ventas NEQUI +573177295861                            "|)
# (| " Bucaramanga - Colombia                                           "|)
# -------------------------------------------------------------------------

# Se define una clase llamada 'Color' que contiene algunos atributos que
# representan códigos de escape ANSI para cambiar el color del texto en la
# consola. Los atributos son:

# reset: Restablece el color a su valor por defecto.
# rojo: Establece el color del texto a rojo.
# verde: Establece el color del texto a verde.
# cafe: Establece el color del texto a un tono de café utilizando el formato
# de color RGB.

class Color:
    reset = "\033[0m"
    rojo = "\033[91m"
    verde = "\033[92m"
    cafe = "\033[38;2;139;69;19m"

# Se utiliza un bucle for para imprimir una serie de líneas que representan
# un árbol de Navidad. La forma del árbol está compuesta por caracteres '^'
# de diferentes longitudes. El color del árbol es verde (Color.verde), y las
# líneas se centran en un espacio de 40 caracteres.

for i in range(1, 30, 2):
    print((Color.verde + ('^' * i)).center(40))

# Se utiliza otro bucle for para imprimir tres líneas horizontales que
# representan las patas del árbol. Estas líneas son de color café (Color.cafe)
# y contienen el texto '|||'. Cada línea se centra en un espacio de 50 caracteres.
    
for leg in range(3):
    print((Color.cafe + '|||').center(50))

# Se imprimen líneas adicionales que representan el tronco del árbol. El tronco
# consiste en las líneas '\___/' de color café (Color.cafe). Estas líneas se centran
# en un espacio de 50 caracteres.
    
print((Color.cafe + '\___/').center(50))

# Se imprimen líneas horizontales de guiones rojos (Color.rojo) para decorar la
# parte superior e inferior del árbol. Estas líneas se centran en un espacio de
# 40 caracteres y tienen una longitud de 25 guiones.

print((Color.rojo + ('-' * 25)).center(40))

# Se imprime el mensaje '¡Feliz Navidad!' en el centro y con el color de texto
# restablecido (Color.reset). La línea se centra en un espacio de 40 caracteres.

print((Color.reset + '¡Feliz Navidad!').center(40))

print((Color.rojo + ('-' * 25)).center(40))

Los códigos de escape ANSI son secuencias de caracteres que se utilizan para controlar el formato y el color del texto en terminales compatibles con ANSI. Estas secuencias comienzan con el carácter de escape \033 seguido de parámetros y códigos de control. En este caso, se están utilizando para cambiar el color del texto en la consola.

En el código proporcionado tenemos:

\033[0m:  Restablece todos los estilos y colores a los valores predeterminados.

\033[91m: Establece el color del texto a rojo.

\033[92m: Establece el color del texto a verde.

\033[38;2;139;69;19m: Establece el color del texto a un tono de café mediante el formato de color RGB. El formato es \033[38;2;R;G;Bm.

Estos códigos de escape ANSI son específicos de las terminales que admiten ANSI, como la mayoría de las terminales en sistemas operativos Unix/Linux y también en Windows si se utiliza un emulador de terminal compatible.

Finalmente después de ejecutar el código, se abrirá la consola de python y se comenzará a generar el Arbol de Navidad, así:

Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.


Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.



También te puede interesar:


Dibujando en Python utilizando la libreria Matplotlib y Numpy

Dibujando en Python utilizando el módulo Python Turtle

Dibujo del logotipo de Python utilizando el módulo Python Turtle


lunes, 6 de noviembre de 2023

YouTube bloquea los ad-blockers

Bienvenido a mi blog, hoy hablaremos un poco de la reciente ofensiva de YouTube contra los bloqueadores de publicidad, que ha desencadenado una oleada de cientos de miles de desinstalaciones de este tipo de extensiones de navegadores (como el famoso y útil adblock plus), los cuales sin duda son una de las funcionalidades más útiles y necesarias para disfrutar de una experiencia de navegación razonable y, sobre todo, segura.

Vamos a aprender el día de hoy como evadir dicha restricción.


De acuerdo con la imagen anterior, "los ad blockers no están permitidos en YouTube", ya que "los anuncios permiten que YouTube sea gratis para miles de millones de usuarios en todo el mundo". Y luego se muestran dos botones para tomar acciones ante el aviso: desactivar el bloqueador para permitir los anuncios, o probar YouTube Premium. Es curioso que esto pase poco más de un año después de que Google obligara a <YouTube Vanced> a cerrar por "razones legales". Con este hecho Google logró eliminar a la mejor alternativa de YouTube Premium, pero tal parece que no es suficiente y ahora va contra todos los softwares de bloqueo de anuncios en general.

Aunque hay otras formas de bloquear los anuncios, como, por ejemplo, permitiendo su carga, pero no mostrándolos. Bienvenidos a FadBlock: Friendly Adblock for Youtube™ (también disponible para Firefox, Opera, Edge y Safari) una extensión que permite que el propietario del vídeo siga cobrando, pero que tú no veas el vídeo, y que el anunciante no consiga su objetivo de molestarte. Y si Fadblock, por la razón que fuese, desapareciese, aparecerían otros. Es lo que tiene la tecnología de hoy en día: que no se puede parar.

Lo que sí se puede parar son los modelos de negocio que los usuarios no quieren. Los usuarios hemos dicho a gritos que no queremos ser molestados con anuncios intrusivos cuando queremos ver un vídeo, y se han instalado bloqueadores para evitar esos anuncios molestos por centenares de millones. Que ahora venga YouTube y demuestre que eso ya está provocando un problema a su modelo de negocio no quiere decir que eso sea malo en sí, sino que su modelo de negocio está mal planteado, y que tendrá que replanteárselo con otros parámetros o de otras formas.

Los anuncios de YouTube son infumables e insoportables. Los anunciantes que se promocionan en YouTube son compañías que saben perfectamente que la reacción que provocan sus anuncios es la de soltar un madrazo cada vez que te aparecen y acordarle de todos los muertos puestos en fila a la persona o empresa que decidió pagarlos, pero por la razón que sea, siguen creyendo de que «la publicidad que funciona es la que molesta». Pues no es así, si nos molesta y siempre encontraremos la forma de evitarla, no tenemos por qué aguantarla.

Finalmente, si hay cosas que no quieres ver, no las veas, nadie debería poder obligarte. Ese fue el principio "fundacional" de la internet, y así debería ser siempre: una red al servicio de los usuarios y de aquellos que quieren compartir información.





"La palabra 'YouTube', así como los logotipos oficiales, son marcas comerciales con copyright © de Google LLC. Todos los derechos de marca y autor están reservados por sus respectivos propietarios y licencias correspondientes."


Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.



Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último, si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.




También te puede interesar:


sábado, 29 de julio de 2023

Arduino UNO R4 WiFi

Bienvenido a mi blog, hoy hablaremos un poco de la placa Arduino UNO R4 WiFi, Arduino es una plataforma de creación de electrónica de código abierto, la cual está basada en hardware y software libre, flexible y fácil de utilizar para los creadores o desarrolladores, para hacerlo, utiliza el lenguaje de programación Arduino (basado en Wiring) y el Software Arduino IDE (basado en Processing, una herramienta basada en Java). Recordemos que Arduino es un proyecto, un ecosistema y no solo un modelo concreto de placa. Como todas las placas Arduino y compatibles, tiene semejanzas con otras de sus hermanas: es la evolución de Arduino UNO R3 y Arduino UNO WiFi Rev2. En este post podrás comprender todo lo que necesitas saber sobre esta placa y comenzar a desarrollar tus propios proyectos DIY con Arduino UNO R4 WiFi. Antes de iniciar quiero recordar que el nuevo Arduino IDE 2.0 esta ahora basado en el marco Eclipse Theia.

Theia se basa en el mismo código subyacente que el popular y ampliable "Visual Studio Code" de Microsoft, esto permite que Arduino avance a un editor más potente y moderno y no olvidemos que ahora el DARK MODE o Modo Oscuro, ya viene nativo.



Arduino UNO R4 WiFi combina la potencia de procesamiento y los emocionantes nuevos periféricos del microcontrolador RA4M1 de Renesas (32 bits) con la potencia de conectividad inalámbrica del ESP32-S3 de Espressif. Además de esto, el UNO R4 WiFi ofrece una matriz de LED de 12x8 integrada, un conector Qwiic, VRTC y un pin de apagado, lo que cubre todas las necesidades potenciales que tendrán los Makers para su próximo proyecto. Con Arduino UNO R4 WiFi, puede actualizar fácilmente su proyecto y agregar conectividad inalámbrica para ampliar el alcance de su configuración actual. Si este es tu primer proyecto, este tablero tiene todo lo que necesitas para despertar tu creatividad.

Exploremos lo que el Arduino UNO R4 WiFi tiene para ofrecernos:



  • Compatibilidad de hardware con factor de forma UNO: El UNO R4 WiFi mantiene el mismo factor de forma, pinout y voltaje operativo de 5 V que su predecesor, el UNO R3, lo que garantiza una transición perfecta para los escudos y proyectos existentes.
  • Memoria ampliada y reloj más rápido: el UNO R4 WiFi cuenta con mayor memoria y una velocidad de reloj más rápida, lo que permite cálculos más precisos y un manejo sin esfuerzo de proyectos complejos.
  • Periféricos integrados adicionales: el UNO R4 WiFi presenta una gama de periféricos integrados, incluidos un DAC de 12 bits, CAN BUS y OPAMP (Amplificador Operacional), que brindan capacidades ampliadas y flexibilidad de diseño.
  • Tolerancia extendida de 6-24 V: el UNO R4 WiFi admite un rango de voltaje de entrada más amplio, lo que permite una integración perfecta con motores, tiras de LED y otros actuadores utilizando una sola fuente de alimentación. Eso es especialmente interesante, ya que 24V es el voltaje estándar en la industria, especialmente en entornos con controladores PLC y es una opción diseñada para traernos altos beneficios e integrarnos más en aplicaciones industriales.
  • Compatibilidad con HID: con la compatibilidad con HID incorporada, el UNO R4 WiFi puede simular un mouse o un teclado cuando se conecta a una computadora a través de USB, lo que facilita el envío de pulsaciones de teclas y movimientos del mouse, similar a las caracteristicas encontradas en Arduino Leonardo o Sparkfun Pro Micro.
  • Wi-Fi® y Bluetooth®: El UNO R4 WiFi aloja un módulo ESP32-S3, lo que permite a los makers y entusiastas, agregar conectividad inalámbrica a sus proyectos. En combinación con Arduino IoT Cloud, los diseñadores pueden monitorear y controlar sus proyectos de forma remota. Se cuenta con Wi-Fi® 4, el cual trabaja a una banda de 2.4 GHz y es compatible con el estándar 802.11 b/g/n, ademas tambien posee soporte para Bluetooth® 5 LE.
  • Conector Qwiic: El UNO R4 WiFi cuenta con un conector Qwiic I2C, lo que permite una fácil conexión a los nodos del extenso ecosistema Qwiic. Los cables adaptadores también permiten la compatibilidad con sensores y actuadores basados ​​en otros conectores.
  • Compatibilidad con RTC alimentado por batería: el UNO R4 WiFi incluye pines adicionales, incluido un pin "OFF" para apagar la placa y un pin "VRTC" para mantener el reloj interno en tiempo real encendido y en funcionamiento.
  • Matriz LED: El UNO R4 WiFi incorpora una matriz LED roja brillante de 12x8 (96 puntos), ideal para proyectos creativos con animaciones o trazado de datos de sensores, eliminando la necesidad de hardware adicional y es completamente direccionable ya que utiliza Charlieplexing para controlar individualmente cada punto. Para comenzar, simplemente descargue el núcleo "Arduino UNO R4 boards". Esto le otorgará acceso a la API Arduino_LED_Matrix fácil de usar, lo que le permitirá programar y controlar la matriz LED. Podemos encontrar ayuda para LED Matrix gracias a una herramienta gráfica, diseñada específicamente para ayudar a los Makers a crear y exportar sus propias animaciones. De esta manera, podemos dar rienda suelta a nuestra creatividad y aprovechar al máximo esta emocionante característica. Encuentra más información de esta herramienta gráfica en el sitio web de Arduino Labs.
  • Diagnóstico de errores de tiempo de ejecución: el UNO R4 WiFi incluye un mecanismo de captura de errores que detecta fallas en el tiempo de ejecución y proporciona explicaciones detalladas y sugerencias sobre la línea de código que causa la falla.



Con todas estas características incluidas en el conocido factor de forma UNO, ahora es el momento perfecto para actualizar su proyecto o embarcarse en su viaje como Maker. El UNO R4 WiFi ofrece una versatilidad y posibilidades incomparables para creadores de todos los niveles.



Compatible con Arduino IoT en la nube:





Utilice su placa en la nube IoT de Arduino, una forma simple y rápida de garantizar una comunicación segura para todas sus cosas conectadas, pruebe la nube Arduino IoT gratis!


Especificaciones Técnicas:

Board     Nombre                             Arduino® UNO R4 Wi-Fi

            SKU                                     ABX00087

Microcontrolador    Renesas RA4M1 (Arm® Cortex®-M4)

USB     USB‑C®                            Puerto de programación

Pines     Pines de E/S Digitales                     14

Pines     Pines de entrada Analógica                     6

            DAC                                     1

            Pines PWM                           6

Comunicación     UART                                     Sí, 1x (pin D0, D1)

            I2C                                     Sí, 1x (pin A4, A5, SDA, SCL)

            SPI                                     Sí, 1x (pin D10-D13, ICSP header)

         CAN                                                     Sí 1 bus CAN (pin D4, D5, external                                                                                                                        transceiver is required)

Power     Voltaje de operación                     5 V (ESP32-S3 es 3,3 V)

            Voltaje de entrada (VIN)                     6-24 Vcc

            Corriente CC por pin de E/S                     8mA

Velocidad de reloj    Núcleo principal                             48 MHz

            ESP32-S3                                     hasta 240 MHz

Memoria                    RA4M1                             Flash de 256kB, RAM de 32 kB

            ESP32-S3                                     ROM de 384 kB, SRAM de 512 kB

                                    EEPROM                                                      8kB

Dimensiones            Ancho                             68,85mm

            Longitud                                     53,34 mm


Documentación:






¿Qué hay de nuevo en resumen en R4 a diferencia de R3?

  • Pasamos de tener 2 KB de RAM (UNO R3) a tener 32 KB de RAM (UNO R4) y de 32 KB de memoria Flash (UNO R3) a un total de 256 KB de memoria Flash (UNO R4).
  • La frecuencia del procesador también se triplica, pasando de los 16 MHz (UNO R3) a los 48 MHz (UNO R4).
  • Se agregan los puertos DAC, CAN BUS, OPAMP y SWD de 12 bits, permitiendo desarrollar proyectos más avanzados.
  • Se utiliza el conector USB-C para la conexión con el ordenador, adaptandose a los nuevos tiempos.
  • Dispositivo HID: permite hacer proyectos interactivos mucho más interesantes, creando interfaces sin apenas esfuerzo y tiempo.


Pinout for Arduino UNO R4 WiFi


¿Puedo usar hardware compatible con Arduino UNO R3 con Arduino UNO R4 WiFi?

Sí, Arduino UNO R4 WiFi fue diseñado específicamente para garantizar la compatibilidad con shields anteriores y hardware compatible desarrollado para Arduino UNO R3. El UNO R4 WiFi mantiene la misma compatibilidad mecánica y eléctrica, lo que le permite usar sin problemas sus escudos y hardware existentes con la nueva placa. Esto facilita la actualización al UNO R4 WiFi sin necesidad de cambios significativos o adaptaciones a sus proyectos.


¿Puedo usar hardware compatible con Arduino UNO WiFi Rev2 con Arduino UNO R4 WiFi?

Sí, Arduino UNO R4 WiFi es totalmente compatible con shields y hardware anteriores desarrollados para UNO WiFi Rev2. Ambas placas comparten el mismo factor de forma UNO y un voltaje operativo de 5 V. Sin embargo, es importante tener en cuenta que, según el diseño, puede haber cambios en los elementos de distribución de pines. Consulte la documentación y los diagramas de pines para obtener detalles específicos y consideraciones de compatibilidad.


¿Puedo usar mi boceto desarrollado para el Arduino UNO R3 en el UNO R4 WiFi?

Sí, si su boceto se desarrolló utilizando la API de Arduino. En caso de que esté utilizando instrucciones solo disponibles para la arquitectura AVR, es necesario realizar algunos cambios para garantizar la compatibilidad.


¿Todas las bibliotecas compatibles con UNO R3 también son compatibles con UNO R4 WiFi?

No, algunas bibliotecas de UNO R3 usan instrucciones de la arquitectura AVR que no son compatibles con la arquitectura de UNO R4 WiFi, sin embargo, hay bibliotecas que ya se han portado como parte del programa de primeros usuarios o se basan en la API de Arduino.




Si trabajas como yo con Fritzing, recuerda que ya se creo la librería 'Arduino UNO R4 Wi-Fi' para realizar nuestros esquemáticos.


Bibliografía https://www.arduino.cc/


"La palabra 'Arduino' y los logotipos oficiales son marcas comerciales con copyright © de Arduino AG. El software Arduino IDE es propiedad de sus respectivos autores. La licencia principal que rige los productos de Arduino es la Licencia Pública General de GNU (GPL) y la Licencia Pública General Menor de GNU (LGPL). Todos los derechos están reservados por sus respectivos propietarios y licencias correspondientes."




Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.


Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.



También te puede interesar:


Arduino GIGA R1 Wi-Fi

SparkFun Pro Micro

Arduino Pro Mini

Simulador Wokwi - Generalidades

Nuevos Microcontroladores Raspberry Pi Pico W, H y WH

Las 10 formas más fáciles de averiar tu Arduino

FTDI como programador ISP

Arduino UNO Rev3

Arduino NANO v3

Arduino UNO WiFi Rev2

Nueva Placa Arduino Nano RP2040 Connect

Nuevo Microcontrolador Raspberry Pi Pico

Nueva Raspberry Pi 400

Convierte fácilmente una Fuente ATX de PC en una Fuente para alimentar tus proyectos Arduino y/o Raspberry Pi

Conociendo La Familia de los Módulos WiFi ESP8266

Cómo Detectar un Arduino Falsificado