martes, 17 de mayo de 2022

Reloj despertador con Tinkercad

Fue en una entrada anterior donde os presenté Tinkercad, y en esta entrada os dejo la simulación de un despertador básico con el código incluido. 

En suma, no es más que un ejercicio de programación, ya que en Tinkercad no puedo usar un módulo RTC (Real Time Clock) porque así todo sería más fácil y preciso en el diseño del despertador.

Lo interesante es la aproximación lógica, usando unas pocas líneas de código, de lo que puede ser un despertador con Arduino UNO.

Es interesante también el control del buzzer y el control lumínico del display.

 

El reloj se inicia con un valor de hora por defecto, y pulsando el botón SETUP durante un breve tiempo podremos configurar la hora para que suene el despertador y la hora del reloj. Con los otros dos botones podemos incrementar la hora y los minutos, y así lo programaremos; pulsando finalmente el botón SETUP guarda los datos.

La alarma suena un minuto, y podemos apagarla  antes de que transcurra ese minuto usando la tecla STOP.

El hardware usa un sensor que al aumentar la luz de ambiente aumenta la iluminación del display; en la penumbra, la luz de fondo del display se apaga haciendo que la lectura del mismo no moleste en esas circunstancias.

Con Tinkercad vienen a mí todas las horas dedicadas a programar microcontroladores y autómatas industriales en una época determinada de mi vida.

Esta entrada creo que cuenta con un interesante valor didáctico para los que quieran aprender a programar estos "juguetes". Ya me dirán. 

 

viernes, 13 de mayo de 2022

Jon Allen - Mercy

De cada paso en falso, de cada error, todavía conservo cicatrices que me afligen. Por cada mentira que creí hay un fantasma en mi cabeza al que le cuesta mucho partir. Así que no me hagas confesar con tus propias cartas apretadas en tu pecho. Dame tiempo y una mente tranquila. Dame misericordia.

Give me time
And a peaceful mind
Give me mercy

 

domingo, 24 de abril de 2022

Tinkercad y Arduino UNO: Semáforo peatonal

Tinkercad es una aplicación web gratuita que entusiasma a cualquiera por su facilidad de uso, y proporciona a cualquier persona las habilidades básicas para la innovación: diseño 3D, electrónica y codificación.

Tinkercad es una aplicación online que lo único que requiere para su uso es registrarse.

Como siempre, no pretendo en esta entrada daros un curso de Tinkercad, pero sí os brindo un ejemplo didáctico de lo que puede uno hacer para que los más jóvenes se aferren al nuevo mundo que se avecina.

Con cinco diodos LED, dos rojos, dos verdes y uno amarillo, un pulsador, una placa (virtual) de Arduino UNO, tres resistencias y un par de bloques de código, construiremos y visualizaremos el funcionamiento de un semáforo peatonal. 


 Al presionar el pulsador, la secuencia lumínica de los LEDs cambia para dar prioridad de paso a los peatones en una zona muy concurrida de tráfico; de verde pasa amarillo durante dos segundos, y luego a rojo para detener a los vehículos. La luz roja de peatones pasa a verde después de dos segundos que se puso la luz roja para vehículos. Es así como introducimos una componente de retardo para evitar que se precipite el paso de los peatones cuando cualquier vehículo pueda despistarse y, por inercia, no se detenga exactamente cuando la luz roja de tráfico lo avise.

La secuencia de iluminación y control del semáforo está descrita en el siguiente código de bloques:

El código de texto es el siguiente:

// C++ code
// Cotidiana Place

void setup()
{
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(2, INPUT);
  pinMode(9, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(12, OUTPUT);
}

void loop()
{
  while (1 == 1) {
    digitalWrite(11, HIGH);
    digitalWrite(10, HIGH);
    if (digitalRead(2) == 1) {
      delay(2000); // Espera por 2 segundos
      digitalWrite(10, LOW);
      digitalWrite(9, HIGH);
      delay(3000); // Espera por 3 segundos
      digitalWrite(9, LOW);
      digitalWrite(8, HIGH);
      delay(2000); // Espera por 2 segundo
      digitalWrite(11, LOW);
      digitalWrite(12, HIGH);
      delay(10000); // Espera por 10 segundos
      digitalWrite(8, LOW);
      digitalWrite(12, LOW);
    }
  }
}

Para simular el circuito picamos en el siguiente enlace, y hacemos clic en Simular:


Luego hacemos clic en Iniciar simulación, y presionamos con el puntero del ratón el pulsador del circuito:

Pueden simularlo también picando sobre la entrada de Tinkercad correspondiente insertada en la cabecera de esta entrada de mi blog.

Espero que le entusiasme como me entusiasmó a mí. Gracias por la lectura de este blog.

domingo, 20 de marzo de 2022

Minetest completo en Debian Buster

Como ya os describí en la entrada Minetest: juego de sandbox de bloques libre, sin una línea de juego definida, los videojuegos no lineales o sandbox comienzan desde cero generando todo lo necesario para ir avanzando y transformando un mundo virtual propio.

En esta entrada os muestro lo que podemos encontrar en los repositorios de Debian 10 (Buster) sobre este estupendo juego, que incluyen más de 16 MODS.

Seré breve, porque no requiere su instalación esfuerzo alguno, y la configuración y uso de los mundos, texturas y Mods, queda al albedrío de cada jugador.

Abrimos Synaptic (Aplicaciones o Inicio -> Sistema -> Gestor de paquetes Synaptic), y buscamos usando la palabra clave Minetest:

Los seleccionamos, y al pulsar Aplicar comienza el proceso de instalación:

Tal como se muestra en la imagen, está muy completo, listo para entretener y, al parecer, educar. Ciertos estudios aportan que este tipo de juegos pueden potenciar ciertas habilidades cognitivas, potenciando la creatividad y la construcción de historias gráficas donde el relato y el límite está en el propio jugador. Este tipo de juegos, Sandbox, es un espacio virtual donde el jugador está obligado a interactuar en un mundo que es su propio medio, aprendiendo en cada partida aportando la mejor solución ante el reto que se presenta. Una especie de constructivismo empírico en un medio virtual.

La versión es la Minetest 0.4.17.1:

sábado, 12 de marzo de 2022

Firma digital en Debian Buster

 

Para poder usar una tarjeta inteligente en el sistema operativo Debian Buster debemos de instalar una serie de paquetes que permitan leer las contraseñas y los números PIN de las herramientas de cifrado y firmas digitales de forma segura.

Una tarjeta inteligente es un dispositivo físico, de aspecto similar a una tarjeta de crédito, difícil de falsificar o copiar. Puede almacenar y procesar de forma segura cierta cantidad de información.

Empecé por instalar con Synaptic “pinentry”, que es un paquete que contiene una serie de programas que permiten a GnuPG (software libre de firmas digitales y cifrado desarrollado por el programador y criptógrafo alemán Werner Koch) leer las contraseñas y números PIN de forma segura.

Pinentry-gtk2 implementa el cuadro de diálogo para introducir el PIN, y es ideal cuando se usa software de encriptación como GnuPG o cualquier otro cliente que use el mismo software. El protocolo es abierto, es decir, no propietario y, por tanto, no está vinculado a ningún producto de una empresa en particular.

También instalé pinentry-qt, así dispongo del cuadro de diálogo tanto para KDE como para Gnome y XFCE con pinentry-gtk2.

Luego instalé “pcscd”, un demonio para acceder a las tarjetas inteligentes usando PC/SC (Personal Computer/SmartCard) que ofrece, ademas de los que ofrece el sistema operativo, otros servicios y funciones comunes a las aplicaciones (Middleware); así, puede gestionar datos, la autenticación, etc.
PC/SC (Personal Computer/Smart Card) es un conjunto de especificaciones para la integración de tarjetas inteligentes en ordenadores personales, siendo de código abierto la PC/SC Lite, especificación para uso de tarjetas inteligentes con GNU Linux.

En otro paquete, llamado “pcsc-tools”, se encuentran diversas herramientas que podemos usar los usuarios de PC/SC, entre la que está “pcsc_scan”, con la que podemos, usando la línea de comandos, escanear las tarjetas inteligentes y mostrar los eventos detectados, como inserción, extracción y análisis de la tarjeta.

Instalaremos también el controlador o driver, "libccid", para poder usar las tarjetas inteligentes con protocolo CCID (Chip Card Interface Device) a través de los lectores de tarjeta USB. Se comunica con los lectores de tarjeta a través del administrador de recursos PC/SC Lite (pcscd).

Además, para poder usar tarjetas criptográficas en general compatibles con PKCS#11 y PKCS#15, y en particular, por ejemplo, en el DNIe, debemos instalar opensc y opensc-pkcs11.
OpenSC proporciona un conjunto de librerías y utilidades para acceder a un elevado número tarjetas inteligentes. Se enfoca principalmente en tarjetas que soportan operaciones criptográficas. Facilita su uso en aplicaciones de seguridad como encriptación de correo, autenticación y firma digital.
La compatibilidad con las tarjetas depende también de la versión de la tarjeta, la versión del sistema operativo de la tarjeta y el subprograma precargado.
Suelen admitir opensc y opensc-pkcs11 sólo un subconjunto de operaciones posibles para su tarjeta. En ocasiones, como la inicialización de la tarjeta, puede requerir software propietario de terceros.

Y, por qué no, añadimos también un módulo PAM (Plugable Authentication Module), que con él logramos una forma de autenticación flexible utilizando esta aplicación o módulo, permitiendo así a las demás aplicaciones y software abstraerse del proceso de identificación.

Las funciones adicionales incluyen la verificación completa de los datos de la tarjeta mediante cadenas de certificados y listas de revocación de certificados. Disponemos así de asignación avanzada de nombres de usuario, incluidos LDAP (Lightweight Directory Access Protocol), Active Directory (terminología Microsoft relacionada con protocolos LDAP, DNS, y otros) y Kerberos (otro protocolo más, éste creado por el MIT). 

El módulo libpam-pkcs11 incluye todas las funciones para usar de este modo PKCS#11 con las tarjetas inteligentes.

sábado, 26 de febrero de 2022

El precio de la libertad


Nunca hubo una guerra buena, pero mirar hacia otro lado cuando al vecino lo pisa un tirano sin escrúpulos dice muy poco de cualquiera. No hace muchos años, ya hubo antes un conflicto no muy lejos de donde hoy se inicia una guerra, pero, en aquella ocasión, Europa nunca hubiera movido un dedo si no fuera porque los norteamericanos iban delante. Hoy parece que no ha cambiado nada, y el sátrapa en cuestión nos ha tomado la medida. Ya entra a saco, ya puesto, amenazando la integridad de Suecia y Finlandia.

En nuestro paraíso, dejar que el tiempo se haga cargo de este lamentable episodio supondrá un reguero de muertes anónimas que no alterará la rutina diaria de nadie, pero pienso que es una auténtica vergüenza contemplar pasivamente el desamparo en que queda un pueblo amigo abandonado al devenir de la suerte y dejándolo a los pies de los caballos, esperando que la providencia de un sátrapa nos contente a todos brindando una paz servil para que cese la guerra.  

Como en todos los conflictos bélicos, la vida de muchos inocentes acabará aquí, sin olvidar la de los soldados y de cualquier otra persona que pudiera correr la misma suerte, pero no es menos cierto que destaca la indiferencia del mundo hacia los inocentes cuando sufren la represión y la muerte de taimados canallas.

Dejo aquí una cita del filósofo británico Jhon Stuart Mill, que, para el que lo pille, entenderá por qué hay que apretarse los machos con un elemento como Putin, porque no sería de extrañar que cogiera carrerilla y llegara a las puertas de nuestras casas:  

“La guerra es una cosa fea, pero no la más fea de las cosas. El deteriorado y degradado estado de sentimiento moral y patriótico que piensa que nada vale la guerra es mucho peor. La persona que no tiene nada por lo que estar dispuesta a pelear, nada más importante que su propia seguridad personal, es una criatura miserable y no tiene ninguna posibilidad de ser libre a menos que sea hecha y mantenida por los esfuerzos de hombres mejores que él.”


La música del vídeo "Himno a los Caídos" es de John Williams, y el vídeo honra a los soldados que amparan las libertades que hoy en medio mundo se disfrutan.

viernes, 25 de febrero de 2022

Moodle: descarga masiva de los envios en tareas

 Estos días me hicieron la siguiente pregunta:

"¿Hay alguna forma de descargar simultáneamente todos los archivos de los envíos de los alumnos en las tareas?"

Pues sí. Vamos a ver cómo:

Primero accedemos a la tarea correspondiente:


En el "Sumario de calificaciones" procedemos como habitualmente lo hacemos para corregir la tarea:


Seleccionamos el usuario o los usuarios correspondientes (en este caso sólo un usuario):


Al final del formulario "Entregar varios archivos" disponemos de un desplegable que muestra diversas acciones que podemos realizar con los usuarios seleccionados; en nuestro caso, seleccionamos "Descargar los envíos seleccionados":


Al hacer clic en "Ir" aparece un aviso preguntando si queremos descargar los envíos seleccionados:


 Aceptamos.

Debemos tener activado "Descargar envíos en carpetas" para que al descargar los archivos de varios usuarios aparezcan ubicados en las carpetas correspondientes a cada uno de ellos.

Al cabo de un rato, aparece la descargar del archivo ZIP:


 Después de descomprimirlo obtendremos la carpeta con el nombre del alumno correspondiente y los archivos que envió en la tarea; si son varios alumnos, en el archivo ZIP se encontrarán todas las carpetas de dichos alumnos con los correspondientes archivos enviados en la tarea en cada una de ellas.


En este caso el alumno envió dos archivos en la tarea correspondiente, y disponemos de ellos en una carpeta que lleva su nombre: