Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Greenpeace
Making Things Talk
Recensito da Francesco Argese il 21-02-2008 ore 10:04
Copertina ISBN: 0596510519
Autori: Tom Igoe
Editore: O'Reilly
Lingua: Inglese
Anno: 2007
Pagine: 438
Allegati: Nessuno
Intel Cluster Studio XE
Il libro cerca di insegnare i rudimenti della comunicazione tra dispositivi di vario genere, tramite la realizzazione di progetti basilari. L'obiettivo dichiarato nel testo è far comprendere al lettore il concetto di networked object, facendo uso di programmazione object-oriented per l'interfacciamento con i dispositivi fisici. Il libro nasce da un corso intitolato: "Networked Objects", tenuto dall'autore Tim Igoe, alla Tish School of the Arts presso l’Università di New York e facente parte dell’Interactive Telecommunications Program.

Gli argomenti trattati in ogni capitolo spaziano dall'elettronica, alla programmazione, alle reti. Nella realizzazione dei progetti sono consigliate diverse piattaforme hardware su cui è possibile lavorare e vengono forniti all'utente gli esempi del codice e dei circuiti realizzati. Molto curato è anche il lato informatico, che viene introdotto passo passo tramite la spiegazione dei linguaggi di programmazione utilizzati (Processing e PHP), oltre che fornire alcune nozioni di riga di comando. Il libro risulta abbastanza tecnico, ma allo stesso tempo si apre ad un pubblico molto vasto in quanto l'autore si prodiga a spiegare tutti i concetti illustrati in maniera elementare, tramite semplici esempi pratici; in tal modo chiunque nutra un pizzico di interesse per l'argomento sarà in grado di comprendere i concetti trattati.

Come è consuetudine, il libro comincia con una prefazione, che spiega a chi è rivolto l’argomento, nonché le conoscenze preliminari necessarie per comprendere i contenuti trattati. In ognuno dei capitoli successivi, l'autore si prefigge un obiettivo da portare a termine tramite la realizzazione di progetti reali. L'unico capitolo che non illustra alcun progetto è il primo, che si occupa di presentare gli ingredienti necessari per una migliore comprensione dei capitolo successivi. Igoe pone molta attenzione sulle interfacce fisiche, software ed elettriche degli oggetti, sui protocolli di comunicazione, sui diversi tipi di computer e sulle interfacce fisiche a disposizione per l'interazione. Una sezione di tale capitolo è dedicata alle buone abitudini che chiunque si appresti a realizzare applicazioni di rete deve tenere in considerazione. Il capitolo illustra anche i tool fisici, software ed hardware utilizzati per la realizzazione dei progetti presentati nei capitoli seguenti. Tra i software tool si manifesta particolare predilezione per Processing, che viene ampiamente utilizzato nei progetti per la sua facilità d'uso: vengono illustrati interessanti esempi di base per testarne il funzionamento. Inoltre un'ampia sezione è dedicata all'utilizzo della riga di comando, fornendo consigli utili a chi non ne ha mai fatto uso. Molto interessante risulta la trattazione relativa ai tool per la comunicazione seriale. In ultima sede, viene presentato l'hardware utilizzato e le interfacce esterne di comunicazione, indispensabili alla creazione di networked object.

I successivi capitoli si occupano della realizzazione di 26 progetti spalmati nei restanti otto capitoli corredati da una introduzione ai concetti basilari per la corretta comprensione dei progetti stessi. Nel secondo capitolo vengono spiegate le tecniche basilari di connessione tra due dispositivi fisici; in particolare vengono illustrati i protocolli, il controllo di flusso e l'indirizzamento. Per agevolare l'acquisizione di queste nozioni, viene realizzato un peluche che gioca a PONG; quest'ultimo è realizzato tramite USB nel primo progetto, tramite connessione senza fili nel secondo. Il successivo progetto spiega invece i principi relativi al protocollo Bluetooth. Di notevole interesse risulta in questo capitolo la trattazione dei collegamenti seriali USB, RS-232 nonché la realizzazione del circuito MAX3323 per la conversione da USB a seriale.

Il terzo capitolo, dando per assodata l'acquisizione dei concetti trattati nei capitoli precedenti, passa alla spiegazione del reale funzionamento della Rete delle reti, ovvero Internet, soffermandosi sulle interconnessioni tra i vari dispositivi, sugli apparati di rete, sugli indirizzi (sia fisici che di rete) e sui protocolli, che consentono la comunicazione tra entità diverse. Il tutto è corredato di utili esempi realizzati tramite l'utility TELNET e tramite alcune pagine PHP di esempio. Dopo queste nozioni teoriche, si dà sfogo alla creatività tramite la realizzazione del progetto "networked cat", che illustra passo passo come sia possibile monitorare, tramite una videocamera, il proprio gatto quando si trova in una posizione ben precisa, individuata tramite opportuni sensori.

I progetti illustrati sino a questo punto presentano un problema non trascurabile: è necessaria la presenza di un PC collegato al microcontrollore perché funzionino. Il quarto capitolo si pone l'obiettivo di superare questa limitazione, realizzando il collegamento alla Rete direttamente dal controllore, tramite l'ausilio di un modulo di rete aggiuntivo. Dopo la presentazione di un progetto introduttivo per verificare il corretto funzionamento del modulo (un semplice ”Hello Internet”), viene mostrato come sia possibile configurare il modulo in modo tale che funzioni nella maniera più consona all'obiettivo che si vuole raggiungere. Il secondo progetto presente in questo capitolo si occupa dunque della realizzazione di un misuratore della qualità dell'aria, che legge la temperatura da una pagina PHP e la visualizza tramite un termometro con lancetta.

Nel quinto capitolo si cerca di far capire al lettore come ottenere determinate prestazioni di rete; per far ciò, l'autore si impegna a far comprendere al lettore come sia possibile comunicare in (quasi) real time. Dopo aver introdotto l'argomento con esempi significativi, viene illustrato il funzionamento dei protocolli di livello trasporto più usati su Internet e viene posta l'attenzione sulla loro inadeguatezza per connessioni che richiedono determinate prestazioni in termini di ritardi. Il progetto realizzato per una esposizione più minuziosa di queste problematiche illustra un gioco di rete, del quale vengono mostrati i sorgenti del client, del server e il comportamento dei vari protocolli di rete.

Nel sesto capitolo si prendono in esame le comunicazioni senza fili. Dopo aver menzionato brevemente le caratteristiche di base, vengono realizzati un trasmettitore-ricevitore a raggi infrarossi ed una radio; l'autore si sofferma sui pregi e sui difetti di ognuna di queste tecnologie. Il terzo progetto del capitolo si occupa invece di effettuare un invio bidirezionale tramite ricetrasmettitori. Il capitolo termina con un ultimo progetto che si occupa ancora di invio bidirezionale, ma stavolta invio e ricezione dei dati avvengono tramite l'ausilio della tecnologia Bluetooth.

Mentre nei capitoli fin qui presentati si è parlato sempre di comunicazioni tra due entità (server e client), nel settimo capitolo vengono introdotte le connessioni e i messaggi di rete con più destinatari (il cosiddetto multicast), problematica molto diffusa nelle applicazioni odierne. A questo scopo viene illustrato un progetto per la creazione di report di sostanze chimiche tossiche. Nel secondo progetto di questo capitolo viene mostrato come sia possibile realizzare una mesh network tramite l'uso del protocollo ZigBee, molto usato per la comunicazione tra sensori.

L'ottavo capitolo ha lo scopo di far comprendere al lettore come sia possibile localizzare qualsiasi tipo di oggetto; chiaramente gli oggetti in questione sono sempre networked object. Dopo aver illustrato la differenza tra localizzazione di rete e localizzazione fisica, si passa ad analizzare i modi disponibili per trovare la locazione di un oggetto. Vengono realizzati due progetti per misurare la distanza, il primo con tecnologia infrarossi, il secondo con ultrasuoni. Il progetto successivo illustra invece come sia possibile leggere l'intensità del segnale (misurata in decibel) ricevuto tramite radio facendo uso di XBee prima, e di radio Bluetooth subito dopo. Il capitolo presenta ancora altri tre progetti: uno si occupa della lettura tramite protocollo seriale GPS, l’altro mostra come determinare l'orientazione degli oggetti tramite l'uso di un compasso digitale, mentre il terzo si occupa di determinare l'assetto usando un accelerometro.

Il nono ed ultimo capitolo tratta le tematiche inerenti l'identificazione, intesa come fisica realizzata tramite video e colori. I primi due progetti al riguardo fanno uso di una webcam: nel primo si evidenzia come riconoscere i colori, mentre nel secondo viene illustrato il riconoscimento di barcode 2D. A quest'ultimo segue un progetto riguardante l'uso di tag RFID in Processing. Nel progetto successivo viene mostrato come la tecnologia RFID può venire incontro alle esigenze di automazione domestica. Gli ultimi due progetti si occupano rispettivamente di IP geocoding e invio di e-mail tramite tecnologia RFID.

Ai capitoli appena presentati seguono tre appendici, che contengono argomenti ausiliari. L'Appendice A mostra alcuni protocolli non trattati in altre parti del libro che potrebbero essere utili, una serie di proxy e un’introduzione allo sviluppo di applicazioni con telefoni mobili. L'appendice B elenca i fornitori hardware, che offrono componenti hardware utili per la realizzazione dei progetti; per ogni fornitore sono presenti numeri ed indirizzi web per un immediato contatto. L'Appendice C fornisce un elenco in ordine cronologico degli applicativi, corredati da codice sorgente, illustrati nei capitoli del libro. Nelle pagine conclusive del libro è presente un indice analitico con diverse voci che ricorrono all'interno del testo.
proIl libro fornisce un approccio molto pratico, che non dovrebbe spaventare chi non conosce già gli argomenti trattati. Nonostante ciò, io sono dell'avviso che, chi non è del settore, debba leggere il libro con molta concentrazione, in quanto gli argomenti affrontati sono di una certa complessità. Tutto il codice sorgente illustrato nel libro è disponibile sul sito ufficiale.
controSarebbe necessaria un'appendice dedicata agli argomenti di natura elettronica, che non vengono illustrati quanto quelli relativi al ramo informatico.
Precedente: Molto rumore per nulla, ovvero il linguaggio Shakespeare (Atto II)
Successiva: Il modello RDBMS è avanti negli anni!
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.286 secondi.