Sensoristica Avanzata per Dispositivi Mobili Stefano Sanna http://www.gerdavax.it 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) SPEAKER ● Stefano Sanna – Senior Developer @ beeweeb technologies – Autore del libro “Java Micro Edition” ● Hoepli Informatica (in pubblicazione) – Technical writer @ DEV, Java Journal, CP... – Java Community member (JUG Sardegna, JMDF...) 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) AGENDA ● Sensoristica avanzata per dispositivi mobili – Presentazione dei Java User Group Italiani – Un anno fa... – La rivoluzione dei sensori – Sensoristica su piattaforma Java ME – ● Contactless Communiction API ● Mobile Sensor API ● Sun SPOT Conclusioni 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) JAVA USER GROUP ITALIANI 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) LA RIVOLUZIONE PRECEDENTE ● 2006: rotta verso il Mobile 2.0 ● – Accesso a servizi Web 2.0 – Mobile Data Provider – Location-awareness 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) SENSORI /1 ● La nuova rivoluzione nei dispositivi mobili è costituita dai sensori per: – permettere nuove modalità di controllo – automatizzare l'immissione di dati SENSORI (da Wikipedia) – consentire la percezione dell'ambiente – garantire sicurezza 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) Comunemente con il termine sensore si definisce un dispositivo che trasforma una grandezza fisica che si vuole misurare in un segnale di natura diversa (tipicamente elettrico) più facilmente misurabile o memorizzabile. SENSORI /2 ● Percezione e applicazioni mobili – – – Fotocamere ● Pubblicazione immediata di foto ● Lettura tag ottici (QR, BeeTag, ShotCode...) Lettori RFID ● Tracciamento merci ● e-ticketing ● object annotation Accelerometri ● gesture controller 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) Fonte: Analog Devices Nintendo WiiMote L'INVASIONE DEGLI ACCELEROMETRI Nokia 5500 Sport Sony-Ericsson W910i Apple iPhone Sun SPOT FIC Neo1973 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) Apple iPod Touch LEGO Accelerometer for Mindstorms NXT LA POTENZA E' NULLA SENZA CONTROLLO ● Esistono numerosi dispositivi consumer dotati di sensori per videogiochi, fitness ● ● ● Nella maggior parte dei casi si tratta di funzionalità embedded, non programmabili, non integrabili Conseguenza: nessuno può contribuire con nuove idee e nuove applicazioni Sony-Ericsson W710i 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) SENSORISTICA IN AMBIENTE JAVA ME ● La piattaforma Java ME offre tre potenti soluzioni per la realizzazione di applicazioni basate sull'uso di sensori: – Contactless Communication API (JSR 257) – Mobile Sensor API (JSR 256) – Sun SPOT 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) CONTACTLESS COMMUNICATION API ● Fornisce una API standard per l'accesso a risorse NFC (Near Field Communication): – Lettura/scrittura tag RFID ISO14443 – Attivazione automatica applicazioni – e-ticketing (phone-as-tag) Nokia 6131 NFC 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) CONTACTLESS COMMUNICATION API Nokia 6131 NFC SDK 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) MOBILE SENSOR API ● Fornisce una API standard per l'accesso ai sensori locali o remoti associati ad un dispositivo Java ME – Discovery dinamico dei sensori disponibili – Classificazione di ogni sensore e delle grandezze fisiche rilevabili – Lettura istantanea del dato 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) MOBILE SENSOR API ● 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) Fonte: Specifica JSR 256 MOBILE SENSOR API ● ● Sorgenti, dati ed eventi – SensorManager, Connector, SensorConnection – SensorInfo, Data, ChannelInfo – SensorListener, DataListener, ConditionListener Sensori, grandezze e domini – Accelerometro, altimetro, amperometro... – Accelerazione, altitudine, intensità di corrente... – User, device, ambient 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) Fonte: Specifica JSR 256 MOBILE SENSOR API SU SONY-ERICSSON W910i Y X Z Fonte: ST Microelectronics 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) MOBILE SENSOR API SU SONY-ERICSSON W910i ● Rilevazione sensori: SensorInfo[] infos = SensorManager.findSensors("acceleration", "user"); ● ● String descrition = infos[0].getDescription(); ● String quantity = infos[0].getQuantity(); ● String URL = infos[0].getUrl(); ● String model = infos[0].getModel(); ● 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) MOBILE SENSOR API SU SONY-ERICSSON W910i ● Creazione connessione e lettura dati: SensorConnection accelerometer; ● accelerometer = (SensorConnection) Connector.open(infos[0].getUrl()); ● Data[] data = accelerometer.getData(1); ● String sx = data[0].getChannelInfo().getName(); ● String sy = data[1].getChannelInfo().getName(); ● String sz = data[2].getChannelInfo().getName(); ● ● int x = data[0].getIntValues()[0]; ● int y = data[1].getIntValues()[0]; ● int z = data[2].getIntValues()[0]; ● 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) SUN SPOT ● Small Programmable Object Technology – Progetto realizzato presso i Sun Laboratories – Piattaforma per la creazione di reti wireless di sensori intelligenti – Laboratorio-live per la realizzazione di nuovi scenari applicativi: ● The (Inter)net of Things ● Program the world 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) SUN SPOT HARDWARE /1 ● Processor Board – 180 MHz 32 bit ARM920T core – 512K RAM/4M Flash – 2.4 GHz IEEE 802.15.4 radio con antenna integrata – Interfaccia USB – Batteria 3.7V 720 mAh Li-Ion – 32 uA in deep sleep mode 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) SUN SPOT HARDWARE /2 ● Demo Sensor Board – Accelerometro 2G/6G 3-assi – Sensore di temperatura – Sensore di luminosità – 8 LED tricolore – 6 ingressi analogici, 2 switch – 5 GPIO (general purpose I/O) – 4 high current output (100mA) 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) SUN SPOT SOFTWARE ● Squawk Virtual Machine – Compatibile J2ME CLDC 1.1 – Java VM con funzionalità di sistema operativo – Esegue bytecode direttamente da flash memory – Device driver scritti in Java – Gestione automatica consumo batteria 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) SUN SPOT ● Creazione connessione e lettura dati: private IAccelerometer3D accelerometer; ● accelerometer = EdemoBoard.getInstance().getAccelerometer(); ● ● int tiltX = (int) Math.toDegrees(acc.getTiltX()); ● int tiltY = (int) Math.toDegrees(acc.getTiltY()); ● int tiltZ = (int) Math.toDegrees(acc.getTiltZ()); ● ● ● 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) SUN SPOT ● Sun SPOT & LEGO Mindstorms NXT USB 802.15.4 radio Bluetooth 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) SUN SPOT ● VIDEO DEMO (Sun Tech Days 2007) 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) RIFERIMENTI – – – Contactless Communication API ● Specifica: http://jcp.org/en/jsr/detail?id=257 ● Nokia 6131 NFC SDK: http://www.forum.nokia.com Mobile Sensor API (JSR 256) ● Specifica: http://jcp.org/en/jsr/detail?id=256 ● Sony-Ericsson SDK: http://developer.sonyericsson.com Sun SPOT ● http://www.sunspotworld.com 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero) CONTATTI ● – – Stefano Sanna ● http://www.gerdavax.it ● [email protected] JUG Sardegna ONLUS ● http://www.jugsardegna.org 44a Esposizione Internazionale di Information & Communications Technology 17-20 ottobre 2007, Fiera Milano (Nuovo Quartiere Rho-Pero)