sexta-feira, 30 de agosto de 2013

Robocode - batalha de robôs

Hoje na  minha ITP 295(Java para robôs), o professor Edward Delean nos apresentou o Robocode. Robocode é um jogo de programação, onde o objetivo é construir robôs, modelo tanque de guerra, para lutar contra outros. Quando você instala, já vem alguns robôs de exemplo. Estamos utilizando a versão para programar em Java.

Para instalar basta entrar em http://robocode.sourceforge.net/download. Para o jogo rodar você precisa ter Java SE instalado: http://www.oracle.com/technetwork/java/javase/downloads/index.html.

A instalação é simples. É só seguir as instruções do próprio instalador.


Quando instalado, a primeira tela será essa:


Então você pode ir no menu Battle/New e terá a seguinte tela:


Nessa tela você terá um lista de pacotes(packages) e robôs(robots) daquele pacote selecionado .Então você adiciona os robôs que quiser na batalha, e clica no botão Start Battle. Quando você criar seus robôs e pacotes, eles serão listados nessa tela.

Aqui uma imagem da batalha:



Também temos o menu Robot/Editor. Isso irá abrir outra janela. Então na nova janela você seleciona o menu File/New/Robot. Isso irá criar uma classe com o nome que você definiu, e dentro do pacote que você criou. Essa classe por definição irá herdar da classe Robot. Sua classe virá com comandos pré-definidos, então você altera o comportamento do seu robô ao seu critério e lógica. Você sempre deve compilar sua classe para que o robô esteja disponível na listagem, ou para atualizar as modificações.

Meu robô se chama Robotec, e está no pacote fatec.robots. Veja imagem abaixo:


Abaixo segue todo o código que vem por padrão:

package fatec.robots;
import robocode.*;
//import java.awt.Color;

// API help : http://robocode.sourceforge.net/docs/robocode/robocode/Robot.html

/**
 * Robotec - a robot by (your name here)
 */
public class Robotec extends Robot
{
/**
* run: Robotec's default behavior
*/
public void run() {
// Initialization of the robot should be put here

// After trying out your robot, try uncommenting the import at the top,
// and the next line:

// setColors(Color.red,Color.blue,Color.green); // body,gun,radar

// Robot main loop
while(true) {
// Replace the next 4 lines with any behavior you would like
ahead(100);
turnGunRight(360);
back(100);
turnGunRight(360);
}
}

/**
* onScannedRobot: What to do when you see another robot
*/
public void onScannedRobot(ScannedRobotEvent e) {
// Replace the next line with any behavior you would like
fire(1);
}

/**
* onHitByBullet: What to do when you're hit by a bullet
*/
public void onHitByBullet(HitByBulletEvent e) {
// Replace the next line with any behavior you would like
back(10);
}
/**
* onHitWall: What to do when you hit a wall
*/
public void onHitWall(HitWallEvent e) {
// Replace the next line with any behavior you would like
back(20);
}
}


Você pode achar todas as classes, métodos, implementações no seguinte link: http://robocode.sourceforge.net/docs/robocode/

Espero que tenham gostado! Eu ainda não estou muito familiarizado com Robocodes, mas o pouco que utilizei achei bem interessante. Logo mais escrevo mais sobre isso!








terça-feira, 27 de agosto de 2013

Laboratório de Informática

Estou tendo aulas programação na NOVA (campus Alexandria). Eles possuem uma estrutura bacana de máquinas. São máquinas da Apple, com dois sistemas operacionais: o sistema da Apple, e o Windows da Microsoft. Segue algumas fotos:



Material de robótica

Meu amigo Verinaldo Dantas, bolsista CsF, que mora aqui comigo, tem um interesse muito grande por robótica. Ele está montando um arsenal de robôs, e estou em parceria com ele para desenvolver funções para os mesmos, usando ferramentas como Lego MINDSTORMS. Também foi adquirido um sensor Leap Motion, confira nos vídeos abaixo.

Esse tipo de material por aqui tem um preço muito mais acessível que no Brasil. Isso é um dos facilitadores aqui para a gente.

E para ficar melhor, começei a ter aulas de Java para robôs na faculdade. Esse será o tema do meu próximo post. Confiram os vídeos abaixo:







segunda-feira, 26 de agosto de 2013

Visita ao laboratório da Dra. Nathalia Peixoto - GMU

Fizemos uma visita técnica no laboratório de Engenharia Neural da Dra Nathalia Peixoto. O laboratório é localizado na George Mason University (GMU), instiuição que a Dra Nathalia leciona. Embora sermos estudantes da Northern Virginia Community College (NOVA), meu grupo encontrou ela por acaso no metro, desde então estamos mantendo certo contato.

Segue um vídeo da visita. O dispositivo capta a frequência muscular, e através de um auto-falante reproduz o som do mesmo.



Agora algumas fotos: