Testando a placa PICASO uVGA-II da 4D-Systems com Arduino

Neste tutorial, vamos falar sobre a placa PICASO uVGA-II da 4D-Systems e como utilizá-lo com Arduino. Esta placa é uma placa de vídeo dedicado que gera saída em VGA junto com um microcontrolador. Aqui o microcontrolador utilizado será o Arduino.

Esta placa pode ser utilizada sozinha, já que tem um microcontrolador que pode ser programado para gerar sozinho (stand-alone) as imagens ou pode ser utilizado com outro microcontrolador para comandar as gerações de imagens (slave mode). De fábrica ele vem no modo slave, mas por meio de programação pode alterá-lo para ser stand-alone.

A placa Picaso pode suportar resoluções de 320x240 (QVGA), 640x480 (VGA) e 800x480 (WVGA). Uma alimentação de 4V a 5.5V. Contém um adaptador MicroSD para armazenamento multimídia e para armazenamento de dados.

Para maiores informações, clique aqui. Aqui no LdG, implementamos no modo slave com arduino. Para utilizá-lo com arduino, fizemos a seguinte ligação:

A escrita em cima dos fios, refere-se aos pinos da placa Picaso. Conectando o RX da placa Picaso no TX do Arduino, o TX da placa Picaso no RX do Arduino.Como é apenas um teste utilizamos o RX e TX do próprio arduino e fizemos com que este mandasse comandos pela Serial.

Abrindo a IDE do Arduino, passamos a seguinte programação:

int zero=0;
void setup()
{
Serial.begin(9600);
delay(500);
pinMode(13, OUTPUT);
}

void loop()
{
digitalWrite(13, LOW);

{
Serial.write(85); //Escolher baudrate automaticamente
if(Serial.read()==6)
{
delay(100);
Serial.write(89); //Comando para controle da tela
delay(100);
Serial.write(12); //Mudar resolução
Serial.write(1); //Resolução 640x480
delay(100);
Serial.write(69); //Limpa a tela
delay(100);
Serial.write(112); //Comando para mudar preenchimento
Serial.write(zero); //(1)-Sem preenchimento (0)-Com preenchimento
delay(100);
Serial.write(114); //Desenhar um retangulo: Corpo do robo
delay(100);
Serial.write(zero);
Serial.write(64);
Serial.write(zero);
Serial.write(96);
Serial.write(zero);
Serial.write(192);
Serial.write(zero);
Serial.write(192);
Serial.write(127);
Serial.write(255);
delay(100);
Serial.write(114); //Retangulo (switch e wlan)
delay(100);
Serial.write(zero);
Serial.write(96);
Serial.write(zero);
Serial.write(64);
Serial.write(zero);
Serial.write(160);
Serial.write(zero);
Serial.write(32);
Serial.write(255);
Serial.write(127);
delay(100);
Serial.write(114);
delay(100);
Serial.write(zero);
Serial.write(96);
Serial.write(zero);
Serial.write(96);
Serial.write(zero);
Serial.write(160);
Serial.write(zero);
Serial.write(32);
Serial.write(64);
Serial.write(255);
delay(100);
Serial.write(114); // Camera
delay(100);
Serial.write(zero);
Serial.write(124);
Serial.write(zero);
Serial.write(96);
Serial.write(zero);
Serial.write(131);
Serial.write(zero);
Serial.write(20);
Serial.write(255);
Serial.write(64);
delay(100);
Serial.write(114);
delay(100);
Serial.write(zero);
Serial.write(114);
Serial.write(zero);
Serial.write(20);
Serial.write(zero);
Serial.write(140);
Serial.write(zero);
Serial.write(zero);
Serial.write(zero);
Serial.write(255);
delay(100);
Serial.write(67); //Circulo da Camera
delay(100);
Serial.write(zero);
Serial.write(127);
Serial.write(zero);
Serial.write(10);
Serial.write(zero);
Serial.write(5);
Serial.write(255);
Serial.write(192);
delay(100);
Serial.write(114); // Rodas
delay(100);
Serial.write(zero);
Serial.write(32);
Serial.write(zero);
Serial.write(224);
Serial.write(zero);
Serial.write(64);
Serial.write(zero);
Serial.write(127);
Serial.write(127);
Serial.write(192);
delay(100);
Serial.write(114);
delay(100);
Serial.write(zero);
Serial.write(224);
Serial.write(zero);
Serial.write(224);
Serial.write(zero);
Serial.write(192);
Serial.write(zero);
Serial.write(127);
Serial.write(192);
Serial.write(zero);
delay(100);
Serial.write(83);
delay(100);
Serial.write(zero);
Serial.write(70);
Serial.write(zero);
Serial.write(200);
Serial.write(2);
Serial.write(250);
Serial.write(zero);
Serial.write(5);
Serial.write(3);
Serial.write("LdG");
Serial.write(zero);

while(1){
digitalWrite(13, LOW);
delay(200);

digitalWrite(13, HIGH);

delay(200);
}
}
}

delay(1000);
digitalWrite(13,HIGH);
delay(1000);
}

Conectando o Arduino no PC, selecione a versão da sua placa Arduino (UNO, Duemilanove, etc) e depois selecione a porta o qual a placa Arduino está conectada (COMx, ttyUSBx, ttyACMx, etc) e faça o UPLOAD.

Agora conecte um monitor VGA na placa Picaso e você verá o nosso mascote-robô na tela do monitor como mostra as figuras abaixo:

E é isso pessoal!! Esperamos que tenham gostado! Caso tenham dúvidas, postem aqui mesmo no blog. Caso tenham sugestões de tutoriais, postem aqui. Para ver nossos outros tutoriais e projetos abertos desenvolvidos pelo LdG e outros garagistas, cliquem aqui e aqui, respectivamente. Até a próxima!

Referências:

http://www.labdegaragem.org/loja/index.php/placa-picaso-uvga-ii-da-...

http://www.labdegaragem.com.br/wiki/index.php?title=Placa_PICASO_uV...

http://www.sparkfun.com/products/10329

http://www.4dsystems.com.au/prod.php?id=131

Exibições: 2117

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço