SlideShare ist ein Scribd-Unternehmen logo
1 von 39
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

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (6)

Mobile Linux
Mobile LinuxMobile Linux
Mobile Linux
 
CDC e PersonalProfile
CDC e PersonalProfileCDC e PersonalProfile
CDC e PersonalProfile
 
28 awt
28 awt28 awt
28 awt
 
Java ME and Web 2.0
Java ME and Web 2.0Java ME and Web 2.0
Java ME and Web 2.0
 
Web Services with Java ME
Web Services with Java MEWeb Services with Java ME
Web Services with Java ME
 
Java AWT
Java AWTJava AWT
Java AWT
 

Ähnlich wie Sun SPOT

Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pra...
Lo sbarco di Google nel pianeta Mobile Internet:  primo impatto ed esempi pra...Lo sbarco di Google nel pianeta Mobile Internet:  primo impatto ed esempi pra...
Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pra...Riccardo Solimena
 
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012Mirco Piccin
 
Site Visit SAALUS project-wearable systems
Site Visit SAALUS project-wearable systemsSite Visit SAALUS project-wearable systems
Site Visit SAALUS project-wearable systemsrobertodefazio3
 
Are you a Gadgeteer? - NetMF@Work
Are you a Gadgeteer? - NetMF@WorkAre you a Gadgeteer? - NetMF@Work
Are you a Gadgeteer? - NetMF@WorkMirco Vanini
 
HCIM08 - Mobile Applications
HCIM08 - Mobile ApplicationsHCIM08 - Mobile Applications
HCIM08 - Mobile ApplicationsStefano Sanna
 
Scatol8 SmartGarden3.0
Scatol8 SmartGarden3.0Scatol8 SmartGarden3.0
Scatol8 SmartGarden3.0Scatol8
 
Suite Software for RITMARE
Suite Software for RITMARESuite Software for RITMARE
Suite Software for RITMARECerrotorre
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad ArduinoSimone Lusenti
 
Reti di monitoraggio tradizionale e monitoraggio ambientale partecipato
Reti di monitoraggio tradizionale e monitoraggio ambientale partecipatoReti di monitoraggio tradizionale e monitoraggio ambientale partecipato
Reti di monitoraggio tradizionale e monitoraggio ambientale partecipatoluca menini
 
Ignite IBB : Laura Botti : progetto RIPEG
Ignite IBB : Laura Botti : progetto RIPEG Ignite IBB : Laura Botti : progetto RIPEG
Ignite IBB : Laura Botti : progetto RIPEG Toscanalab
 
Giacinto Donvito – Infrastrutture di Grid e Cloud per la ricerca Bioinformatica
Giacinto Donvito – Infrastrutture di Grid e Cloud per la ricerca BioinformaticaGiacinto Donvito – Infrastrutture di Grid e Cloud per la ricerca Bioinformatica
Giacinto Donvito – Infrastrutture di Grid e Cloud per la ricerca Bioinformaticaeventi-ITBbari
 
Studio e sviluppo di una libreria java per la lettura di smart card su decode...
Studio e sviluppo di una libreria java per la lettura di smart card su decode...Studio e sviluppo di una libreria java per la lettura di smart card su decode...
Studio e sviluppo di una libreria java per la lettura di smart card su decode...ICL - Image Communication Laboratory
 
Google Dev Fest 2016 - Roma
Google Dev Fest 2016 - RomaGoogle Dev Fest 2016 - Roma
Google Dev Fest 2016 - Romagabriele nocco
 

Ähnlich wie Sun SPOT (20)

Android
AndroidAndroid
Android
 
Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pra...
Lo sbarco di Google nel pianeta Mobile Internet:  primo impatto ed esempi pra...Lo sbarco di Google nel pianeta Mobile Internet:  primo impatto ed esempi pra...
Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pra...
 
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
 
Site Visit SAALUS project-wearable systems
Site Visit SAALUS project-wearable systemsSite Visit SAALUS project-wearable systems
Site Visit SAALUS project-wearable systems
 
Are you a Gadgeteer? - NetMF@Work
Are you a Gadgeteer? - NetMF@WorkAre you a Gadgeteer? - NetMF@Work
Are you a Gadgeteer? - NetMF@Work
 
HCIM08 - Mobile Applications
HCIM08 - Mobile ApplicationsHCIM08 - Mobile Applications
HCIM08 - Mobile Applications
 
Citta SENSibile
Citta SENSibileCitta SENSibile
Citta SENSibile
 
Scatol8 SmartGarden3.0
Scatol8 SmartGarden3.0Scatol8 SmartGarden3.0
Scatol8 SmartGarden3.0
 
Web Summit 2014 (Pt. 1)
Web Summit 2014 (Pt. 1)Web Summit 2014 (Pt. 1)
Web Summit 2014 (Pt. 1)
 
Altanet energia
Altanet  energiaAltanet  energia
Altanet energia
 
Suite Software for RITMARE
Suite Software for RITMARESuite Software for RITMARE
Suite Software for RITMARE
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad Arduino
 
Reti di monitoraggio tradizionale e monitoraggio ambientale partecipato
Reti di monitoraggio tradizionale e monitoraggio ambientale partecipatoReti di monitoraggio tradizionale e monitoraggio ambientale partecipato
Reti di monitoraggio tradizionale e monitoraggio ambientale partecipato
 
Ignite IBB : Laura Botti : progetto RIPEG
Ignite IBB : Laura Botti : progetto RIPEG Ignite IBB : Laura Botti : progetto RIPEG
Ignite IBB : Laura Botti : progetto RIPEG
 
Introduzione ad NFC
Introduzione ad NFCIntroduzione ad NFC
Introduzione ad NFC
 
Giacinto Donvito – Infrastrutture di Grid e Cloud per la ricerca Bioinformatica
Giacinto Donvito – Infrastrutture di Grid e Cloud per la ricerca BioinformaticaGiacinto Donvito – Infrastrutture di Grid e Cloud per la ricerca Bioinformatica
Giacinto Donvito – Infrastrutture di Grid e Cloud per la ricerca Bioinformatica
 
Studio e sviluppo di una libreria java per la lettura di smart card su decode...
Studio e sviluppo di una libreria java per la lettura di smart card su decode...Studio e sviluppo di una libreria java per la lettura di smart card su decode...
Studio e sviluppo di una libreria java per la lettura di smart card su decode...
 
RETI di LABORATORI - [Aeronautico] SENS&MICROLAB
RETI di LABORATORI - [Aeronautico] SENS&MICROLABRETI di LABORATORI - [Aeronautico] SENS&MICROLAB
RETI di LABORATORI - [Aeronautico] SENS&MICROLAB
 
O.D.I.N.O.
O.D.I.N.O.O.D.I.N.O.
O.D.I.N.O.
 
Google Dev Fest 2016 - Roma
Google Dev Fest 2016 - RomaGoogle Dev Fest 2016 - Roma
Google Dev Fest 2016 - Roma
 

Mehr von Stefano Sanna

Mobile Security su Android - LinuxDay 2018
Mobile Security su Android - LinuxDay 2018Mobile Security su Android - LinuxDay 2018
Mobile Security su Android - LinuxDay 2018Stefano Sanna
 
Android Things, from mobile apps to physical world
Android Things, from mobile apps to physical worldAndroid Things, from mobile apps to physical world
Android Things, from mobile apps to physical worldStefano Sanna
 
Android Things Linux Day 2017
Android Things Linux Day 2017 Android Things Linux Day 2017
Android Things Linux Day 2017 Stefano Sanna
 
Android Things in action
Android Things in actionAndroid Things in action
Android Things in actionStefano Sanna
 
Introduzione alla tecnologia iBeacon
Introduzione alla tecnologia iBeaconIntroduzione alla tecnologia iBeacon
Introduzione alla tecnologia iBeaconStefano Sanna
 
Augmented Smartphone
Augmented SmartphoneAugmented Smartphone
Augmented SmartphoneStefano Sanna
 
Bluetooth Low Energy
Bluetooth Low EnergyBluetooth Low Energy
Bluetooth Low EnergyStefano Sanna
 
Google TV: la nuova frontiera Android
Google TV: la nuova frontiera AndroidGoogle TV: la nuova frontiera Android
Google TV: la nuova frontiera AndroidStefano Sanna
 
Enlarge your screen: introducing the Google TV
Enlarge your screen: introducing the Google TVEnlarge your screen: introducing the Google TV
Enlarge your screen: introducing the Google TVStefano Sanna
 
NFC: tecnologia e applicazioni
NFC: tecnologia e applicazioniNFC: tecnologia e applicazioni
NFC: tecnologia e applicazioniStefano Sanna
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione AvanzataStefano Sanna
 
Android & Bluetooth: hacking e applicazioni
Android & Bluetooth: hacking e applicazioniAndroid & Bluetooth: hacking e applicazioni
Android & Bluetooth: hacking e applicazioniStefano Sanna
 
Application Store: opportunita' e trappole
Application Store: opportunita' e trappoleApplication Store: opportunita' e trappole
Application Store: opportunita' e trappoleStefano Sanna
 
Playing with Mobile 2.0
Playing with Mobile 2.0Playing with Mobile 2.0
Playing with Mobile 2.0Stefano Sanna
 
Comunicazione Pervasiva
Comunicazione PervasivaComunicazione Pervasiva
Comunicazione PervasivaStefano Sanna
 
Introducing the Sun SPOTs
Introducing the Sun SPOTsIntroducing the Sun SPOTs
Introducing the Sun SPOTsStefano Sanna
 
Java & LEGO Mindstorms
Java & LEGO MindstormsJava & LEGO Mindstorms
Java & LEGO MindstormsStefano Sanna
 
Java Network Programming
Java Network ProgrammingJava Network Programming
Java Network ProgrammingStefano Sanna
 
Mobile 2.0 e M-Tagging
Mobile 2.0 e M-TaggingMobile 2.0 e M-Tagging
Mobile 2.0 e M-TaggingStefano Sanna
 

Mehr von Stefano Sanna (20)

Mobile Security su Android - LinuxDay 2018
Mobile Security su Android - LinuxDay 2018Mobile Security su Android - LinuxDay 2018
Mobile Security su Android - LinuxDay 2018
 
Android Things, from mobile apps to physical world
Android Things, from mobile apps to physical worldAndroid Things, from mobile apps to physical world
Android Things, from mobile apps to physical world
 
Android Things Linux Day 2017
Android Things Linux Day 2017 Android Things Linux Day 2017
Android Things Linux Day 2017
 
Android Things in action
Android Things in actionAndroid Things in action
Android Things in action
 
Introduzione alla tecnologia iBeacon
Introduzione alla tecnologia iBeaconIntroduzione alla tecnologia iBeacon
Introduzione alla tecnologia iBeacon
 
Augmented Smartphone
Augmented SmartphoneAugmented Smartphone
Augmented Smartphone
 
Bluetooth Low Energy
Bluetooth Low EnergyBluetooth Low Energy
Bluetooth Low Energy
 
Google TV: la nuova frontiera Android
Google TV: la nuova frontiera AndroidGoogle TV: la nuova frontiera Android
Google TV: la nuova frontiera Android
 
Enlarge your screen: introducing the Google TV
Enlarge your screen: introducing the Google TVEnlarge your screen: introducing the Google TV
Enlarge your screen: introducing the Google TV
 
NFC: tecnologia e applicazioni
NFC: tecnologia e applicazioniNFC: tecnologia e applicazioni
NFC: tecnologia e applicazioni
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione Avanzata
 
Android & Bluetooth: hacking e applicazioni
Android & Bluetooth: hacking e applicazioniAndroid & Bluetooth: hacking e applicazioni
Android & Bluetooth: hacking e applicazioni
 
Application Store: opportunita' e trappole
Application Store: opportunita' e trappoleApplication Store: opportunita' e trappole
Application Store: opportunita' e trappole
 
Playing with Mobile 2.0
Playing with Mobile 2.0Playing with Mobile 2.0
Playing with Mobile 2.0
 
Comunicazione Pervasiva
Comunicazione PervasivaComunicazione Pervasiva
Comunicazione Pervasiva
 
Introducing the Sun SPOTs
Introducing the Sun SPOTsIntroducing the Sun SPOTs
Introducing the Sun SPOTs
 
Mobile HW Mashup
Mobile HW MashupMobile HW Mashup
Mobile HW Mashup
 
Java & LEGO Mindstorms
Java & LEGO MindstormsJava & LEGO Mindstorms
Java & LEGO Mindstorms
 
Java Network Programming
Java Network ProgrammingJava Network Programming
Java Network Programming
 
Mobile 2.0 e M-Tagging
Mobile 2.0 e M-TaggingMobile 2.0 e M-Tagging
Mobile 2.0 e M-Tagging
 

Sun SPOT

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. SPOTManager http://www.sunspotworld.com/SPOTManager Stefano Sanna, Sun SPOT 14 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
  • 15. Solarium Stefano Sanna, Sun SPOT 15 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. Controllo gestuale Bluetooth 802.15.4 radio USB Stefano Sanna, Sun SPOT 22 Sun Technology Day 2008, Cagliari, 13 Giugno 2008
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. Grazie per l'attenzione. Stefano Sanna, Sun SPOT 39 Sun Technology Day 2008, Cagliari, 13 Giugno 2008