Arduino Joystick desde plataforma online de Arduino

Share this Post Share to Facebook Share to Twitter Email This Pin This
En este post quiero compartirles como probe un programa de Arduino para poder utilizando un joystick de mis sensores de Elegoo y programando desde la plataforma online de Arduino.


                                            https://www.arduino.cc/en/Tutorial/joystickMouseControl


En la página de Arduino tiene varias librerías ya listas para poder utilizarse, en este caso utilizaremos  JoystickMouseControl la cual pueden descargar o utilizar desde el editor de Código de la página de Arduino, solo deben crear su cuenta utilizando su correo electrónico y no tiene costo.
En esta ocasión voy a trabajar desde el editor en línea para que nos muestra el código fuente, el diagrama de conexión del joystick con Arduino, podemos compilar desde ahí 
Arduino online


Diagrama de conexión

Como es para el caso de Arduino creo que es mejor con un vídeo explicarles como funciona y hacer una demo.



Como les platico en el vídeo el programa de JoystickMouseControl solo es compatible con tarjeta Leonardo, para el caso de mi tarjeta Uno, utilice el programa  de la siguiente liga https://www.arduino.cc/en/Tutorial/JoyStick.

Hay quienes  tienen la creencia que programar es costoso o que no se puede por no poder comprar el software para programar, pero existen muchas alternativas de programación Open Sorce o Libre que nos permiten poder crear proyectos hasta nuestra imaginación nos permita, incluso como lo vimos en este ejemplo ni siquiera es necesario instalar un software en nuestra computadora, solo necesitamos nuestra placa de Arduino, los sensores, una laptop y acceso a Internet y la ventaja es que donde quiera que tengamos acceso a nuestra cuenta de Arduino podemos continuar con nuestro desarrollo del proyecto, obviamente para probarla se requiere la placa, aunque también existen emuladores o simuladores que nos permiten probar nuestro programa si no tenemos la placa, por ejemplo:

Proteus (este emulador si lo utilice hace ya varios años, pero no lo he probado con Arduino)

Para más información pueden ver varias listas en Internet por ejemplo:


No olvides compartirnos y seguirnos en este blog o en Facebook.

Programación en Octave

Share this Post Share to Facebook Share to Twitter Email This Pin This

Si han tenido oportunidad de seguir este blog, en un post anterior platicamos acerca de Inteligencia Artificial  un curso que estoy tomando en Machine Learning y que una de las herramientas utilizadas es el curso es Octave que es  similar "Open free "de Matlab.

Octave es un lenguaje de programación para conocer y entender datos, es decir es un software que nos facilita el crear gráficas, realizar operaciones matemáticas simples y complejas, operaciones de álgebra lineal. 


¿Que podemos hacer con Octave?


Como por ejemplo podemos hacer análisis de capacidad en lineas de producción por medio de datos de numero de piezas producidas entre el total de tiempo ejecutado. Podemos realizar Revisión de Errores en monto contables. Podemos graficar la curva de venta de algún producto. Podemos hacer cálculos para BigData complejos creando nuestras propias funciones. Podemos analizar los datos de nuestros pacientes en un laboratorio medico para conocer cuales son las pruebas más recurrentes o Cual son las menos y debemos promocionar más.Claro que me dirán esto también lo puedo hacer en Excel, pero si la cantidad de datos es muy grande, necesitan funciones matemáticas complejas o que no tiene Excel entonces es momento de utilizar herramientas como Octave. 

Octave GUI
Se puede instalar en Linux, Mac, Windows, la liga para descargarlo es https://www.gnu.org/software/octave/#install


Una vez que lo tengan instalado, pueden realizar algunas funciones como son:

  • Leer datos de un archivo con el comando
  • Crear matrices con datos aleatorios
  • Crear gráficas
  • Realizar operaciones con Matrices
  • Utilizar funciones para resolver sistemas de ecuaciones
Para ello podemos hacerlo por comando individuales o podemos hacerlo en un programa.

Primero vamos a cargar unos datos de una tabla que tengo con características de post de este blog y cuales les ha ido bien y cuales no


Pase los datos a un archivo de texto con las columnas separadas por comas

Ahora vamos a ver el programa en Octave

%cargar datos 
printf("bienvenido al ejemplo");
data = load('datablog.txt');
%cargar datos en matriz 5 con las caracteristicas
X = data(:, [1,2,3,4,5]); 
[m, n] = size(X);
%cargar datos de resultado en y 
y = data(:, 6);
figure; hold on;
pos = find(y==1); neg = find(y == 0);
%graficar
plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, 'MarkerSize', 7);

plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y','MarkerSize', 7);
xlabel('Caracteristicas');
ylabel('Resultados');
%crear un vector con 5 datos y ceros
Z = zeros(5, 1);
%crear una matriz  de 4 filas x 3 columnas con datos aleatorios
R = rand(m,n);
%multiplicar 2 matrices
Cal = R.*X;
%sumar 2 matrices
Sum = X + Cal;
%resolver sistema de ecuaciones
ResolveEcu = linsolve(X, y);
plot(ResolveEcu,y);


Las pantallas de salida en Octave


Nuestra gráfica


Tener este tipo de herramienta nos permite analizar datos y estos poder entenderlos y generar soluciones de raíz a problemas, crear nuevas ideas para proyectos de mejoras, nos permite saber cómo enfocar nuestros recursos,esto me recuerda a la pirámide del conocimiento. 


Les comparto otras ligas donde pueden encontrar información de Octave o cursos

http://softlibre.unizar.es/manuales/aplicaciones/octave/manual_octave.pdf

https://www.ibiblio.org/pub/linux/docs/LuCaS/Presentaciones/200304curso-glisa/octave/curso-glisa-octave-html/x24.html

https://www.linuxhispano.net/2014/03/10/resolver-sistema-ecuaciones-lineales-octave/
https://steemit.com/utopian-io/@exalfron/multiplicacion-de-matrices-en-octave



No olvides compartirnos y seguirnos en este blog o en Facebook.

Como crear Funciones en Progress 4gl

Share this Post Share to Facebook Share to Twitter Email This Pin This
Progress es un lenguaje que tiende a ser para programación estructurada pero también puede ser del tipo modular, ya que nos permite crear funciones y procedimientos para poder crear modularidad en nuestros programas para poder reutilizar las funciones y sea más fácil de entender, una forma de comparar la programación modular es como cuando tenemos un teatro en casa son un buffer, un subuffer, barras de sonido y un controlador, esto visto en programación el controlador es el programa principal y las barras de sonido, buffer, etc son funciones, procedimientos o subprogramas.

Paradigma Programación Modular


Las funciones en Progress 4gl tienen las siguientes características 


  • Se deben escribir al principio del programa principal, o antes de ser llamada
  • Se debe utilizar la palabra reservada FUNCTION para iniciar el inicio End Function para definir el fin de la función
  • Se debe definir el tipo de dato que regresara la función utilizando la función RETURNS
  • Puede tener parámetros de entrada o no, los cuales se definen con la palabra INPUT
  • Se utiliza la palabra reservada RETURN para devolver el resultado de la función

¿Como hacer una función en Progress 4gl?


Vamos hacer un ejemplo que nos permita obtener el código de selección de pago en el que se pago una factura de un proveedor.

FUNCTION getpaydoc RETURNS CHAR (INPUT id_invoice  LIKE Cinvoice.Cinvoice_Id):
DEF VAR vc-paysel AS CHAR NO-UNDO INITIAL "".

   FOR FIRST DOmains NO-LOCK WHERE
               DOmaincode    = global_DOmain, 
         FIRST Company OF DOmains NO-LOCK,
         FIRST CInvoice   OF Company 
                WHERE Cinvoice.Cinvoice_ID = id_invoice    NO-LOCK,
         FIRST CDOcumentInvoiceXref OF Cinvoice NO-LOCK,  
         FIRST PayselLine OF CDOcumentInvoiceXref NO-LOCK,
         FIRST PaySel OF PaySelLine NO-LOCK:          
        vc-paysel = PaySelCode.
   END.  

RETURN vc-paysel.
END FUNCTION.

  • Primero definimos el nombre de nuestra función que en este caso es getpaydoc
  • La función nos regresara un valor tipo carácter, esto lo decimos con la instrucción RETURNS CHAR
  • Vamos a tener en este caso un parametro de entrada que es la parte del programa INPUT id_invoice  LIKE Cinvoice.Cinvoice_Id
  • Definimos la variable con la que regresaremos el valor resultado esto con la parte de DEF VAR vc-paysel AS CHAR NO-UNDO INITIAL "".
  • Realizamos la ejecución del query y asignamos el resultado a la variable
  • Regresamos el resultado RETURN vc-paysel.

¿Como utilizar funciones en Browse de QAD?


En QAD que es el ERP que conozco a más detalle tiene unos reportes que se llaman browse o vistas y lo que permite hacer es crear reportes con columnas, es muy ágil de diseñar porque es en base al diagrama entidad relación que se adicionan las tablas a utilizar y se seleccionan las columnas que queremos visualizar. Adicional a poder utilizar las tablas podemos colocar funciones en el apartado de Local Variables donde podemos escribir las funciones que requiramos en el browse.
Para poder utilizar la función en el Browse debemos agregar un campo calculado, vamos a utilizarlo como se muestra en la imagen, colocando en la parte de Expresión el llamado a la función que definimos antes.


Con esto ya hemos creado una función para poder colocar en un programa de Progress o en un Browse.
La ventaja de tener funciones como pueden observar es que podemos reutilizarlas en varios programas sin tener que volver a escribirlas, pueden incluso ir creando sus propias librerías. 

No olvides compartirnos y seguirnos en este blog o en Facebook.

Como adivinar una palabra con PHP haciendo permutaciones

Share this Post Share to Facebook Share to Twitter Email This Pin This
Hola bienvenido a un nuevo post, hace unos días un primo compartió una publicación de un concurso de TV de hace algunos años donde te daban pistas para adivinar una palabra, la imagen es como la siguiente :

Para llegar al resultado es haciendo permutaciones con las letras hasta lograr la palabra indicada. Que en este caso era Adriana.

Para poder entender el concepto de permutación, lo explicare como yo lo entiendo que es poder acomodar una secuencia de caracteres o de números en todas los posibles ordenes posibles sin que se repitan, por ejemplo este caso, tenemos una frase que dice "ADAN IRA" tiene 7 letras esto quiere decir que al calcular las permutacione utilizamos la formula de factorial es decir 7! o en Excel Facotrial(7) o lo mismo es 7x6x5x4x3x2x1  lo que nos da como resultado 5040 permutaciones posibles 


En Excel lo que hice para poder realizar de manera manual las permutaciones, fue utilizando la función de concatenar, ordenando las letras como se ve en la imagén, como imaginaran hacer esto de manera manual es mucho tiempo

Bueno para tratar de entender mejor el tema de permutaciones, hice otras imagenes que nos permiten ver de otra forma como hacer el ordenamiento

Otra forma de verlo es parecido a un grafo, donde los caminos son involucrar todos las letras 

Para verlo con otro ejemplo más númerico, tome 4 letras al obtener el factorial es 24, viendo este ejemplo de forma gráfica con las posibles combinaciones es la siguiente imagen

Permutación con la primer letra A, nos da 6 posibles permutaciones


Por lo que podemos deducir es que si empezamos con otra letra la permutación, en cada caso nos dará 6 resultados más y al multiplicar 4x3x2x1 = 24 soluciones es decir el factorial de 4! 

Ahora veamos como realizar la programación de este proceso y poder obtener la lista de permutaciones de una cadena ingresada.


Les comparto unas ligas con la explicación de las permutaciones por si no les quedo muy claro
Video de Matematicas Profe Alex, dan una explicación más amplia


Como hacer el programa en PHP

Primero la página WEB
<html>
<head>
<title>Permutaciones en PHP </title>
</head>
<body>
<p> Esta página es un ejemplo de como generar todas las posibles </p>
<p> Permutaciones de una lista de letras o números </p>
<img src="Diagrama_permutacion_lineal.PNG" alt="Permutaciones" height="300" width="300">
<p>Para poder generar las permutaciones, debes ingresar la lista de palabras, letras o números
<p>Separados por comas por ejemplo a,d,a,n,i,r,a
<form action="permutacion.php" method="GET">
 <div align="center">
   <input type="text" id="campo1" name="campo1"/>
   <input type="submit" value="Permutar"/>
 </div>  
</form>

<a href="https://www.programacionparatodos.com">www.programacionparatodos.com</a>
</body>

</html>

Pagina PHP


Luego el programa, estuve pensando como hacerlo de manera de utilizar solo funciones de PHP y bueno si funciona, pero con pocas combinaciones, hay más opciones de hacerlo utilizando recursividad si quieren hacerlo de esa forma pueden ver las ligas de:

Revise solo algunas  y las probé con la cadena de este ejemplo a,d,a,n,i,r,a y siempre estaba 5 o 6 veces con alguna de esas funciones, aclaro no probé todas las funciones ustedes pueden validarlas también.

Pero mi programa es el siguiente, utilice las funciones :

  • str_shuffle que hacen la permutación de una cadena  https://www.php.net/str_shuffle, por ejemplo esta función podría funcionar para generar un password. 

La lógica de mi programa es que busca todas las combinaciones en base a la función str_shuffle y si no la encuentra lo guarda en un arreglo e incrementa la variable.

Para ser sincera no es la forma más rápida de resolver este problema porque consume tiempo de ejecución, pero si me mostró las permutaciones correctas. 

<?php
 $entrada = $_GET["campo1"];
 $lista = explode (",", $entrada);
 $entrada = str_replace(",","",$entrada);
 echo "Dato de entrada " . $entrada;
 echo "<p>";
 $largo = count($lista);
 function factorial($var)  
{
   if($var==1)
      return 1;
   else
      return $var * factorial($var-1);
 echo "Permutaciones posibles " ;
 $tot_per = factorial($largo) ;
 echo $tot_per;
 echo "<p>";
 $result = array(); 
 $j = 0;
while ($j < $tot_per ) :  
  $temp = str_shuffle($entrada);
  if ($j == 0):
array_push($result, $temp);
$j = $j + 1 ;
echo $j . " " . $temp .  "<p>"; 
  endif;
  if ($j > 0):
      $key = in_array ($temp,$result, true) ;
      if ($key == false):
       array_push($result, $temp);
   $j = $j + 1 ;
   echo $j . " " . $temp . "<p>"; 
  endif;
  endif;
endwhile;
?>


Corriendo el programa con otra cadena 

La página para que puedan probarla es  https://ejemploprogramacionparatodos.000webhostapp.com/Pagina_permutaciones.html


Pueden hacer las permutaciones que requieran, crear password más seguros pensando en las palabras que utilizan normalmente pueden crear una nueva, o si les gusta como yo jugar melate pueden sacar números y armar nuevas combinaciones (solo por jugar no quiere decir que sea un calculo de juego y estadística)

No olvides compartirnos y seguirnos en este blog o en Facebook.

Graficar funciones en Python

Share this Post Share to Facebook Share to Twitter Email This Pin This
Bienvenidos a un nuevo post, en esta semana, en esta ocasión les quiero platicar acerca de una librería en Python que se llama matplotlib que nos sirve para gráfica funciones de matemáticas.


Habitualmente en Python existen muchas librerías, lo que hay que hacer es primero investigar si ya existe alguna que nos ayude y entenderla antes de inventar el hilo negro, en mi caso encontré un blog de Raul E. Lopez Briega donde habla de la librería Matplotlib


Como instalar Matplotlib
Para instalar deben utilizar el comando PIP en 2.7

Instalando en Python 3.7


Si tienen Python 2.7 deben realizar la ejecución de estos 2 comandos desde consola
  • python -m pip install -U pip
  • python -m pip install -U matplotlib
Aunque lo más recomendable es utilizar la versión 3.7 o superior de Python.

Un ejemplo basado de la pagina de Raúl para crear gráficas de ecuaciones cuadradas como la de la imagen y les mostrare 2 ejemplos más con diferentes funciones.

Programa para graficar en Python


import matplotlib.pyplot as plt
import numpy as np
import math as mt

def move_spines():
    """Esta funcion divide pone al eje y en el valor 
    0 de x para dividir claramente los valores positivos y
    negativos."""
    fix, ax = plt.subplots()
    for spine in ["left", "bottom"]:
        ax.spines[spine].set_position("zero")
    
    for spine in ["right", "top"]:
        ax.spines[spine].set_color("none")
    
    return ax

y = 10
x = np.linspace(-2, 6, num=30)

y = 10
x = np.linspace(-2, 6, num=30)

ax = move_spines()
ax.grid()
ax.plot(x,x + 3)
plt.title(r"Grafico de $f(x)=\sqrt{x + 2}$")
plt.ylabel('f(x)')
plt.xlabel('x')
plt.show()

Programa para Graficar 2 funciones en Python


import matplotlib.pyplot as plt
import numpy as np
import math as mt

#definimos las 2 funciones
# 2x al cuadrado +  5x - 2
def f1(x):
    return 2 * (x ** 2) + 5*x - 2
# P(t)={\frac {1}{1+e^{-t}}}}
def sigmoide(x):
    return 1 / (1 + mt.exp(-x))

#asignamos un rango de valores a graficar 
var = range(-10, 15)

plt.plot(var,[f1(i) for i in var], label= 'Funcion 1')
plt.plot(var,[sigmoide(i) for i in var], label= 'Función Sigmoide')

plt.xlim(-10, 10)
plt.ylim(-10, 10)
#colocamos la leyenda en la parte inferior derecha
plt.legend(loc='lower right')
plt.show()                



Programa para gráficar funciones trigonométricas

import matplotlib.pyplot as plt
import numpy as np
import math as mt


def seno(x):
return mt.sin(x)
def coseno(x):
return mt.cos(x)
def tangente(x):
return mt.tan(x)


var = range(-10, 10)


plt.plot(var,[seno(i) for i in var], label= 'Seno')
plt.plot(var,[coseno(i) for i in var], label= 'Coseno')
plt.plot(var,[tangente(i) for i in var], label= 'Tangente')


plt.xlim(-10, 10)
plt.ylim(-10, 10)
plt.legend(loc='lower right')
plt.show()

Algo que deben notar también, es que cuando mueven el curso sobre la gráfica muestra los valores calculados y las gráficas tiene un menú , donde puedes dar zoom , guardan una imagen de la gráfica, cambiar los parámetros para visualizar la gráfica 


Espero les sirva estos programas, ustedes pueden complementarlos para leer los datos de algún archivo csv, xml o txt. o realizar funciones más complejas.

No olvides compartirnos y seguirnos en este blog o en Facebook.

Combinación de colores, Moda y programación con PHP

Share this Post Share to Facebook Share to Twitter Email This Pin This
Hola bienvenidos a otro post de este blog, estuve pensando en que otra área podíamos utilizar programación así que leyendo las noticias e Instagram, el 4 de mayo debió llevarse acabo La MET Gala , que es un evento que promueve (Museo Metropolitado de New York) donde artistas, famosos y celebridades acuden al evento y siguen una temática en su vestimenta, este año es Tiempo: moda y su permanencia como no se llevo acabo muchos artistas decidieron recordar en Instagram con fotos de galas anteriores y Vogue hizo un vídeo con los momentos más representativos.

Como resultado de esto Pensé en la Moda para generar un programa y este post, no me considero una persona con el criterio para dar consejos de moda, pero si una persona que pueda desarrollar una Página que de manera aleatoria nos sugiera 4 colores a combinar en nuestra ropa .



Les platico un poco más acerca de la moda, hay 2 temporadas para la semana de la moda una para la colección primavera-verano y otra otoño-invierno las semanas de la moda terminaron el 28 de Febrero de 2020 en Milán pero en Septiembre 11 comienzan de Nuevo en New York, les comparto las fechas y las ciudades



  • Del 6 al 14 de Febrero y del 11 al 16 de Septiembre, fue la semana da la moda en New York
  • Del 14 al 18 de Febrero y del 18 al 22 de Septiembre, fue la semana de la moda en Londres
  • Del 18 al 24 de Febrero y del 22 al 28 de Septiembre, semana de la moda en Milan
  • Del 24 de Febrero al 4 de marzo y del 28 de Septiembre al 6 de Octubre, la semana de la moda en París
  • Otros eventos que son importantes para la moda son los premios como los Golden Globe, los Oscares, Emys, Gramys, MET Gala 

    Si quieren ver las fechas e incluso las agendas pueden verlo en las siguientes ligas:

    Cada año existen los colores de temporada y diferente temporadas en la moda de acuerdo a las temporadas, primavera,verano,otoño invierno 


    • Naranja
    • Saffron
    • Aguamarina
    • Verde Hierba fresca
    • Rosado Coral
    • Morado
    • Classic Blue o lei  Heridate BLue





    Bueno buscando todo esto pensé en como hacer una Pagina WEB , que te ayude a poder armar tus combinaciones en tu look y que estés a la moda. 

    Primer paso arme mi colección de moda con 6 diseños:



    Esta moda esta inspirada en una muñeca recortarle que vendían y que podías vestir, quizá viendo una imagen algunos la recuerden



    Mis diseños no tiene color, porque el color los vamos a mostrar  en la página en base a los colores de moda de esta temporada Primavera-Verano 2020, la página nos va a calcular la combinación y el atuendo de manera aleatoria 


    La página es  

    https://ejemploprogramacionparatodos.000webhostapp.com/Pagina_moda.html

    La pantalla de inicio tiene los 6 diseños y 2 botones: Diseño a vestir y Colores a combinar

    https://ejemploprogramacionparatodos.000webhostapp.com/Pagina_moda.html




    Con el botón diseño a vestir abre una pantalla con la sugerencia del diseño a vestir
    pagina PHP

    Con el botón colores a combinar , te abre otra pantalla con la sugerencia de 4 colores a combinar 
    colores aleatorios en PHP


    La página HTML


    <html>
    <head>
    <title>Combinaciones de Ropa</title>
    </head>
    <body>
    <p> Esta página es un ejemplo de como mostrar combinación de colores </p>
    <p> Primero mi coleccion de moda ProgramacionParaTodos 2020 </p>
    <img src="esquema.png" alt="Smiley face" height="300" width="800">
    <p>Ahora vamos a presionar el botón de Diseño a Vestir para
    elegir un modelo y despúes el botón Colores a Combinar para saber cuales utilizar
    y ¡¡¡vestir así el día de hoy!!!
    <form action="pagina_moda2.php" method="GET">
     <div align="center">
       <input type="submit" value="Diseño a Vestir"/>
     </div>  
    </form>
    <form action="pagina_moda3.php" method="GET">
     <div align="center">
       <input type="submit" value="Colores a Combinar"/>
     </div>  
    </form>

    </body>

    </html>

    El programa en PHP para seleccionar modelo

    <?php
    $num_atuendo = rand(1, 6);
    $esquema = "esquema" . strval($num_atuendo) . ".png";
    header("Content-type: image/png");
    $im = imagecreatefrompng($esquema);
    imagepng($im);
    imagedestroy($im);
     
    ?>

    Para el programa cada imagen es un archivo con nombre esquema1.png.... hasta el esquema6.png, lo que hacemos generar un numero aleatorio para que nos muestre el esquema correspondiente a ese número aleatorio.

    El programa en PHP para seleccionar colores
    <?php
    // Crear una imagen de 200 x 200
    $lienzo = imagecreatetruecolor(500, 100);

    // Asignar colores
    $azul = imagecolorallocate($lienzo, 51, 85, 139);
    $amarillo =  imagecolorallocate($lienzo, 254, 175, 18);
    $verde = imagecolorallocate($lienzo, 78, 196, 164);
    $chiva  = imagecolorallocate($lienzo,86, 92, 70);
    $rosa = imagecolorallocate($lienzo, 233, 172, 157);
    $canela = imagecolorallocate($lienzo, 162, 85, 58);
    $uva = imagecolorallocate($lienzo,114, 97, 124);
    $sol =  imagecolorallocate($lienzo,239, 218, 164);

    // Dibujar 4 cuadrados, cada uno con su color
    $col1 = rand(1,8);
    switch ($col1) {
        case 1:
            imagefilledrectangle($lienzo, 4, 4, 100, 100, $azul);
            break;
        case 2:
            imagefilledrectangle($lienzo, 4, 4, 100, 100, $amarillo);
            break;
        case 3:
            imagefilledrectangle($lienzo, 4, 4, 100, 100, $verde);
            break;
        case 4:
            imagefilledrectangle($lienzo, 4, 4, 100, 100, $chiva);
            break;        
        case 5:
            imagefilledrectangle($lienzo, 4, 4, 100, 100, $rosa);
            break;     
        case 6:
            imagefilledrectangle($lienzo, 4, 4, 100, 100, $canela);
            break;       
        case 7:
            imagefilledrectangle($lienzo, 4, 4, 100, 100, $uva);
            break;  
        case 8:
            imagefilledrectangle($lienzo, 4, 4, 100, 100, $sol);
            break;  
    }
    ........

    $col4 = rand(1,8);
    switch ($col4) {
        case 1:
            imagefilledrectangle($lienzo, 360, 4, 460 , 100, $azul);
            break;
        case 2:
            imagefilledrectangle($lienzo, 360, 4, 460 , 100, $amarillo);
            break;
        case 3:
            imagefilledrectangle($lienzo, 360, 4, 460 , 100, $verde);
            break;
        case 4:
            imagefilledrectangle($lienzo, 360, 4, 460 , 100, $chiva);
            break;        
        case 5:
            imagefilledrectangle($lienzo, 360, 4, 460 , 100, $rosa);
            break;     
        case 6:
            imagefilledrectangle($lienzo, 360, 4, 460 , 100, $canela);
            break;       
        case 7:
            imagefilledrectangle($lienzo, 360, 4, 460 , 100, $uva);
            break;  
        case 8:
            imagefilledrectangle($lienzo, 360, 4, 460 , 100, $sol);
            break;  
    }

    // Imprimir y liberar memoria
    header('Content-Type: image/jpeg');
    imagejpeg($lienzo);
    imagedestroy($lienzo);
    ?>



    Luego para saber de que color vestirse tome los códigos de colores RGB de la página https://simpledits.com/color-palette-guide-with-pantone-colors-for-spring-summer-2020-nyfw-with-hex-cmyk-and-rgb-values/  y puse igual 4 funciones rand para saber que colores pintar



    Recuerden probar la página 

    https://ejemploprogramacionparatodos.000webhostapp.com/Pagina_moda.html


    La verdad es una página muy sencilla y pueden hacer o existen otras aplicaciones más complejas que te permiten crear un closet virtual y armar combinaciones, o buscar tendencias de moda por ejemplo, buscar un atuendo por fotografía les comparto algunas opciones que encontré:

    También existe la opción de closets con tecnología como 

    No olviden compartirnos y seguirnos en este blog o en Facebook.

    Teclado matricial 4x4 Arduino

    Share this Post Share to Facebook Share to Twitter Email This Pin This
    Hola bienvenidos a un nuevo post, estuve pensando de que escribir esta semana y vi mi KIT de Sensores de Arduino y vi el Teclado como el de la imagen



    kit Elegoo para Arduino

    Recordé cuando estudiaba electrónica y que para hacer ese teclado se hacía de 2 formas una era, con Puch Botón NA (normalmente abiertos) que son como los de la imagen

    Push Boton
    Armar un teclado de 9 números era conectarlo como el diagrama siguiente

    Después de recordar esto pensé en probar el teclado con mi Arduino para hacer la validación de una clave como si fuera abrir una puerta por ejemplo.

    Como les comentaba en post anteriores mi kit lo compre en Amazon y son de la marca Elegoo y tiene un CD con el código para hacer pruebas.

    Les comparto el vídeo de como funciona el teclado con Arduino Uno, mi programa si se digita el numero 8, prende un LED y si presionan la tecla A se apaga, para conectar el teclado en la membrana de conexión esta marcado el numero 1 y 8, El pin 1 va conectado a pin D2 de nuestra placa de Arduino y el PIN 8 del teclado al Pin D9, yo utilice el 10 para conectar el LED.

    La parte del programa que yo actualice 



    void setup(){
      Serial.begin(9600);
      pinMode(ledPIN , OUTPUT);
    }
      
    void loop(){
      char customKey = customKeypad.getKey();
      if (customKey)
      {
        Serial.println(customKey);
      }
      switch (customKey)
          {
             case '8':
             Serial.println("Hola 8");
             digitalWrite(ledPIN , HIGH);   
             delay(1000); 
             break;
             case 'A':
             Serial.println("Hola A");
             digitalWrite(ledPIN , LOW);   
             delay(1000); 
             break;
          }  
      
    }

    Y les comparto el vídeo de ejecución del programa



    Foto de como se ve la ejecución en pantalla, cada vez que se digita el teclado. NOTA: si ven el monitor datos diferentes a los tecleados, puede ser que su teclado este conectado inversamente, a mi me paso, solo inicie con el pin inverso del teclado a mi placa de Arduino Uno.


    Si quieres ver algunos otros post de este blog acerca de Arduino visita las siguientes ligas

    No olvide compartirnos y seguirnos en este blog o en Facebook.