Robot Lego programado em Java
-
Upload
joao-alves -
Category
Technology
-
view
2.512 -
download
2
Transcript of Robot Lego programado em Java
Robot Lego programado em Java
Projecto da Cadeira IDSCA/MOSS 2010/2011
Joo Alves
Agenda
Introduo
Mindstorm NXT
LeJOS
O Robot
Aplicao Desktop
Programao do NXT
O Robot na prtica
Bibliografia
Introduo
O projecto proposto visou aplicar os conhecimentos apreendidos nas aulas sobre a linguagem de programao Java, ultrapassando todas as limitaes da programao embebida num dispositivo com poucos recursos de hardware
Mindstorm NXT
O Lego Mindstorms NXT um KIT Robot programvel lanado pela Lego no final de Julho de 2006.
Mindstorm NXT (II)
Caracteristicas:micro-controlador ARM7 de 32-bit a 48 Mhz256 KBytes FLASH
64 KBytes RAM
micro-controlador Atmel AVR de 8-bit a 8 MHz4 KBytes FLASH
512 Bytes RAM
Comunicao Wireless Bluetooth (BT Class II V2.0)
Porta USB full-speed (12 Mbit/s)
4 Portas de entrada com cabos de 6 fios
3 Portas de sada com cabos de 6 fios
Display grfico LCD de 100x64 pixel
Coluna 8 kHz de qualidade
Fonte de energia: 6 pilhas AA ou Bateria
leJOS
O leJOS uma pequena JVM - Java Virtual Machine Open Source para o NXT. Destaca-se por oferecer as seguintes funcionalidades:Possibilidade de utilizao da linguagem Java;
Thread em modo Preemptivo;
vectores, incluindo multi-dimensionais;
Recursividade;
Sincronizao;
Excepes;
Tipos bsicos de Java incluindo o float, long e String;
A maior parte das bibliotecas de classes java.lang, java.util e java.io.
LeJOS (II)
Trata-se de um ambiente de programao para o Lego NXT. Consiste em:Firmware alternativo que inclui uma JVM;
Uma biblioteca de classes que implementa a API do leJOS NXJ;
Um linker especial que traduz as Java Classes para o formato binrio aceite pelo NXT;
Ferramentas para instalar o Firmware, enviar aplicaes, fazer debugging e outras funcionalidades de controlo do Brick;
Uma API para o PC para escrever programas que conseguem comunicar com o leJOS NXJ usando Streams de Java em cima de Bluetooth ou USB ou usando o protocolo LCP (Lego Communications Protocol).
O site oficial do software: http://lejos.sourceforge.net/nxj.php
O Robot
Usa:2 Motores
1 Sensor Volumtrico
1 Sensor de Luminosidade
Interface Bluetooth para comunicao
O Robot (II)
A Programao do robot foi toda feita em Java usando o IDE Eclipse.
Foi implementado no robot 4 componentes principais:Um Menu para controlar os parmetros do robot;
Execuo de comandos para o robot (predefinidos 4 tipos);
Persistncia dos parmetros;
Comunicao Bluetooth com o PC.
Aplicao Desktop
Aplicao Desktop (II)
A aplicao Desktop permite estender as funcionalidades do projecto possibilitando tratar e visualizar de forma grfica os dados trocados entre o Brick NXT e o PC. Ao tratar a informao que enviada pelo Brick no PC, torna-se possvel apresentar a mesma de uma forma muito mais atractiva e recorrendo a bibliotecas que no existem ou no fazem sentido no Brick.
Na execuo desta aplicao foram usadas as seguintes funcionalidades:Multi-Threading;
Comunicao cliente/servidor com sockets TCP/IP;
Comunicao Bluetooth;
Suporte de Mltiplos Clientes;
Utilizao da biblioteca grfica SWING.
Programao do NXT
Programao do NXT (II)
public void go() {int b = 0;twowheelrobot.forward();while (! Button.ESCAPE.isPressed()) {distance = getDistanceSensor();updateLCD();if (sensorTouch.isPressed()) {twowheelrobot.stop();b++;if (b > 3)break;}if (distance > minDistance) {twowheelrobot.forward();} else {twowheelrobot.pressHorn();divertRobot();}}twowheelrobot.stop();}
Programao do NXT (III)
private void divertRobot() {twowheelrobot.logMsg("REMARK=DivertingRobot");while (distance < minDistance + MINDISTANCETHRESHOLD &&! Button.ESCAPE.isPressed()) {distance = getDistanceSensor();updateLCD();if (distance < minDistance + MINDISTANCETHRESHOLD) {avoidcol++;int i = randomGenerator.nextInt(50);if (i % 2 == 0)twowheelrobot.backleft();elsetwowheelrobot.backright();twowheelrobot.sleep(i * 10);}}}
O Robot na prtica
Demo
Bibliografia
Juan Antonio Brea Moral, Develop leJOS programs Step by Step , Version 0.6, Abril 2009
Juan Antonio Brea Moral, Multithreading with Java leJOS , Version 0.1, Outubro 2008
Juan Antonio Brea Moral, Bluetooth and leJOS , Version 0.1, Julho 2008
Jason Butka, Installing Lejos on the NXT Mindstorm Using the Eclipse IDE and Introduction to Lejos / Java Programming, Lawrence Technological University , 2008
Zhizhang Shen,A Gentler Introduction to Mindstorm NXT Programming, Dept. of Computer Science and Technology , Plymouth State University , 2009
Jose Solorzano et al , leJOS NXJ: NXJ technology , Disponvel em http://lejos.sourceforge.net/nxj.php
Ferrari, et al, Programming LEGO MINDSTORMSTM with Java, Syngress Publishing , 2002
A.Terstegge , O. Bucker e B. Kuppers, Robotik - Programming of Embedded Systems, University of Applied Sciences , 22-Oct-2010
Kelleher , John, Namee, Brian Mac , Introduction to Programming the Lego NXT Robot with Java, School of Computing, Dublin Institute of Technology
Gerardo Oliveira, Ricardo Silva, Tiago Lira, Luis Paulo Reis , Environment Mapping using the Lego Mindstorms NXT and leJOS NXJ , FEUP LIACC, 2009
Tom Bickford , Simple NXT Robot , Maine Robotics, 2008
Robot Lego programado em Java
Q&A
Joo AlvesE-mail: [email protected]: http://jpralves.net/
Muokkaa otsikon tekstimuotoa napsauttamalla
Muokkaa jsennyksen tekstimuotoa napsauttamallaToinen jsennystasoKolmas jsennystasoNeljs jsennystasoViides jsennystasoKuudes jsennystasoSeitsems jsennystasoKahdeksas jsennystasoYhdekss jsennystaso
Muokkaa otsikon tekstimuotoa napsauttamalla
Muokkaa jsennyksen tekstimuotoa napsauttamallaToinen jsennystasoKolmas jsennystasoNeljs jsennystasoViides jsennystasoKuudes jsennystasoSeitsems jsennystasoKahdeksas jsennystasoYhdekss jsennystaso