sábado, 24 de noviembre de 2018

Lab 08 - Música con Arduino

LABORATORIO N° 08

MÚSICA CON ARDUINO


Alumno(s):

  • Jove Caceres Boris Yeltsein
  • Neyra Montes Walter Dalin
  • Ventura Cabana Jamil Simeon

a) Teoría demBlock.

mBlock y sus bloques de programación 


Los robots Makeblock se programan con el software propio de la compañía, llamado mBlock.



mBlock ​es un software fácil de aprender y usar, ya que está pensado para niños. Su diseño visual es parecido a un puzzle, donde el usuario juntando bloques (también llamadas  piezas) para construir un programa. Y, como en un puzzle, unas encajan entre ellas y otras  no, por lo cual es fácil identificar cuando se está haciendo algo bien o mal. 



La variedad de bloques disponibles en mBlock ​permiten programar una amplia posibilidad  de comportamientos. 


Este tipo de programación se llama programación visual (por bloques) y es muy distinta a la programación por código​, la cual es la típica programación escrita.   

Figura 1. diferencia de programar con bloques y código al Arduino.

mBlock ​está basado, o es una variante de un famoso software libre llamado Scratch 2.0​. El cuál está orientado a la educación y es muy conocido en todo el mundo. 

Scratch está pensado originalmente para programar videojuegos​. Mientras que mBlock está pensado para programar robots. Aunque en mBlock se pueden programar las dos cosas: videojuegos y robots.

La interface que presenta mBlock​ es la siguiente:

Figura 2. Interface del mBlock, escenario (1),  Bloques(2),  Espacio de construcción de programa(3).
  
Del lado izquierdo, está “el escenario” (1) del videojuego; en el centro (2) están las categorías de bloques de programación (las piezas con las que se construye el programa del videojuego o del robot); y del lado derecho está el espacio en donde se “arma/construye” el programa, dónde se colocan las piezas/bloques. 

LOS BLOQUES 

En la ventana del centro (2) se encuentran los bloques de programación, agrupados por sus distintas funcionalidades, donde cada funcionalidad está asociada a un color diferente. 

Vemos que “movimientos” está asociado al azul, “apariencia” al color lila, sonido al magenta, lápiz al verde mar, bloques y listas al naranja, eventos al marrón, control al  naranja melocotón, sensores al azul marino, operadores al verde y robots al azul oscuro.  

 Estas funcionalidades se pueden dividir en dos grandes grupos.

  • Bloques para video juegos.
Para programar un videojuego se utilizan las siguientes categorías de bloques: Movimiento, Apariencia, Sonido, Lápiz, Sensores, Eventos, Control, Operadores, Datos y Bloques.

  • Bloques para robot​.
Para programar un robot se utilizan las siguientes categorías de bloques: Robots, Eventos, Control, Operadores, Datos y Bloques.

Tabla 1. Tabla de categorías de bloques de programación

 DESCRIPCIÓN DE CATEGORÍAS DE BLOQUES
A continuación, se describen las diferentes categorías de bloques disponibles en mBlock​. La mayoría sólo sirven para programar videojuegos, la categoría de Robots sólo sirve para programar robots, y hay 3 categorías que comparten los videojuegos y robots (Control, Eventos, Datos y Bloques). Cuando se describen los bloques para los videojuegos se menciona al Oso Panda, el Oso Panda es el “avatar” que predefine para el videojuego mBlock, o sea el “personaje” que el usuario controla cuando juega (como Mario de Mario Bros). El Oso Panda o “avatar” sólo está disponible cuando se programa un videojuego, cuando se programa un robot, no es posible pre-visualizar el comportamiento del robot en el Oso Panda. Nota: El Oso Panda es nuestro ejemplo, pero también se puede sustituir por un Gato o cualquier “avatar” que un usuario diseñe.
Bloques de Movimiento:
Con los bloques azules ​podemos hacer que el Oso Panda se desplace hacia delante o hacia atrás la distancia que queramos, que rote sobre el mismo, que cambie de dirección, moverlo a las coordenadas deseadas, etc.




Bloques de apariencia:
Con los bloques lilas ​se puede hacer que el fondo del “escenario” (1) cambie de color o que el Oso Panda cambie de color, añadir un nuevo personaje, cambiar partes del cuerpo de los personajes, hacer que hablen y muestren un mensaje, cambiar tamaños, etc.


Bloques sonido:
Con los bloques magentas se realiza todo tipo de sonidos y se puede controlar el volumen de ellos.



Bloques de Lápiz:
Con los bloques verde mar ​el “escenario” (1) se convierte en una pantalla interactiva tipo Paint y se puede pintar el escenario como se quiera.


Datos y Bloques:
Con los bloques naranja ​se crean bloques de variables, de listas de datos y bloques dentro del programa. Esto se utiliza para realizar programas más complejos y completos:





¿Qué es una variable?
Una variable es un espacio de memoria en nuestro programa que utilizamos cuando queremos almacenar un valor y trabajar con éste durante la ejecución del programa. Explicado con un ejemplo ilustrativo, si queremos hacer un videojuego donde se tenga 3 vidas, podemos crear una nueva variable llamada Vida y hacer que cada vez que pase algo decrezca el valor en 1.

¿Qué usos podemos darle a una variable?
- Almacenar el número de preguntas acertadas en un juego de preguntas.
- Almacenar el total de puntos que tenemos en un juego de cartas.
- Almacenar el número de repeticiones que llevamos en una iteración.

Qué es una lista
Una lista es lo mismo que una variable, pero en vez de almacenar sólo un valor, podemos almacenar tantos valores como queramos.

¿Qué usos podemos darle a una variable?
- Almacenar las respuestas en un juego de preguntas.
- Almacenar el total de puntos que hemos conseguido en cada uno de los niveles de un juego.
- Almacenar una lista de palabras válidas.

Bloques eventos:
Los bloques marrón ​sirven para activar el inicio de cualquier programa que hayamos hecho utilizando input externos (como el ratón o las teclas del ordenador) o inputs internos como envío de mensajes del propio programa a otro. Harían la función del botón play en un reproductor de música, cuando lo activamos, empieza todo a funcionar.


Bloque Control:
Con los bloques de melocotón se realiza la lógica de programación, como los bucles, que una acción se repita varias veces, que espere un tiempo para hacer la siguiente acción o indicar que el programa realice una acción si se cumplen ciertas condiciones y si no se cumplen se realice otra. Con la lógica de programación definimos las reglas del mundo del videojuego o las del funcionamiento del robot, como por ejemplo si queremos que se pare o gire cuando nuestro robot o el avatar detecte un obstáculo en su camino.


Bloque Sensores:
Con los bloques azul marino ​permite detectar si el Oso Panda realiza las siguientes acciones: toca otro Objeto, tocar un color determinado, distancia entre un objeto y el oso. También permite detectar cuando un color determinado toca otro color, la entrada de variables por medio del teclado, si se está presionando alguna tecla del ratón. Verificando todas estas posibles acciones, se puede hacer que el Oso salte, pare, retroceda, que el juego acabe, que sume puntos, que cambie la pantalla...


Bloques Operadores:
Con los bloques verdes ​se realizan comparaciones de valores, sumas, restas, contadores, uniones de palabras o de números,etc. Por ejemplo, para definir la condición para que el robot u Oso panda se pare a una cierta distancia de un obstáculo, se tendrá que usar el bloque de comparación “menor que”. Estos bloques, combinándolos con los de sensores, nos permiten saber si estamos a una distancia menor o mayor de otro objeto, y así poder hacer una u otra acción.


Bloques Robots:
Los bloques Robots, de color azul fuerte, es un grupo de bloques exclusivo, creado por Makeblock tanto para las placas propias como la mCore, la Orion como para las placas Arduinos, las cuales son el “cerebro” de los robots Makeblock.
Este grupo de bloques no existe en el programa estándar de Scratch.
A continuación, hacemos una breve descripción de los bloques Robot para el mBot ​(robot de Makeblock). Makeblock amplía y actualiza este grupo a medida de que introduce nuevos sensores en sus robots.

Bloque​ mBot Program
Es básicamente el bloque que envía el mensaje de “Ejecutar el programa cargado en el robot” cuando se enciende. Sustituye al bloque de banderita verde cuando se programa un videojuego. Gracias a este bloque, una vez pasado el programa, el robot puede trabajar sin estar conectado al ordenador vía cable o bluetooth.

Para cargar un programa en la placa Arduino ​,el mBot debe estar previamente conectado al ordenador mediante un cable USB, después se hace clic con el botón derecho sobre el bloque mBot Program​ y se selecciona "Upload to Arduino".




b) Vídeo tutorial editado y subtitulado explicando las experiencias hechas en el laboratorio.




Anexos:




d) Observaciones y conclusiones. ¿Qué he aprendido de esta experiencia?(en modo texto)

3.1. Observaciones:

  • Hay diferentes formas de programar un Arduino uno de ellos el programa  mBlock el cual empleamos para la realización del laboratorio.
  • Para poder crear música con el potenciómetro se debe de tener en cuenta las salidas y entradas del Arduino para que así pueda detectar a nuestra variable.
  • En el programa mBlock se pueden crear variables el cual nos sirve para hacer diferentes aplicaciones en el Arduino.
  • Al momento de hacer la experiencia se debe de verificar que el modulo del protoboard este conectado.

3.2. Conclusiones:


  • Concluimos que podemos programar un Arduino a partir de bloque usando el Software mBlock.
  • Concluimos que creamos un programa para que el Arduino reproduzca un sonido presionando una tecla del teclado del computador.
  • Concluimos que creamos un programa en donde las salidas del Arduino enciendan un LED cuando según la nota musical que se reproduce.
  • Concluimos que se logró identificar las aplicaciones de la Electrónica Digital en el Arduino UNO.
  • Concluimos que logramos describir el funcionamiento de las unidades y dispositivos de almacenamiento de información que se puede hacer con el Arduino UNO.
  • Concluimos que se logró implementar  el circuito para crear música usando Arduino y una computadora.
  • Concluimos que se logro implementar el circuito para crear música programando las entradas y salidas del Arduino, y por medio de un potenciómetro crear música.

d) Integrantes (incluye foto de todos):


lunes, 19 de noviembre de 2018

Lab 07 - Sensores y actuadores Digitales con Arduino

LABORATORIO N° 07

Sensores y actuadores Digitales con Arduino


Alumno(s):

  • Jove Caceres Boris Yeltsein
  • Neyra Montes Walter Dalin
  • Ventura Cabana Jamil Simeon

a) Programación básica con IDE Arduino.


IDE de Programación: Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación, o sea, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica. Los IDEs pueden ser aplicaciones por sí solas o pueden ser parte de aplicaciones existentes. El lenguaje Visual Basic, por ejemplo, puede ser usado dentro de las aplicaciones de Microsoft Office, lo que hace posible escribir sentencias Visual Basic en forma de macros para Microsoft Word.

 Imagen 1. Captura de pantalla de una plataforma de programación IDE.

A la hora de crear arte hecho codigo fuente, muchas veces necesitamos un buen editor para escribir nuestro codigo, un compilador a mano o interprete según corresponda a nuestro lenguaje de programación, una conección a su base de datos facil y rapida si es que utilizamos. En fin muchas veces necesitamos escoger para nuestro lenguaje un Entorno de Desarrollo Integrado (IDE).

Un entorno de desarrollo integrado o en inglés Integrated Development Environment (IDE) es un programa compuesto por un conjunto de herramientas para un programador.

Los IDEs proveen un marco de trabajo amigable para la mayoría de los lenguajes de programación. En algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de ejecución, en donde se permite utilizar el lenguaje de programación en forma interactiva, sin necesidad de trabajo orientado a archivos de texto, como es el caso de Smalltalk u Objective-C.

Es posible que un mismo IDE pueda funcionar con varios lenguajes de programación. Este es el caso de Eclipse, que mediante pluggins se le puede añadir soporte de lenguajes adicionales

Características

Los IDE ofrecen un marco de trabajo amigable para la mayoría de los lenguajes de programación tales como C++, Python, Java, C#, Delphi, Visual Basic, etc. En algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de ejecución, en donde se permite utilizar el lenguaje de programación en forma interactiva, sin necesidad de trabajo orientado a archivos de texto, como es el caso de Smalltalk u Objective-C.

Es posible que un mismo IDE pueda funcionar con varios lenguajes de programación. Este es el caso de Eclipse, al que mediante plugins se le puede añadir soporte de lenguajes adicionales.

Un IDE debe tener las siguientes características:


  1. Multiplataforma
  2. Soporte para diversos lenguajes de programación
  3. Integración con Sistemas de Control de Versiones
  4. Reconocimiento de Sintaxis
  5. Extensiones y Componentes para el IDE
  6. Integración con Framework populares
  7. Depurador
  8. Importar y Exportar proyectos
  9. Múltiples idiomas
  10. Manual de Usuarios y Ayuda

Componentes


  1. Editor de texto.
  2. Compilador.
  3. Intérprete.
  4. Herramientas de automatización.
  5. Depurador.
  6. Posibilidad de ofrecer un sistema de control de versiones.
  7. Factibilidad para ayudar en la construcción de interfaces gráficas de usuarios.

b) Vídeo tutorial editado y subtitulado explicando las experiencias hechas en el laboratorio:

Video 


Video Recuperación de taller 
Walter Neyra 



c) Anexos:





d) Observaciones y conclusiones. ¿Qué he aprendido de esta experiencia?

4.1. Conclusiones:


  • Concluimos que se logro programar un contador de pulsos para hacer un conteo ascendente y descendente.
  • Concluimos que logramos simular en proteus el reto del laboratorio del semáforo con contador.
  • Concluimos que se logro identificar las aplicaciones del Arduino en Electrónica Digital.
  • Se concluye que logramos describir el funcionamiento de las unidades y dispositivos de almacenamiento de información(Arduino).
  • para finalizar concluimos que se logro implementar circuitos de lógica combinacional y secuencial usando Arduino.

e) Integrantes (incluye foto de todos)



miércoles, 24 de octubre de 2018

Lab 06 - Introducción a Arduino

LABORATORIO N° 06

PROGRAMACION DE ARDUINO


Alumno(s):

  • Jove Caceres Boris Yeltsein
  • Neyra Montes Walter Dalin
  • Ventura Cabana Jamil Simeon

I. Historia de Arduino y modelos


1. Historia del Arduino.


Massimo Banzi, el cofundador italiano del proyecto de electrónica que llamó Arduino en honor al lugar. Arduino es un tablero de microcontroladores de bajo costo que le permite incluso a un principiante hacer cosas realmente sorprendentes. Puede conectar un Arduino a todo tipo de sensores, luces, motores y otros dispositivos y usar un software fácil de aprender para programar cómo se comportará su creación. Puede crear una pantalla interactiva o un robot móvil y luego compartir su diseño con el mundo publicándolo en la Red.

Lanzado en 2005 como una herramienta modesta para los estudiantes de Banzi en el Instituto de Diseño de Interacción Ivrea (IDII), Arduino ha generado una revolución internacional de bricolaje en electrónica. Puede comprar una placa Arduino por aproximadamente US $ 30 o construirla desde cero: todos los esquemas de hardware y el código fuente están disponibles de forma gratuita bajo licencias públicas. Como resultado, Arduino se ha convertido en el movimiento de hardware de código abierto más influyente de su tiempo.

El tablero pequeño es ahora el equipo de referencia para artistas, aficionados, estudiantes y cualquier persona con un sueño de artilugios. Se han vendido más de 250 000 tableros Arduino en todo el mundo, y eso no incluye las resmas de clones. "Hizo posible que las personas hicieran cosas que no habrían hecho de otra manera", dice David A. Mellis, quien estudiaba en IDII antes de continuar su trabajo de posgrado en el MIT Media Lab y es el principal desarrollador de software de Arduino.


Enumeraremos algunos acontecimientos importantes de la historia del Arduino:


  • Arduino nació como un proyecto educativo allá por el año 2005 sin pensar que algunos años más tarde se convertiría en  lider del mundo DIY (Do It Yourself).
  • Su nombre viene del nombre del bar Bar di Re Arduino donde Massimo Banzi pasaba algunas horas, el cual a su vez viene del nombre de un antiguo rey europeo allá por el año 1002.
  • Banzi dice que nunca surgió como una idea de negocio, es más nació por una necesidad de subsistir ante el eminente cierre del Instituto de diseño Interactivo IVREA en Italia.  Es decir, al crear un producto open hardware (de uso público) no podría ser embargado.  Es más hoy en día Arduino tiene la difícil tarea de subsistir comercialmente y continuar en continuo crecimiento.
  • A la fecha se han vendido más de 250 mil placas en todo el mundo sin contar las versiones clones y compatibles.
  • Para su creación participaron alumnos que desarrollaban sus tesis como Hernando Barragan (Colombia) quien desarrollo la plataforma de programación Wiring con la cual se programa el microcontrolador.
  • Hoy en día con Arduino se pueden fabricar infinidad de prototipos y cada ves su uso se viene expandiendo más.  Desde cubos de leds, sistemas de automatización en casa (domotica), integración con el Internet, displays Twitter, kit analizadores de ADN.
  • Google ha apostado por el proyecto y ha colaborado en el Android ADK (Accesory Development Kit), una placa Arduino capaz de comunicarse directamente con spmartphones Android para obtener las funcionalidades del teléfono (GPS, acelerómetros, GSM, abases de datos) y viceversa para que el teléfono controle luces, motores y sensores conectados de Arduino.
  • El primer prototipo fue desarrollado en el instituto IVRAE pero aún no se llamaba Arduino.  Vea la foto del mismo.
  • La primera producción fue de 300 unidades y se las dieron a los alumnos del Instituto IVRAE, (las ganacias fueron de sólo 1 dollar por placa), con el fin de que las probaran y empezaran a diseñar sus primeros prototipos.
  • Uno de los primeros proyecto fue un reloj alarma, el cual no se apagaría hasta que no te pararas de la cama.
  • Hoy por hoy Arduino te permite crear cosas por ti mismo.
  • Varias universidades como Standford y Carnegie Mellon y el MIT usan Arduino en sus campus.
  • En la feria Maker Fair del 2011 se presentó la primera placa Arduino 32 Bit para trbajar tareas más pesadas.  Entre ellas se presentó la  impresora en 3D de MakerBot capaz de de imprimir en resina cualquier modelo en 3D.

Imagen relacionada
Figura 1: Primer prototipo de Arduino.


2. Modelos y características de los diferentes tipos de Arduinos.


2.1. Arduino UNO Rev3


Imagen relacionada
Figura 2. Arduino UNO Rev3

Características:


Es una tarjeta electronica basada en el microcontrolador Atmega328. Dispone de 14 entradas/salidas digitales, 6 de las cuales se pueden emplear como salidas PWM (modulación de anchura de pulsos). Dispone también de 6 entradas analogicas, un oscilador de 16MHz, una conexión USB, un conector de alimentación, un conector ICSP y un pulsador para el reset. Para empezar a utilizar la placa sólo es necesario conectarla al ordenador a traves de un cable USB (no incluído), o bien alimentarla con un adaptador de corriente AC/DC (no incluído). En esta versión de la tarjeta Arduino UNO, una de las diferencias más importante respecto a sus predecesoras, es que no utiliza el convertidor USB-serie de la empresa FTDI. Por lo contrario, integra un microcontrolador Atmega16U2 (Atmega8U2 version R2) programado como un convertidor USB a serie.


  • Revisión 2 de Arduino Uno tiene una resistencia tirando de la línea HWB 8U2 a tierra, haciéndolo más fácil de poner en modo DFU.
  • 1.0 pinout: añadido a pines SDA y SCL que se colocan cerca del pin AREF y pasadores nuevos cerca el pin RESET, el IOREF que permiten los escudos para adaptarse a la tensión de la tarjeta. En el futuro, los escudos serán compatibles con ambos, la tarjeta que utiliza el AVR, que opera con 5V y con Arduino Due que opera con 3.3V. El segundo es un pin no conectado, que está reservado para los propósitos futuros. 
  • El circuito de RESET más consistente.
  • Atmega 16U2 reemplaza el 8U2. Microcontroller: ATmega328
  • Operating Voltage: 5V
  • Input Voltage (recommended): 7 - 12V 
  • Input Voltage (limits): 6 - 20V 
  • Digital I/O Pins: 14 (of which 6 provide PWM output) 
  • Analog Input Pins: 6 
  • DC Current per I/O Pin: 40 mA 
  • DC Current for 3.3V Pin: 50 mA 
  • Flash Memory: 32 KB (ATmega328) of which 0.5 KB used by bootloader 
  • SRAM: 2 KB (ATmega328) 
  • EEPROM: 1 KB (ATmega328) 
  • Clock Speed: 16 MHZ

2.2. El Arduino Pro Mini 328



Resultado de imagen para El Arduino Pro Mini 328
Figura 3. Arduino Pro Mini 328





El Arduino Pro Mini 328 es una placa con un pequeño microcontrolador, basado originalmente en el ATMega168 , pero ahora se suministra con el 328, destinado a montarse en placas base y cuando el espacio es primordial. Cuenta con 14 entradas / salidas digitales pines (de los cuales 6 pueden ser utilizados como salidas PWM), 8 entradas analógicas, y una de 16 MHz del oscilador de cristal. Se puede utilizar con USB / Serial converter para la programación y para agregar al puerto USB Advertencia : No encienda el mini Arduino con más de 9 voltios, o el enchufe de alimentación al revés: es probable que se deteriore Chip ATmega328 a 16MHz con cristal de cuarzo externo (toleracia: 0.5%)


2.3. Arduino Mini 05 Light.


El Arduino Mini 05 es una pequeña placa para microcontroladores originalmente basada en el ATmega168, pero que ahora se suministra con la 328. (hoja de datos), destinada al uso en tablas de pruebas y cuando el espacio es escaso. Tiene 14 pines de entrada / salida digital (de los cuales 6 se pueden usar como salidas PWM), 8 entradas analógicas y un oscilador de cristal de 16 MHz. Se puede programar con el adaptador serial USB u otro adaptador serial USB o RS232 a TTL.






El nuevo Mini (revisión 05) tiene un nuevo paquete para el ATmega328P, que permite que todos los componentes estén en la parte superior de la placa. También tiene un botón de reinicio a bordo. La nueva versión tiene la misma configuración de pines que la revisión 04.




II. Video tutorial editado y subtitulado explicando las experiencias hechas en el laboratorio



III. Observaciones y conclusiones. ¿Qué he aprendido de esta experiencia?


En esta experiencia aprendimos sobre los programas que se puede usar para  una programación en arduino ,como también implementar circuitos de lógica combinacional y secuencial, se pudo observar las aplicaciones que tiene la electrónica digital y la programación realizada en arduino uno, esto se dio  por medio de gráfico.

 Se lograron resolver problemas planteados mediante la programación de “juegos blockliy”, una vez concluido esa tarea se hizo uso del programa IDE arduino  ya que es un entorno muy sencillo de usar y en él escribiremos el programa que queramos que el Arduino ejecute, se usó la programación que ya estaba ahí, simplemente cambiamos los tiempos de los LED para su prendido y apagado.
Seguidamente usamos el mBlock donde se observó que es un entorno gráfico de programación por bloque para Arduino, que permite introducir de forma sencilla la programación y robótica.
Finalmente realizamos el proyecto semáforo con los programas que se nos brindó, concluyendo satisfactoriamente con la tarea.

IV. Anexos:




V. Integrantes (incluye foto de todos)


lunes, 22 de octubre de 2018

Lab 05 - Temporizadores y Generadores de Clock




LABORATORIO N°05


TEMPORIZADORES Y GENERADORES DE CLOCK


Alumno(s):

  • Jove Caceres Boris Yeltsein
  • Neyra Montes Walter Dalin
  • Ventura Cabana Jamil Simeon

I. Teoría de osciladores ASTABLES Y MONOESTABLES

     A.- Oscilidores Astables: 

     

Un multivibrador astable es un circuito capaz de generar ondas a partir de una fuente de alimentación continua. La frecuencia de estas ondas dependerá de la carga y descarga de los condensadores C1 y C2 , que serán provocadas por la conmutación de los transistores TR1 y TR2.

Si dividimos el circuito por la mitad verticalmente, tendremos R1, R2, C1 y TR1 por un lado, y por otro lado tendremos R3, R4, C2 y TR2.

Para conseguir una forma de onda simétrica, debemos asegurarnos que el circuito es simétrico en cuanto a valores de sus componentes, es decir, R1=R4, R2=R3, C1=C2 y TR1=TR2.

Dado que no dispongo de los componentes y que la finalidad es entender el funcionamiento del circuito, es más sencillo verlo en un simulador que montado en una protoboard, así que he hecho el video siguiente donde se ve el funcionamiento del circuito simulado en Livewire.

figura1


En la Figura 1 se muestra el esquema de un multivibrador astable realizado con componentes discretos. El funcionamiento de este circuito es el siguiente:

Al aplicar la tensión de alimentación (Vcc), los dos transistores iniciaran la conducción, ya que sus bases reciben un potencial positivo a través de las resistencias R-2 y R-3, pero como los transistores no serán exactamente idénticos, por el propio proceso de fabricación y el grado de impurezas del material semiconductor, uno conducirá antes o más rápido que el otro.

Supongamos que es TR-1 el que conduce primero. En estas condiciones el voltaje en su colector estará próximo a 0 voltios, por lo que C-1 comenzará a cargarse a través de R-2, creando al principio una muy pequeña diferencia de potencial entre sus placas y, por tanto, trasladando el voltaje próximo a 0 hasta la base de TR-2, que se pondrá en corte. Cuando el voltaje en C-1 alcance los 0,6 V, TR-2 comenzará a conducir, pasando la salida a nivel bajo (tensión próxima a 0V). C-1, que se había cargado vía R-2 y unión base-emisor de TR-2, se descargará ahora provocando el bloqueo de TR-1.

B.- Oscilidores Monoestables: 

Este circuito se caracteriza por presentar un único estado estable en régimen permanente, y cuando mediante una excitación externa se genera una perturbación que lo aparta de ese estado estable el circuito evoluciona en un estado no estable que provoca un cambio en la salida y al cabo de un cierto tiempo predeterminado vuelve al estado estable. En régimen permanente el circuito permanece en el estado estable. La conmutación al estado semiestable es forzada mediante una excitación externa adecuada, en su presencia el circuito inicia un régimen transitorio para, una vez transcurrido el tiempo de duración del estado no estable retornar al estado estable. El tiempo que el circuito permanece en el estado no estable, comúnmente denominado período semiestable, queda determinado por los valores de algunos elementos pasivos que componen el circuito. 


En la Figura 2 se representa el esquema de un circuito multivibrador monoestable, realizado con componentes discretos, cuyo funcionamiento es el siguiente: 
figura2


Al aplicar la tensión de alimentación (Vcc), los dos transistores iniciarán la conducción, ya que sus bases reciben un potencial positivo a través de las resistencias R-2 y R-3, pero como los transistores no serán exactamente idénticos, por el propio proceso de fabricación y el grado de impurezas del material semiconductor, uno conducirá antes o más rápido que el otro.

Supongamos que es TR-2 el que conduce primero. El voltaje en su colector estará próximo a 0 voltios (salida Y a nivel bajo), por lo que la tensión aplicada a la base de TR-1 a través del divisor formado por R-3, R-5 , será insuficiente para que conduzca TR-1. En estas condiciones TR-1 permanecería bloqueado indefinidamente.
Pero si ahora aplicamos un impulso de disparo de nivel alto por la entrada T, el transistor TR-1 conducirá y su tensión de colector se hará próxima a 0 V, con lo que C-1, que estaba cargado a través de R-1 y la unión base-emisor de TR-2, se descargará a través de TR-1 y R-2 aplicando un potencial negativo a la base de TR-2 que lo llevará al corte (salida Y a nivel alto) . En esta condición la tensión aplicada a la base de TR-1 es suficiente para mantenerlo en conducción aunque haya desaparecido el impulso de disparo en T.

Circuito Monoestable acoplado por colector 
El circuito monoestable más sencillo es el que se muestra en la figura 1. Se implementa con dos transistores acoplados por colector que en el estado estable están en corte y en conducción, respectivamente. Cuando se conecta la alimentación del circuito, independientemente de algún transitorio inicial donde ambos transistores conducen, uno de los transistores (en este caso Q2) entra en conducción más rápidamente y provoca el corte del otro transistor.


En el estado estable uno de los transistores (Q2) conduce, mientras que el otro (Q1) permanece cortado. Cuando una perturbación externa fuerza la conducción del transistor Q1 (normalmente cortado) o el corte del transistor Q2 (normalmente en conducción) se inicia el estado semiestable en el cual conduce Q1 mientras Q2 permanece cortado- La duración de este estado no estable es controlable mediante una adecuada elección de los componentes del circuito.

II. Video tutorial editado y subtitulado explicando las experiencias hechas en el laboratorio:


III. Observaciones y conclusiones. ¿Qué he aprendido de esta experiencia? 

Observaciones:

  1. Se pudo observar que los cálculos realizados obteniendo la R1 y R2 y la simulación en Proteus no son exactos.
  2. Es necesario usar circuitos de lógica combinacional par realizar alguna acción con nuestros integrados "Generadores Clock".


Conclusiones:

  1. Concluimos que se logró identificar las aplicaciones de la Electrónica Digital.
  2. Concluimos que se logró describir el funcionamiento de las unidades y dispositivos de almacenamiento de información.
  3. Concluimos que se logro simular en Software ProteusSIS el integrado 555 obteniendo las frecuencias que nos pide la guía de laboratorio.
  4. concluimos que logramos implementar circuitos de lógica combinacional y secuencial.

IV. ANEXOS:







V. Integrantes (incluye foto de todos)


miércoles, 3 de octubre de 2018

LABORATORIO 04 - Circuitos Contadores con Flip Flops

LABORATORIO N° 04


CIRCUITOS CONTADORES CON FLIP FLOPS

Alumno(s):

  1. Jove Caceres Boris Yeltsein
  2. Neyra Montes Walter Dalin
  3. Ventura Cabana Jamil Simeon

Teoría de LATCHES y FLIP FLOPS


I. Biestables sensibles por nivel o latches. 


  • El Latch (cerrojo) es un dispositivo de almacenamiento temporal de dos estados (biestable). 
  • Almacenan información en forma asíncrona 
  • Con Latches se pueden hacer directamente circuitos secuenciales o se pueden usar para crear Flip-Flops.

1. Tipos:
  • SR
  • SR 
  • D

1.1.  LATCH SR (SET-RESET) - (Biestable R-S con puertas NOR).

El latch R-S (Reset-Set) con entrada activa a nivel alto es un tipo de dispositivo lógico biestable con dos salidas Q Q (una la complementaria de la otra), compuesto de dos puertas NOR acopladas tal y como muestra la Figura 3-2. Se puede observar que la salida de cada puerta NOR se conecta a la entrada de la puerta opuesta. 

  • Elemento de memoria mas sencillo
  • Es un biestable con un estado SET y otro de RESET(puesta a 1 y a 0).

Se tiene dos versiones:

1. Latch S-R con entrada activa en ALTO.


2. Latch  SR con entrada activa en BAJO .



1.2. Latch R-S con entrada de habilitación. 

A menudo resulta de utilidad poder controlar el funcionamiento del latch de manera que las entradas se puedan activar en unos instantes determinados. El diagrama y el símbolo lógico de un latch con entrada de habilitación se muestra en la Figura 3-6. Las entradas S y R controlan el estado al que va a cambiar el latch cuando se aplica un ‘1’ en la entrada de habitación (E, enable). El latch no cambiará de estado hasta que la entrada E esté a nivel alto. Esta tercera entrada (E) permite habilitar o inhibir las acciones del resto de entradas. 




Figura 3: Latch R-S con entrada de habilitación.


Cuando la señal de habilitación E esté a nivel bajo, las señales S y R estarán a nivel alto sin importar el valor de las entradas R y S. Esto coloca al latch en su modo de memoria, evitando que la salida cambie de estado. Cuando se activa la entrada de habilitación, las señales R y S se invierten y se aplican al latch S - R , es decir, el circuito actúa como un latch R-S con entrada activa a nivel alto. La tabla de verdad se puede apreciar en la Figura 3. 

1.3. Latch D con entrada de habilitación. 

Existe otro tipo de latch con entrada de habilitación que se denomina latch D. Se diferencia del latch S-R en que sólo tiene una entrada (D), además de la de habilitación (E). La figura 4 muestra el diagrama, el símbolo lógico y la tabla de verdad de este tipo de latch.


Figura 4: Latch R-S con entrada de habilitación.

1.4. Símbolo Lógico para los Latches



1.5. Aplicación


Si se aplica las formas de onda a las entradas del Latch, determinar la forma de onda que se observara en la salida. Considere Q inicialmente en estado BAJO.



II. Biestables disparados por flancos o flip-flops. 


En muchas situaciones es necesario sincronizar el funcionamiento de muchos circuitos diferentes y resulta de utilidad poder controlar el momento en el que un circuito cambiará de estado. 

Algunos biestables están construidos de manera que sólo cambian de estado ante la aplicación de una señal de disparo, en concreto ante el flanco de bajada o de subida de una señal de entrada llamada reloj (CLK). Estos biestables reciben el nombre de biestables disparados por flanco, o más comúnmente flip-flops. 

Los flip-flops son dispositivos síncronos. El término síncrono significa que la salida cambia de estado únicamente en un instante específico de una entrada de disparo (reloj), es decir, los cambios en la salida se producen sincronizadamente con el reloj.

Podemos encontrar dos tipos de flip-flops: 
1. Los que son disparados por el flanco de subida de la señal de reloj. 
2. Los que son disparados por el flanco de bajada de la señal de reloj.   

2.1. FLIP-FLOPS
  • Dispositivos síncronos (cambia de estado únicamente en un instante especifico de una entrada de disparo denominado reloj) 
  • Los cambios de salida se producen sincronizadamente con el reloj 
  • Los Flip-flops son sensitivos a la transición del pulso de reloj más que a la duración. 
  • Los circuitos secuenciales básicos que funcionan también como unidades de memoria elementales se denominan multivibradores biestables (por tener dos estados estables –alto y bajo-), también conocidos como FlipFlops. 
  • Son capaces de memorizar un bit de información. 
  • Existen varios tipos de Flip-flops y variaciones de estos que permiten realizar funciones específicas, dependiendo de la aplicación.

2.2. Tipos:

  1. D
  2. JK
  3. SR

2.2.1 Flip-flop D disparado por flanco. 

Su comportamiento es similar al del latch D descrito con anterioridad, la salida del flipflop tipo D se igualará a la entrada en el instante en el que se produzca el flanco ascendente o descendente (según el tipo de flip-flop) de la señal de reloj (CLK). En la Figura 3-9 se observa el símbolo lógico y la tabla de verdad de un flip-flop tipo D disparado por flanco ascendente.

Figura 5:  Flip-flop D disparado por flanco ascendente.


El funcionamiento de un flip-flop D disparado por flanco ascendente se resume en la Figura 5.1.
Figura 5.1: Ejemplo de formas de onda en las entradas y en la salida de un flip-flop D disparado por flanco ascendente.

2.2.2. FLIP-FLOP JK 


El símbolo lógico para un flip-flop JK es el siguiente:

  
Figura 6: El símbolo lógico para un JK - flip-flop.  - FOLD.


Este flip-flop se denomina como "universal" ya que los demás tipos se pueden construir a partir de él. En el símbolo anterior hay tres entradas síncronas (J, K y CLK). Las entradas J y K son entradas de datos, y la entrada de reloj transfiere el dato de las entradas alas salidas.


A continuación veremos la tabla de la verdad del flip-flop JK:

Resultado de imagen para flip flop jk tabla de verdad

Observamos los modos de operación en la parte izquierda y la tabla de la verdad hacia la derecha. La línea 1 muestra la condición de "mantenimiento", o inhabilitación. La condición de "reset" del flip-flop se muestra en la línea 2 de la tabla de verdad. Cuando J=0y K=1 y llega un pulso de reloj a la entrada CLK, el flip-flop cambia a 0(Q=0).La línea 3 muestra la condición de "set" del flip-flop JK. Cuando J=1 y K=0 y se presenta un pulso de reloj, la salida Q cambia a 1. La línea 4 muestra una condición muy difícil para el flip-flop JK que se denomina de conmutación.

2.2.3. FLIP-FLOPS RS


Este es el flip - flop básico, su símbolo es el siguiente:

Figura 7: El símbolo lógico para un flip - flop básico RS.



El flip-flop tiene dos entradas R (reset) y S (set), se encuentran a la izquierda del símbolo. Este flip-flop tiene activas las entradas en el nivel BAJO, lo cual se indica por los circulitos de las entradas R y S. Los flip-flop tienen dos salidas complementarias, que se denominan Q y 1, la salida Q es la salida normal y 1 = 0.El flip-flop RS se puede construir a partir de puertas lógicas. A continuación mostraremos un flip-flop construido a partir de dos puertas NAND, y al lado veremos su tabla de verdad correspondiente.

Observar la realimentación característica de una puerta NAND a la entrada de la otra. En la tabla de la verdad se define la operación del flip-flop. Primero encontramos el estado "prohibido" en donde ambas salidas están a 1, o nivel ALTO. Luego encontramos la condición "set" del flip-flop. Aquí un nivel BAJO, o cero lógico, activa la entrada de set(S). Esta pone la salida normal Q al nivel alto, o 1.Seguidamente encontramos la condición "reset". El nivel BAJO, o 0, activa la entrada de reset, borrando (o poniendo en reset) la salida normal Q.La cuarta línea muestra la condición de "inhabilitación" o "mantenimiento", del flip-flop RS. Las salidas permanecen como estaban antes de que existiese esta condición, es decir, no hay cambio en las salidas de sus estados anteriores. Indicar la salida de set,significa poner la salida Q a 1, de igual forma, la condición reset pone la salida Q a 0.La salida complementaria nos muestra lo opuesto. Estos flip-flop se pueden conseguir a través de circuitos integrados.


III. Vídeo tutorial editado y subtitulado explicando las experiencias hechas en el laboratorio:








RETO:







IV. Observaciones y conclusiones. ¿Qué he aprendido de esta experiencia?(en modo texto)

5.1. Observaciones 


  1. Es muy importante verificar la fuente de alimentación (+- 5V) con el que se esta trabajando, la verificación se debe realizar antes de alimentar los integrados (Flip- Flop) para realizar las pruebas que nos pide la guía del laboratorio. 
  2. En este laboratorio nuestros Flip-flop consideran como 1 cuando las entradas J y K no están conectados a 0 V o si estos están al aire.
  3. Es importante que primero debemos simular en un Software (Proteus - ISIS), para entender el funcionamiento de nuestro circuito y posteriormente armarlo en nuestro protoboard.
  4. En el caso del reto que nos pide realizar la guía, se implemento aplicando las teorías de los laboratorios 01 y 02, usamos los un integrado AND y un integrado OR.

5.2. Conclusiones

  1. Concluimos que se logro identificar las aplicaciones de la Electrónica Digital.
  2. Concluimos que realizamos cada una de las simulaciones de los circuitos para su armado fisico en el protoboard.
  3. Concluimos que se logro implementar todos los circuitos de lógica combinacional y secuencial que nos pide la guía de laboratorio.
  4. Concluimos que se logro describir el funcionamiento de las unidades y dispositivos de almacenamiento de información.
  5. Podemos concluir que un circuito flip-flop puede mantener un estado binario indefinidamente hasta que se cambie por una señal de entrada para cambiar estados. La principal diferencia entre varios tipos de flip-flops es él numero de entradas que poseen y la manera en la cual las entradas afecten el estado binario.
  6. Concluimos que se logro armar el circuito simulado y físico del reto que nos pide la guía del laboratorio.

  • Integrantes (incluye foto de todos)