You are on page 1of 12

Persistncia da Viso em 2D

FEUP - Sistemas Embarcados


Patrcio Lima Jos Borges Hlder Lobato

Docentes: Lus Almeida Mrio Sousa

Faculdade de Engenharia da Universidade do Porto Sistemas Embarcados 2010/2011 1 Persistncia da Viso em 2D

Indice
1. 2. 3. 4. Resumo ................................................................................................................................................. 2 Introduo .................................................................................................................................2 Modo de Funcionamento ............................................................................................................3 Implementao ..........................................................................................................................4 4.1 4.2 PCB .....................................................................................................................................4 Programao do Microcontrolador ......................................................................................5 Programa Principal.......................................................................................................5 Interrupo Externa .....................................................................................................6 Interrupo por Overflow em Timer 0...........................................................................6 Interrupo pela USART ...............................................................................................7 Escalonamento de tarefas. ...........................................................................................8

4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 5.

Concluso ......................................................................................................................... 10

Faculdade de Engenharia da Universidade do Porto Sistemas Embarcados 2010/2011 2 Persistncia da Viso em 2D

1. Resumo
Este relatrio vai descrever o projecto POV 2D Circular realizado no mbito da unidade Curricular de Sistemas Embarcados 2010/11-2 Semestre. Neste documento vo ser apresentados as especificaes do projecto, as opes adoptadas para implementao do suporte fsico (hardware) e software de forma corresponder s especificaes feitas. Por ltimo, so apresentados os resultados conseguidos.

2. Introduo
O objectivo deste trabalho explorar o conceito da persistncia da viso(POV Persistence Of Vision) em duas dimenses. A persistncia da retina um fenmeno no qual o olho humano retm, durante um certo perodo (aproximadamente 1/24 segundos) uma imagem antes desta desaparecer da sua memria, ou seja, a fraco de segundo em que a imagem permanece na retina. Devido a este fenmeno se o ritmo de chegada entre imagens for superior a 24 por segundo, as imagens associam-se na retina provocando a iluso de movimento contnuo. Tendo como base este conceito, neste trabalho ser construindo um POV DISPLAY de duas dimenses. um dispositivo eletrnico formado por uma placa de 32 LEDs em linha recta em movimento circular, a cada ngulo deste movimento ser enviado um conjunto de cores para os leds e quando a frequncia de rotao fr superior frequncia de POV, provocar no espectador a iluso de uma imagem circular 65x65 pixeis. Para comprovar o funcionamento do dispositivo foi criado trs mini programas que iro projectar no display, um relgio digital, um relgio analgio e imagens circulares.

Faculdade de Engenharia da Universidade do Porto Sistemas Embarcados 2010/2011 3 Persistncia da Viso em 2D

3. Modo de Funcionamento
O modo de funcionamento deste dispositivo divido em dois modos: CONFIGURAO Neste modo, possivel configurar os parmetros dos mini-programas como a cor dos ponteiros, definir a hora, etc... Esta configurao conseguida pelo envio de comandos pela porta srie. Os comandos adoptados so os seguintes:

Comando SCLK

Argumento HHMMSS

Funo Configura a hora do RTC, colocando neste a hora passada por argumento. Retorna a hora que se encontra no RTC

GCLK MODE PICT, DCLK, ACLK

Defini o programa que vai ser visualizado no dispositivo (IMAGEM, RELGIO DIGITAL, RELGIO ANALGICO). Define a cor dos nmeros que aparecem no dispositivo quando este encontra-se no modo ACLK(Relgio Analgico). Define a cor que os ponteiro do relgio que aparecem no dispositivo quando este encontra-se no modo ACLK(Relgio Analgico). Retorna as mensagens de ajuda para o utilizador, isto , a lista de comando permitida e a descrio destes.

NCLR

RGB

PCLR

RGB

HELP

SPIC

Nmero da Imagem

Definie qual a imgem que o dispositivo ir ler da ROM e projectar nos LEDs Tabela 2.1

Modo de Visualizao Neste modo ser projectado um dos 3 mini programas, caso se pretenda alterar o programa a projectar ter que se utilizar o comando MODE. Que selecionar o modo de visualizao pretendido. Os modos so 1. Relgio Analgico Projectar um relgio analgico, que ocupa a totalidade do display. 2. Relgio Digital Projectar um relgio digital numa janela na parte superior do display. 3. IMAGEM Este projectar no display um conjunto de imagens gravadas na ROM

Faculdade de Engenharia da Universidade do Porto Sistemas Embarcados 2010/2011 4 Persistncia da Viso em 2D

4. Implementao
4.1 PCB
O circuito completo do POV composto pelos seguintes componentes: 1 Encoder Que l e envia para o microcontrolador a posio actual dos leds 1 RTC Real Time Clock onde so lidas as horas, que so mostradas no relgio digital e analgico. 1 RS232 driver que responsvel para a comunicao srie. 4 Led drivers Que alimentam os leds de acordo com os comandos recebidos do microcontrolador atravs do protocolo SPI. 32 Leds RGB Que apresenta os padres que formam as imagens. 1 LDO - Que regula a tenso de alimentao do circuito. Na figura abaixo mostrada um diagrama de como esto interligados os componentes.

Led Driver 3 Encoder

RTC

C
Led Driver 0

RS232

.......

Faculdade de Engenharia da Universidade do Porto Sistemas Embarcados 2010/2011 5 Persistncia da Viso em 2D

4.2 Programao do Microcontrolador


O programa para o mirocontrolador, desenvolvido em C pode ser divido em 4 partes: 4.2.1 Programa Principal Interrupo Externa ( Encoder ) Interrupo por Overflow em Timer 0 Interrupo pela USART ( Universal Synchronous Asynchronous Receiver Transmitter ).

Programa Principal Como podemos visualizar no fluxograma da figura 1, o programa principal tem como funo a projeco do display circular 65x65 pixeis(leds) . Para tal em cada posio ( ngulo) da placa ser obtido de um dos trs modos ( Digital , Analgico ou Imagem) um conjunto de 32 cores RGB ( referente ao pixel a enviar) e em seguida essa informao ser enviada para os LED DRIVERS.

INICIO

SEND_DRIVER

Objectivo obter todos os 32 pixeis num determinado ngulo

MDULO

IMAGEM (PICT) REL. DIGITAL (DCLK) Obter os pixeis da imagem Obter os pixeis da janela do relgio

REL. ANALGICO (ACLK) Obter os pixeis dos ponteiros

Obter os pixeis dos nmeros e do background

Enviar os RBGs dos pixeis para os LEDS DRIVER

SEND_DRIVER=FALSE

Figura 1 Ou seja, sabendo que na memria do microcontrolador para cada modo de visualizao escolhido encontra-se a imagem (um array 65x65 de RGBs) a projectar , o programa principal tendo em conta a orientao da placa e a posio do LED pretendido ir calcular a coordenada cartesiana de modo a obter a respectiva cor rgb que se encontra no array de imagens do modo selecionado. Aps fazer isso para os 32 leds numa determinada posio

Faculdade de Engenharia da Universidade do Porto Sistemas Embarcados 2010/2011 6 Persistncia da Viso em 2D essa informao ser enviada para o leds drivers. Na figura (2) encontra-se um exemplo de como imagem encontra-se organizada na memria. Na conversao de polar para cartesiano foi adoptado o uso de uma tabela de senos e coseno, pois durante a construo do programa notou-se que o uso das funes matemticas da linguam C, tornavam o programa excessivamente lento devido ao tipo de dados utilizado ( float ou double) e s operaes intermdias realizadas por essas funes para o clculo do resultado.

Figura 2 4.2.2 Interrupo Externa

A Interrupo externa neste caso ocorre devido ao enconder, pois com as interrupes provocadas por este dispositivo e utilizando um contador para contabilizar as interrupes possivel saber a orientao da placa. Pois as cores a enviar para os leds drivers dependem da orientao.. Na figura 3(a) , encontra-se o fluxograma desta interrupo. 4.2.3 Interrupo por Overflow em Timer 0 Exceptuando o modo IMAGEM no qual a imagem sempre fixa,nos restantes modos cada imagem a ser projectada um retracto 65x65 num determinado instante, como as horas vo variando ao longo do tempo. Logo necessrio actualizar as imagens do modo digital e analgico . A estratgia adoptada para o refrescamento dos dados contidos nos arrays, foi configurar esta interrupo para a cada 800 milisegundo obter a hora no rtc e actualizar as imagens correspondentens a cada modo de visualizao. O clculo desta tempo dado pela a seguine equao:

N o nmero de incrementos no timer 187 Prescaler um divisor de frequncia o seu valor de 1024 Fosc a frequncia de oscilao do temporizador neste caso de 24MHz X Numero de vezes que a interrupo do timer tem de ocorrer para ter o tempo certo, neste caso 100

Faculdade de Engenharia da Universidade do Porto Sistemas Embarcados 2010/2011 7 Persistncia da Viso em 2D

Na figura 3(b) poderemos visualizar fluxograma da rotina de do timer.


INICIO

INICIO

CONT=100?

CONT=0 Obtm hora do rtc Actualiza a estrutura TIME

SEND_DRIVER=TRUE

N INCREMENTA CONT MODE ACLK Actuliza o valor dos ngulos dos ponteiros

INCREMENTA O CONTADOR DO ENCONDER

DCLK Actuliza Janela do Relgio

CONVERTE O NMERO DO CONTADOR PARA UM ANGULO AT 360

FIM

FIM

(a) Interrupo Externa

(b) Interrupo do TIMER 0

Figura 3
4.2.4 Interrupo pela USART A interrupo de recepo da USART utilizada para para receber serialmente os comandos provenientes do computador. A frequncia de tranmisso dos dados apartir do computador conhecida por frequncia de BAUD RATE, o clculo desta frequncia dado pela a seguine equao:

No nosso caso , foi utilizado um factor=77 e uma fosc =24MHz o que resultou numa frequncia de BAUD RATE de 19200bits/s. Na figura 4, podemos visualizar a o fluxograma da rotina desta interrupo

Faculdade de Engenharia da Universidade do Porto Sistemas Embarcados 2010/2011 8 Persistncia da Viso em 2D


INICIO
BYTE RECEBIDO DA USART CMD=SCLK Edtia hora no RTC Actualizar estrutura hora

N
Remove um caracter da USART CMD=GCLK

Obtm a hora do RTC

ENVIAR MENSAGEM USART: propeller>> HH:MM:SS

N
CMD=MODE

MODE=-1

ENVIAR MENSAGEM USART: propeller>> Invalid mode ENVIAR MENSAGEM USART: propeller>> set mode

N FIM
CMD=NCLR OU CMD=PCLR

LER RGB DA PORTA SERIE

RGB VLIDO?

ENVIAR MENSAGEM USART: propeller>> Error Color Format ENVIAR MENSAGEM USART: propeller>> Color Set

N
CMD=HELP

S S
ENVIAR MENSAGENS DE AJUDA

N
CMD=SPIC

L valor da Porta srie e Actualiza o indice da imagem com esse valor

N
ENVIAR MENSAGEM USART: propeller>> CMD=INVALID

ENVIAR MENSAGEM USART: propeller>>Invalid command ENVIAR MENSAGEM USART: propeller>>Invalid command

4.2.5 Escalonamento de tarefas. Dado a periodicidade dos eventos, as tarefas tambm foram escalonadas de forma peridica. O escalamento destas tarefas foi feito usando prioridades fixas, de acordo com as suas frequncias conforme mostrada na tabela em baixo: Tarefa Funcionalidade Periodo Dur ~10s Prio. 1

T1: Interrupo Executa em cada interrupo externa feita externa pelo encoder. L a memria e envia dados para os drivers dos leds. T2: Interrupo do Executada em cada interrupo do Timer. 800ms Timer Actualiza as horas atravs da leitura do RTC.

60 s

T2: Envio das cores Sempre a seguir a uma interrupo externa 200s ~120s 3 para os leds Sendo que o motor roda at o mximo de 20 voltas por segundo(periodo igual a 50ms) ento se o motor rodasse a 20 voltas por segundo o encoder tendo 500 tiras ento cada interrupo daria de 100 em 100 microssegundos com durao em media 10s, ou seja para que no houvesse perda de deadline a tarefa teria de ser executada em tempo menor ou igual 100s. Uma outar tarefa a leitura dos dados

Faculdade de Engenharia da Universidade do Porto Sistemas Embarcados 2010/2011 9 Persistncia da Viso em 2D para serem enviados para os leds e o envio das mesmas. Esta tem de ser executada em cerca de 90s. A frequncia do clock de 24MHz o que nos da no mximo uma frequncia do SPI de 12MHz. Para enviar os dados para os leds tem de enviar no total 1152 bits, sendo 288 para cada driver, com a frequncia de SPI a 12MHz este demora 96 s que 106.7% do do perodo das interrupo, juntando com o tempo de processamento para os clculos das coordenadas ultrapassa o tempo que tem disponvel, o que faz com que algumas tarefas perdem os seus dealines. A esta velocidade ficaria um pouco difcil de mostrar as imagens. A soluo foi baixar a velocidade do motor para cerca de metade. Sendo assim mesmo que algumas tarefas que iam perder os seus deadlines eram descartadas, pois o encoder tendo um enorme valor de tiras no causaria danos na qualidade da imagem.Uma outra tarefa a interrupo do timer, este uma tarefa que demora em media 60s e tem um perodo de 800ms, sendo uma tarefa que tem um perodo muito elevado no causa muitos problemas na apresentao da imagem. Escalonamento com 20 voltas por segundo. Com o escalonamento feito para 20 voltas por segundo a tarefa de menor prioridade perde o seu deadline(C=120s T=100 D=T) todas as vezes o que causa uma distoro na apresentao da imagem. Sendo a interrupo externa de maior prioridade ela interrompe sempre o envio dos dados para os leds.

Perda de deadline

Perda de deadline

+ 100us 200us

Escalonamento para 10 voltas por segundo J com 10 voltas por segundo possvel fazer o escalonamento. A tarefa da interrupo do timer no foi considerada porque a interferncia que ela causa desprezvel.
-

+ 200us 400us

Envio dos dados para os leds Interrupo do encoder

Faculdade de Engenharia da Universidade do Porto Sistemas Embarcados 2010/2011 10 Persistncia da Viso em 2D

5. Concluso
Tarefas realizadas. Este projecto foi realizado seguindo diversas etapas. As tarefas realizadas foram: Definio das funcionalidades do Sistema Especificao do Software Especificao do suporte do sistema fsico Escolha dos componentes Desenho da Placa de Circuito Impresso (PCB) Montagem dos componentes Testes elctricos e funcionais do Sistema Fsico Montagem do Sistema Fsico Final (Placa+ Motor) Desenvolvimento do Software em mdulos Teste dos mdulos de software Integrao dos Mdulos

Resultados Finais
Parte do Sistema 1. Sistema fsico Resultados conseguidos Garantiu-se a funcionalidade de todos os componentes. Foi possvel integrar todas as partes do sistema. Mesmo aquela que mostra-se mais difceis de se integrarem, nomeadamente o encoder, o encapsulamento do PCB no veio do motor, alimentao, etc. Foi desenvolvido um modulo que faz interface com o utilizador (protocolo RS-232) que lhe permite acertar as horas e datas e mudar de modo de funcionamento do sistema Conseguiu-se exibir qualquer com Resoluo 65x65 pixis. Conseguiu-se apresentar as horas de forma semelhante a um Relgio Digital a partir das leituras que faz do Real-Time Clock. Justificao/Obs

2.

Interface com Utilizador

3.

Exibio Imagem Relgio Digital

de

4.

5.

Relgio Analgico

Conseguiu-se apresentar as horas de forma semelhante a um relgio de ponteiros. O relgio desenvolvido apresenta dgitos nas posies de 12, 3, 6 e 9 horas. Os ponteiros

Testou-se este modulo sem e com encoder. Neste ultimo caso a imagem com estabilizao quase completa. Embora conseguiu-se mostrar as horas de forma funcional, verificou-se alguma interferncia na imagem exibida. Isto dever-se interferncia entre a tarefa que actualiza as horas (Interrupo timer) e interrupo do encoder Verificou-se a mesma interferncia mencionada anteriormente.

Faculdade de Engenharia da Universidade do Porto Sistemas Embarcados 2010/2011 11 Persistncia da Viso em 2D


so actualizados em tempo real, sob uma imagem de fundo fixa. 6. Sistema Final O conseguiu-se integrar todos os citados anteriormente sendo que a mudana de modulo feita atravs da porta srie. A parte menos conseguida neste projecto foi a estabilizao das imagens dada a diferena de tempo entre as interrupes

You might also like