domingo, 20 de octubre de 2019

LABORATORIO NRO. 9

PROGRAMACIÓN BÁSICA CON BUCLES DE CONTROL

1. CAPACIDAD TERMINAL:
  • Utilizar al microcontrolador en aplicaciones de control electrónico.
  • Desarrollar y ejecutar programas en un microcontrolador PIC
  • Programar y configurar interfaces básicas del microcontrolador.
2. COMPETENCIA ESPECIFICA DE LA SESIÓN:
  • Manejo de puertos de forma grupal e independiente para manejo de luces.
  • Programación de sonidos mediante subrutinas.
  • Creación de subrutinas mediante funciones.
  • Declaración de variables enteras.
2. MARCO TEÓRICO:

2.1. MICROCONTROLADORES:

Los principiantes en electrónica creen que un microcontrolador es igual a un microprocesador. Esto no es cierto. Difieren uno del otro en muchos sentidos. La primera y la más importante diferencia es su funcionalidad. Para utilizar al microprocesador en una aplicación real, se debe de conectar con componentes tales como memoria o componentes buses de transmisión de datos. Aunque el microprocesador se considera una máquina de computación poderosa, no está preparado para la comunicación con los dispositivos periféricos que se le conectan. Para que el microprocesador se comunique con algún periférico, se deben utilizar los circuitos especiales. Así era en el principio y esta práctica sigue vigente en la actualidad.

al-mundo-de-los-microcontroladores-chapter-01-fig0-1

Por otro lado, al microcontrolador se le diseña de tal manera que tenga todas las componentes integradas en el mismo chip. No necesita de otros componentes especializados para su aplicación, porque todos los circuitos necesarios, que de otra manera correspondan a los periféricos, ya se encuentran incorporados. Así se ahorra tiempo y espacio necesario para construir un dispositivo.

2.2. PIC16F877A:
Es un microcontrolador de MicroChip Technology familia a la cual se le denomina PIC, fabricado por tecnología CMOS. Tiene ventajas como su consumo de potencia que es muy bajo y ademñas es completamente estático (el reloj puede detenerse y los datos de la memoria no se pierden). Tiene una memoria de programa tipo FLASH, lo que representa gran facilidad en el desarrollo de prototipos y en su aprendizaje, pues permite reprogramarlo nuevamente sin ser borrado con anterioridad.

CARACTERÍSTICAS
Las características principales de estos dispositivos son:
  • CPU de arquitectura RISC (Reduced Instruction Set Computer).
  • Set de 35 instrucciones.
  • Frecuencia de reloj de hasta 20MHz (ciclo de instrucción de 200ns).
  • Todas las instrucciones se ejecutan en un único ciclo de instrucción, excepto las de salto.
  • Hasta 8K x 14 palabras de Memoria de Programa FLASH.
  • Hasta 368 x 8 bytes de Memoria de Datos tipo RAM.
  • Hasta 256 x 8 bytes de Memoria de Datos tipo EEPROM.
  • Hasta 15 fuentes de Interrupción posibles.​
  • 8 niveles de profundidad en la Pila hardware.
  • Modo de bajo consumo (Sleep).
  • Tipo de oscilador seleccionable (RC, HS, XT, LP y externo).
  • Rango de voltaje de operación desde 2,0V a 5,5V.
  • Conversor Analógico/Digital de 10 bits multicanal.
  • 3 Temporizadores.
  • Watchdog Timer o Perro Guardián.
  • 2 módulos de captura/comparación/PWM.
  • Comunicaciones por interfaz USART (Universal Synchronous Asynchronous Receiver Transmitter).​
  • Puerto Paralelo Esclavo de 8 bits (PSP).
  • Puerto Serie Síncrono (SSP) con SPI e I²C.
    ENCAPSULADOS


    REGISTROS INTERNOS


    DIAGRAMA INTERNO


    2.2. ESTRUCTURA Y BLOQUES DE CONTROL:

    En términos simples, una estructura de control le permite controlar el flujo de ejecución de código en su aplicación. Generalmente, un programa se ejecuta secuencialmente, línea por línea, y una estructura de control le permite alterar ese flujo, generalmente dependiendo de ciertas condiciones. Las estructuras de control son características principales del lenguaje PHP que permiten que su script responda de manera diferente a diferentes entradas o situaciones. Esto podría permitirle a su script dar diferentes respuestas basadas en la entrada del usuario, el contenido del archivo u otros datos. 

    PHP soporta varias estructuras de control diferentes:
    • if
    • else
    • elseif
    • switch
    • while
    • do-while
    • for
    • foreach

    3. EVIDENCIA DE TAREAS EN LABORATORIO:


    4. OBSERVACIONES:
    • Para repetir una funcion del codigo en el programa, aplicamos la estructura "for" en mas de una ocasion.
    • Debemos subir el archivo "cof" en el software de Proteus, para simular de forma mas detallada nuestro programa realizado en el laboratorio.
    • Para cumplir la condición indicada del habilitador, agregamos nuevas variables en el programa.
    5. CONCLUSIONES
    • Se concluye que, logramos manejar puertos de forma grupal e independiente para el manejos de luces (LED's).
    • Programamos sonidos o "bips" mediante sub-rutinas en nuestro código, los cuales se ejecutan a partir de cumplir ciertas condiciones de estructura "if".
    • Declaramos variables enteras en nuestro código, para diseñar el reto de laboratorio indicado; por ende, consolidamos nuestros conocimientos de programación mediante el modulo PIC.

    LABORATORIO NRO. 8

    HERRAMIENTAS DE PROGRAMACIÓN HARDWARE Y SOFTWARE

    1. CAPACIDAD TERMINAL:
    • Utilizar al microcontrolador en aplicaciones de control electrónico.
    • Desarrollar y ejecutar programas en un microcontrolador PIC
    • Programar y configurar interfaces básicas del microcontrolador.
    2. COMPETENCIA ESPECIFICA DE LA SESIÓN:
    • Listar las partes internas generales de un microcontrolador.
    • Identificar las funciones generales de un microcontrolador.
    • Introducción a la programación en PIC C Compiler.
    • Cómo utilizar el entrenador.
    2. MARCO TEÓRICO:

    2.1. MICROCONTROLADORES:

    Los principiantes en electrónica creen que un microcontrolador es igual a un microprocesador. Esto no es cierto. Difieren uno del otro en muchos sentidos. La primera y la más importante diferencia es su funcionalidad. Para utilizar al microprocesador en una aplicación real, se debe de conectar con componentes tales como memoria o componentes buses de transmisión de datos. Aunque el microprocesador se considera una máquina de computación poderosa, no está preparado para la comunicación con los dispositivos periféricos que se le conectan. Para que el microprocesador se comunique con algún periférico, se deben utilizar los circuitos especiales. Así era en el principio y esta práctica sigue vigente en la actualidad.

    al-mundo-de-los-microcontroladores-chapter-01-fig0-1

    Por otro lado, al microcontrolador se le diseña de tal manera que tenga todas las componentes integradas en el mismo chip. No necesita de otros componentes especializados para su aplicación, porque todos los circuitos necesarios, que de otra manera correspondan a los periféricos, ya se encuentran incorporados. Así se ahorra tiempo y espacio necesario para construir un dispositivo.

    2.2. PIC16F877A:
    Es un microcontrolador de MicroChip Technology familia a la cual se le denomina PIC, fabricado por tecnología CMOS. Tiene ventajas como su consumo de potencia que es muy bajo y ademñas es completamente estático (el reloj puede detenerse y los datos de la memoria no se pierden). Tiene una memoria de programa tipo FLASH, lo que representa gran facilidad en el desarrollo de prototipos y en su aprendizaje, pues permite reprogramarlo nuevamente sin ser borrado con anterioridad.

    CARACTERÍSTICAS
    Las características principales de estos dispositivos son:
    • CPU de arquitectura RISC (Reduced Instruction Set Computer).
    • Set de 35 instrucciones.
    • Frecuencia de reloj de hasta 20MHz (ciclo de instrucción de 200ns).
    • Todas las instrucciones se ejecutan en un único ciclo de instrucción, excepto las de salto.
    • Hasta 8K x 14 palabras de Memoria de Programa FLASH.
    • Hasta 368 x 8 bytes de Memoria de Datos tipo RAM.
    • Hasta 256 x 8 bytes de Memoria de Datos tipo EEPROM.
    • Hasta 15 fuentes de Interrupción posibles.​
    • 8 niveles de profundidad en la Pila hardware.
    • Modo de bajo consumo (Sleep).
    • Tipo de oscilador seleccionable (RC, HS, XT, LP y externo).
    • Rango de voltaje de operación desde 2,0V a 5,5V.
    • Conversor Analógico/Digital de 10 bits multicanal.
    • 3 Temporizadores.
    • Watchdog Timer o Perro Guardián.
    • 2 módulos de captura/comparación/PWM.
    • Comunicaciones por interfaz USART (Universal Synchronous Asynchronous Receiver Transmitter).​
    • Puerto Paralelo Esclavo de 8 bits (PSP).
    • Puerto Serie Síncrono (SSP) con SPI e I²C.

    ENCAPSULADOS


    REGISTROS INTERNOS


    DIAGRAMA INTERNO


    3. EVIDENCIA DE TAREAS EN LABORATORIO:


    4. OBSERVACIONES:
    • Es preferible subir el archivo ".cof" en el simulador de Proteus; ya que, nos permite encontrar algunos errores presentes en el programa.
    • Hay muchas formas de subir el programa en el software "PICkit 2", sin embargo, la opción mas practica es la de "Auto Import Hex + Write Device".
    • Mediante la opción de "Check Communication" verificamos la conexión entre el modulo PIC y la computadora con la cual se esta programando.
    5. CONCLUSIONES
    • Aprendimos las partes internas y externas correspondientes a un microcontrolador PIC16F877A; de tal forma, que podemos diseñar programas mediante el modulo entrenador y los respectivos softwares(programas).
    • Realizamos una introducción general hacia la programación el el software de PIC C Compiler, con el objetivo de diseñar programas que cumplan con las condiciones de diferentes retos en laboratorios futuros.
    • Comprendimos el funcionamiento básico del modulo entrenador, para que ejecutamos los programas diseñados en la laboratorio y evidenciemos nuestro aprendizaje mediante videos en base al modulo.

    domingo, 6 de octubre de 2019

    LABORATORIO NRO. 7

    RETO DEL PROYECTO PASTILLERO

    1. COMPETENCIA ESPECIFICA DE LA SESIÓN:
    • Comprender el funcionamiento del código a realizar.
    • Aplicar todos los conocimientos adquiridos de las sesiones anteriores.
    • Modificar del código integrado en estructura, correspondiente al proyecto.
    2. MARCO TEÓRICO:

    2.1. ARDUINO:
    Arduino es una compañía de desarrollo de software y hardware de fuente abierta, así como una comunidad internacional que diseña y manufactura placas de desarrollo de hardware para construir dispositivos digitales y dispositivos interactivos que puedan detectar y controlar objetos del mundo real. Arduino se enfoca en acercar y facilitar el uso de la electrónica y programación de sistemas embebidos en proyectos multidisciplinarios. Los productos que vende la compañía son distribuidos como Hardware y Software Libre, bajo la Licencia Pública General de GNU (GPL) y la Licencia Pública General Reducida de GNU (LGPL), permitiendo la manufactura de las placas Arduino y distribución del software por cualquier individuo. Las placas Arduino están disponibles comercialmente en forma de placas ensambladas o también en forma de kits, hazlo tu mismo (Del inglés DIY: "Do It Yourself").

    Arduino Logo.svg


    2.2. LCD
    Una pantalla de cristal líquido o LCD (Liquid Crystal Display) es una pantalla delgada y plana formada por un número de píxeles en color o monocromos colocados delante de una fuente de luz o reflectora. A menudo se utiliza en dispositivos electrónicos de pilas, ya que utiliza cantidades muy pequeñas de energía eléctrica.

    Resultado de imagen para lcd 16x2

    2.3. L293D
    El Driver L293D es un Puente H que facilita el control de motores con Arduino o Pic. Posee diodos internos de protección para cargas inductivas como motores. Su pequeño tamaño es ideal para ser utilizado en proyectos de robótica móvil como seguidores de línea, velocistas, laberinto. Permite controlar la dirección de giro y la velocidad de cada motor de forma independiente.

    Driver Puente H L293D

    2.4. BUZZER
    Zumbadorbuzzer en inglés, es un transductor electroacústico que produce un sonido o zumbido continuo o intermitente de un mismo tono (generalmente agudo). Sirve como mecanismo de señalización o aviso y se utiliza en múltiples sistemas, como en automóviles o en electrodomésticos, incluidos los despertadores.

    Resultado de imagen para buzzer

    2.4. MOTOR DC
    El motor de corriente continua, denominado también motor de corriente directamotor CC o motor DC (por las iniciales en inglés direct current), es una máquina que convierte energía eléctrica en mecánica, provocando un movimiento rotatorio, gracias a la acción de un campo magnético.

    Un motor de corriente continua se compone, principalmente, de dos partes: - El estátor da soporte mecánico al aparato y contiene los polos de la máquina, que pueden ser o bien devanados de hilo de cobre sobre un núcleo de hierro, o imanes permanentes. - El rotor es generalmente de forma cilíndrica, también devanado y con núcleo, alimentado con corriente directa a través las delgas, que están en contacto alternante con escobillas fijas.


    Resultado de imagen para motor dc

    3. EVIDENCIA DE TAREAS EN LABORATORIO:



    4. OBSERVACIONES:
    • Para empezar la elaboración del código correspondiente al reto, es recomendable analizar los códigos anteriores, para tener una base en la cual trabajar.
    • Debemos ajustar el potenciometro de forma correcta, para obtener un contraste visible en nuestro LCD.
    • La corriente proporcionada por el Arduino hacia el motor, no es suficiente para girar todo el carrusel del proyecto; por ello, es recomendable utilizar una fuente externa.
    5. CONCLUSIONES
    • Se concluye que, a partir de un ejercicio propuesto, se pueden dar múltiples soluciones para el mismo problema, dependiendo de las sentencias que utilicemos.
    • Comprendimos el funcionamiento y programación de un LCD, a partir de la escritura de mensajes y la conversión de mili segundos a horas - minutos - segundos.
    • A partir de todos los conocimientos adquiridos en todas las sesiones, podemos realizar la programación correspondiente a múltiples problemas o ejercicios propuestos, posteriores al curso.

    LABORATORIO NRO. 6

    INTEGRACIÓN DEL PROYECTO PASTILLERO EN PROTOBOARD Y/O PCB 

    1. COMPETENCIA ESPECIFICA DE LA SESIÓN:
    • Desarrollar el proyecto "Pastillero inteligente" en protoboard o PCB.
    • Aplicar todos los conocimientos adquiridos de las sesiones anteriores.
    • Comprender el funcionamiento del código integrado en estructura, correspondiente al proyecto
    2. MARCO TEÓRICO:

    2.1. ARDUINO:
    Arduino es una compañía de desarrollo de software y hardware de fuente abierta, así como una comunidad internacional que diseña y manufactura placas de desarrollo de hardware para construir dispositivos digitales y dispositivos interactivos que puedan detectar y controlar objetos del mundo real. Arduino se enfoca en acercar y facilitar el uso de la electrónica y programación de sistemas embebidos en proyectos multidisciplinarios. Los productos que vende la compañía son distribuidos como Hardware y Software Libre, bajo la Licencia Pública General de GNU (GPL) y la Licencia Pública General Reducida de GNU (LGPL), permitiendo la manufactura de las placas Arduino y distribución del software por cualquier individuo. Las placas Arduino están disponibles comercialmente en forma de placas ensambladas o también en forma de kits, hazlo tu mismo (Del inglés DIY: "Do It Yourself").

    Arduino Logo.svg


    2.2. LCD
    Una pantalla de cristal líquido o LCD (Liquid Crystal Display) es una pantalla delgada y plana formada por un número de píxeles en color o monocromos colocados delante de una fuente de luz o reflectora. A menudo se utiliza en dispositivos electrónicos de pilas, ya que utiliza cantidades muy pequeñas de energía eléctrica.

    Resultado de imagen para lcd 16x2

    2.3. L293D
    El Driver L293D es un Puente H que facilita el control de motores con Arduino o Pic. Posee diodos internos de protección para cargas inductivas como motores. Su pequeño tamaño es ideal para ser utilizado en proyectos de robótica móvil como seguidores de línea, velocistas, laberinto. Permite controlar la dirección de giro y la velocidad de cada motor de forma independiente.

    Driver Puente H L293D

    2.4. BUZZER
    Zumbadorbuzzer en inglés, es un transductor electroacústico que produce un sonido o zumbido continuo o intermitente de un mismo tono (generalmente agudo). Sirve como mecanismo de señalización o aviso y se utiliza en múltiples sistemas, como en automóviles o en electrodomésticos, incluidos los despertadores.

    Resultado de imagen para buzzer

    2.4. MOTOR DC
    El motor de corriente continua, denominado también motor de corriente directamotor CC o motor DC (por las iniciales en inglés direct current), es una máquina que convierte energía eléctrica en mecánica, provocando un movimiento rotatorio, gracias a la acción de un campo magnético.

    Un motor de corriente continua se compone, principalmente, de dos partes: - El estátor da soporte mecánico al aparato y contiene los polos de la máquina, que pueden ser o bien devanados de hilo de cobre sobre un núcleo de hierro, o imanes permanentes. - El rotor es generalmente de forma cilíndrica, también devanado y con núcleo, alimentado con corriente directa a través las delgas, que están en contacto alternante con escobillas fijas.


    Resultado de imagen para motor dc

    3. EVIDENCIA DE TAREAS EN LABORATORIO:


    4. OBSERVACIONES:
    • En caso de que nuestra pantalla LCD, no presente la luminosidad deseada; podemos ajustar nuestro potenciometro para alcanzar un contraste mas visible.
    • Realizamos las conexiones del motor DC en un solo lado del puente H (L293D); ya que, solo se realizaría el control de un solo motor.
    • La corriente proporcionada por el Arduino hacia el motor, no es suficiente para girar todo el carrusel del proyecto; por ello, es recomendable utilizar una fuente externa.
    5. CONCLUSIONES
    • A partir de los conocimientos adquiridos de las sesiones anteriores, logramos plantear un código que cumpla con las condiciones del reto propuesto en clase.
    • Comprendimos como realizar funciones matemáticas en Arduino, para la conversión de horas - minutos - segundos a milisegundo, o viceversa.
    • Se concluye que, las sentencias de programación como "for" y "do - while", nos ayudan a reducir el numero de lineas de programación; ya que, dichas sentencias son adecuadas para la realización de nuestro código.