segunda-feira, 7 de março de 2011

Super NES - Arduino Gamepad - p.1

Quem já se divertiu com um Super Nintendo levanta a mão: \o
Quem se diverte com um Arduino levanta a mão: o/
Quem quer juntar tudo e usar o Gamepad do SNES com o Arduino continua lendo o post aqui!


O Software

Já existe um projeto para adaptar o controle do NES para o Arduino - chama-se NESpad: https://code.google.com/p/nespad/
Na página,  temos a opção de baixar a versão 1.3, mas ela não vem com o código para o SNES - vamos ter que baixar a versão diretamente do SVN:

svn checkout http://nespad.googlecode.com/svn/trunk/ nespad

Para instalar, basta copiar para a pasta "libraries" da instalação do arduino. Copie os diretórios NESPad e SNESPad, não a pasta nespad criada ao baixar o código (no Debian e no Ubuntu, o diretório é /usr/share/arduino/libraries).

Agora, ao abrir a IDE do Arduino, temos mais 2 opções no menu Sketch, Import Library...: NESPad e SNESPad.



O Hardware

De material, vamos precisar de uns cabos (jump wires), um SNES Pad e o Arduino. Eu recomendo o uso de uma protoboard - perdi algumas horas até perceber que o problema não era no código, mas em um "mal contato"... =/

A ligação entre o gamepad e o arduino segue o mesmo que está no projeto original:
Pode-se seguir as cores (se vc for como eu e já desmountou o gamepad) ou a posição, já que o plug é dividido em 4 e 3 contatos (o GND é o pino do canto arredondado).

No arduino, conecta-se assim:

SNES pin Arduino Pin
STROBE/LATCH Digital 2
CLOCK Digital 3
DATA Digital 4
+5V +5V
GND GND

Testando

Vamos criar um código só pra ver se está tudo OK com a comunicação:

#include <SNESpad.h>

// SNESPad(<pin STROBE>, <pin CLOCK>, <pin DATA>)
SNESpad nintendo = SNESpad(2, 3, 4);

int state = 0;

void setup() {
  Serial.begin(57600);  
}

void loop() {
  // read button state
  state = nintendo.buttons();
  // write binary button state
  Serial.println(state, BIN);

  delay(50);
}

Ligue seu arduino, faça upload e abra o Serial Monitor. Ajuste o baud rate (é a última caixa, no Serial Monitor) para 57600. Pressione alguma teclas e observe a saída:


Se apenas algumas teclas funcionarem, verifique os cabos ligados ao gamepad.

No próximo post, pretendo mostrar como ligar um segundo gamepad, usar constantes da LIB para ligar leds ou um código pra usar o arduino com o snes-9x. Até a próxima!

quinta-feira, 17 de fevereiro de 2011

Carrinho com sensor de infravermelho {Parte 1}

Em meu primeiro post de projeto, venho demonstrar o passo a passo de como fiz um carrinho que desvia de obstáculos, utilizando a carcaça de um carrinho velho ^^

Fotos:

Navigation Shield

Arduino Duemilanove

Dois servo motores de rotação continua (360°)

 Carroceria + arduino + navigation shield + servos

 Rodas traseiras

 Parte de baixo


Fim da primeira parte.
Até a próxima.

quinta-feira, 27 de janeiro de 2011

GeniusDuino: jogo de memória com Arduino

O projeto é uma implementação de um jogo de memória Genius, fabricado pela Estrela, um super clássico dos anos 80/90.
A proposta é simples: O jogo apresenta uma combinação crescente de botões que o jogador deve pressionar. A cada acerto uma nova posição é adicionada ao final da combinação existente.

Video:

GeniusDuino from Leandro Nunes on Vimeo.

Código fonte do projeto:
https://github.com/leandron/geniusduino

Galeria de fotos:
http://picasaweb.google.com/lnunix/GeniusDuino


Contribuição de Leandro Nunes.

terça-feira, 18 de janeiro de 2011

Arduino O documentário (2010) Versão em Inglês HD

Arduino The Documentary (2010) English HD from gnd on Vimeo.

Lista de discussão

Para todos aqueles que procuram respostas para suas duvidas sobre Arduino, para quem tem dicas, ou simplesmente quer compartilhar uma ideia ou sugestão, foi criada a nossa lista de discussão basta acessar o link abaixo e se juntar ao grupo.

http://groups.google.com/group/tcheduino

sexta-feira, 7 de janeiro de 2011

O que é arduino?



Arduino, por vezes traduzida ao português como Arduíno, é um computador físico baseado numa simples plataforma de hardware livre, projetada com um microcontrolador de placa única, com suporte de entrada/saída embutido e uma linguagem de programação padrão, na qual tem origem em Wiring, e é essencialmente C/C++.O objetivo do projeto é criar ferramentas que são acessíveis, com baixo custo, flexíveis e fáceis de se usar por artistas e amadores. Principalmente para aqueles que não teriam alcance aos controladores mais sofisticados e de ferramentas mais complicadas.
Pode ser usado para o desenvolvimento de independentes objetos interativos, ou ainda para ser conectado a um computador hospedeiro. Uma típica placa Arduino é composta por um controlador, algumas linhas de E/S digital e analógica, além de uma interface serial ou USB, para interligar-se ao hospedeiro, que é usado para programá-la e interagi-la em tempo real. Ela em si não possui qualquer recurso de rede, porém é comum combinar um ou mais Arduinos deste modo, usando extensões apropriadas chamadas de shield. A interface do hospedeiro é simples, podendo ser escrita em várias linguagens. A mais popular é a Processing, mas outras que podem comunicar-se com a conexão serial são: Max/MSP, Pure Data, SuperCollider, ActionScript e Java.

Fonte: wikipédia