Introduzione alla programmazione in Java del robot Lego NXT

Document Sample
scope of work template
							 Introduzione alla
 programmazione
      in Java
del robot Lego NXT

  Genova, 12 –13 Novembre
Che cosa è Java

 Linguaggio di programmazione

 Linguaggio precompilato - la virtual machine

 Il firmware dell'NXT




                   Genova, 12 –13 Novembre
Java su NXT = LeJOS

 http://lejos.sourceforge.net

 Tutorial, forum e area download

 Tutto Open-Source, per Linux e Windows




                   Genova, 12 –13 Novembre
Predisporre l'NXT alla
programmazione JAVA
 Tutorial (in inglese) su:
 http://www.bartneck.de/2008/03/04/java-lego-nxt-eclipse-
 tutorial/

 Download e aggiornamento del firmware

 Dopo aver aggiornato il firmware il robot è pronto




                   Genova, 12 –13 Novembre
Ambiente di sviluppo su PC

 Fare tutto a mano

 Ambiente di sviluppo: Eclipse
  Download e installazione di Eclipse (per Linux e Windows)
  su http://www.eclipse.org




                     Genova, 12 –13 Novembre
Eclipse

  Creazione del progetto su Eclipse

   Tutorial su http://www.bartneck.de/2008/03/04/java-lego-
   nxt-eclipse-tutorial/

  Scrivere il programma in Java

  Caricare il programma sul robot




                  Genova, 12 –13 Novembre
Java: concetti base
 Tutorial sul sito di LeJOS
 http://lejos.sourceforge.net/nxt/nxj/tutorial/index.htm

 Differenze tra la programmazione con il software Lego e
 la programmazione in Java

 Java è un linguaggio moderno e flessibile

 Possibilità di programmare il robot più a basso livello

 Sono disponibili quasi tutti i metodi delle classi standard
 java.lang, java.util and java.io


                   Genova, 12 –13 Novembre
Le classi

  C'è una classe per gestire ogni componente del robot:
   Motori
   Display LCD
   Altoparlante
   Pulsanti
   Microfono
   Sensore ultrasuoni
   Sensore luminosità
   Sistema centrale




                    Genova, 12 –13 Novembre
Java: programmazione avanzata

 Programmazione a oggetti

 La classe è l'elemento centrale della programmazione a oggetti

 Programmazione concorrente (Thread)

 Comunicazioni: "PC <-> NXT" e "NXT <-> NXT"

 Funzioni di utilità: Timer




                     Genova, 12 –13 Novembre
Hardware
  Possibilità di autocostruirsi i sensori
   Sensori semplici con convertitore analogico/digitale (classe
   SensorPort)
     Pulsante
     Luminosità
     Suono

   Sensori complessi con comunicazione su bus I2C (classe
   I2CSensor)
     Ultrasuoni




                    Genova, 12 –13 Novembre
Behaviour

 Tipo di programmazione molto usata in ambito robotico

 Behaviour = Comportamento, ovvero azione intrapresa al
 verificarsi di una determinata condizione

 Arbitrator: gestisce i Behaviour




                    Genova, 12 –13 Novembre

						
Related docs