Social Icons

Mostrando postagens com marcador PS2. Mostrar todas as postagens
Mostrando postagens com marcador PS2. Mostrar todas as postagens

6.2.1) Arduino + Mouse PS2 + Servo Simples [Parte 2 e 3]


Parte 2 e 3 do meu projeto com arduino e um mouse ps2.
Na primeira tentativa, testei com o mouse sem ter uma interface com o computador, direto com o arduino.
Então comecei a pesquisar no site oficial do Arduino, por uma interface entre o mouse, o computador e o arduino. Descobri uma maneira de interligar tudo isso, a partir de um tal de Processing.
Processing, não sei dizer ao certo sua denominação, porém ele pode fazer a comunicação do computador com uma placa arduino, pois ele consegue acessar e usar a porta paralela do pc para mandar informações e para receber, testei e logo posto aqui um potenciômetro que regula uma cor na tela do PC que seria o de mandar informações do arduino pro PC. Do mesmo jeito que o SerialMonitor do sketch do arduino faz, mas com uma sofisticação maior.
Inicialização muito parecida com a do arduino.
Para fazer esta comunicação (interface), você deve fazer o download da biblioteca processing em, biblioteca processing.
Ele roda tanto no Linux quanto no Windows e MacOS, usei ja no Windows e no Ubuntu funcionou perfeito.
Depois de ter feito o download, siga os seguintes passos:
  • Descompacte a biblioteca e copie a pasta “arduino” dentro da sub-pasta “bibliotecas” do seu sketchbook do seu processing. (Você pode achar o diretório de seu sketchbook abrindo as preferências do processing. Se você não tiver uma sub-pasta “biblioteca” em seu sketchbook, crie uma!)
  • Rode o arduino, abra Exemplos > StandardFirmata sketch, e faça o upload para a placa.
  • Configure o processing com o serial em: http://processing.org/reference/libraries/serial/
  • Dentro do processing, abra um dos exemplos que vem junto da biblioteca arduino.
  • Edite o exemplo para acertar a porta serial.
  • Rode o exemplo.
Pronto esta configurado!

Como já sabemos um pouco sobre cada módulo e o necessário para iniciarmos nossa experiência com estes componentes, vamos ao que interessa!

Primeiramente devemos escrever o código no Arduino (está comentado linha a linha):
 

#include<servo.h> //inicializa biblioteca servo

Servo servo1; Servo servo2; cria o objeto servo 1 e 2

void setup() {
pinMode(1,OUTPUT);
servo1.attach(14); //pino analógico 0
servo2.attach(15); //pino analógico 1
Serial.begin(19200); //inicia comunicação serial
Serial.println("Preparado"); //imprime na tela do computador
}
void loop() { // o void loop ainda está um pouco
// complicado para eu poder explicar.
static int v = 0;
if ( Serial.available()) {
char ch = Serial.read();
switch(ch) {
case '0'...'9':
v = v * 10 + ch - '0';
break;
case 's':
servo1.write(v);
v = 0;
break;
case 'w':
servo2.write(v);
v = 0;
break;
case 'd':
servo2.detach();
break;
case 'a':
servo2.attach(15);
break;
}
}
}

Assim sendo, grave o sketch no arduino e partiremos para a próxima etapa, o processing.

Depois de instalado o processing (post anterior) e já ter feito o upload do sketch para o arduino, compile este programa dentro do processing:

import processing.serial.*;
int gx = 15; //declaração das variáveis de processo
int gy = 35;
int spos=90; //esta é a variável que controla o servo 1 ou 2
//repare que ela já recebe o num. 90, o que indica
//que o servo irá inicializar em 90°!
float leftColor = 0.0;
float rightColor = 0.0;
Serial port;
void setup()
{
size(720, 720);
colorMode(RGB, 1.0);
noStroke();
rectMode(CENTER);
frameRate(100);
println(Serial.list()); // List COM-ports
port = new Serial(this, Serial.list()[2], 115200);
//esta linha é muito importante para a comunicação serial
//em Serail.list()[2] troque o 2 pelo número do indice da porta "COM"
//que esta se comunicando com o arduino. Em 115200 é a velocidade
//que ela se comunica, você também deve trocar este valor se diferir da
//velocidade da sua.
}
void draw()
{
background(0.0);
update(mouseX);
update(mouseY);
fill(mouseX/4);
fill(mouseY/4);
rect(150, 320, gx*2, gx*2);
fill(180 - (mouseX/4));
rect(450, 320, gy*2, gy*2);
fill(180 - (mouseY/4));
}
void update(int x)
{
//Calculata a posição do servo por mouseX e mouseY
spos= x/4; spos=y/4;
//Atualiza saída do servo 1 ( de 0 a 180)
port.write("s"+spos);
//Atualiza saída do servo 2 ( de 0 a 180)
port.write("w"+spos);
// Just some graphics
leftColor = -0.002 * x/2 + 0.06;
rightColor = 0.002 * x/2 + 0.06;
gx = x/2;
gy = 100-y/2;
}



6.2) Arduino + Mouse PS2 + Servo Simples [Parte 1]

A primeira parte do projeto para vocês entenderem, o que eu demorei muito tempo, é a comunicação que o mouse faz com (no caso) o computador.
  • O periférico mouse, utiliza do protocolo PS2 para comunicação. O que significa que é uma comunicação bidirecional, com uma frequência na casa de KHz. E é muito simples! Possui 4 fios para conexão: GND, VCC, DATA e CLOCK.
  • Possui 2 acumuladores absolutos, um para o eixo X e o outro para o eixo Y. O que eles tem que fazer? Conforme movimentamos o mouse, para direita e esquerda, cima e baixo, vai se acumulando valores nestes acumuladores (que na mais são que variáveis contadoras) e assim o computador processa o valor do acumulador, setando o mouse na tela (posição).

Sendo assim, esses acumuladores possuem um range de valores de -255 à 255, e será esta informação que usaremos para controlar o servo. Imaginem só, x: -255 que seria a menor posição do acumulador x na tela do PC! E aonde ele se encontra? No último pixel a direita ou a esquerda do vídeo (depende do processamento da informação). O mesmo vale para o acumulador Y, porém ele estará acumulado (setado) no alto ou abaixo do vídeo.

Pense agora em um servo! ele pode estar em 0° ou 180°, dependendo do sinal injetado. Agora relacionamos esses dados, com os do mouse: 0° = x = -255 , 90° = x = 0 , 180° = x = 255 e assim por diante. Conseguimos então, de acordo com a posição do mouse estabelecer o angulo em que o servo deve se encontrar!

Bacana não!? Tem mais!

O mouse convencional ainda possui 3 botões: direita, esquerda e scroll! Os quais podem também ser utilizados na programação!!

Pinagem PS2:


1 - Dados
2 - Não conectado

3 - GND

4 - Vcc (+5V)
5 - Clock
6 - Não Conectado

disponível em arduino.cc

Circuito:

  • Conecte o pino Dados (data) no pino digital 5.
  • Conecte o pino Ground em qualquer GND do arduino.
  • Conecte o pino Clock no pino digital 6.
  • Conecte o pino Vcc (5V) no pino +5V na placa do arduino.

A biblioteca PS2, que serve para "interfacear" mouse e teclado conforme protocolo ps2, esta disponivel em biblioteca.ps2, no site arduino.cc.

Bom, antes de usarmos o arduino como host do mouse, e assim controlar o servo, iremos fazer o processamento do sinal do mouse para o arduino via serial (USB) e pelo computador. Utilizaremos o processing, para isto!

Mas agora essa parte fica para outro dia, pois já é fim de ano, e os exames na faculdade estão chegando! Ficar de DP, jamais!

Deixo aqui um vídeo para vocês compreenderem o projeto:





Limpe seu certamente Velho PS2 (Old)


Seu PS2 Esta certamente "velho", no sentido de sujo se você nunca limpou ele, isso pode e vai prejudicar o hardware por aquecimento diminuindo vida útil e aceleração do hardware fazendo também com que tranque muitos jogos.
Ai vai um Completíssimo tutorial

Material:
- Chave Philips média.
- Chave Philips pequena.
- Pincel
- Cotonete ou algodão
- Toalha (ou lençol, camiseta.....)

Opcional:
- Lupa e lanterna

Imagem

Abrindo:

- Pessoal, leiam todo esse tutorial antes de começar a abrir seu PS2, pois existem cuidados a serem tomados para cada modelo.

- Você pode ter achado estranho ter mencionado uma "toalha" junto com o material, mais isso é para evitar riscos no nosso querido amigo.

- Se sua casa tiver carpete, cuidado com a eletricidade estática, procure um outro lugar com cerâmica, e antes de mexer nele encoste suas mãos em algum local metálico afins de retirar sua estática.

- Forre o local onde irá ser executado o serviço.

- Se o seu PLAY tem HD, é hora de retirá-lo.

Imagem

- Coloque seu PS2 de cabeça para baixo e retire as borrachas (pezinhos) e os acabamentos de plástico que cobrem os parafusos, são 8 parafusos no total.

Imagem

- Retire os parafusos com a chave Philips média, e guarde os parafusos de modo que eles sejam colocados no mesmo lugar de onde foram retirados para diminuir o risco de espanar, afinal é plástico.

-Nos modelos 39001 e seus antecessores (39001, 30001...) , existe uma fita que liga os botões dianteiros à placa principal, e deve-se ter muito cuidado com ela.

-Ao abrir seu PS2, levante a tampa com cuidado de deixe-a ao lado como na foto:

Imagem

Imagem

Imagem

- Já nos modelos 50000 em diante, não temos mais essa fita, os botões ficam fixos na parte de baixo junto com a placa principal, ficando a tampa livre:

- Olhem a diferença entre os modelos, primeiro o 39001 e depois o 5000x.

Imagem

Imagem

- Novamente os dois modelos o da frente é o 39001.

Imagem

- Procure limpar a parte de fora primeiro, deixando por ultimo o local onde fica o leitor.

- Com o pincel vamos a faxina !

Imagem

- Para retirar o cooler solte o(s) parafusos

Imagem

- Puxe a entrada de energia para cima

Imagem

Imagem

- Depois o suporte do cooler

Imagem

Imagem

- Muito cuidado com esses fiozinhos

Imagem

- Para soltar o cooler é só puxar para cima como foi com a entrada de energia.

Imagem

Imagem

- Olha o estado disso!!! Pincel neles

Imagem

- Antes do pincel

Imagem

- Depois do pincel

Imagem

- Solte também a entrada dos controles que tem 2 parafusos

Imagem

Imagem

Imagem

- Agora vamos soltar a parte de baixo, segure na abertura do hd com bastante cuidado, e se possível peça ajuda para alguém segurar a entrada do controle e o cooler.

- Depois de soltar, aproveite e vire ele

Imagem

Imagem

Imagem

- Olha que coisa suja, TEM ATÉ TEIA DE ARANHA HAHAHA!!!

Imagem

- Com o PS2 já virado, vamos tirar a fonte, temos que soltar esses parafusos

Imagem

Imagem

- Há sim, no modelo 50000 a fonte é assim, inverso do 39001, mas tem os mesmos parafusos

Imagem

- Pincel geral

Imagem

- Se um dia seu PS2 parar por completo, pode ser esse fusível aqui

Imagem

- Essa parte é solta, só puxar

Imagem

A T E N Ç Ã O

- Este estágio é bem complicado e deve ser evitado se o PS2 não estiver muito sujo, pois é bem complicado, e qualquer descuido pode ter um fim não agradável.

- Solte os parafusos indicados, e não levante seu ps2 neste momento.

Imagem

- Solte também a essa trava do leitor

Imagem

- Agora com cuidado, retire a proteção da placa mãe

Imagem

Imagem

- Eu não recomendo nada por aqui, só mais um pincel bem de leve

Imagem

- Depois monte seu PS2 novamente,e vamos ao leitor

- O modelo 39001 tem 4 parafusos

Imagem

- O 50000 tem 2 parafusos e duas travas

Imagem

- Solte as travas assim

Imagem

Imagem

Imagem

- Pincel na tampa, e dos lados do leitor (nunca diretamente encima dele)

Imagem

Imagem

- Olha o leitor de 300,00 pilas ai

Imagem

- Mais de perto para ver a sujeira

Imagem

- É..... na foto não deu para ver, mais tava sujinho, geral nele com o cotonete, utilize a lupa e a lanterna para ver melhor.

Imagem

OBSERVAÇÕES IMPORTANTES:
- Depois que montar o PS2, verifique se o Cooler está funcionando, porque um amigo depois de montar, não reparou que esse fiozinho estava travando o cooler, e quase perdeu a o PS2 dele..., então cuidado pessoal.

- Nos aparelhos até 39001, cuidar com a fita do reset na montagem, pois ela pode ficar bem encima do buraco onde passa o parafuso para fechar o ps2. Isso pode ser resolvido com o uso de uma fita prendendo ele em cima da tampa do leitor, que alias vem de fábrica com uma fita adesiva ali.

Imagem

- Ai está, 2 PS2 respirando melhor e pronto para mais uns meses de jogatina.

Imagem


Valeu ai pessoal, qualquer duvida postem ai.