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...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
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)