Seu Curso

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Gerar imagens na televisão usando o Arduino

Imprimir
Avaliação do Usuário: / 11
PiorMelhor 

 

 

Se você é geek (nerd) de verdade e adora videogames aposto que já ficou olhando para o aparelhinho e imaginando como seria criar seu próprio jogo ou até mesmo seu próprio vídeo game!

 

Pois é, eu já fiquei imaginando e planejamento até que descobri a biblioteca Arduino-tvout que pode ser baixada em http://code.google.com/p/arduino-tvout/downloads/detail?name=TVoutBeta1.zip&can=2&q= e também há uma cópia em http://www.seucurso.com.br/downloads/TVoutBeta1.zip

 

O hardware é muito simples e vamos nos preocupar primeiro com ele. Você precisará de:

 

01 cabo com pelo menos duas vias:

 

 

01 conector RCA:

 

 

 

01 resistor de 1k ohm (marro-preto-vermelho) e 01 de 470 ohm (amarelo-violeta-marrom):

 

 

Claro, também de um Arduino.

 

Em uma das vias do cabo solde os dois resistores que será depois conectado ao Arduino:

 

 

 

Solde a via onde foram soldados os resistores ao pino central do conector RCA e escolha outra via para ser soldada no pino externo:

 

 

Ligue o resistor de 470 ohm ao pino digital 7, o resistor de 1k ohm ao pino digital 9 e a via do cabo soldada ao pino externo do conector RCA ao GND do Arduino:

 

 

Agora vamos ao software. Criei um pequeno exemplo que usam praticamente todas as funções da biblioteca como linha, círculo e etc. você pode encontrar muito mais na página do projeto no mesmo link que foi colocado acima para fazer o download da biblioteca.

 

Para podermos importar a biblioteca descompacte o arquivo baixado e copie a pasta TVout para pasta libraries do seu ambiente de programação Arduino:

 

 

 

Abra seu ambiente de programação Arduino e antes de começarmos o exemplo importe a biblioteca TVout clicando no menu Sketch, selecione a opção Import Library... e clique sobre TVout:

 

 

 

Você terá as duas linhas abaixo adicionadas automaticamente:

 

 
#include
#include
 

 

Eis o código completo:

 

 
#include
#include
 
 
TVout TV;
 
void setup()  {
 pinMode(13,OUTPUT);
 digitalWrite(13,LOW);
 TV.begin(NTSC,72,56);
 delay(1000);
 TV.draw_rect(0,0,71,55,WHITE,BLACK);
 TV.draw_line(0,0,10,10,WHITE);
 TV.draw_circle(36,28,10,WHITE);
 TV.set_pixel(36,28,WHITE);
 delay(15000);
}
 
void loop() {
 TV.shift(1,UP);
 delay(1000);
}

 

 

 

 

Como você pode ver, não espere grande resolução!

 

Com:

 

TV.begin(NTSC,72,56);

 

Inicializamos a função de vídeo no formato NTSC, também há o formato PAL. Os valores seguintes são a resolução horizontal e vertical.

 

Você pode ainda verificar o valor retornado pela função begin:

 

0 – inicialização normal

1 – resolução horizontal não é múltiplo de 8

2 – resolução vertical não é múltiplo de 8

4 – não há memória suficiente

 

TV.draw_rect(0,0,71,55,WHITE,BLACK);

 

Desenha um retângulo com início nas coordenadas 0,0 e final nas coordenadas 71,55

 

As cores também não são muito ricas, você tem a opção de:

 

BLACK = 0 = preto

WHITE = 1 = branco

INVERT = 2 = invertido

 

TV.draw_line(0,0,10,10,WHITE);

Desenha uma linha na cor branca com início nas coordenadas 0,0 e final nas coordenadas 10,10

 

TV.draw_circle(36,28,10,WHITE);

Desenha um círculo com centro nas coordenadas 36,28 e raio 10 na cor branca.

 

TV.set_pixel(36,28,WHITE);

Seta um pixel na tela nas coordenadas 36,28 na cor branca.

 

TV.shift(1,UP);

 

Movimenta toda a tela 1 pixel por vez na direção de subida, as direções podem ser:

 

UP = 0 = para cima

DOWN = 1 = para baixo

LEFT = 2 = para a esquerda

RIGHT = 3 = para a direita

 

 

 

Há também funções para escrever na tela, mas tive problemas de sincronismo com a TV ao usá-las, mas não é nada difícil desenhar as letras e números para escrever na tela, pixel-a-pixel.

 

Fazer animações também não é nada difícil, não apenas usando a função shift.

 

Bom, a partir disso é fácil usar a imaginação e um pouco de conhecimento em eletrônica e Arduino para criar seu próprio console. Uma sugestão é espelhar-se no PONG (http://pt.wikipedia.org/wiki/Pong).

 

Comentários  

 
+1 #5 Vou fazer um rpgMatheus Yan 09-06-2015 22:33
Se alguém estiver interessado em ajudar ou compartilhar conhecimentos me envie um email
wattafukbr@gmai l.com
planejo fazer um rpg no estilo the legend of zelda
Citar
 
 
0 #4 Interromper a imagem atualFernando Bryan Frizzarin 07-06-2014 22:31
Esse esquema não serve para isso, você tem que usar um shield para isso.
Citar
 
 
0 #3 Interromper Imagem AtualLeonardo Galetti 06-05-2014 17:48
Olá amgo, primeiro parabens pelo lindo tutorial. MAs eu gostaria de saber se ha como interromper a imagem atual e passar a do arduino? Há como?
Citar
 
 
+1 #2 Obrigado!Fernando Bryan Frizzarin 19-09-2012 08:41
Junior, obrigado por compartilhar! :lol:
Citar
 
 
+8 #1 ARDUINO MEGA 2560Junior Guerreiro 18-09-2012 20:05
Pra quem usa Mega 1280 ou 2560.
A pinagem é esta.
Demorei pra descobrir, estou divulgando pra galera

https://docs.google.com/open?id=0B1hBjvC1Ze8YNDdWUVlVSkx1WVU
Citar
 

Adicionar comentário


Código de segurança
Atualizar

You are here: