Buenos Dïas, casi tarde T!, deseandoles un buen inicio de año, y empezando con mi primer post del año, quería hacerlo a lo grande y quería mostrarles lo que hicimos, unos compañeros de clase y yo, como proyecto final de curso. Espero que les guste, y lo más pronto que pueda los certifico con un msj a T!
-------------------------------------------Barra de poco presupuesto-------------------------------------
-------------------------------------------Barra de poco presupuesto-------------------------------------
RESUMEN
Este proyecto se basa en un mecanismo giratorio que consta básicamente de un
motor al cual va fijada una placa electrónica que hace la función de hélice como si
de un ventilador se tratase. En el extremo de esta placa va una hilera vertical con
un número variable de LEDs. A través del la velocidad y de una adecuada
programación del microcontrolador PIC18F4550 que domina a los LEDs, se
aprovecha de la persistencia de imagen en la retina para generar la ilusión óptica
que queda representada en una imagen, que podrá ser un dibujo o bien palabras.
Dicho proyecto se explicará el efecto visual llamado POV el cual es el fundamento
de este trabajo. Más adelante se desarrollará el diseño de la placa impresa hasta
su implementación como aspa del motor utilizado como base giratoria. A
continuación se presentará una detallada aclaración del montaje de la estructura de
soporte y de la fijación de la placa ya mencionada. Después se expondrá su
programación detalladamente.
Para concluir se aportan nuevas ideas y líneas de investigación, abriendo puertas a
nuevos proyectos para mejorar el presente trabajo y así seguir desarrollando esta
interesante ilusión óptica giratorio.
Display giratorio
-------------------------------------------Barra de poco presupuesto-------------------------------------
Preludio
dijo:El presente proyecto a desarrollar es en búsqueda de ese motivo, la
comunicación; a como su nombre lo dice es un “Generador de caracteres”
porque lo que se busca es mostrar un mensaje en el dispositivo.
Aunque es cierto que los dispositivos fundamentales son digitales, el
proyecto conlleva elementos analógicos.
El interés de hacer el proyecto es brindar a la sociedad una herramienta
de comunicación de bajo costo y con soporte meramente nacional, el
problema o la necesidad es el comunicar un mensaje de manera precisa y
concisa al vidente, un ejemplo claro es el usar el proyecto para informar
de la actividad de un importante evento de la universidad como una feria
o en una carretera que carril usar o si hay accidentes en la vía.
A pesar de que existen diversos tipos de comunicación rotulada por qué
usar este tipo de solución, porque uno de los criterios para comunicar algo
importante es la persuasión y la vistosidad y es algo en el cual dispositivos
como los diodos LED son expertos en hacer. Todo lo que observamos y
percibimos es LUZ y dependemos de nuestros ojos para realizar nuestras
tareas.[/quote]
El POV Display es un dispositivo electrónico óptico que basa su
funcionamiento en la habilidad del ojo para poder observar 30 cuadros
por segundo elaborando así una imagen de un mensaje de manera nítida
en formato de la cantidad de LED incluidos en su brazo giratorio.
Para hacerlo girar éste utiliza un motor DC con escobillas alimentado por
una fuente DC de 12 V.
Un brazo giratorio en el que esta contenido el circuito de control y
procesamiento de la imagen a representar, con su determinado sistema
de alimentación.
El circuito de control está compuesto por un microcontrolador
programable EEPROM fabricado por la compañía Microchip ®
(PIC18F4550) con su respectivo socket de 40 pines.
El microcontrolador puede ser programado a través de una interfase USB.
En el extremo del brazo tenemos 8 LED en cátodo común que mostraran
el mensaje.
Para marcar el inicio del mensaje se utiliza un optooscilador MOC 7811.
-------------------------------------------Barra de poco presupuesto-------------------------------------
Motivación y objetivos del proyecto
La motivación de este proyecto viene dada por la posibilidad de realizar
prácticas docentes más creativas para los estudiantes. Esta técnica la adopta
la publicidad y la industria de objetos de regalo y de decoración, además de ser
útiles para visualizar cualquier cosa o textos al público.
Lo que nos impulsó a realizar este proyecto es lo fácil que es de aplicársele
nuevas actualizaciones en búsqueda de ya ir trabajando en nuestro plan
8
monográfico en la búsqueda de facilitarle al usuario la manera de hacer saber
su comunicado.
Como mencionaba anteriormente nuestro trabajo aunque tiene dispositivos
digitales maneja analógicos que son imprescindibles para el funcionamiento
óptimo del proyecto. Un ejemplo de ello es el uso de osciladores, circuitos de
frecuencia y de ser el motor DC probablemente la elaboración de una pequeña
fuente conmutada en búsqueda de mayor funcionalidad.
-------------------------------------------Barra de poco presupuesto-------------------------------------
OBJETIVOS
-Diseñar un dispositivo que pueda ser usado por la universidad en
actividades y eventos en motivo de publicidad y presentación.
-Aprender a utilizar la tecnología de microcontroladores como premisa de
asignaturas superiores de la carrera.
-Aprender el uso del compilador PIC C de CCS (Custom Computer
Services) como interfaz de alto nivel usado en la programación del
microcontrolador.
-Habilitar una interfase sencilla para el programador.
-Optimizar el espacio de circuitería en la placa ya que ésta debe simular a
una hélice y por ello debe ser de forma rectangular y lo más pequeña
posible y balanceada
-Sincronizar la velocidad de giro con el programa del microcontrolador
para visualizar correctamente la imagen que proporcionaran los LEDs.
-Convertir el proyecto en aplicación de futuras asignaturas.
-------------------------------------------Barra de poco presupuesto-------------------------------------
Fundamentos Teóricos
En este capítulo se introducirán los elementos principales que constituyen este
proyecto, se hablará del efecto óptico que se produce dando un breve repaso a
la teoría visual para poder entender el porqué se pueden realizar estos efectos
basándose en varios ejemplos así, haciendo más fácil comprender el efecto
óptico que se produce en este proyecto. Asimismo, también se hablará del
centro neurálgico de la placa electrónica que formará la parte giratoria del
proyecto, el microcontrolador, para poder entender porqué es necesario el uso
del mismo y se podrá conocer su funcionamiento interno.
- Sistema visual humano
Los órganos de la visión en los seres humanos y en los animales son los ojos.
Éstos varían entre las diferentes especies, desde las estructuras más sencillas,
capaces de diferenciar sólo entre la luz y la oscuridad, hasta los órganos
complejos que tienen los seres humanos y otros mamíferos, que pueden
diferenciar variaciones muy pequeñas de forma, color, luminosidad y distancia.
De hecho, el órgano que realiza el proceso de la visión es el cerebro; la función
9 del ojo es traducir las vibraciones electromagnéticas de la luz en un
determinado tipo de impulsos nerviosos que se transmiten al cerebro.
La parte trasera del globo ocular está recubierta casi totalmente por una
membrana de células sensibles a la luz. Esta capa fotosensible se denomina
retina, donde se detectan los estímulos visuales. La luz se filtra en el ojo a
través de la córnea y es enfocada por el cristalino (una lente adaptable) en la
retina. El iris de la pupila puede adaptar su tamañopara dejar pasar más o
menos luz, según su intensidad. 20
Corte transversal del ojo humano
Volviendo de nuevo a la retina explicaremos que es una superficie que contiene
diferentes clases de células. Entre ellas destacaremos las células fotosensibles
llamadas conos y bastones, localizadas en la capa más profunda de la retina.
Los conos que son las células receptoras de luz y los bastones las que emiten
señales a otras células. Los conos se concentran cerca del centro de la retina,
alrededor de 4 millones, son muy sensibles a los colores en cambio poco
sensibles al brillo. Por otro lado los bastoncillos están muy repartidos dentro de
la retina aproximadamente 100 millones. Son muchos más sensibles al brillo
que los conos y son los responsables de la visión nocturna
Distribución de los conos y bastones
Persistencia Retiniana
Este fenómeno visual descubierto por el científico belga Joseph-Antoine
Ferdinand Plateau es conocido como POV (Persistence Of Vision) o
persistencia retiniana. Este hecho demuestra cómo una imagen permanece en
la retina humana una décima de segundo antes de desaparecer
completamente, lo que permite que veamos la realidad como una secuencia de
imágenes que el cerebro "enlaza" como una sola imagen visual móvil y
continua. En el cine en blanco y negro, se pasaban 18 imágenes por segundo
porque se decía que era el mínimo para poder crear el efecto de movimiento,
las películas actuales se proyectan a 24 imágenes por segundo, e incluso a 25
para adaptarse mejor a la frecuencia utilizada en televisión.
La persistencia retiniana es una característica de nuestro ojo que provoca que
las imágenes que se observan no se borren instantáneamente. Este hecho,
hace que las imágenes que se visualizan, queden guardadas por un instante en
el cerebro. Por ejemplo, al hacer girar una cerilla podemos lograr que ésta
parezca formar un círculo de fuego en el aire, al igual que si se hace con un
LED encendido. Si a dicho LED o a un conjunto de ellos los activamos de
manera apropiada en tiempo y forma, obtendremos, gracias a la persistencia
de nuestra visión, imágenes que parecen estar volando en el aire.
-------------------------------------------Barra de poco presupuesto-------------------------------------
Microcontroladores
- Introducción a los microcontroladores
Se llama microcontrolador a un circuito integrado que incluye en su interior las
tres unidades principales de un ordenador: Memoria, CPU y Periféricos de E/S.
Un microcontrolador es capaz de realizar procesos lógicos. Dichos procesos o
acciones son programables en el lenguaje ensamblador por el usuario, y son
introducidos en este a través de un programador.
Un microcontrolador dispone normalmente de los siguientes componentes:
-Procesador o CPU.
-Memoria RAM para Contener los datos.
-Memoria para el programa tipo ROM/PROM/EPROM.
-Líneas de Entrada/Salida para comunicarse con el exterior.
-Diversos módulos para el control de periféricos (temporizadores, Puertas
-Serie y Paralelo, CAD: Conversores Analógico/Digital, CDA:
-Conversores Digital/Analógico, etc.).
-Generador de impulsos de reloj que sincronizan el funcionamiento de
todo el sistema.
Diferencia entre microcontrolador y microprocesador
Un error común es confundir los términos de microcontrolador y
microprocesador. Un microcontrolador es un sistema completo, con unas
prestaciones limitadas que no pueden modificarse y que puede llevar a cabo
las tareas para las que ha sido programado de forma autónoma. Un
microprocesador, en cambio, es simplemente un componente que constituye el
microcontrolador, que lleva a cabo ciertas tareas y que, en conjunto con otros
componentes, forman un microcontrolador.
En definitiva el primero es un sistema autónomo e independiente, mientras que
el segundo es una parte, cabe decir esencial, que forma parte de un sistema
mayor.
Microprocesador
Microcontrolador
-------------------------------------------Barra de poco presupuesto-------------------------------------
Familia PIC
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 nombre actual no es un acrónimo. En realidad, el nombre completo es PICmicro,
aunque generalmente se utiliza como Peripheral Interface Controller (controlador de
interfaz periférico).
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 E/S, y el PIC de
12.
8 bits se desarrolló en1975 para mejorar el rendimiento del sistema quitando peso de
E/S a la CPU. El PIC utiliza bamicrocó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.
En 1985 la división de microelectrónica de General Instrument se separa como
compañía independiente que es incorporada como filial (el 14 de
diciembre de 1987 cambia el nombre a Microchip Technology y en 1989 es adquirida
por un grupo de inversores) y el nuevo propietario canceló casi todos los desarrollos,
que para esas fechas la mayoría estaban obsoletos. El PIC, sin embargo, se mejoró
con EPROM para conseguir un controlador de canal programable. Hoy en día multitud
de PICs vienen con varios periféricos incluidos (módulos de comunicación
serie,UARTs, núcleos de control de motores, etc.) y con memoria de programa desde
512 a 32.000 palabras (una palabra corresponde a una instrucción en lenguaje
ensamblador, y puede ser de 12, 14, 16 ó 32 bits, dependiendo de la familia específica
de PICmicro).
Subfamilia PIC18F
Los PIC18F forman una subfamilia de microcontroladores PIC (Peripheral Interface Controller)
de gama media de 8 bits.
Cuentan con memoria de programa de tipo EEPROM Flash mejorada, lo que permite
programarlos fácilmente usando un dispositivo programador de PIC. Esta característica facilita
sustancialmente el diseño de proyectos, minimizando el tiempo empleado en programar los
microcontroladores (μC).
El hecho de que se clasifiquen como microcontroladores (MCU) de 8 bits hace referencia a la
longitud de los datos que manejan las instrucciones, y que se corresponde con el tamaño del
bus de datos y el de los registros de la CPU.
Principales características de los miembros más populares de la subfamilia 18F
-Arquitectura RISC avanzada Harvard: 16- bit con 8- bit de datos.
-77 instrucciones
-Desde 18 a 80 pines
-Hasta 64K bytes de programa (hasta 2 Mbytes en ROMless)
-Multiplicador Hardware 8x8
-Hasta 3968 bytes de RAM y 1KBytes de EEPROM
-Frecuencia máxima de reloj 40Mhz. Hasta 10 MIPS.
-Pila de 32 niveles.
-Múltiples fuentes de interrupción
-Periféricos de comunicación avanzados (CAN y USB)
Detalles de los miembros más populares de la subfamilia 18F
Para no generalizar tanto en la tabla he decidido encerrar en éste caso el modelo de μC
utilizado y desde aquí se detallará el mismo.
Princpales miembros de la familia 18F
Encapsulado PDIP del PIC4550
Este tipo de encapsulado fue utilizado por ser el más genérico en el mercado y ser bastante
versátil de usar.
Arquitectura interna del 18F4550
Diseño del circuito electrónico
Introducción
En éste capitulo las condiciones del proyecto y su diseño, los dispositivos utilizados y una
breve descripción de desarrollo que se llevó el mismo.
La finalidad del diseño es manufacturar unos circuitos impresos (PCB) que funcionen de hélice
a un motor DC además de sostén del μC e interfase de nivel medio para programar con USB,
otro que éste al girar forme una imagen con persistencia retiniana a través de unos diodos
emisores de luz (LED) controlados a partir de la programación de el microcontrolador y un
tercero que funcione como la circuiteria de un dispositivo de control de velocidad analógico
para el motor DC.
Especificaciones
El POV Display dispone de tres placas de circuito impreso mencionada anteriormente las
cuales deben contener:
Primer placa (Central)
-Microcontrolador Microchip® PIC18F4550 ya comentado anteriormente.
-Sistema de alimentación DC a partir de una pila recargable de 4.5 V
-Sistema de detección del inicio de proyección de la imagen a base de un sensor
MOC7811.
-Circuiteria del oscilador externo del PIC.
Segunda placa (En el extremo)
Su función es portar sencillamente los LEDs que desplegarán el mensaje gracia al fenómeno
POV.
-Resistencias de carbón y LED de tonalidad verde
Tercera placa (Control de velocidad)
-Temporizador NE555
-Potenciómetro (regulador de velocidad)
-Transistor NTE441
-Regulador LM7812
-Disipadores de Aluminio (Refrigeración)
-Circuiteria del modo Astable
Diseño del circuito
En ésta sección describiremos cada uno de los dispositivos utilizados dentro del proyecto
catalogando cada uno por su placa PCB.
Placa Central (Esquema)
Sensor MOC7811
Esquemático del MOC7811]
La imagen anterior nos muestra el fotooscilador MOC7811 que cumple la función de crear un
efecto switch a través del transistor BJT 2N3904, su funcionamiento es sencillo puesto que el
MOC7811 consiste en un diodo IR y fototransistor el cual manda un pulso cada vez que el haz
IR es interceptado por un objeto sólido no translucido haciendo conmutar el transistor BJT
generando el efecto Switch entre GND y 5V, el efecto es enviado a través de la salida O/P e
ingresado en el pin A4 del microcontrolador.
Oscilador
Como todos los dispositivos digitales síncronos, los microprocesadores y microcontro-
ladores necesitan una señal periódica para su funcionamiento, denominada señal de
reloj.
Este ésta hecho a partir de un oscilador de cristal de cuarzo con sus respectiva circuiteria
pasiva a partir de Capacitores, es oscilador utilizado es de 4MHz y configuración XT.
Oscilador y diagrama
USB
Diagrama del bootloader USB
El USB funciona a través de una librería del programa PIC C y un programa del mismo que lo hace capaz
de ser detectado por una PC, su función simplemente es la de programar el PIC sin necesidad de Kit, u
ejemplo se encuentra en la implementación del codigo.
Placa Externa
Compuesta de LED y resistencias de carbón
Diagrama esquemático
Placa de Control de velocidad
Consiste en un dispositivo analógico basado en una configuración astable del temporizador
NE555 utilizándolo como un generador de PWM (Pulse Width Modulation) de esta manera
preservamos fuertes de alimentación debido a la demanda de potencia generada por el motor
ahi es donde juegan un papel fundamental el regulador 7812 de suministro y el transistor de
switcheo MOSFET BUZ11, estos se le colocan disipadores debido a la enorme cantidad de
corriente que demanda el motor.
Render digital en 3D (Dispositivo de PWM)
Motor
Primero de todo describiremos el tipo de motor que se ha escogido, se trata de un motor de
corriente continua, este tipo de motores son muy habituales en aplicaciones de baja potencia,
concretamente uno de 20W de potencia y con un rango de trabajo de 6 a 12V, es un motor de
2400 RPM.
Motor Usado
Poner en marcha un motor DC es muy sencillo, solo es necesario aplicar la tensión de
alimentación entre sus bornes. Para invertir el sentido de giro basta con invertir la alimentación
y el motor comenzará a girar en sentido contrario. A diferencia de los motores paso a paso y
los servomecanismos, los motores DC no pueden ser posicionados y/o enclavados en una
posición específica. Estos simplemente giran a la máxima velocidad y en el sentido que la
alimentación aplicada se los permite.
PCBs
Hechos en Labcenter ARES por su versatilidad de acción, en el caso del segundo PCB éste se encuentra
en negativo porque fue utilizada la tecnica de impresión en ultravioleta.
Distribución de placa central y placa externa
PCB de circuito de control de Velocidad
-------------------------------------------Barra de poco presupuesto-------------------------------------
Programación del Microcontrolador
Introducción
Empezaremos con la sección más interesante del proyecto, la sección de programación en ella
describiremos el código, pero primero se hará un ingreso al entorno de programación utilizado
Lenguaje C
Por motivos de condición para el proyecto en motivos de aprendizaje el lenguaje elegido es el
C puesto que es un lenguaje de medio nivel y existen software versátiles directamente
elaborados para los microcontroladores de la marca Microchip® como el PIC C.
Generalizando C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en
los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL.
Al igual que B, es un lenguaje orientado a la implementación de Sistemas Operativos,
concretamente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje
de programación más popular para crear software de sistemas, aunque también se utiliza para
crear aplicaciones.
Se trata de un lenguaje débilmente tipificado de medio nivel pero con muchas características
de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez,
dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los
compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código
en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos.
Uno de los objetivos de diseño del lenguaje C es que sólo sean necesarias unas pocas
instrucciones en lenguaje máquina para traducir cada elemento del lenguaje, sin que haga falta
un soporte intenso en tiempo de ejecución. Es muy posible escribir C a bajo nivel de
abstracción; de hecho, C se usó como intermediario entre diferentes lenguajes.
En parte a causa de ser de relativamente bajo nivel y de tener un modesto conjunto de
características, se pueden desarrollar compiladores de C fácilmente. En consecuencia, el
lenguaje C está disponible en un amplio abanico de plataformas (seguramente más que
cualquier otro lenguaje). Además, a pesar de su naturaleza de bajo nivel, el lenguaje se
desarrolló para incentivar la programación independiente de la máquina. Un programa escrito
cumpliendo los estándares e intentando que sea portátil puede compilarse en muchos
computadores.
[quote = Ejemplo]// necesario para utilizar printf()
# include <stdio.h>
int main(void)
{
printf("Hola Mundon"
;
return 0;
}[/quote]
Software Usados
Los softwares utilizados son PIC C, GLCD Front Creator y Labcenter Proteus, el primero
utilizado para compilar nuestro código, el segundo para generar una base de datos
hexadecimal que contenga nuestros caracteres y el tercero para la simulación y diseño de la
circuitería.
Interfase grafica de GLCD Front Creator
Implementación del código
El código es un código basado en C muy sencillo siguiente las directivas del programa compilador PIC C
desarrollado por CCS (Custom Computer Services) y programado a través del kit EasyPIC5 de
Mikroelectronika
PIC siendo programado por el Kit
El código contiene una serie de directivas y librerías que le ayudan a manejar de manera
versátil el microcontrolador, éstas directivas son las disposiciones que tendrá para operar, esas
son las primeras que observamos la cual contiene el modelo de PIC, como se quiere manejar,
la disposición de registros de cada Puerto a usar, como se han de usar los puertos y la
frecuencia de reloj que se ha de trabajar.
#include <18F4550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,VREGEN,NOPBADE
N,NOBROWNOUT
#use delay(clock=48000000)//48MHz
#use fast_io(a)
#byte PORTA = 0xF80// Son las direcciones de memoria de los puertos en este PIC
#byte PORTB = 0xF81
#byte PORTC = 0xF82
#byte PORTD = 0xF83
#byte PORTE = 0xF84
#byte trisA=0xF92
#byte trisB=0xF93
Como explicábamos anteriormente utilizamos el software GLCD para generar una base de
datos de los caracteres que hemos de dibujar en los LEDs, este genera una matriz hexadecimal
que generará datos alfanuméricos.
const unsigned char tabla[91]
= {//TABLA DE CARACTERES
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 00
{0x00,0x00,0x00,0x00,0x00,0xff }, // 01
{0x00,0x00,0x00,0x00,0x00,0xf0 }, // 02
{0x00,0x00,0x00,0x00,0x00,0x01 }, // 03
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 04
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 05
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 06
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 07
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 08
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 09
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 10
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 11
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 12
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 13
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 14
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 15
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 16
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 17
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 18
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 19
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 20
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 21
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 22
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 23
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 24
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 25
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 26
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 27
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 28
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 29
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 30
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 31
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 32
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 33
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 34
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 35
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 36
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 37
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 38
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 39
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 40
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 41
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 42
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 43
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 44
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 45
{0x00,0x03,0x03,0x00,0x00,0x00 }, // 46 .
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 47
{0x3E,0x45,0x49,0x51,0x3E,0x00 }, // 48 0
{0x44,0x42,0x7F,0x40,0x40,0x00 }, // 49 1
{0x42,0x61,0x51,0x49,0x46,0x00 }, // 50 2
{0x22,0x41,0x49,0x49,0x36,0x00 }, // 51 3
{0x38,0x24,0x22,0x7F,0x20,0x00 }, // 52 4
{0x27,0x49,0x49,0x49,0x31,0x00 }, // 53 5
{0x3E,0x49,0x49,0x49,0x32,0x00 }, // 54 6
{0x01,0x01,0x71,0x09,0x07,0x00 }, // 55 7
{0x36,0x49,0x49,0x49,0x36,0x00 }, // 56 8
{0x26,0x49,0x49,0x49,0x36,0x00 }, // 57 9
{0x00,0x36,0x36,0x00,0x00,0x00 }, // 58 :
{0x00,0x36,0x36,0x00,0x00,0x00 }, // 59
{0x38,0x38,0xfe,0x7b,0x38,0x10 }, // 60 flecha
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 61
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 62
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 63
{0x32,0x49,0x79,0x41,0x3e,0x00 }, // 64 @
{0x7e,0x11,0x11,0x11,0x7e,0x00 }, // 65 A
{0x7f,0x49,0x49,0x49,0x36,0x00 }, // 66 B
{0x3e,0x41,0x41,0x41,0x22,0x00 }, // 67 C
{0x7f,0x41,0x41,0x22,0x1c,0x00 }, // 68 D
{0x7f,0x49,0x49,0x49,0x41,0x00 }, // 69 E
{0x7f,0x09,0x09,0x09,0x01,0x00 }, // 70 F
{0x3e,0x41,0x49,0x49,0x7a,0x00 }, // 71 G
{0x7f,0x08,0x08,0x08,0x7f,0x00 }, // 72 H
{0x00,0x41,0x7f,0x41,0x00,0x00 }, // 73 I
{0x20,0x40,0x41,0x3f,0x01,0x00 }, // 74 J
{0x7f,0x08,0x14,0x22,0x41,0x00 }, // 75 K
{0x7f,0x40,0x40,0x40,0x40,0x00 }, // 76 L
{0x7f,0x02,0x0c,0x02,0x7f,0x00 }, // 77 M
{0x7f,0x04,0x08,0x10,0x7f,0x00 }, // 78 N
{0x3e,0x41,0x41,0x41,0x3e,0x00 }, // 79 O
{0x7f,0x09,0x09,0x09,0x06,0x00 }, // 80 P
{0x3e,0x41,0x51,0x21,0x5e,0x00 }, // 81 Q
{0x7f,0x09,0x19,0x29,0x46,0x00 }, // 82 R
{0x46,0x49,0x49,0x49,0x31,0x00 }, // 83 S
{0x01,0x01,0x7f,0x01,0x01,0x00 }, // 84 T
{0x3f,0x40,0x40,0x40,0x3f,0x00 }, // 85 U
{0x1f,0x20,0x40,0x20,0x1f,0x00 }, // 86 V
{0x3f,0x40,0x38,0x40,0x3f,0x00 }, // 87 W
{0x63,0x14,0x08,0x14,0x63,0x00 }, // 88 X
{0x07,0x08,0x70,0x08,0x07,0x00 }, // 89 Y
{0x61,0x51,0x49,0x45,0x43,0x00 }, // 90 Z
};
unsigned long u,q;
char str[];
Esta es la función que encenderá los LED a partir de un contador que simula las 6 columnas
generadas por el programa GLCD, más que todo sirve para poder llamar el dato a la matriz
hexadecimal.
void print(char chr1) {
for (q=0;q<6;q++) {
portb=tabla[chr1][q];
delay_us(500);
}
}
La siguiente es la condición para que pueda darse Print y es la que permite el desplazamiento
de los LED mostrando los caracteres.
void MENSAJE(char dato[15]){
for(q=0;q<12;q++)
str[q]=dato[q];
for(u=0;u<8;u++)
print(str['u]);
}
La función principal, en ella se ejecutan las disposiciones anteriores y también contempla al
sensor que es ejecutado para evitar el desplazamiento continuo del mensaje, es por ello que
están declarados los puertos a usar y el mensaje a proyectar es alojado en la variable
alfanumérica char.
void main()
{
TRISA =0xFF;
PORTA = 0xFF;
// bit_test(TRISA,5);
TRISB=0x00;
PORTB=0x00;
while(true)
{
if(porta & 0x10)//Sí el pin A4 está en alto ejecuta la F(t)
{
portB=0x00;
}
else
{
char TEXTO[15]="EO APLIKDA";
MENSAJE(TEXTO);
}
}}
-------------------------------------------Barra de poco presupuesto-------------------------------------
Presupuesto
Para realizar el proyecto se realizaron gastos de proceso (pruebas) y
gastos de manufacturación (elaboración final)
Gatos de proceso.
Tarjeta perforada: US$ 5
Bases PDIP : C$ 20
Microcontrolador Microchip® PIC16F887: C$ 600
Resistencias de carbón: C$ 3 c/u
Temporizadores NE555: C$ 9
Oscilador de cristal de Cuarzo: C$ 40
Capacitores electrolíticos: C$ 25
Capacitores Cerámicos: C$ 5
Motor DC con escobillas modelo: C$ 400
Plastilina: C$ 15
Diodos LED: C$ 6
Potenciómetro: C$ 20
Baterías AAA 1.5V: C$ 10
Baterías AAA 1.5V Recargable: C$ 370
Gastos de manufacturación
Se utilizaron la mayoría de los anteriores dispositivos a excepción de los
que fueron intercambiados a los siguientes por motivos de presentación.
Tarjeta Virgen: C$ 25
Microcontrolador Microchip® PIC18F4550: C$ 600
Terminal hembra USB: C$ 50
Conclusiones y propuesta Futura
El proyecto se propuso como objetivo el diseño de un generador de caracteres giratorio a
través de la programación de un microcontrolador, para ello ha sido necesario comprender
el fenómeno POV (Persistence of Vision) además del estudio de fotogramas con fin de
comprender las necesidades del proyecto, así como también la necesidad de una interface
sencilla tanto para un programador como un usuario común.
Hemos logrado diseñar un prototipo a partir de conocimientos básicos de electrónica
analógica y digital y el uso de software versátiles como el PIC C y el GLCD.
Llegamos a la conclusión de la necesidad de dispositivos cada vez más vez más vistosos
para la información en las entidades gubernamentales, universidades y carreteras y como
a través de dispositivos electrónicos como el microcontrolador son fáciles de lograr
garantizando una eficiencia en gasto y desarrollo.
Como propuestas futuras se contempla la realización de una interfaz inalámbrica para la
programación amigable con todo tipo de usuario, además de la implementación de
sistemas de telemetría con ellos ya sea para medir vectores físicos de importancia en los
procesos de desarrollo del país, logrando no solo el atractivo de ciudades sino también la
tecnificación de todos los procesos de los nicaragüenses logrando la mejor competitividad
a nivel internacional.
Bibliografía
Sonia Sánchez Fernández, Diseño e implementación de un visualizador tipo led rotativo,
Universidad Politécnica de Cataluña, 2010.
Revista Electrónica y Servicio, Editor Felipe Orozco Cautle, México, 1999.
Librerias PIC C, Custom Computer Services, 2009
Datasheets, Microchip Technology Inc , 2001
Revista uControl, Editor Ariel Palazzesi, Argentina, 2010.
MOC7811 Datasheet, Motorola.
http://es.wikipedia.org
http://youtube.com
www.instructables.com
Usando la comunicación USB para programar el PIC sin usar el Kit
En ese momento estabamos con el profesor mostrando los avances en la primer semana
Un videito en Fb
Cualquier duda me la hacen saber por acá o por MP
-------------------------------------------Barra de poco presupuesto-------------------------------------
![Me hice un display giratorio de LED's [Electronica] Me hice un display giratorio de LED's [Electronica]](https://storage.posteamelo.com/assets-adonis/assets/2016/02/18/7D3.jpg-qD831GHBE5u.webp)
-------------------------------------------Barra de poco presupuesto-------------------------------------
RESUMEN
Este proyecto se basa en un mecanismo giratorio que consta básicamente de un
motor al cual va fijada una placa electrónica que hace la función de hélice como si
de un ventilador se tratase. En el extremo de esta placa va una hilera vertical con
un número variable de LEDs. A través del la velocidad y de una adecuada
programación del microcontrolador PIC18F4550 que domina a los LEDs, se
aprovecha de la persistencia de imagen en la retina para generar la ilusión óptica
que queda representada en una imagen, que podrá ser un dibujo o bien palabras.
Dicho proyecto se explicará el efecto visual llamado POV el cual es el fundamento
de este trabajo. Más adelante se desarrollará el diseño de la placa impresa hasta
su implementación como aspa del motor utilizado como base giratoria. A
continuación se presentará una detallada aclaración del montaje de la estructura de
soporte y de la fijación de la placa ya mencionada. Después se expondrá su
programación detalladamente.
Para concluir se aportan nuevas ideas y líneas de investigación, abriendo puertas a
nuevos proyectos para mejorar el presente trabajo y así seguir desarrollando esta
interesante ilusión óptica giratorio.
Display giratorio
-------------------------------------------Barra de poco presupuesto-------------------------------------
Preludio
dijo:El presente proyecto a desarrollar es en búsqueda de ese motivo, la
comunicación; a como su nombre lo dice es un “Generador de caracteres”
porque lo que se busca es mostrar un mensaje en el dispositivo.
Aunque es cierto que los dispositivos fundamentales son digitales, el
proyecto conlleva elementos analógicos.
El interés de hacer el proyecto es brindar a la sociedad una herramienta
de comunicación de bajo costo y con soporte meramente nacional, el
problema o la necesidad es el comunicar un mensaje de manera precisa y
concisa al vidente, un ejemplo claro es el usar el proyecto para informar
de la actividad de un importante evento de la universidad como una feria
o en una carretera que carril usar o si hay accidentes en la vía.
A pesar de que existen diversos tipos de comunicación rotulada por qué
usar este tipo de solución, porque uno de los criterios para comunicar algo
importante es la persuasión y la vistosidad y es algo en el cual dispositivos
como los diodos LED son expertos en hacer. Todo lo que observamos y
percibimos es LUZ y dependemos de nuestros ojos para realizar nuestras
tareas.[/quote]
El POV Display es un dispositivo electrónico óptico que basa su
funcionamiento en la habilidad del ojo para poder observar 30 cuadros
por segundo elaborando así una imagen de un mensaje de manera nítida
en formato de la cantidad de LED incluidos en su brazo giratorio.
Para hacerlo girar éste utiliza un motor DC con escobillas alimentado por
una fuente DC de 12 V.
Un brazo giratorio en el que esta contenido el circuito de control y
procesamiento de la imagen a representar, con su determinado sistema
de alimentación.
El circuito de control está compuesto por un microcontrolador
programable EEPROM fabricado por la compañía Microchip ®
(PIC18F4550) con su respectivo socket de 40 pines.
El microcontrolador puede ser programado a través de una interfase USB.
En el extremo del brazo tenemos 8 LED en cátodo común que mostraran
el mensaje.
Para marcar el inicio del mensaje se utiliza un optooscilador MOC 7811.
-------------------------------------------Barra de poco presupuesto-------------------------------------
Motivación y objetivos del proyecto
La motivación de este proyecto viene dada por la posibilidad de realizar
prácticas docentes más creativas para los estudiantes. Esta técnica la adopta
la publicidad y la industria de objetos de regalo y de decoración, además de ser
útiles para visualizar cualquier cosa o textos al público.
Lo que nos impulsó a realizar este proyecto es lo fácil que es de aplicársele
nuevas actualizaciones en búsqueda de ya ir trabajando en nuestro plan
8
monográfico en la búsqueda de facilitarle al usuario la manera de hacer saber
su comunicado.
Como mencionaba anteriormente nuestro trabajo aunque tiene dispositivos
digitales maneja analógicos que son imprescindibles para el funcionamiento
óptimo del proyecto. Un ejemplo de ello es el uso de osciladores, circuitos de
frecuencia y de ser el motor DC probablemente la elaboración de una pequeña
fuente conmutada en búsqueda de mayor funcionalidad.
-------------------------------------------Barra de poco presupuesto-------------------------------------
OBJETIVOS
-Diseñar un dispositivo que pueda ser usado por la universidad en
actividades y eventos en motivo de publicidad y presentación.
-Aprender a utilizar la tecnología de microcontroladores como premisa de
asignaturas superiores de la carrera.
-Aprender el uso del compilador PIC C de CCS (Custom Computer
Services) como interfaz de alto nivel usado en la programación del
microcontrolador.
-Habilitar una interfase sencilla para el programador.
-Optimizar el espacio de circuitería en la placa ya que ésta debe simular a
una hélice y por ello debe ser de forma rectangular y lo más pequeña
posible y balanceada
-Sincronizar la velocidad de giro con el programa del microcontrolador
para visualizar correctamente la imagen que proporcionaran los LEDs.
-Convertir el proyecto en aplicación de futuras asignaturas.
-------------------------------------------Barra de poco presupuesto-------------------------------------
Fundamentos Teóricos
En este capítulo se introducirán los elementos principales que constituyen este
proyecto, se hablará del efecto óptico que se produce dando un breve repaso a
la teoría visual para poder entender el porqué se pueden realizar estos efectos
basándose en varios ejemplos así, haciendo más fácil comprender el efecto
óptico que se produce en este proyecto. Asimismo, también se hablará del
centro neurálgico de la placa electrónica que formará la parte giratoria del
proyecto, el microcontrolador, para poder entender porqué es necesario el uso
del mismo y se podrá conocer su funcionamiento interno.
- Sistema visual humano
Los órganos de la visión en los seres humanos y en los animales son los ojos.
Éstos varían entre las diferentes especies, desde las estructuras más sencillas,
capaces de diferenciar sólo entre la luz y la oscuridad, hasta los órganos
complejos que tienen los seres humanos y otros mamíferos, que pueden
diferenciar variaciones muy pequeñas de forma, color, luminosidad y distancia.
De hecho, el órgano que realiza el proceso de la visión es el cerebro; la función
9 del ojo es traducir las vibraciones electromagnéticas de la luz en un
determinado tipo de impulsos nerviosos que se transmiten al cerebro.
La parte trasera del globo ocular está recubierta casi totalmente por una
membrana de células sensibles a la luz. Esta capa fotosensible se denomina
retina, donde se detectan los estímulos visuales. La luz se filtra en el ojo a
través de la córnea y es enfocada por el cristalino (una lente adaptable) en la
retina. El iris de la pupila puede adaptar su tamañopara dejar pasar más o
menos luz, según su intensidad. 20
Corte transversal del ojo humano
Volviendo de nuevo a la retina explicaremos que es una superficie que contiene
diferentes clases de células. Entre ellas destacaremos las células fotosensibles
llamadas conos y bastones, localizadas en la capa más profunda de la retina.
Los conos que son las células receptoras de luz y los bastones las que emiten
señales a otras células. Los conos se concentran cerca del centro de la retina,
alrededor de 4 millones, son muy sensibles a los colores en cambio poco
sensibles al brillo. Por otro lado los bastoncillos están muy repartidos dentro de
la retina aproximadamente 100 millones. Son muchos más sensibles al brillo
que los conos y son los responsables de la visión nocturna
Distribución de los conos y bastones
Persistencia Retiniana
Este fenómeno visual descubierto por el científico belga Joseph-Antoine
Ferdinand Plateau es conocido como POV (Persistence Of Vision) o
persistencia retiniana. Este hecho demuestra cómo una imagen permanece en
la retina humana una décima de segundo antes de desaparecer
completamente, lo que permite que veamos la realidad como una secuencia de
imágenes que el cerebro "enlaza" como una sola imagen visual móvil y
continua. En el cine en blanco y negro, se pasaban 18 imágenes por segundo
porque se decía que era el mínimo para poder crear el efecto de movimiento,
las películas actuales se proyectan a 24 imágenes por segundo, e incluso a 25
para adaptarse mejor a la frecuencia utilizada en televisión.
La persistencia retiniana es una característica de nuestro ojo que provoca que
las imágenes que se observan no se borren instantáneamente. Este hecho,
hace que las imágenes que se visualizan, queden guardadas por un instante en
el cerebro. Por ejemplo, al hacer girar una cerilla podemos lograr que ésta
parezca formar un círculo de fuego en el aire, al igual que si se hace con un
LED encendido. Si a dicho LED o a un conjunto de ellos los activamos de
manera apropiada en tiempo y forma, obtendremos, gracias a la persistencia
de nuestra visión, imágenes que parecen estar volando en el aire.
-------------------------------------------Barra de poco presupuesto-------------------------------------
Microcontroladores
- Introducción a los microcontroladores
Se llama microcontrolador a un circuito integrado que incluye en su interior las
tres unidades principales de un ordenador: Memoria, CPU y Periféricos de E/S.
Un microcontrolador es capaz de realizar procesos lógicos. Dichos procesos o
acciones son programables en el lenguaje ensamblador por el usuario, y son
introducidos en este a través de un programador.
Un microcontrolador dispone normalmente de los siguientes componentes:
-Procesador o CPU.
-Memoria RAM para Contener los datos.
-Memoria para el programa tipo ROM/PROM/EPROM.
-Líneas de Entrada/Salida para comunicarse con el exterior.
-Diversos módulos para el control de periféricos (temporizadores, Puertas
-Serie y Paralelo, CAD: Conversores Analógico/Digital, CDA:
-Conversores Digital/Analógico, etc.).
-Generador de impulsos de reloj que sincronizan el funcionamiento de
todo el sistema.
Diferencia entre microcontrolador y microprocesador
Un error común es confundir los términos de microcontrolador y
microprocesador. Un microcontrolador es un sistema completo, con unas
prestaciones limitadas que no pueden modificarse y que puede llevar a cabo
las tareas para las que ha sido programado de forma autónoma. Un
microprocesador, en cambio, es simplemente un componente que constituye el
microcontrolador, que lleva a cabo ciertas tareas y que, en conjunto con otros
componentes, forman un microcontrolador.
En definitiva el primero es un sistema autónomo e independiente, mientras que
el segundo es una parte, cabe decir esencial, que forma parte de un sistema
mayor.
Microprocesador
Microcontrolador
-------------------------------------------Barra de poco presupuesto-------------------------------------
Familia PIC
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 nombre actual no es un acrónimo. En realidad, el nombre completo es PICmicro,
aunque generalmente se utiliza como Peripheral Interface Controller (controlador de
interfaz periférico).
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 E/S, y el PIC de
12.
8 bits se desarrolló en1975 para mejorar el rendimiento del sistema quitando peso de
E/S a la CPU. El PIC utiliza bamicrocó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.
En 1985 la división de microelectrónica de General Instrument se separa como
compañía independiente que es incorporada como filial (el 14 de
diciembre de 1987 cambia el nombre a Microchip Technology y en 1989 es adquirida
por un grupo de inversores) y el nuevo propietario canceló casi todos los desarrollos,
que para esas fechas la mayoría estaban obsoletos. El PIC, sin embargo, se mejoró
con EPROM para conseguir un controlador de canal programable. Hoy en día multitud
de PICs vienen con varios periféricos incluidos (módulos de comunicación
serie,UARTs, núcleos de control de motores, etc.) y con memoria de programa desde
512 a 32.000 palabras (una palabra corresponde a una instrucción en lenguaje
ensamblador, y puede ser de 12, 14, 16 ó 32 bits, dependiendo de la familia específica
de PICmicro).
Subfamilia PIC18F
Los PIC18F forman una subfamilia de microcontroladores PIC (Peripheral Interface Controller)
de gama media de 8 bits.
Cuentan con memoria de programa de tipo EEPROM Flash mejorada, lo que permite
programarlos fácilmente usando un dispositivo programador de PIC. Esta característica facilita
sustancialmente el diseño de proyectos, minimizando el tiempo empleado en programar los
microcontroladores (μC).
El hecho de que se clasifiquen como microcontroladores (MCU) de 8 bits hace referencia a la
longitud de los datos que manejan las instrucciones, y que se corresponde con el tamaño del
bus de datos y el de los registros de la CPU.
Principales características de los miembros más populares de la subfamilia 18F
-Arquitectura RISC avanzada Harvard: 16- bit con 8- bit de datos.
-77 instrucciones
-Desde 18 a 80 pines
-Hasta 64K bytes de programa (hasta 2 Mbytes en ROMless)
-Multiplicador Hardware 8x8
-Hasta 3968 bytes de RAM y 1KBytes de EEPROM
-Frecuencia máxima de reloj 40Mhz. Hasta 10 MIPS.
-Pila de 32 niveles.
-Múltiples fuentes de interrupción
-Periféricos de comunicación avanzados (CAN y USB)
Detalles de los miembros más populares de la subfamilia 18F
Para no generalizar tanto en la tabla he decidido encerrar en éste caso el modelo de μC
utilizado y desde aquí se detallará el mismo.
Princpales miembros de la familia 18F

Encapsulado PDIP del PIC4550
Este tipo de encapsulado fue utilizado por ser el más genérico en el mercado y ser bastante
versátil de usar.

Arquitectura interna del 18F4550
Diseño del circuito electrónico
Introducción
En éste capitulo las condiciones del proyecto y su diseño, los dispositivos utilizados y una
breve descripción de desarrollo que se llevó el mismo.
La finalidad del diseño es manufacturar unos circuitos impresos (PCB) que funcionen de hélice
a un motor DC además de sostén del μC e interfase de nivel medio para programar con USB,
otro que éste al girar forme una imagen con persistencia retiniana a través de unos diodos
emisores de luz (LED) controlados a partir de la programación de el microcontrolador y un
tercero que funcione como la circuiteria de un dispositivo de control de velocidad analógico
para el motor DC.
Diagrama de Bloques


Especificaciones
El POV Display dispone de tres placas de circuito impreso mencionada anteriormente las
cuales deben contener:
Primer placa (Central)
-Microcontrolador Microchip® PIC18F4550 ya comentado anteriormente.
-Sistema de alimentación DC a partir de una pila recargable de 4.5 V
-Sistema de detección del inicio de proyección de la imagen a base de un sensor
MOC7811.
-Circuiteria del oscilador externo del PIC.
Segunda placa (En el extremo)
Su función es portar sencillamente los LEDs que desplegarán el mensaje gracia al fenómeno
POV.
-Resistencias de carbón y LED de tonalidad verde
Tercera placa (Control de velocidad)
-Temporizador NE555
-Potenciómetro (regulador de velocidad)
-Transistor NTE441
-Regulador LM7812
-Disipadores de Aluminio (Refrigeración)
-Circuiteria del modo Astable
Diseño del circuito
En ésta sección describiremos cada uno de los dispositivos utilizados dentro del proyecto
catalogando cada uno por su placa PCB.
Placa Central (Esquema)
Sensor MOC7811
Esquemático del MOC7811]
La imagen anterior nos muestra el fotooscilador MOC7811 que cumple la función de crear un
efecto switch a través del transistor BJT 2N3904, su funcionamiento es sencillo puesto que el
MOC7811 consiste en un diodo IR y fototransistor el cual manda un pulso cada vez que el haz
IR es interceptado por un objeto sólido no translucido haciendo conmutar el transistor BJT
generando el efecto Switch entre GND y 5V, el efecto es enviado a través de la salida O/P e
ingresado en el pin A4 del microcontrolador.
Oscilador
Como todos los dispositivos digitales síncronos, los microprocesadores y microcontro-
ladores necesitan una señal periódica para su funcionamiento, denominada señal de
reloj.
Este ésta hecho a partir de un oscilador de cristal de cuarzo con sus respectiva circuiteria
pasiva a partir de Capacitores, es oscilador utilizado es de 4MHz y configuración XT.

Oscilador y diagrama
USB
Diagrama del bootloader USB
El USB funciona a través de una librería del programa PIC C y un programa del mismo que lo hace capaz
de ser detectado por una PC, su función simplemente es la de programar el PIC sin necesidad de Kit, u
ejemplo se encuentra en la implementación del codigo.
Placa Externa
Compuesta de LED y resistencias de carbón
Diagrama esquemático
Placa de Control de velocidad
Consiste en un dispositivo analógico basado en una configuración astable del temporizador
NE555 utilizándolo como un generador de PWM (Pulse Width Modulation) de esta manera
preservamos fuertes de alimentación debido a la demanda de potencia generada por el motor
ahi es donde juegan un papel fundamental el regulador 7812 de suministro y el transistor de
switcheo MOSFET BUZ11, estos se le colocan disipadores debido a la enorme cantidad de
corriente que demanda el motor.
Render digital en 3D (Dispositivo de PWM)
Motor
Primero de todo describiremos el tipo de motor que se ha escogido, se trata de un motor de
corriente continua, este tipo de motores son muy habituales en aplicaciones de baja potencia,
concretamente uno de 20W de potencia y con un rango de trabajo de 6 a 12V, es un motor de
2400 RPM.
Motor Usado
Poner en marcha un motor DC es muy sencillo, solo es necesario aplicar la tensión de
alimentación entre sus bornes. Para invertir el sentido de giro basta con invertir la alimentación
y el motor comenzará a girar en sentido contrario. A diferencia de los motores paso a paso y
los servomecanismos, los motores DC no pueden ser posicionados y/o enclavados en una
posición específica. Estos simplemente giran a la máxima velocidad y en el sentido que la
alimentación aplicada se los permite.
PCBs
Hechos en Labcenter ARES por su versatilidad de acción, en el caso del segundo PCB éste se encuentra
en negativo porque fue utilizada la tecnica de impresión en ultravioleta.
Distribución de placa central y placa externa
PCB de circuito de control de Velocidad
-------------------------------------------Barra de poco presupuesto-------------------------------------
Programación del Microcontrolador
Introducción
Empezaremos con la sección más interesante del proyecto, la sección de programación en ella
describiremos el código, pero primero se hará un ingreso al entorno de programación utilizado
Lenguaje C
Por motivos de condición para el proyecto en motivos de aprendizaje el lenguaje elegido es el
C puesto que es un lenguaje de medio nivel y existen software versátiles directamente
elaborados para los microcontroladores de la marca Microchip® como el PIC C.
Generalizando C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en
los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL.
Al igual que B, es un lenguaje orientado a la implementación de Sistemas Operativos,
concretamente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje
de programación más popular para crear software de sistemas, aunque también se utiliza para
crear aplicaciones.
Se trata de un lenguaje débilmente tipificado de medio nivel pero con muchas características
de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez,
dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los
compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código
en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos.
Uno de los objetivos de diseño del lenguaje C es que sólo sean necesarias unas pocas
instrucciones en lenguaje máquina para traducir cada elemento del lenguaje, sin que haga falta
un soporte intenso en tiempo de ejecución. Es muy posible escribir C a bajo nivel de
abstracción; de hecho, C se usó como intermediario entre diferentes lenguajes.
En parte a causa de ser de relativamente bajo nivel y de tener un modesto conjunto de
características, se pueden desarrollar compiladores de C fácilmente. En consecuencia, el
lenguaje C está disponible en un amplio abanico de plataformas (seguramente más que
cualquier otro lenguaje). Además, a pesar de su naturaleza de bajo nivel, el lenguaje se
desarrolló para incentivar la programación independiente de la máquina. Un programa escrito
cumpliendo los estándares e intentando que sea portátil puede compilarse en muchos
computadores.
[quote = Ejemplo]// necesario para utilizar printf()
# include <stdio.h>
int main(void)
{
printf("Hola Mundon"

;
return 0;
}[/quote]
Software Usados
Los softwares utilizados son PIC C, GLCD Front Creator y Labcenter Proteus, el primero
utilizado para compilar nuestro código, el segundo para generar una base de datos
hexadecimal que contenga nuestros caracteres y el tercero para la simulación y diseño de la
circuitería.

Interfase grafica de GLCD Front Creator
Implementación del código
El código es un código basado en C muy sencillo siguiente las directivas del programa compilador PIC C
desarrollado por CCS (Custom Computer Services) y programado a través del kit EasyPIC5 de
Mikroelectronika

PIC siendo programado por el Kit
De paso les muestro mi PCHAHA
El código contiene una serie de directivas y librerías que le ayudan a manejar de manera
versátil el microcontrolador, éstas directivas son las disposiciones que tendrá para operar, esas
son las primeras que observamos la cual contiene el modelo de PIC, como se quiere manejar,
la disposición de registros de cada Puerto a usar, como se han de usar los puertos y la
frecuencia de reloj que se ha de trabajar.
#include <18F4550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,VREGEN,NOPBADE
N,NOBROWNOUT
#use delay(clock=48000000)//48MHz
#use fast_io(a)
#byte PORTA = 0xF80// Son las direcciones de memoria de los puertos en este PIC
#byte PORTB = 0xF81
#byte PORTC = 0xF82
#byte PORTD = 0xF83
#byte PORTE = 0xF84
#byte trisA=0xF92
#byte trisB=0xF93
Como explicábamos anteriormente utilizamos el software GLCD para generar una base de
datos de los caracteres que hemos de dibujar en los LEDs, este genera una matriz hexadecimal
que generará datos alfanuméricos.
const unsigned char tabla[91]
= {//TABLA DE CARACTERES
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 00
{0x00,0x00,0x00,0x00,0x00,0xff }, // 01
{0x00,0x00,0x00,0x00,0x00,0xf0 }, // 02
{0x00,0x00,0x00,0x00,0x00,0x01 }, // 03
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 04
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 05
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 06
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 07
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 08
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 09
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 10
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 11
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 12
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 13
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 14
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 15
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 16
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 17
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 18
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 19
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 20
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 21
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 22
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 23
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 24
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 25
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 26
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 27
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 28
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 29
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 30
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 31
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 32
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 33
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 34
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 35
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 36
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 37
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 38
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 39
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 40
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 41
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 42
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 43
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 44
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 45
{0x00,0x03,0x03,0x00,0x00,0x00 }, // 46 .
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 47
{0x3E,0x45,0x49,0x51,0x3E,0x00 }, // 48 0
{0x44,0x42,0x7F,0x40,0x40,0x00 }, // 49 1
{0x42,0x61,0x51,0x49,0x46,0x00 }, // 50 2
{0x22,0x41,0x49,0x49,0x36,0x00 }, // 51 3
{0x38,0x24,0x22,0x7F,0x20,0x00 }, // 52 4
{0x27,0x49,0x49,0x49,0x31,0x00 }, // 53 5
{0x3E,0x49,0x49,0x49,0x32,0x00 }, // 54 6
{0x01,0x01,0x71,0x09,0x07,0x00 }, // 55 7
{0x36,0x49,0x49,0x49,0x36,0x00 }, // 56 8
{0x26,0x49,0x49,0x49,0x36,0x00 }, // 57 9
{0x00,0x36,0x36,0x00,0x00,0x00 }, // 58 :
{0x00,0x36,0x36,0x00,0x00,0x00 }, // 59
{0x38,0x38,0xfe,0x7b,0x38,0x10 }, // 60 flecha
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 61
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 62
{0x00,0x00,0x00,0x00,0x00,0x00 }, // 63
{0x32,0x49,0x79,0x41,0x3e,0x00 }, // 64 @
{0x7e,0x11,0x11,0x11,0x7e,0x00 }, // 65 A
{0x7f,0x49,0x49,0x49,0x36,0x00 }, // 66 B
{0x3e,0x41,0x41,0x41,0x22,0x00 }, // 67 C
{0x7f,0x41,0x41,0x22,0x1c,0x00 }, // 68 D
{0x7f,0x49,0x49,0x49,0x41,0x00 }, // 69 E
{0x7f,0x09,0x09,0x09,0x01,0x00 }, // 70 F
{0x3e,0x41,0x49,0x49,0x7a,0x00 }, // 71 G
{0x7f,0x08,0x08,0x08,0x7f,0x00 }, // 72 H
{0x00,0x41,0x7f,0x41,0x00,0x00 }, // 73 I
{0x20,0x40,0x41,0x3f,0x01,0x00 }, // 74 J
{0x7f,0x08,0x14,0x22,0x41,0x00 }, // 75 K
{0x7f,0x40,0x40,0x40,0x40,0x00 }, // 76 L
{0x7f,0x02,0x0c,0x02,0x7f,0x00 }, // 77 M
{0x7f,0x04,0x08,0x10,0x7f,0x00 }, // 78 N
{0x3e,0x41,0x41,0x41,0x3e,0x00 }, // 79 O
{0x7f,0x09,0x09,0x09,0x06,0x00 }, // 80 P
{0x3e,0x41,0x51,0x21,0x5e,0x00 }, // 81 Q
{0x7f,0x09,0x19,0x29,0x46,0x00 }, // 82 R
{0x46,0x49,0x49,0x49,0x31,0x00 }, // 83 S
{0x01,0x01,0x7f,0x01,0x01,0x00 }, // 84 T
{0x3f,0x40,0x40,0x40,0x3f,0x00 }, // 85 U
{0x1f,0x20,0x40,0x20,0x1f,0x00 }, // 86 V
{0x3f,0x40,0x38,0x40,0x3f,0x00 }, // 87 W
{0x63,0x14,0x08,0x14,0x63,0x00 }, // 88 X
{0x07,0x08,0x70,0x08,0x07,0x00 }, // 89 Y
{0x61,0x51,0x49,0x45,0x43,0x00 }, // 90 Z
};
unsigned long u,q;
char str[];
Esta es la función que encenderá los LED a partir de un contador que simula las 6 columnas
generadas por el programa GLCD, más que todo sirve para poder llamar el dato a la matriz
hexadecimal.
void print(char chr1) {
for (q=0;q<6;q++) {
portb=tabla[chr1][q];
delay_us(500);
}
}
La siguiente es la condición para que pueda darse Print y es la que permite el desplazamiento
de los LED mostrando los caracteres.
void MENSAJE(char dato[15]){
for(q=0;q<12;q++)
str[q]=dato[q];
for(u=0;u<8;u++)
print(str['u]);
}
La función principal, en ella se ejecutan las disposiciones anteriores y también contempla al
sensor que es ejecutado para evitar el desplazamiento continuo del mensaje, es por ello que
están declarados los puertos a usar y el mensaje a proyectar es alojado en la variable
alfanumérica char.
void main()
{
TRISA =0xFF;
PORTA = 0xFF;
// bit_test(TRISA,5);
TRISB=0x00;
PORTB=0x00;
while(true)
{
if(porta & 0x10)//Sí el pin A4 está en alto ejecuta la F(t)
{
portB=0x00;
}
else
{
char TEXTO[15]="EO APLIKDA";
MENSAJE(TEXTO);
}
}}
-------------------------------------------Barra de poco presupuesto-------------------------------------
Presupuesto
Para realizar el proyecto se realizaron gastos de proceso (pruebas) y
gastos de manufacturación (elaboración final)
Gatos de proceso.
Tarjeta perforada: US$ 5
Bases PDIP : C$ 20
Microcontrolador Microchip® PIC16F887: C$ 600
Resistencias de carbón: C$ 3 c/u
Temporizadores NE555: C$ 9
Oscilador de cristal de Cuarzo: C$ 40
Capacitores electrolíticos: C$ 25
Capacitores Cerámicos: C$ 5
Motor DC con escobillas modelo: C$ 400
Plastilina: C$ 15
Diodos LED: C$ 6
Potenciómetro: C$ 20
Baterías AAA 1.5V: C$ 10
Baterías AAA 1.5V Recargable: C$ 370
Gastos de manufacturación
Se utilizaron la mayoría de los anteriores dispositivos a excepción de los
que fueron intercambiados a los siguientes por motivos de presentación.
Tarjeta Virgen: C$ 25
Microcontrolador Microchip® PIC18F4550: C$ 600
Terminal hembra USB: C$ 50
Nota: 1U$ = 23C$ Córdobas Nicaraguenses
Conclusiones y propuesta Futura
El proyecto se propuso como objetivo el diseño de un generador de caracteres giratorio a
través de la programación de un microcontrolador, para ello ha sido necesario comprender
el fenómeno POV (Persistence of Vision) además del estudio de fotogramas con fin de
comprender las necesidades del proyecto, así como también la necesidad de una interface
sencilla tanto para un programador como un usuario común.
Hemos logrado diseñar un prototipo a partir de conocimientos básicos de electrónica
analógica y digital y el uso de software versátiles como el PIC C y el GLCD.
Llegamos a la conclusión de la necesidad de dispositivos cada vez más vez más vistosos
para la información en las entidades gubernamentales, universidades y carreteras y como
a través de dispositivos electrónicos como el microcontrolador son fáciles de lograr
garantizando una eficiencia en gasto y desarrollo.
Como propuestas futuras se contempla la realización de una interfaz inalámbrica para la
programación amigable con todo tipo de usuario, además de la implementación de
sistemas de telemetría con ellos ya sea para medir vectores físicos de importancia en los
procesos de desarrollo del país, logrando no solo el atractivo de ciudades sino también la
tecnificación de todos los procesos de los nicaragüenses logrando la mejor competitividad
a nivel internacional.
Bibliografía
Sonia Sánchez Fernández, Diseño e implementación de un visualizador tipo led rotativo,
Universidad Politécnica de Cataluña, 2010.
Revista Electrónica y Servicio, Editor Felipe Orozco Cautle, México, 1999.
Librerias PIC C, Custom Computer Services, 2009
Datasheets, Microchip Technology Inc , 2001
Revista uControl, Editor Ariel Palazzesi, Argentina, 2010.
MOC7811 Datasheet, Motorola.
http://es.wikipedia.org
http://youtube.com
www.instructables.com
YAPA
Usando la comunicación USB para programar el PIC sin usar el Kit
En ese momento estabamos con el profesor mostrando los avances en la primer semana
Un videito en Fb
Cualquier duda me la hacen saber por acá o por MP
