jueves, 12 de enero de 2017

Unknown

Reciclando componentes

   ¡¡Hola a todos!! El artículo de hoy trata sobre el reciclaje de aparatos y componentes. ¿Quién de nosotros no tiene por alguna esquina de casa alguna impresora rota, algún televisor que ya no funciona o algún otro electrodoméstico que ya no nos sirve? Seguramente muy pocos responderían yo a esta pregunta, por tanto ¿Por qué no aprovechar estos aparatos para nuestros proyectos personales?

   Muchos de estos aparatos contienen piezas que nos pueden ser útiles para realizar proyectos, como pueden ser motores, Speaker y altavoces, Leds, botones, ... y así una larga lista. Para poder sacarlos lo único que necesitamos es un poco de paciencia y un buen juego de herramientas para desarmar los aparatos, y siempre utilizando el sentido  común para no hacernos daño en el proceso de desmonte.

   A continuación les muestro unos pocos aparatos que he podido aprovechar reciclando aparatos viejos de casa:

Motores:

 

Las impresoras por ejemplo nos permiten obtener motores que podemos aprovechar en nuestros trabajos para dotar de movimiento algún proyecto.




Speakers:





Los Zumbadores son otro tipo de componentes que podemos encontrar  en muchos aparatos muy fácilmente. 
  




Altavoces:



Los altavoces también están presentes en muchos aparatos como pueden ser televisores o radios. 




   Muchos de estos componentes podemos controlarlos a través de placas de prototipado como pueden ser toda la gama de Arduino, Waspmote Pro, o también con una placa Raspberry Pi. Pudiendo  crear con ellos desde pequeños vehículos, nuestro propio reproductor de música, o cualquier cosa que se nos ocurra. En estas cosa los límites los pone nuestra imaginación.

   Por último, recordarles que los restos que nos queden de estos aparatos no debemos de tirarlos nunca a la basura, si no llevarlos a los puntos limpios más cercanos. En estos lugares tratarán estos residuos de la manera más eficiente posible y contribuimos con el medio ambiente no contaminando con ellos.
  
   Espero les haya parecido interesante este artículo, si es así no duden en seguirme y si tienen alguna pregunta o comentario no se lo piensen dos veces y háganlo. ^^
Read More

miércoles, 7 de diciembre de 2016

Unknown

Simuladores de MIPS

¡Hola a todos! si son de los frikis a los que les mola programar en lenguaje ensamblador hoy les traigo una pequeña lista de simuladores de MIPS 32 donde pueden programar cualquier cosas que se les ocurra utilizando esta arquitectura.

QtSpim

QtSpim es un simulador de MIPS 32 que nos proporciona las características básicas necesarias para poder desarrollar programas para esta arquitectura.

Este simulador nos ofrece una consola para poder interactuar con nuestro programa(entrada salida de datos).
Nos proporciona un modo de ejecución "Paso a paso" con el que podremos depurar nuestro programa y ver lo que está pasando en cada momento en los registros, en memoria ...

La interfaz es bastante simple y como única pega, este simulador no nos permite cargar múltiples archivos de código a la vez, algo que es bastante útil cuando se trabaja con programas muy grandes en los que la modularidad es un aspecto interesante.

QtSpim
Si quieren utilizar este simulador pueden descargarlo en http://spimsimulator.sourceforge.net/


MARS

Este simulador es de los últimos que he encontrado. Esta desarrollado en JAVA y está bastante completo proporcionando bastantes parámetros de configuración y permitiéndonos desarrollar programas grandes de una forma muy cómoda, ya que nos permite la carga de distintos ficheros de código.

A parte de esto, este simulador también nos proporciona un gran número de herramientas que nos permiten llevar un punto más allá nuestras simulaciones. Estas herramientas son hilos a parte del simulador que interactuan con MARS permitiendo conectar con este cualquier pseudodispositivo que imaginemos. Un ejemplo de estar herramientas es "MIPS X-Ray" la cual nos permite ver lo que está ocurriendo durante la ejecución el la ruta de dato del procesador MIPS.

Simulador MARS

Si quieren descargar este simulador lo pueden hacer desde su página web  http://courses.missouristate.edu/KenVollmar/mars/index.htm

y recuerden que deberán tener instlado Java Platform el cual pueden descargarlo aquí
http://www.oracle.com/technetwork/es/java/javase/downloads/index.html

En este artículo he nombrado estos dos simuladores porque son los que yo más utilizo en mis proyectos, pero a parte de estos hay muchos más como pueden ser el PCSPIM o el XSSPIM.

Espero que les guste este artículo y si es así darle a seguir a mi blog :P

Read More

viernes, 30 de septiembre de 2016

Unknown

Diseño y montaje de un generador de paridad.

    En este artículo vamos a diseñar un circuito digital generador de un bit de paridad como resultado de la monitorización del estado de cuatro líneas binarias que transportan información codificada en binario natural de forma paralela.

   El circuito proporcionara un bit de paridad par,por lo que generará un 1 cuando el número de bits contenidos en la información binaria  sea impar . De otro modo, la salida tendrá el valor 0.

   Después de realizado el diseño se procederá a la construcción del prototipo den placas de inserción y a la verificación de su buen funcionamiento.

  Diseño del circuito 


   En primer lugar obtenemos la tabla de la verdad:



   Con esto hemos obtenido estas dos funciones:

   Fs= ∑(1,2,4,7,8,11,13,14)  -> para la primera forma canónica.

   Fs=∏(0,3,5,6,9,10,12,15)  -> para la segunda forma canónica.

   A continuación realizaremos las tablas de Karnaugh tanto para la primera como para la  segunda forma canónica:

  Observe que no se pueden hacer más que grupos de 1 solo elemento.

 Primera forma canónica




   Segunda forma canónica




    Si simplificamos esta ecuación llegamos al mismo resultado que con la primera forma canónica.


   Montaje del circuito


    Una vez obtenida la ecuación del circuito que queremos montar debemos de realizar el montaje del mismo.

    Para este montaje usaremos un chip CI7486, el cual contiene 4 puertas XOR. También usaremos 4 pares resistencia- diodo led, 3 para las entradas y uno para las salidas, 1 microswitch, una resistencia de 160Ω de pull-up a la salida de nuestro circuito, ya que el chip es open colector. Y también 3 resistencias de 2,2kΩ a tierra en cada salida del microswitch.

    En definitiva, nuestro circuito quedara así:




   Prueba del circuito

    Una vez obtenido el circuito podemos observar que los valores obtenidos teóricamente son los mismos que los experimentales. Para comprobar esto debemos introducido en nuestro circuito las diferentes combinaciones de entradas. 

    Para ayudarnos, usaremos un generador de funciones produciendo una función cuadrada de 1 HZ con salida TTL, que conectaremos a la entrada menos significativa en nuestro caso A. Para los demás casos iremos moviendo los interruptores del microswitch.

    Haciendo esto hemos obtenido la siguiente tabla de valores:


    Como se puede observar, los valores coinciden.


Read More

sábado, 24 de septiembre de 2016

Unknown

Describir el funcionamiento de un circuito secuencial a partir de un autómata de Mealy

   Hola a todos, en este artículo les explicaré como realizar el análisis de un sistema secuencia a partir de un diagrama de estados tipo Mealy. El diagrama desde el cuál realizaré todos los pasos es el siguiente:


   Siendo Q1Q0, los valores del estado, y los valores de la transición serán X : Z1Z0.

   Primera tarea: Especificar la tabla de de transición de estados, de excitación de los biestables y de las salidas.

   Para realizar la tabla debemos recordar que es un autómata tipo Mealy, por tanto las salidas dependen del estado actual y de las entradas, en nuestro caso estas son las variables Q1, Q0 y X.

   Las salidas nos aparecen en la transición. Y para realizar las tablas de excitación de los biestables solo debemos recordar las tablas básicas de estos dos biestables.

   La tabla de excitación del biestable T es la siguiente;

Q
Q`
T
0
0
0
0
1
1
1
0
1
1
1
0

   Y la tabla de excitación del biestable JK es la siguiente:


Q
Q`
J
K
0
0
0
X
0
1
1
X
1
0
X
1
1
1
X
0

  Para encontrar los valores de J1 y K1 deberemos fijarnos en los valores de Q1 y  Q1', mientras que para los de T0 nos fijaremos en Q0 Q0'.

   Dicho esto, la tabla completa sería la siguiente:

Q1
Q0
X
Q1’
Q0’
Z1
Z0
J1
K1
T0
0
0
0
0
1
0
0
0
X
1
0
0
1
1
1
0
0
1
X
1
0
1
0
1
0
0
1
1
X
1
0
1
1
0
0
1
1
0
X
1
1
0
0
1
1
1
0
X
0
1
1
0
1
0
1
1
0
X
1
1
1
1
0
0
0
1
1
X
1
1
1
1
1
1
0
0
1
X
0
1

   Segunda tarea: Simplificar por Karnaugh JI, K1 y T0

   A continuación vamos a realizar la simplificación por el método de Karnaugh de las variables J1, K1 y T0. En este caso he decidido realizar la simplificación usando miniterminos (por unos).

   J1

 Para el caso de J1 vemos que podemos hacer dos grupos de dos posiciones del Karnaugh.







J1 = Q0X' + Q0'X







   K1

   En este caso vemos que tenemos los mismos grupos posibles que en el caso anterior.
 







K1 = Q0X' + Q0'X






   T0

   En T0, se nos queda el Karnaugh completo a 1. Esto significa que la seña T0 está conectada a Vcc  (5Voltios).







T0 = 1








   Tercera tarea: implementar la lógica de entrada J1 utilizando un multiplexor de dos entradas conectadas a las variables X y Q0.


    Un multiplexor (también llamado selector) es un circuito combinacional que tiene n entradas y una única salida. Para poder seleccionar la entrada que deja transicionar a la salida, este está dotado de unas entradas de selección que realizan este trabajo. Debido a esto, si nuestro multiplexor tiene X entradas de selección, solo podrá tener 2 elevado a X entradas de datos.

   En nuestro caso tenemos dos entradas de selección (S1S0), por tanto tendremos 4 entradas de datos (D0,D1,D2,D3).



   Cuarta tarea: implementar la lógica de entrada de K1 utilizando un multiplexor de dos entradas de selección conectadas a las variables Q1 y Q0.

   Al igual que en el caso anterior, tenemos el mismo multiplexor. Vamos a ver a que conectamos sus entradas de datos, para ello veremos la tabla de la verdad.

   D0: Para Q1Q0 = 00 vemos que K1 siempre es X, lo que significa que el valor que devuelva el multiplexor nos da igual.

   D1: Para Q1Q0 = 01 nos pasa lo mismo que en el caso anterior.

   D2: Para Q1Q0 = 10 vemos que K1 tiene el mismo valor que X.

   D3: Para Q1Q0 = 11 vemos que K1 tiene el valor contrario de X, por tanto será X'.

   Con esto nos queda el siguiente dibujo:



   Quinta tarea: Implementar las salidas Z1 y Z0 con un solo decodificador de dos entradas conectadas a las variables Q1Q0.

   Como vamos a usar un decodificador de dos entradas tendremos, 2 elevado a 2 salidas, es decir, 4.Utilizaremos un decodificador activo a nivel alto.

   Vamos a expresar las salidas Z1 y Z0 en forma de suma de productos, por tanto debemos ver que salidas del decodificador conectamos a las entradas de las puertas AND que se conectarán a las OR finales.

   Utilizaremos un método similar al caso de los multiplexores, y usaremos la tabla.

   D0: Para Q1Q0 = 00 vemos que Z1 siempre vale 1 y vemos que Z0 siempre vale 0.

   D1: Para Q1Q0 = 01 vemos que Z1 toma los mismo valores que la variable X mientras que Z0 siempre esta a 1.

   D2: Para Q1Q0 = 10 vemos que Z1 se mantiene en 1 y que Z0 se mantiene en 0.

   D3: Para Q1Q0 = 11, Z1 toma el valor contrario a X, es decir, X' y Z0 se mantiene en 1.

   Con esta información ya podemos hacer el dibujo. El cual nos queda así:




Read More