miércoles, 29 de mayo de 2013

LAS LEYES DE MORGAN

Se trata simplemente de una combinación de compuertas, de tal modo de encontrar una equivalencia entre ellas, esto viene a consecuencia de que en algunos casos no dispones del integrado que necesitas, pero si de otros que podrían producir los mismos resultados que estas buscando. 

Para interpretar mejor lo que viene, considera a las señales de entrada como variables y al resultado como una función entre ellas. El símbolo de negación (operador NOT) lo representaré por "~", por ejemplo: a . ~ b significa a AND NOTb, se entendió...?



.: 1º Ley:

El producto lógico negado de varias variables lógicas es igual a la suma lógica de cada una de dichas variables negadas. Si tomamos un ejemplo para 3 variables tendríamos..~ (a.b.c) = ~a + ~b + ~c

El primer miembro de esta ecuación equivale a una compuerta NAND de 3 entradas, representada en el siguiente gráfico y con su respectiva tabla de verdad.



El segundo miembro de la ecuación se lo puede obtener de dos formas...


Fíjate que la tabla de verdad es la misma, ya que los resultados obtenidos son iguales. Acabamos de verificar la primera ley.

.: 2º Ley:

La suma lógica negada de varias variables lógicas es igual al producto de cada una de dichas variables negadas...~ (a + b + c) = ~a . ~b . ~c

El primer miembro de esta ecuación equivale a una compuerta NOR de 3 entradas y la representamos con su tabla de verdad...






El segundo miembro de la ecuación se lo puede obtener de diferentes forma, aquí cité solo dos...



Nuevamente... Observa que la tabla de verdad es la misma que para el primer miembro en el gráfico anterior. Acabamos así de verificar la segunda ley de De Morgan.

Para concluir... Con estas dos leyes puedes llegar a una gran variedad de conclusiones, por ejemplo...

Para obtener una compuerta AND puedes utilizar una compuerta NOR con sus entradas negadas, o sea...a . b = ~( ~a + ~b)

Para obtener una compuerta OR puedes utilizar una compuerta NAND con sus entradas negadas, es decir...a + b =~( ~a . ~b)

Para obtener una compuerta NAND utiliza una compuerta OR con sus dos entradas negadas, como indica la primera ley de De Morgan...~ (a.b) = ~a + ~b

Para obtener una compuerta NOR utiliza una compuerta AND con sus entradas negadas, ...eso dice la 2º ley de De Morgan, así que... habrá que obedecer...~(a + b) = ~a . ~b

La compuerta OR-EX tiene la particularidad de entregar un nivel alto cuando una y sólo una de sus entradas se encuentra en nivel alto. Si bien su función se puede representar como sigue...s = a . ~b + ~a . b

te puedes dar cuenta que esta ecuación te indica las compuertas a utilizar, y terminarás en esto...




Al finalizar este artículo puedes acceder ahora a la Evaluación virtual - Nivel Secundaria. Suerte y Salu2 chic@s.

lunes, 3 de octubre de 2011

Construye tus Auriculares inalámbricos

Hola chic@s:

Para los que desean otras alternativas en los proyectos para la feria de Ciencias, publico un proyecto muy interesante y que considero que para los chicos de 5º de Secundaria podría ser ideal. Se trata de fabricar sus propios audífonos caseros.

Espero que les sirva. Salu2.

 
Enlace:

martes, 27 de septiembre de 2011

Reto 03 : Partes del Ladrillo NXT

Hola chic@s: Ahora les dejo un complemento a la explicación del ladrillo NXT, em modo gráfico, para que púedan conocer exactamente cómo está compuesto la parte más importante del robot Lego.






jueves, 22 de septiembre de 2011

Los motores del Lego Mindstorms NXT


El dia de hoy quisiera referirme a los motores que vienen incluidos en el kit del Lego Mindstorms NXT.


En el kit normal del Lego Mindstorms NXT vienen incluidos 3 motores idénticos. Estos motores se conectan al bloque programable a través de los puertos A, B y C. Los tres motores pueden estar conectados al bloque programable y usándose al mismo tiempo


Seguramente leerás por ahí que los motores del Lego NXT no son motores convencionales, si no de los motores conocidos como Servos. ¿ Cuál es la diferencia ?

La diferencia es que en un motor eléctrico convencional lo único que haces es aplicar energía al motor y este empezará a girar dependiendo de la cantidad de energía aplicada. Pero esto nos trae un problema. Es difícil controlar la cantidad de energía aplicada, sobre todo si esta proviene de baterías que pueden estar nuevecitas o ya gastadas.

Ahora bien, los servos ademas de incluir un motor eléctrico convencional también incluyen un sensor de posición. Este sensor nos permite saber a que velocidad se está moviendo nuestro motor, y corregirla si es necesario. Ademas podemos saber exactamente cuantos grados a girado el motor en todo momento. Con esto tenemos un control muy preciso del movimiento de nuestro robot.


El sensor de posición ademas de servir para controlar la velocidad y avance de nuestro robot también es útil en si mismo y nos permite usar los motores del NXT como sensores de movimiento lo cual hace posible aplicaciones como el Calculador de Volumen y de Areas o el NXT Scribble Pad de NXTPrograms.

Uno de los problemas de la versión anterior del kit robótico de LEGO (el Robotic Invention System) es que era muy difícil hacer un robot que pudiera avanzar en linea recta con un "diferencial drive" como el Tribot. Esto se debía a que era muy difícil hacer que los dos motores avanzaran a la misma velocidad. En el Lego NXT si usas el bloque de movimiento para programar los dos motores el software automáticamente sincronizará los dos motores usando sus sensores de posición para hacer que avancen en linea recta.



El motor internamente tiene un tren de engranes para subir la torca del motor. Esto es lo que lo hace un poquito mas grande que un motor normal.

Una propiedad interesante de los motores del NXT, es que están cableados de una manera en la que si mediante uno de los cables incluidos en el kit, conectas directamente un motor a otro y giras uno de ellos con la mano, el otro también girará. Esto es por que todo motor eléctrico, es también por definición un generador de energía y la energía que generas al girar un motor se aplica al otro (con algunas perdidas).


Para programas los motores se utiliza el bloque de Move, en el podemos seleccionar la dirección del movimiento y que motores utilizaremos para este (para hacer girar un robot se mueve una rueda hacia adelante y la otra hacia atrás). También podemos especificar cuantos grados rotar (o Sin limite-Unlimited) y la velocidad (Power).

El Sensor Ultrasónico (o de ultra sonido)



Ya que hablamos del sensor de sonido, ahora le toca el turno a otro sensor que esta incluido en el kit de LEGO Mindstorms NXT: El sensor de Ultra Sonido. Este sensor le permite a nuestro robot ver y detectar obstáculos así como medir distancias.

Básicamente puede detectar objectos que estén de 0 a 255 centímetros de distancia con una precisión de +/-3 cm. Esto significa que si hay un objecto a 40 cm exactamente el sensor puede verlo desde 37 hasta 43cm, este es su margen de error.

Este sensor funciona igual que como lo hace un radar o un sonar. Envía ondas de sonido en una frecuencia muy alta y mide el tiempo que el "eco" (el rebote de las ondas) de sonido tarda en regresar al sensor. Esto es muy similar a como un murciélago "ve".

Para poder probar el sensor ultrasónico lo conectamos al bloque programable, en el menú de "View" selecciona "Ultrasonic Sensor" y el puerto en el que lo conectaste, con esto en la pantalla empezará a aparecer la distancia que esta detectando el sensor.

Aplicaciones

Algunas aplicaciones del sensor de ultrasonido, todas cortesía de NXT Programs.


Alarma de Puerta (de esas que hacen ruido cuando alguien entra).


Explorador. Robot que anda explorando una casa detectando y evitando obstáculos.


Radar. Un robot muy interesante que detecta y hace un mapa de lo que esta a su alrededor, igual que un radar.


Guitarra eléctrica. La imagen lo dice todo, una guitarra eléctrica funcional.






 


Sensor de sonido

El sensor de sonido incluido en el kit de Lego Mindstorms NXT es bastante interesante y tiene varias aplicaciones muy padres.


El sensor solo detecta la "cantidad" de sonido y no ningún tipo de tono o modulación, pero aun así hay muchas aplicaciones ingeniosas que se le pueden dar.

Este sensor lee el sonido ambiental y nos regresa una medida de 0 a 100%. Podemos configurarlo para que lea Decibeles o Decibeles Ajustados. En terminos muy simples los decibeles ajustados solo incluye sonidos que el oido humano puede escuchar, al contrario de los decibeles normales que podria incluir frecuencias que no podemos escuchar pero que el sensor de sonido capta.

Poner el sensor de sonido en modo dBA es mas complicado de lo que debería hacer. Lo que tenemos que hacer es conectar una variable lógica puesta en TRUE al conector dBA del bloque del sensor de sonido como se ve en esta pantalla (click para agrandar).


Ambos bloques se sacan de la paleta la "Complete Palette" uno de "Sensor" y el otro de "Data".

Los decibeles se miden en una escala logarítmica medio complicada, por lo cual este sensor por defecto nos regresa, como ya dije, valores entre 0 y 100%. Estos valores corresponden mas o menos a:
  • 4-5% Una casa silenciosa.
  • 5-10% Alguien hablando lejos.
  • 10-30% Es una conversación cerca del sensor o música en un volumen normal.
  • 30-100% Gente gritando o música a volumen alto.
Lo mas fácil para probar que lectura nos da este sensor es conectarlo a algun puerto de nuestro bloque programable y seleccionar la opción de "View" y dentro ya sea "Sound Sensor dB" o "Sound Sensor dBA" esto nos indicara la lectura continua que esta teniendo el sensor.


Calibración

Una cosa importante es calibrar nuestro sensor para que no le afecte mucho el ruido del ambiente. Esto se puede hacer desde el software incluido en el kit (NXT-G) desde el menú de "Tools" hay una opcion de "Calibration" con la cual podemos programar el sonido mínimo y máximo que queremos que nuestro sensor detecte.

Aplicaciones

La aplicación mas sencilla es una que ya viene precargada en el bloque es que los motores conectados al puerto B y C (como en el Tribot) se muevan en linea recta a una velocidad de acuerdo a la cantidad de sonido que escuche. Este programa ya viene precargado en el menu "Try Me" y luego "Try Sound".

Otra idea muy común es hacer que el robot reaccione a comandos de voz cuando escuche sonidos fuertes. Para esto se puede usar el bloque de Wait-> Sound Sensor.

Cosas mas avanzadas incluyen un contador de aplausos y robots que pueden detectar la direccion del sonido usando dos o mas sensores (calculando a cual de los dos sensores le llega primero el sonido).

Una cosa a tener en cuenta y que me di cuenta al estar construyendo un robot que sigue el sonido usando un solo sensor (que se mueve de un lado para otro) es que los motores del kit hacen mucho ruido y muchas veces pueden saturar al sensor, por lo cual es recomendable montar el sensor lo mas alejado de los motores que se pueda.

Otros reportes en internet es que aveces si el sensor no esta en modo dBA el sensor ultrasónico puede interferir con el sensor de sonido así que es algo mas a considerar.

Reto 05: Partes del Lego Mindstorms NXT

Bueno alumn@s, ahora les dejo la última actividad vinculada a las partes esenciales del Lego Mindstorms, en los próximos días publicaré actividades relacionadas a la programación del software Lego Mindstorms NXT. Salu2.