domingo, 15 de diciembre de 2019

Proyecto Final

Laboratorio N°14-15-16

Proyecto Final
Carrito seguidor de linea


1.- Competencias especificas
  • 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.- Marco Teórico 

En este proyecto se intentará mejorar el sistema de detección de un seguidor de líneas, pasando de los sensores de infrarrojos a un sensor CCD.
En el mundo de la robótica, cuando hablamos de un robot seguidor de línea se piensa en un dispositivo que, utilizando unos fotodiodos, va siguiendo una línea negra sobre un fondo blanco. La reacción de estos fotodiodos es muy rápida y, por tanto, si se dispone de un buen dispositivo de control, el robot se mueve rápidamente por el mapa siguiendo ágilmente la línea. Este tipo de robots son muy populares y se pueden realizar verdaderas maravillas utilizando pocos recursos.

Estos tipos de robots se caracterizan porque son capaces de seguir un camino trazado por una línea. Esta línea normalmente es de un color que contrasta con el color del resto del suelo, es decir, si la línea es negra, el suelo será blanco, y viceversa. Debido a su facilidad de implementación, estos robots son los que normalmente se utilizan para introducirse en la robótica, y se les suele llamar el “Hello World” de los robots, siguiendo la analogía con el “Hello World” típico de los lenguajes de programación.


Estos robots pueden variar desde los más básicos (van tras una línea única) hasta los robots que recorren laberintos. Todos ellos, sin embargo, poseen (por lo general) ciertas partes básicas comunes entre todos:
Sensores: Un rastreador detecta la línea a seguir por medio de sensores. Hay muchos tipos de sensores que se pueden usar para este fin; sin embargo, por razones de costos y practicidad, los más comunes son los sensores infrarrojos (IR), que normalmente constan de un LED infrarrojo y un fototransistor, la línea a seguir, puede ser de color negro con fondo blanco o línea blanca con fondo negro y dependerá de la configuración electrónica con la cual se arme el circuito de dichos sensores.
Motores: El robot se mueve utilizando motores. Dependiendo del tamaño, el peso, la precisión del motor, entre otros factores, éstos pueden ser de varias clases: motores de corriente continuamotores paso a paso o servomotores.
Ruedas: Las ruedas del robot son movidas por los motores. Normalmente se usan ruedas de materiales anti-deslizantes para evitar fallas de tracción. Su tamaño es otro factor a tener en cuenta a la hora de armar el robot.
Fuente de energía: El robot obtiene la energía que necesita para su funcionamiento de baterías o de una fuente de corriente alterna, siendo esta última menos utilizada debido a que le resta independencia al robot.

Tarjeta de control: La toma de decisiones y el control de los motores están generalmente a cargo de un microcontrolador. La tarjeta de control contiene dicho elemento, junto a otros componentes electrónicos básicos que requiere el microcontrolador para funcionar.



3.- Puente H L293D

Un Puente en H es un circuito electrónico que generalmente se usa para permitir a un motor eléctrico DC girar en ambos sentidos, avance y retroceso. Son ampliamente usados en robótica y como convertidores de potencia. Los puentes H están disponibles como circuitos integrados, pero también pueden construirse a partir de componentes discretos.







4.- Sensor infrarrojo TFK138


Particularmente, el sensor infrarrojo es un dispositivo optoelectrónica capaz de medir la radiación electromagnética infrarroja de los cuerpos en su campo de visión. Todos los cuerpos emiten una cierta cantidad de radiación, esta resulta invisible para nuestros ojos pero no para estos aparatos electrónicos, ya que se encuentran en el rango del espectro justo por debajo de la luz visible.





5.- Arduino uno

Arduino es una plataforma de desarrollo basada en una placa electrónica de hardware libre que incorpora un microcontrolador re-programable y una serie de pines de tipo hembra, con los cuales se pueden realizar conexiones entre una amplia gama de sensores o dispositivos que se pueden clasificar como dispositivos de carácter analógicos o de carácter digital.


Entre las características de hardware que podemos encontrar en la version UNO (version estándar) de la plataforma Arduno, encontramos:

3.- Caracteristicas Tecnicas.

  • Microcontrolador: ATmega328
  • Voltaje operativo: 5V
  • Voltaje de Entrada: 7-12V
  • Pines E/S digitales: 14 (De las cuales 6 son salidas PWM)
  • Pines de entrada analógicas: 6
  • Memoria flash: 32 KB (ATmega328) de los cuales 0,5 KB es usado por Bootloader
  • SRAM: 2KB (ATmega 328)
  • EEPROM: 1KB (ATmega328)
  • Velocidad de reloj: 16 MHZ










6.- Procedimiento


  • Diseño de la simulacion en Proteus 
  • Diseño de la placa en software PCB Wizard, escogiendo todos los componentes necesarios.
  • Impresion del circuito en papel couche con la ayuda de una impresora laser.
  • Cortar la placa fenolica, para susecivamente proceder con el planchado junto con el circuito impreso.
  • Se revisa si la impresion aderio a la placa fenolica antes de quitar el papel remojandolo en agua.
  • Se introduce la placa en acido ferrico hasta que la capa de cobre no requerida se elimine por completo.
  • Se procede a perforar la placa con la ayuda de un taladro y la soldadura de los componentes.
  • Se dibujó la base del carrito en MDF, para poder colocar los motores y el PCB.
  • Me hizo las conexiones finales como alimentacion con una bateria de 9VDC, los motores a la placa y las llantas.











8.- Video
Simulacion en Proteus



Código Arduino


Prototipo 

miércoles, 11 de diciembre de 2019

LABORATORIO 08 introduccion a Pic - C Compiler

Laboratorio N°08

RETO PROPUESTO


1.- Competencias especificas
  • introduccion a la programacion Pic - C Compiler
  • Identificar las funciones generales del microcontrolador PIC
2.- Marco Teórico 

Un PIC es un circuito integrado programable (Programmable Integrated Circuited), el cual contiene todos los componentes para poder realizar y controlar una tarea, por lo que se denomina como un microcontrolador.Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de microelectrónica de general instrument.






El PIC original se diseñó para ser usado con la nueva CPU de 16 bits CP16000. Siendo en general una buena CPU, ésta tenía malas prestaciones de entrada y salida, y el PIC de 8 bits se desarrolló en 1975 para mejorar el rendimiento del sistema quitando peso de entrada/salida a la CPU. El PIC utilizaba microcódigo simple almacenado en ROM para realizar estas tareas; y aunque el término no se usaba por aquel entonces, se trata de un diseño RISC que ejecuta una instrucción cada 4 ciclos del oscilador.

3.- Caracteristicas Tecnicas.

  • Memoria ROM: 8Kb.
  • Memoria RAM: 368 x 8 bytes.
  • Pines I/O: 33.
  • Frecuencia: 20 Mhz con cristal externo.
  • Permite programación ICSP.

Diagrama de pines
Resultado de imagen para PIC16F877A caracteristicas

Diagrama interno 


Modulo PIC





4.- Video.










5.- Observaciones 
  • El PIC también puede emplear otros osciladores aparte del Cristal, como osciladores RC y osciladores eternos, otras versiones llegan con osciladores internos que simplifican las conexiones de este elemento al microcontrolador.
  • A diferencia de Arduino,el PIC no maneja una instrucción que direccione sus pines físicos mediante números, en cambio este permite el manejo por puertos.
  • Se puede iniciar un proyecto con el asistente de PIC-C compiler, esto simplifica la escritura de instrucciones, configuraciones y librerías de inicio del programa.

6.- Conclusiones

  • Se logro realizar la programación en PIC-C compiler, empleando las instrucciones de delay_ms(), output_high, output_low y output_bit para realizar una secuencia básica de Led´s.
  • Utilizando el software Proteus se logró realizar la simulación de un programa para el PIC16F877A, permitiéndonos verificar el correcto funcionamiento del programa antes de implementarlo físicamente,.
  • Haciendo uso de microcontrolador PIC 16F877A y del módulo HFK-010U  se logragorn implementar fisicamente las tareas que solicitaban para este laboratorio.

Lectura de entradas analogicas Lab13

Laboratorio N°13

Lecturas de entradas analogicas


1.- Competencias especificas
  • 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.- Marco Teórico 

Un PIC es un circuito integrado programable (Programmable Integrated Circuited), el cual contiene todos los componentes para poder realizar y controlar una tarea, por lo que se denomina como un microcontrolador.Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de microelectrónica de general instrument.






El PIC original se diseñó para ser usado con la nueva CPU de 16 bits CP16000. Siendo en general una buena CPU, ésta tenía malas prestaciones de entrada y salida, y el PIC de 8 bits se desarrolló en 1975 para mejorar el rendimiento del sistema quitando peso de entrada/salida a la CPU. El PIC utilizaba microcódigo simple almacenado en ROM para realizar estas tareas; y aunque el término no se usaba por aquel entonces, se trata de un diseño RISC que ejecuta una instrucción cada 4 ciclos del oscilador.

3.- Interrupciones de un microcontrolador

Es una de las caracterasticas de los microcontroladores, de las mas importantes que constituye la capacidad de sincronizar la ejecucion de programas con acontecimientos externos; es decir, cuando se produce una interrupcion, el micro automaticamente deja lo que esto haciendo, va a la direccion 04h de programa y ejecuta lo que encuentre a partir de alli hasta encontrarse con la instruccion RETFIE que le hara abandonar la interrupcion y volver al lugar donde se encontraba antes de producirse dicha interrupcion. Hemos de diferenciar entre dos tipos de interrupciones posibles en un PIC:




1. - Mediante una accion interna. El desbordamiento de la Pila (Stack) por una operacion indebida, por ejemplo:
  • Al completarse la escritura de datos en una EEPROM.
  • Por desbordamiento del registro TMR0 al rebasar el valor 255 (FFh) a 0.

2. - Mediante una accion externa, la mas util. Al producirse un cambio del nivel en uno de sus pines por una accion externa.
  • Estando en el modo de reposo (SLEEP), un cambio de nivel en el pin RB0/INT .
  • Un cambio de nivel en uno de los pines RB4 a RB7 estando configurados como entrada.

4.- Lectura de un valor analogico


Esta característica es muy importante a la hora de trabajar con sensores, debido a que estos entregan valores de tensión para reflejar la variable física que esta midiendo.
En estas entradas se pueden sensar valores de 0 a 5 V y se pueden representar(según el PIC) con diferentes resoluciones, como por ejemplo 256 valores, 1024(revisar datasheet).
Así si trabajamos con una resolución de 256 tendremos para 0V una salida de 0 y para los 5V veremos el numero 255, lo mismo con otras resoluciones y valores intermedios.


Para configurar las entradas analógicas debemos ir a Analog en el wizard y seleccionar que entradas ocuparemos para nuestros propósitos, por ejemplo yo configurare A0, A1 y A3.


5.- Pines de alimentacion.

Vss: Gnd
Vdd: +5 voltios
Vee: corresponde al pin de contraste, lo regularemos con un potenciómetro de 10K conectado a Vdd.




Modulo PIC





6.- Sensor analogico LM35.


El LM35 es un sensor de temperatura de buenas prestaciones a un bajo precio. Posee un rango de trabajo desde -55ºC hasta 150ªC. Su salida es de tipo analógica y lineal con una pendiente de 10mV/ºC. El sensor es calibrado de fábrica a una precisión de 0.5ºC.

Es un sensor muy popular por su fácil uso y variadas aplicaciones. No necesita de ningún circuito adicional para ser usado. Se alimenta directamente con una fuente de 5V y entrega una salida analógica entre 0V a 1.5V. Este voltaje analógico puede ser leído por el ADC de un microcontrolador como PIC o Arduino. Entre sus aplicaciones podemos encontrar termómetros, termostatos, sistemas de monitoreo y más.
  • Voltaje de Operación: 4V – 30V (5V recomendado)
  • Rango de Trabajo: -55℃ hasta +150℃
  • Precisión en el rango de -10°C hasta +85°C: ±0.5°C
  • Pendiente: 10mV / ºC
  • Bajo consumo energético: 60uA
  • No necesita componentes adicionales
  • Pines: +VCC, V salida, GND
  • Baja impedancia de salida






7.- Sensor analogico DS18B20 

El sensor de temperatura DS18B20 es uno de los sensores más versátiles que puedes encontrar en el mercado.
Este sensor es idóneo cuando queremos medir la temperatura en ambientes húmedos e incluso dentro del agua. Esto es debido a que podemos comprar una versión que viene en forma de sonda impermeable. A lo largo de este artículo veremos las particularidades, ventajas y desventajas del DS18B20. No se trata de un sensor de temperatura común, veremos que es algo más.


8.- Video


9.- Observaciones 

  • EL delay dado en el ejemplo es innecesario, ya que para disminuir las oscilaciones de la lectura analógica se puede cambiar la configuración de la Fosc del módulo.
  • Se uso la instrucción para apagar los Leds del puerto C ya que al iniciar el programa habían ocasiones donde se quedaban prendidos.
  • Se agrego un incremento de la barra de leds ubicados en el puerto C a medida que la entrada analógica incrementaba, para esto se aplicó un arreglo de datos, una nueva variable y un nuevo escalamiento para la misma.
  • Al introducir un número mayor de resolución en el ADC del PIC, este solo multiplicaba la base al valor introducido, haciendo que el dato resultante no fuese de 1 en 1, sino que saltase cierta cantidad de valores.


10.- Conclusiones

  • Se logró implementar el funcionamiento de las entradas analógicas empleando el PIC16F877A para una lectura de 8 bits como para lecturas de 10 bits, siendo esta última el máximo valor de resolución que se puede lograr con este microcontrolador.
  • Se logró realizar la programación para el escalamiento de una señal analógica de entrada a un intervalo de valores definidos como temperatura o voltaje.
  • Mediante la investiguación realizada, Se logró comprender sobre el funcionamiento del sensor analógico LM35 y sobre el tipo de escalamiento que se requeriria para interpretar el voltaje adquirido en su temperatura leída.