Últimas entradas del blog

289 entradas

Raspberry Pi, manejando un keypad de 4x4 botones

Raspberry Pi: manejando un keypad de 4×4 mediante Shell Script

Aquí traigo un pequeño code-kata en Shell Script para manejar un keypad conectado a una Raspberry Pi. Es un código fuente que configura, mediante el sistema de ficheros, el acceso a los PINs del GPIO. Este pequeño programa, se puede traducir a cualquier otro lenguaje de programación. Se puede traducir directamente, ya que el manejo del GPIO en la Raspberry Pi, mediante el sistema de ficheros, es compatible e independiente de cualquier lenguaje de programación.

Raspberry Pi programando relés en el tiempo

Raspberry Pi & GNU/Linux: encendiendo y apagando cosas

Jugando y jugando con la Raspberry Pi, con mi nuevo octo-relé 😛 que he conseguido encontrar una forma muy fácil de programar acciones en el tiempo, sin usar engorrosas instalaciones de programas. Es decir, aquí traigo un howto para programar encendidos y apagados, de lo que quieras, de cualquier cosa. Simplemente usando un sencillo script programado en Shell Script, y el programador de tareas que todo GNU/Linux tiene. Me explico, tendremos este esquema de todo conectado: Raspberry Pi <=> Relés <=> Cosas que queremos encender y apagar Recapitulando, a la Raspberry Pi le podemos conectar relés, que trabajan a 5v/3v a los pines de entrada y salida llamados GPIO. Por otro lado, tenemos el problema de que las cosas que queremos encender y apagar tienen voltajes distintos, corriente alterna quizá, e intensidades que nos pueden fundir la Raspberry Pi. Entonces le ponemos relés entre las cosas y la Raspi, que simplemente van a dar paso a la corriente o no.

Raspberry Pi Netflix home 1

Instalando Netflix en la Raspberry Pi con Kodi

Hoy traigo algo divertido para los que nos gusta probar software. Simplemente se trata de un howto para poder ver en la Raspberry Pi, el aclamado Netflix. También debe servir para cualquier ordenador con GNU/Linux. Y en cuestión de pagos, sólo te hace falta estar suscrito a Netflix. Te propongo usar el programa de centro multimedia llamado Kodi, el add-on de Netflix, y activaremos otros add-ons de InputStream para la reproducción de vídeo en tiempo real usando el protocolo RTMP y el add-on de vídeo adaptativo. Me ha costado un poco encontrar la información correcta y actualizada. Además, mientras que probaba y probaba, escribiendo este post, los creadores han actualizado el add-on de Kodi. Así que aquí estoy compartiendo los resultados, poniendo mi granito de arena informático.. 😀

Symfony internacionalizando i18n traducciones

Symfony: tutorial 19: idiomas, internacionalizando, el Locale

Aquí estoy de nuevo con otro code-kata sobre Symfony. Este post es un repaso en Symfony Flex con respecto a la traducción de idiomas. Es decir, en este post voy a tratar de ser conciso, sin demasiados detalles, para tratar el tema de tener una página traducida en varios idiomas. Es decir, una vez más, siguiendo la planificación sobre el repaso a Symfony, que llegamos a un tema un poco complicado, la internacionalización, que abreviado es I18N. Con este post, si lo sigues mientras construyes tu proyecto, en cuestión de minutos podrás tener el esqueleto de una web multidioma totalmente funcional. Doy por sentado que llevamos bien el resto de temas como Doctrine, los controladores, el maker, diseño de bases de datos, etc.. Abordar la internacionalización de una página no es trivial.

Symfony Process lanzando procesos del sistema operativo

Symfony: tutorial 18: trabajando con el sistema operativo, Process

Continuando con la serie de tutoriales de iniciación a Symfony, aquí que vengo con el siguiente que me planifiqué repasar. Este tutorial trata sobre cómo lanzar programas del sistema operativo desde un proyecto Symfony. Es decir, si estamos en un sistema operativo GNU/Linux no hay nada que no podamos hacer en un servidor. O por lo menos no se me ocurre nada que no se pueda lanzar desde un proyecto Symfony. Me explico, si en un servidor GNU/Linux todo lo podemos hacer desde línea de comandos.. si todo lo podemos copiar, mover, lanzar procesos de todo tipo desde línea de comandos.. también podemos desde PHP con las funciones exec, shell_exec, passthru y system. Así mismo, tenemos también en Symfony un componente para usar estas funciones más fácil todavía. Es decir, este componente Process es un wrapper vitaminado para usar estas funciones de PHP.

Raspberry Pi 4

GNU/Linux & Raspberry Pi: haciendo copias de seguridad de tarjetas SD

Hace tiempo que no escribo, no he podido sacar tiempo para escribir y compartir. Pero ya vuelvo cargado de ideas y hoy traigo un pequeño howto para la Raspberry Pi y GNU/Linux. Este post es sobre copias de seguridad de las tarjetas SD, para guardar sistemas completos, con todo instalado y funcionando. Es decir, esto mismo también se puede hacer en cualquier instalación GNU/Linux, y otros tipos de discos que no sean tarjetas SD. Pero aquí me centro en la Raspberry Pi porque he estado estos días jugando con ella 😉 Después de estar jugueteando horas y horas, podemos llegar a configuraciones complicadas. Que si centro multimedia de salón, punto de acceso wifi, sistema de detección de intrusiones con Snort, nube privada con Syncthing.. que si ahora quiero ver Netflix en la Raspi.. Después de cargarme varias instalaciones que he llegado a ver que tengo que hacer más copias de seguridad 😀 Después de todos estos buenos ratos con la Raspberry Pi.. ¿a que no queremos perder todo este tiempo invertido?

Diseñando BDs con el creador de entidades de Symfony para Doctrine

Un lector me ha escrito sobre un tema muy interesante de Symfony. Así que aquí estoy de nuevo añadiendo material académico. Este post va sobre un post anterior, sobre Symfony, los modelos y entidades, de la serie de tutoriales de iniciación a Symfony Flex. Voy a tratar de explicarme mejor sobre el día a día con los comandos de consola mientras que vamos creando o editando una base de datos. Symfony te convierte en un programador web muy productivo, gracias en gran medida a los comandos de consola. Así que es muy recomendable conocerlos bien, practicar mucho, y saber usarlos. Es muy recomendable para sacarle provecho a este post el tener los conocimientos teóricos sobre diseño de bases de datos. Así pasarás del esquema de la base de datos, a crearla, en muy poco tiempo gracias al maker de entidades de Symfony. Pero es necesario que tengas claro cómo establecer las relaciones entre entidades, y de qué forma deben ser: de una a una, de una a muchas o de muchas a muchas.

VHDL simulando con GTKWave y Ghdl autómatas

VHDL: construyendo circuitos para autómatas

Sigo practicando, poniéndome al día con la creación de circuitos digitales. Si has seguido los últimos posts sobre VHDL, verás que hemos llegado a los autómatas. Estos autómatas, son las partes de los circuitos que controlan los procesos internos de muchos otros componentes. Es decir, las lavadoras, neveras, microondas, televisores, aires acondicionados, alarmas, routers, puentes de comunicación de las placas madre, microprocesadores, etcétera.. llevan autómatas dentro, ya sean máquinas de Moore, de Mealy, finitos, seguros, etc… Pensemos por ejemplo en un autómata para una aspiradora autónoma, que tenga unos estados de funcionamiento como aspirando, en reposo, en recarga, una serie de sensores de entrada de choque, infrarrojos, ultrasonidos, quizá una cámara, y una serie de actuadores como motores para las ruedas, aspiración.. Pensemos por ejemplo en un autómata para un microondas, en el que vamos seleccionando el programa, le ponemos un tiempo, y le damos al botón de start para que vaya calentando la comida con un contador decreciente de tiempo.. O pensemos por ejemplo en un autómata para controlar unos cultivos hidropónicos, tendrá sensores de agua, temperatura, luces, actuadores para las bombas de agua, quizá ventiladores o ventanas si es un invernadero, altavoces para hacer sonar notificaciones, etc..

Symfony, tutorial 17, sesiones y variables de sesión.

Symfony: tutorial 17: las variables de sesión

Aquí traigo otro minitutorial sobre Symfony. Siguiendo con los tutoriales de iniciación a Symfony Flex, llegamos a las variables de sesión. Es decir, en este post trato de explicar cómo en Symfony podemos gestionar las visitas individualmente, identificando a los usuarios que visitan una web, personalizando los contenidos o mensajes aún más que les mostraremos. Es decir, al poder seguir las sesiones de los usuarios, podemos estar seguros de quién es el que está viendo cierta sección. Así podremos mostrarle los contenidos que le corresponden, personalizando y adecuando los contenidos mejor. En estas sesiones podremos almacenar variables o mensajes. Es decir, estas sesiones son unos espacios individuales para cada usuario en donde podremos almacenar dichas variables. Además de que Symfony te añade una utilidad muy práctica que son las bolsas de mensajes flash. Todo comienza cuando recién llega un usuario a la web. Symfony lo identifica como usuario anónimo, y también queda identificado unívocamente aunque sea anónimo. Así luego podremos guardar variables asociadas a cada usuario, cada vez que abra un usuario una sesión, incluso si se trata de un usuario anónimo.

VHDL simulando el flip flop JK con GTKWave y Ghdl

VHDL: la joya de los biestables, el flip flop JK

Finalmente llegamos a este code-kata sobre los biestables en VHDL. Este se trata del flip flop JK, que es una combinación de los anteriores posts sobre biestables. Puede almacenar memoria del bit que almacena como el SR, puede resetearse poniéndose a 0, setearse a 1, negarse a si mismo al son del tic tac del reloj como el flip flop T. También se setea o resetea al son del tic tac del reloj como el flip flop D… En fin, la joya de los biestables.. 😀 En este code-kata dejo una versión que tiene 3 entradas: el pin J, el pin K, y el pin de la señal del reloj. Como salidas, igual que los anteriores posts, tenemos 2 señales (2 pines), que son el estado actual y el negado.

VHDL el flip flop D, retardando el dato de entrada en la salida al tic tac del reloj..

VHDL: el biestable flip flop D

Aquí que dejo otro code-kata sobre electrónica digital, ahora sobre otro tipo de biestable. Este es un circuito que simplemente retarda la señal de salida al son del tic tac del reloj, es el llamado flip flop D, con D de data o de Delay. Es decir, tenemos 2 señales de entrada, aunque los hay con más señales. En el siguiente código una de las señales es la señal del reloj, y la otra es el dato, un pin de entrada que puede ser 0 o 1. En la salida tendremos dos pines, uno con la salida normal, y otro negada. Simplemente se cambiarán las salidas en el flanco de subida del reloj. Si la entrada de dato es 0, en el siguiente tic tac, se pondrá un 0 en la salida normal, y un 1 en la negada.

VHDL simulando el flip flop T con GTKWave y Ghdl.

VHDL: el biestable flip flop T

El flip flop T, es el biestable Toggle, que cambia en inglés. Este es un code-kata con el código fuente en VHDL de este biestable. Simplemente es un dispositivo que almacena memoria de un estado. Recibe 2 entradas, una señal de reloj, y la entrada T. Entonces, simplemente si la señal T está activa a 1, entonces con el tic tac del reloj va cambiando las salidas. En las salidas sólo tiene 2 pines, que son el estado actual, y el estado actual negado.