Architettura Hardware

       

Questo schema mostra i collegamenti tra le principali schede circuitali di I-Droid01. La comunicazione tra i moduli avviene principalmente grazie a un bus centrale, che collega tra loro Brain & Vision, Motherboard, Base Controller, Arms Controller e Head Controller, che incorpora il modulo Sound Follower (SF). La scheda Voice è collegata a quella Motherboard tramite UART (un dispositivo di comunicazione seriale), come anche il modulo Bluetooth al Brain & Vision. Gli elementi in giallo rappresentano i sensori e gli altri input collegati alle diverse schede, mentre quelli in rosso indicano la presenza di attuatori o di output. I rettangoli in grigio, infine, rappresentano i motori elettrici.

 

I sette moduli:

Il sistema nervoso di I-D01 è costituito principalmente da sette moduli e schede elettroniche collegate tra loro. Vediamo ora un po’ più da vicino le caratteristiche tecniche di ognuno dei moduli e la funzione che implementano.

HEAD CONTROLLER (SOUND FOLLOWER)

Questo modulo (a sinistra il prototipo della scheda elettronica) è basato su un microcontrollore a 8 bit (Freescale MC68HC908AP8), dotato di 8 KB di memoria Flash e 1 KB di RAM. Ha il compito di elaborare i segnali provenienti dai tre microfoni del Sound Follower, posizionati all’interno degli ‘occhi’ e nella parte posteriore della testa del robot, allo scopo di determinare la provenienza dei suoni. Inoltre, gestisce entrambi i gradi di mobilità della testa, cioè quello di ‘pan’ (rotazione destra/sinistra) e quello di ‘tilt’ (rotazione alto/basso). Grazie agli encoder ottici collegati ai due motori, il modulo è in grado di coordinare in ogni istante i movimenti della testa in modo da raggiungere la posizione desiderata. Ogni volta che si sfiora la parte alta della testa del robot, l’apposito sensore di sfioramento lo comunica al modulo, il quale, attraverso un bus, trasferisce l’informazione a tutti gli altri e in particolare al modulo Brain & Vision, il quale implementa la rete neurale che gestisce la ‘personalità’ del robot. Infine, il modulo Head Controller gestisce tutti i led colorati degli ‘occhi’ e delle ‘orecchie’, rendendoli utilizzabili anche da tutti gli altri moduli collegati al bus.

 

MOTHERBOARD

La Motherboard ha il compito fondamentale di alimentare con la tensione corretta tutti gli altri moduli (e da qui viene il suo nome), ma svolge anche altre importanti funzioni. Anche in questo modulo è presente un microcontrollore a 8 bit (Freescale MC68HC908AP8) con 8 KB di memoria Flash e 1 KB di RAM. La tensione delle batterie, sia quelle dedicate ai motori sia quelle dedicate all’elettronica, è continuamente monitorata da questo modulo, che rende disponibile l’informazione attraverso il bus di comunicazione. Inoltre, la Motherboard si occupa di gestire il display alfanumerico e la tastiera a tre pulsanti presenti nella parte frontale del corpo del robot.

 

 


VOICE

Il modulo Voice è responsabile della gestione del riconoscimento vocale, della riproduzione della voce del robot e della registrazione e riproduzione dei messaggi sonori. È basato su un microcontrollore specifico per applicazioni vocali (Sensory RSC-4128) e una memoria Flash esterna di 1 MB. La parte di riconoscimento vocale è ‘speaker independent’, vale a dire che il robot potrà essere comandato da qualsiasi persona. È però possibile configurare e attivare una password biometrica in modo che il robot non risponda più a utenti ‘estranei’ finché non viene riattivato dalla persona che ha configurato la password. Questo processo viene detto ‘speaker verification’. Come per tutti gli altri moduli, anche le funzioni del Voice sono utilizzabili dagli altri moduli grazie al bus di comunicazione.

 

BLUETOOTH MODULE

Il modulo Bluetooth (a sinistra l’immagine del prototipo della scheda) permette al robot di comunicare senza fili con dispositivi quali telefoni cellulari, palmari o personal computer compatibili. Il ‘cuore’ del modulo è un chip (National LMX9830A) compatibile con le specifiche dette ‘Bluetooth 1.2 Core Specification’. Il modulo è costituito da un dispositivo Bluetooth di classe 2, ovvero di classe di potenza intermedia. È bene ricordare, però, che l’effettiva distanza coperta e la qualità del collegamento dipendono da molti fattori, tra cui la presenza di ostacoli o di disturbi elettromagnetici e il dispositivo utilizzato come controparte nella connessione. Nella pratica, un collegamento tra due dispositivi ‘classe 2’ in campo aperto può avvenire anche a una distanza di una trentina di metri.

 

 

 

 

BRAIN & VISION

Il modulo Brain & Vision (B&V) (foto sulla sinistra) è sicuramente il più ‘potente’ all’interno del robot. Contiene infatti un microprocessore  Freescale MC9328MXL DragonBall i.MXL a 150 MHz con 16 MB di memoria Flash e 16 MB di RAM. Il sistema operativo installato su questo modulo è di tipo Linux embedded, in particolare dotato di kernel Linux 2.4 con appositi ampliamenti e alcune modifiche ad-hoc. Il modulo B&V gestisce il comportamento di I-Droid e il suo ‘sistema emotivo’, attraverso l’uso di una rete neurale software che evolve nel tempo in base agli input sensoriali ricevuti. Le modifiche della rete neurale comportano un cambiamento dello stato di umore del robot e quindi anche del suo comportamento. Il modulo è direttamente collegato alla telecamera CMOS (foto a destra), grazie alla quale può ricevere ed elaborare le immagini ‘viste’ dal robot e riconoscere la presenza e il movimento di volti, mani o altri oggetti colorati. Questo modulo, inoltre, è necessario per la programmazione avanzata del robot.

 

BASE CONTROLLER
Il modulo chiamato ‘Base Controller’ è basato su un microcontrollore a 8 bit (Freescale MC9S08GT16), dotato di 16 KB di memoria Flash e 1 KB di RAM. Gestisce i due motori delle ruote del robot e i relativi encoder ottici, nonché il motore che permette al robot di ‘alzarsi e sedersi’. Inoltre supervisiona direttamente i cinque sensori a ultrasuoni (due trasmettitori e tre ricevitori) che permettono a I-Droid01 di ‘vedere’ gli ostacoli posti intorno a lui. Le informazioni provenienti dai sensori sono rese disponibili sul bus di comunicazione.

ARMS CONTROLLER
Il modulo Arms, equipaggiato anch’esso con un microcontrollore a 8 bit (Freescale MC68HC908AP8), dotato di 8 KB di memoria Flash e 1 KB di RAM, gestisce i motori e i relativi encoder ottici delle braccia, da cui il suo nome (infatti ‘braccia’ è la traduzione di arms). Inoltre controlla il sensore di temperatura, le luci di posizione, i tool eventualmente collegati alle braccia, nonché tutti gli ingressi e le uscite ‘general purpose’ disponibili sulla breadboard montata al di sopra del marsupio di I-Droid01.

 

      Elenco revisioni
26-11-2005 Inseriti link alle pagine dei micro.
17-11-2005 Inserita descrizione dei sette moduli.
27-09-2005 Prima emissione