• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Sun SPOT
 

Sun SPOT

on

  • 3,339 views

Presentazione fatta ai Sun Tech Days 2008 a Cagliari

Presentazione fatta ai Sun Tech Days 2008 a Cagliari

Statistics

Views

Total Views
3,339
Views on SlideShare
3,335
Embed Views
4

Actions

Likes
1
Downloads
0
Comments
0

2 Embeds 4

http://www.slideshare.net 3
http://www.health.medicbd.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Sun SPOT Sun SPOT Presentation Transcript

    • Sun SPOT Small Programmable Object Technology L o Stefano Sanna Senior Engineer & Java ME Tech Lead @ beeweeb technologies http://www.gerdavax.it Stefano Sanna, Sun SPOT 1 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Agenda Presentazioni! :-) ● Program the world, the Internet of things! ● Introduzione ai Sun SPOT ● Code & Demo ● Concorso ● Stefano Sanna, Sun SPOT 2 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Speaker Senior Engineer & Java ME Tech Lead ● beeweeb technologies – http://www.beeweeb.com – Autore del libro “Java Micro Edition” ● Hoepli Informatica, novembre 2007 – Supporter @ JUG Sardegna, JMDF, JIA ● Stefano Sanna, Sun SPOT 3 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Programmare il mondo reale Le reti wireless di sensori offrono scenari ● applicativi avvincenti: controllo pervasivo dell'ambiente – intelligenza distribuita massiva – urban smart objects – Oggetti programmabili per il mondo reale ● connessi: the Internet of Things – autonomi: CPU, memoria e codice locali – sensibili all'ambiente: sicuri, robusti, con sensori – Stefano Sanna, Sun SPOT 4 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Sensori: nuova frontiera Essere connessi e programmabili non basta! ● La possibilità di “percepire” l'ambiente circostante ● rappresenta la nuova frontiera dell'interazione Console di gioco, telefoni cellulari, apparati ● veicolari, sistemi embedded: ogni oggetto programmabile deve “sentire” e agire di conseguenza in base alla grandezza fisica percepita... Stefano Sanna, Sun SPOT 5 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • I sensori nel mondo Java ME Java ME è la tecnologia leader per lo sviluppo di ● applicazioni per dispositivi mobili Un ricco insieme di API standard fornisce accesso ● alle funzioni multimediali, grafica 2D e 3D, connettività locale e remota, localizzazione, RFID (NFC)... Il Java Community Process ha pubblicato la Mobile ● Sensor API (JSR 256) per l'accesso a periferiche quali accelerometri, termometri... Stefano Sanna, Sun SPOT 6 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Introduzione ai Sun SPOT Small Programmable Object Technology ● Progetto sviluppato dai ● Laboratori di Ricerca Sun Piattaforma per reti wireless ● di sensori intelligenti Laboratorio “live” per realizzare ● nuovi scenari applicativi: The (Inter)net of Things – “Program the world” – Stefano Sanna, Sun SPOT 7 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Hardware Processor Board ● 180 MHz 32 bit ARM920T core – 512K RAM/4M Flash – 2.4 GHz IEEE 802.15.4 radio – Interfaccia USB – Batteria ricaricabile agli – ioni di litio 3.7V, 720 mAh 32 uA deep sleep mode – Stefano Sanna, Sun SPOT 8 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Hardware Demo Sensor Board ● Accelerometro 2G/6G 3-axis – Sensore di temperatura – Sensore di luminosità – 8 LED tricolori – 6 input analogici, 2 switch – 5 general purpose I/O pin – 4 uscite da 100mA – Stefano Sanna, Sun SPOT 9 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • SPOTs Software Squawk Virtual Machine ● Compatibile J2ME CLDC 1.1 – Java VM con funzionalità – di sistema operativo VM esegue il bytecode – direttamente dalla memoria flash Device driver scritti in Java – Gestione automatica – consumo energetico Stefano Sanna, Sun SPOT 10 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Sun SPOT goes open source! Il codice sorgente sella Squawk Virtual Machine e ● delle librerie dei Sun SPOT è stato recentemente rilasciato sotto licenza open source: https://spots.dev.java.net/ Non solo software! Anche l'hardware è disponibile ● con licenza open. Schemi, PCB, diagrammi di assemblaggio... do it yourself: https://spots-hardware.dev.java.net/ Stefano Sanna, Sun SPOT 11 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Free-range e Base Station Il Sun SPOT Development Kit fornisce: ● Due SPOT free-range equipaggiati con processor – board, interfaccia radio, demo sensor board e batteria Una Base Station, – con processor board e interfaccia radio SDK per Windows, – Mac OS X e Linux Cavo USB – Stefano Sanna, Sun SPOT 12 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Sviluppo L'SDK comprende librerie e utility per la ● compilazione, il packaging del bytecode, l'aggiornamento del firmware degli SPOT e per lanciare le applicazioni L'SDK è basato su Ant e la gestione dei progetti ● può essere automatizzata in qualsiasi IDE Gli SPOT supportano installazione, esecuzione e ● debugging remoti attraverso la connessione wireless Stefano Sanna, Sun SPOT 13 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • SPOTManager http://www.sunspotworld.com/SPOTManager Stefano Sanna, Sun SPOT 14 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Solarium Stefano Sanna, Sun SPOT 15 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Sun SPOT & Netbeans Sono disponibili alcuni plug-in per Netbeans 6.x ● che consentono di utilizzare l'SDK dei Sun SPOT all'interno dell'IDE Stefano Sanna, Sun SPOT 16 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Due tipi di applicazioni Sun SPOT Application ● Eseguite sui free-range SPOT – Modello applicativo basato su CLDC 1.1 e IMP 1.0 – Accesso completo alle periferiche e alla demo board – Sun SPOT Host Application ● Eseguite su uno SPOT configurato come basestation – Modello applicativo stand-alone – Accesso simultaneo alle librerie Sun SPOT e JSE – Stefano Sanna, Sun SPOT 17 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Classi, dispositivi, sensori La libreria standard dei Sun SPOT conta oltre 400 ● classi ed interfacce (circa il triplo di MIDP!) La libreria contiene driver e classi di alto livello per ● accedere alle interfacce fisiche dei dispositivi e alle periferiche: ILed, ILightSensor, IAccelerometer3D, – IFlashMemoryDevice, IPowerController, IPWMOutput, IAT91_PIO, IAT91_IAC... Stefano Sanna, Sun SPOT 18 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Radio Communication I Sun SPOT sono equipaggiati di un modulo radio ● IEEE 802.15.4 per comunicazioni a corto raggio La Communication API è basata sul Generic ● Connection Framework fornisce: RadioConnection (radio://) per scambio dati – attraverso stream RadiogramConnection – (radiogram://) per comunicazione a datagrammi Stefano Sanna, Sun SPOT 19 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Attenzione al saldatore! Progettare circuiti ed effettuare cablaggi e ● saldature richiede una certa esperienza Un assemblaggio errato o un corto circuito ● accidentale possono danneggiare le periferiche o lo stesso Sun SPOT Come sfruttare le potenzialità dei Sun SPOT senza ● la necessità di attrezzarsi con un laboratorio di elettronica? Stefano Sanna, Sun SPOT 20 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Divertimento per tutti! La basestation permette di utilizzare il PC come ● gateway per qualsiasi risorsa USB, IP, Bluetooth Il kit LEGO Mindstorms NXT fornisce: ● Un sistema semplice e flessibile – 4 ingressi e 3 uscite – Interfacce USB e Bluetooth – La libreria Java open source iCommand consente un – accesso immediato alle API per il controllo remoto del modulo NXT Stefano Sanna, Sun SPOT 21 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Controllo gestuale Bluetooth 802.15.4 radio USB Stefano Sanna, Sun SPOT 22 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Descrizione progetto Gesture Controller ● “Gira” su uno SPOT free-range – Legge l'inclinazione sugli assi X e Y – Invia i messaggi al Vehicle Controller – Vehicle Controller ● “Gira” sulla basestation – Riceve i messaggi dal Gesture Controller – Invia i comandi al vehicle – LEGO Mindstorms NXT Stefano Sanna, Sun SPOT 23 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Gesture Controller /1 public class SunSpotApplication extends MIDlet { private IAccelerometer3D accelerometer = EDemoBoard.getInstance().getAccelerometer(); private ISwitch switch1; private int st=0; private RadiogramConnection conn; protected void startApp() throws MIDletStateChangeException { switch1 = EDemoBoard.getInstance().getSwitches()[0]; runSwitchWatcher(); } Stefano Sanna, Sun SPOT 24 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Gesture Controller /2 protected void pauseApp() { // This will never be called by the Squawk VM } protected void destroyApp(boolean unconditional) throws MIDletStateChangeException { } Stefano Sanna, Sun SPOT 25 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Gesture Controller /3 private void runSwitchWatcher() { Thread t1 = new Thread() { public void run() { sw1.waitForChange(); if (conn == null) { try { conn = (RadiogramConnection) Connector.open(quot;radiogram://broadcast:133quot;); startAccelerometerWatcher(); } catch (Exception e) { } } } }; Stefano Sanna, Sun SPOT 26 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Gesture Controller /4 public void startAcceWatchThread(){ Thread t2 = new Thread() { public void run() { while(true){ readTiltAndSend(); } } }; t2.start(); } Stefano Sanna, Sun SPOT 27 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Gesture Controller /5 private void readTiltAndSend() { try { int tiltX = (int) Math.toDegrees(acc.getTiltX()); int tiltY = (int) Math.toDegrees(acc.getTiltY()); String data = Integer.toString(tiltX) + quot;#quot; + Integer.toString(tiltY); send(data); } catch (IOException ex) { } try { Thread.sleep(100); } catch (InterruptedException ex) { } Stefano Sanna, Sun SPOT 28 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Gesture Controller /6 private synchronized void send(String data) { if (conn != null) { try{ Datagram datagram = conn.newDatagram(conn.getMaximumLength()); datagram.writeUTF(data); conn.send(datagram); } catch(IOException e){ } } } } Stefano Sanna, Sun SPOT 29 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Controller del veicolo /1 public class SunSpotHostApplication { private static final int FORWARD = 0; private static final int BACKWARD = 1; private static final int RIGHT = 2; private static final int LEFT = 3; private static final int STOP = 4; private int last = STOP; private static Pilot pilot; // iCommand Java NXT Library public static void main(String[] args) { SunSpotHostApplication app = new SunSpotHostApplication(); startNXT(); app.start(); Stefano Sanna, Sun SPOT 30 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Controller del veicolo /2 private static void startNXT() { try { NXTCommand.open(); pilot = new Pilot(2.1f,4.4f,Motor.A, Motor.C,true); } catch(Exception e) { e.printStackTrace(); } } Stefano Sanna, Sun SPOT 31 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Controller del veicolo /3 public void run() { try{ RadiogramConnection conn = (RadiogramConnection) Connector.open(quot;radiogram://:133quot;); Datagram dg = conn.newDatagram(conn.getMaximumLength()); while(true){ dg.reset(); conn.receive(dg); String rawData = dg.readUTF(); String[] tokens = rawData.split(quot;#quot;); moveVehicle(tokens[0], tokens[1]); } }catch(IOException e){ e.printStackTrace(); } Stefano Sanna, Sun SPOT 32 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Controller del veicolo /4 private void moveVehicle(String accelX, String accelY) { int tiltX = (int) Double.parseDouble(accelX); int tiltY = (int) Double.parseDouble(accelY); if (tiltY > 15) { if (last != BACKWARD) { pilot.backward(); last = BACKWARD; } } else if (tiltY < -15) { if (last != FORWARD) { pilot.forward(); last = FORWARD; } } Stefano Sanna, Sun SPOT 33 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Controller del veicolo /5 else if (tiltX < -25) { if (last != RIGHT) { pilot.rotate(30); last = RIGHT; } } else if (tiltX > 25) { if (last != LEFT) { pilot.rotate(-30); last = LEFT; } } else { if (last != STOP) { pilot.stop(); last = STOP; } } } Stefano Sanna, Sun SPOT 34 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Sun SPOT Open Grant Program Are you a professor, student, or hobbyist? ● Would you like to use wireless sensors in your curriculum, research or project? Please send us your interesting, creative proposals for wireless sensor and embedded hardware and software projects. Sun Labs will award Sun SPOT Java Development Kits to the projects we think will be most effective in inspiring and expanding the Sun SPOT Open Source community. http://www.sunspotworld.com/proposals Stefano Sanna, Sun SPOT 35 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Conclusioni L'uso massivo di sensori è la nuova frontiera ● dell'interazione I Sun SPOT sono la “cool Java way” per creare ● “laboratori live” con i quali sperimentare scenari di computazione ubiqua e pervasiva Una ricca libreria di classe e la possibilità di ● utilizzare il PC come gateway consentono l'integrazione con servizi Stefano Sanna, Sun SPOT 36 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Risorse Sun SPOT ● http://www.sunspotworld.com – https://spots.dev.java.net/ – Sun SPOTs and Java robotics on java.net ● https://sunspot-robotics.dev.java.net/ – http://community.java.net/robotics/ – LEGO Mindstorms NXT ● http://mindstorms.lego.com – http://lejos.sourceforge.net – Stefano Sanna, Sun SPOT 37 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Contatti Stefano Sanna ● http://www.gerdavax.it – JUG Sardegna ONLUS ● http://www.jugsardegna.org – Stefano Sanna, Sun SPOT 38 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
    • Grazie per l'attenzione. Stefano Sanna, Sun SPOT 39 Sun Technology Day 2008, Cagliari, 13 Giugno 2008