martes, 28 de mayo de 2019

LABORATORIO NRO. 6



ELECTRÓNICA DIGITAL
LABORATORIO 6:
SENSORES Y ACTUADORES DIGITALES
CON ARDUINO


1. COMPETENCIA ESPECIFICA DE LA SESIÓN:
  • Programación de sensores digitales con Arduino.
  • Programación de actuadores digitales con Arduino.
  • Implementación de proyecto con sensores y actuadores digitales.

2. MARCO TEÓRICO:

La programación de Arduino es la programación de un microcontrolador. Esto era algo más de los ingenieros electrónicos, pero Arduino lo ha extendido a todo el público. Arduino ha socializado la tecnología.
Programar Arduino consiste en traducir a líneas de código las tareas automatizadas que queremos hacer leyendo de los sensores y en función de las condiciones del entorno programar la interacción con el mundo exterior mediante unos actuadores. 
Arduino proporciona un entorno de programación sencillo y potente para programar, pero además incluye las herramientas necesarias para compilar el programa y “quemar” el programa ya compilado en la memoria flash del microcontrolador. Además el IDE nos ofrece un sistema de gestión de librerías y placas muy práctico. Como IDE es un software sencillo que carece de funciones avanzadas típicas de otros IDEs, pero suficiente para programar.

Estructura de un Sketch


Un programa de Arduino se denomina sketch o proyecto y tiene la extensión .ino. Importante: para que funcione el sketch, el nombre del fichero debe estar en un directorio con el mismo nombre que el sketch.

No es necesario que un sketch esté en un único fichero, pero si es imprescindible que todos los ficheros estén dentro del mismo directorio que el fichero principal.

void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}

La estructura básica de un sketch de Arduino es bastante simple y se compone de al menos dos partes. Estas dos partes son obligatorios y encierran bloques que contienen declaraciones, estamentos o instrucciones.



Adicionalmente se puede incluir una introducción con los comentarios que describen el programa y la declaración de las variables y llamadas a librerías.



setup() es la parte encargada de recoger la configuración y loop() es la que contiene el programa que se ejecuta cíclicamente (de ahí el término loop –bucle-). Ambas funciones son necesarias para que el programa trabaje.

  • 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.


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ística

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:

- Multiplataforma
- Soporte para diversos lenguajes de programación
- Integración con Sistemas de Control de Versiones
- Reconocimiento de Sintaxis
- Extensiones y Componentes para el IDE
- Integración con Framework populares
- Depurador
- Importar y Exportar proyectos
- Múltiples idiomas
- Manual de Usuarios y Ayuda

Componentes


- Editor de texto.

- Compilador.
- Intérprete.
- Herramientas de automatización.
- Depurador.
- Posibilidad de ofrecer un sistema de control de versiones.
- Factibilidad para ayudar en la construcción de interfaces gráficas de usuarios.
  • SparkFun RedBoard


La tarjeta de arduino es una herramienta increíble para los entusiastas de la electrónica experimentados y en ciernes. Todo el proyecto Arduino, tanto el hardware como el software, es de código abierto. Los esquemas , los archivos de diseño de hardware y el código fuente están disponibles gratuitamente para su visualización y modificación.


La tarjeta RedBoard es similar a un Arduino Uno, pero está ligeramente modificado para que el tablero se adapte mejor a nuestros propósitos.




  • Sistema de Entrenamiento para Electrónica Analógica/Digital ETS-7000A
El Sistema de Entrenamiento Digital-Analógico ETS-7000A está diseñado para principiantes, para mejorar la comprensión de la teoría digital y analógica. El diseño del Sistema de Capacitación Digital-Analog es fácil de operar y fácil de entender.

-Disponible para varios conectores.
-Ejecuta experimentos con interfaz para PC por medio de conectores compatibles universales.

Es un protoboard sin soldadura, interconectado con 2712 puntos de contacto de amarre niquelados, se adaptan a todos los componentes con tamaños DIP y alambre sólido AWG # 22 a 30 (0,3 ~ 0,8 mm). 

Se puede cambiar y se sustituye para diferentes propósitos y puede ser conectada con el panel de demostración. 

Por lo tanto, es muy conveniente tanto para los profesores y los estudiantes.

3. TAREAS DEL LABORATORIO

  • Escritura de salidas digitales con Leds y Display de 7 segmentos. Transcriba el siguiente código y vea el resultado:








  • El código anterior sólo puede incrementar, modifique código para que pueda incrementar y decrementar.

Codigo de incrementar

Codigo de decremetar

  • RETO: Añada 3 salidas digitales (LEDS) y modifique código para que el programa se comporte como un SEMAFORO con CONTADOR REGRESIVO:



Codigo de contador regresivo, semaforo


4. EVIDENCIAS DE TAREAS EN EL LABORATORIO


En este vídeo podemos explicar la resolución del laboratorio, en la cual mostramos el proceso de como verificamos los pasos de la tarea, seguidamente  dando a conocer tambien físicamente en un circuito el funcionamiento del ejercicio que se pide.




5. OBSERVACIONES

  • Usamos los displays para visualizar los números que se van contando en ascendente y descendente según la programación realizada.
  • En la programación del Arduino podemos realizar cambios en el tiempo y así poder cambiar la velocidad a la que prende el led de salida. 
  • Podemos establecer valores en donde puede comenzar a contar por ejemplo que empiece en 30 y solo llegue a 70.
  • En si el Arduino es una serie de componentes electrónicos donde podemos configurarlo para que sume reste divida, hacer diferentes operaciones.
  • Las entradas son señales que entran al Arduino, pueden ser de señal digital como también analógica, esto va a depender si el Arduino soporta dichas entradas
  • Los pulsadores con unos elementos muy importantes, en cuanto a esta aplicación.


6. CONCLUSIONES 

  • Podemos llegar a la conclusión que se comprobó el funcionamiento y la importancia que tiene el Arduino en el mundo de la electrónica. 
  • En síntesis, se analizaron las diferentes tipas de programación y se diferenció una de la otra.
  • En conclusión, podemos decir que gracias a esta experiencia de laboratorio ahora sabemos todas las características que posee este Arduino para así poder realizar en un futuro un trabajo con este.
  • Concluimos que su entorno nos permite que muchas personas sin experiencia opten por Arduino como herramienta de aprendizaje.
  • Finalizando este laboratorio, nos dimos cuenta que está basado en dos sistemas abiertos, por lo que nos da la total libertad de entender el hardware y software.
  • Podemos concluir que las estradas del Arduino puede ser cualquier sensor y sus salidas puede ser una carga cuya operación va a estar en función a la entrada que se le asigne


7. INTEGRANTES
  • Mamani Gutierrez Arnol Kervin
  • Martinez Riva Zeus Enrique 
  • Concha Vargas Edwin Yuber 





















LABORATORIO NRO. 5


ELECTRÓNICA DIGITAL
LABORATORIO 5:
CIRCUITOS CONTADORES CON FLIP FLOPS

1. COMPETENCIA ESPECIFICA DE LA SESIÓN:
  • Implementación de circuitos monoestables.
  • Implementación de circuitos contadores con Flip Flops JK.
  • Utilizar un SIMULADOR para comprobar el comportamiento de los mismos.

2. MARCO TEÓRICO:



El "Flip-flop" es el nombre común que se le da a los dispositivos de dos estados, que sirven como memoria básica para las operaciones de lógica secuencial. Los Flip-flops son ampliamente usados para el almacenamiento y transferencia de datos digitales y se usan normalmente en unidades llamadas "registros", para el almacenamiento de datos numéricos binarios.


  • Flip-Flop Set/Reset

El flip-flop de tipo set/reset, se activa (set) a un estado de alto en el lado Q, por medio de una señal de "set", y se mantiene en ese valor, hasta que se desactiva a una señal baja, por medio de una entrada en el lado de reset. Esto se puede implementar como el latch de puerta NAND o el latch de puerta NOR, y tambien como versión con pulso de clock (sincronizado). 

Una desventaja del flip-flop S/R, es que las entradas S=R=0 da un resultado ambiguo y debe evitarse. El flip-flop J-K consigue superar este problema.


  • Flip-Flop Set/Reset con Clock






Cuando la línea de señal S va a alta, la otra línea a la puerta NAND que viene del circuito de dirección de pulsos debe estar también alta, para generar una salida alta en Q. Asimismo, un pulso de clock debe estar presente, cuando se recibe el pulso de RESET R alto, para llevar la salida de reset a alta (Q=0). 



De esta manera, todas las transiciones están sincronizadas con el pulso de clock.

  • Flip-Flop J-K

El "flip-flop" J-K, es el más versátil de los flip-flops básicos. Tiene el carácter de seguimiento de entrada del flip-flop D sincronizado, pero tiene dos entradas, denominadas tradicionalmente J y K. Si J y K son diferentes, la salida Q toma el valor de J durante la subida del siguiente pulso de sincronismo.



Si J y K son ambos low (bajo), entonces no se produce cambio alguno. Si J y K son ambos high (alto), entonces en la siguiente subida de clock la salida cambiará de estado. Puede realizar las funciones del flip-flop set/reset y tiene la ventaja de que no hay estados ambiguos. Puede actuar tambien como un flip-flop T para conseguir la acción de permutación en la salida, si se conectan entre sí las entradas J y K. Esta aplicación de permutar el estado, encuentra un uso extensivo en los contadores binarios.


  • El Flip-Flop D

El "flip-flop" tipo D, sigue a la entrada, haciendo transiciones que coinciden con las de la entrada. El término "D", significa dato; este "flip-flop" almacena el valor que está en la línea de datos. Se puede considerar como una celda básica de memoria. Un "flip-flop" D, se puede hacer con un "flip-flop" "set/reset", uniendo la salida set (estado alto) con la salida reset (estado bajo), a través de un inversor. El resultado se puede sincronizar.


  • El Flip-Flop T

El flip-flop T o "toggle" (conmutación) cambia la salida con cada borde de pulso de clock, dando una salida que tiene la mitad de la frecuencia de laseñal de entrada en T. 



Es de utilidad en la construcción de contadores binarios, divisores de frecuencia, y dispositivos de sumas binarias en general. Se puede hacer a partir de flip-flops J-K, llevando ambas entradas J y K a alta (high).


Construcción de un flip-flop T desde un flip-flop J-K

  • Latch con Puertas NAND




La secuencia de tiempo de la derecha, muestra las condiciones bajo las cuales las entradas de set y reset, cambian el estado del latch y cuando no lo cambian.





El concepto de circuito "latch", es importante en la creación de dispositivos de memoria. La función de tal circuito es "capturar" el valor creado por las señales de entrada al dispositivo y mantener ese valor hasta que lo cambie alguna otra señal.

  • Latch con Puertas NOR




La secuencia de tiempo de la derecha, muestra las condiciones bajo las cuales las entradas de set y reset, cambian el estado del latch y cuando no lo cambian.





El concepto de circuito "latch", es importante en la creación de dispositivos de memoria. La función de tal circuito es "capturar" el valor creado por las señales de entrada al dispositivo y mantener ese valor hasta que lo cambie alguna otra señal.

3. TAREAS DEL LABORATORIO

  • Determine la Ecuación Lógica del circuito mostrado.

S=q . R!+S


  • Compruebe en simulación el comportamiento de los circuitos mostrados.




  • Armar circuito en el ENTRENADOR y verificar resultados.



  • Conecte 4 flip flops de la forma mostrada para formar un CONTADOR, compruebe su funcionamiento implementando de forma física. Agregue un Decodificador de BCD a 7 segmentos. Utilice los bloques mostrados:



  • Reemplace los Flips Flops con un contador integrado Ascendente / Descendente, compruebe funcionamiento en ambos sentidos. Utilizar los bloques mostrados:
Ascendente





Descendente






  • RETO: Modifique circuito para convertir en contador BCD




4. EVIDENCIAS DE TAREAS EN EL LABORATORIO

En este vídeo podemos explicar la resolución del laboratorio, en la cual mostramos el proceso de como verificamos los pasos de la tarea, seguidamente  dando a conocer tambien físicamente en un circuito el funcionamiento del ejercicio que se pide.




5. OBSERVACIONES
  • Pudimos observar que el flip flop es uno de los dispositivos mas usados en los circuitos digital, y de hecho es parte fundamental de muchos circuitos avanzados como contadores y registros de corrimiento, que ya vienen integrados en un chip.
  • Observamos que el flip-flop J-K se considera como el FF universal, tiene dos entradas para datos etiquetadas como J y K así como otra para el pulso de reloj (CK)
  • Pudimos observar que debemos tener cuidado con la alimentación del circuito integrado 7476 no es como la gran mayoría de la familia TTL el pin 13 va a tierra(GND) y pin 5 a +5V.
  • Observamos que cada flip-flop tiene dos salidas, Q y Q´ y dos entradas S (set) y R (reset). Este tipo de flip-flop se llama Flip-Flop RS acoplado directamente o bloqueador SR (SR latch). Las letras R y S son las iniciales de los nombres en de las entradas(reset, set).
  • Observamos también que el circuito integrado 7476 tiene 2 flip flops J-K incorporadas independientemente.
6. CONCLUSIONES 

  • Concluimos a través de esta práctica que los flip flops son celdas binarias que son capaces de almacenar 1 bit de información, los cuales están conformados por las entradas del mismo, las cuales se marcan como J y K y sus salidas marcadas como Q y Q´, además están integrados por una entrada de reloj, así como por el clear y preset.
  • Concluimos que el flip-flop es un dispositivo de almacenamiento binario compuesto de dos o más compuertas, con retroalimentación.
  • 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 número de entradas que poseen y la manera en la cual las entradas afecten estado binario.
  • Concluimos que las configuraciones de MAESTRO-ESCLAVO son usadas en situaciones en la que se ve un riesgo de secuencia en la transferencia de datos, actualmente, la mayoría de CI no presentan esta dificultad, por lo cual ya no se usa mucho.
  • Concluimos que los LATCH son la base de los FLIP FLOP, que haciendo modificaciones en éstos lograremos distintos tipos de FLIP FLOPS.

7. INTEGRANTES

  • Mamani Gutierrez Arnol Kervin
  • Martinez Riva Zeus Enrique 
  • Pauccara Condori Diego Fernando










LABORATORIO NRO. 4



ELECTRÓNICA DIGITAL
LABORATORIO 4:
PROGRAMACION DE ARDUINO


1. COMPETENCIA ESPECIFICA DE LA SESIÓN:
  • Programar la tarjeta ARDUINO UNO utilizando un lenguaje gráfico y comparar con lenguaje de texto.
  • Conocer el entorno de mBlock y todas sus posibilidades.
  • Realizar programación básica utilizando software mencionado.

2. MARCO TEÓRICO:

Historia del Arduino


Arduino fue inventado en el año 2005 por el entonces estudiante del instituto IVRAE Massimo Banzi, quien, en un principio, pensaba en hacer Arduino por una necesidad de aprendizaje para los estudiantes de computación y electrónica del mismo instituto, ya que en ese entonces, adquirir una placa de micro controladores eran bastante caro y no ofrecían el soporte adecuado; no obstante, nunca se imaginó que esta herramienta se llegaría a convertir en años más adelante en el líder mundial de tecnologías DIY (Do It Yourself). Inicialmente fue un proyecto creado no solo para economizar la creación de proyectos escolares dentro del instituto, si no que además, Banzi tenía la intención de ayudar a su escuela a evitar la quiebra de la misma con las ganancias que produciría vendiendo sus placas dentro del campus a un precio accesible (1 euro por unidad).



Modelos de Arduino

  • El primer prototipo de Arduino fue fabricado en el instituto IVRAE. Inicialmente estaba basado en una simple placa de circuitos eléctricos, donde estaban conectados un micro controlador simple junto con resistencias de voltaje, además de que únicamente podían conectarse sensores simples como leds u otras resistencias, y es más, aún no contaba con el soporte de algún lenguaje de programación para manipularla.
  • Años más tarde, se integró al equipo de Arduino Hernando Barragán, un estudiante de la Universidad de Colombia que se encontraba haciendo su tesis, y tras enterarse de este proyecto, contribuyó al desarrollo de un entorno para la programación del procesador de esta placa: Wiring, en colaboración con David Mellis, otro integrante del mismo instituto que Banzi, quien más adelante, mejoraría la interfaz de software.
  • Tiempo después, se integro al "Team Arduino" el estudiante español David Cuartielles, experto en circuitos y computadoras, quien ayudó Banzi a mejorar la interfaz de hardware de esta placa, agregando los micro controladores necesarios para brindar soporte y memoria al lenguaje de programación para manipular esta plataforma.
  • Más tarde, Tom Igoe, un estudiante de Estados Unidos que se encontraba haciendo su tesis, escuchó que se estaba trabajando en una plataforma de open-source basada en una placa de micro controladores pre ensamblada. Después se interesó en el proyecto y fue a visitar las instalaciones del Instituto IVRAE para averiguar en que estaban trabajando. Tras regresar a su país natal,recibió un email donde el mismo Massimo Banzi invitó a Igoe a participar con su equipo para ayudar a mejorar Arduino. Aceptó la invitación y ayudó a mejorar la placa haciéndola más potente, agregando puertos USB para poder conectarla a un ordenador. Además, el le sugirió a Banzi la distribución de este proyecto a nivel mundial.



NIVEL 10 DE BLOCK GAMES



PROYECTO SEMÁFORO


3. EVIDENCIAS DE TAREAS EN EL LABORATORIO


En este vídeo podemos explicar la resolución del laboratorio, en la cual mostramos el proceso de como verificamos los pasos de la tarea, seguidamente  dando a conocer también físicamente en un circuito el funcionamiento del ejercicio que se pide.



4. ¿QUE HE APRENDIDO DE ESTA EXPERIENCIA?

Hemos aprendido que con el equipo arduino podemos realizar diversas programaciones y modificarlas dependiendo el uso o aplicación en donde trabajará, tenemos las siguientes beneficios:

  • Fomentar el uso de la programación en el aula
  • Usar de la programación en escuelas e institutos utilizando programación para ser capaces de desarrollar un pensamiento creativo y computacional.
  • Hacer proyectos interactivos que faciliten el aprendizaje de cualquier asignatura sin estar relacionada con la tecnología. 
  • Iniciarnos en el mundo de la electrónica y robótica.
  • Construir componentes electrónicos a nuestro gusto.
  • Interaccionar con el mundo exterior mediante actuadores en función de las variables ambientales que leemos mediante los sensores.

5. OBSERVACIONES



  • Observamos que el arduino es un sistema de programación casi completa en cuanto a circuitos electrónicos.
  • Observamos que el arduino es una plataforma que permite a distintos tipos de usuarios comprar y hacer su propio arduino, esto significa que no lo hacen lucrativamente.
  • Es muy importante configurar la entrada del arduino en el software del pc ya que podríamos estar trabajando en otra entrada y no se grabará.
  • Estos arduinos son compatibles con una gran diversidad de componentes desde sensores de todo tipo hasta contadores, etc. 
  • Observamos que el arduino es un sistema programable con entradas de tensión máximas a los 12 voltios según el tipo de arduino a usarse.




6. CONCLUSIONES 

  • Aprendimos que su lenguaje de programación es un lenguaje muy fácil para todos a pesar de que varios casos los podemos encontrar en internet, haciendo que sea más fácil nuestra programación.
  • Entendimos que con esta tarea se pretende que los alumnos/as adquieran el conocimiento suficiente sobre las características técnicas de la placa ARDUINO UNO y se familiarice con su estructura y patillaje para poder posteriormente realizar prácticas con las mismas.
  • Obtuvimos un conocimiento previo acerca de la programación del arduino para el desarrollo de este presente laboratorio
  • Simulamos con gran existe la programación de encendido de una lampara durante 1 segundo y 0.5 segundos en casos repetitivos.
  • Obtuvimos un conocimiento previo a lo que es la programación de arduino mediante ayuda de el MBLOCK


7. INTEGRANTES

  • Mamani Gutierrez Arnol Kervin
  • Martinez Riva Zeus Enrique