I-DROID01
  Hardware   Software     Modifiche   Problemi e soluzioni 

Questa pagina era stata creata da CHICCOW e faceva parte del sito "Le pagine di Chiccow" sito non più on-line

Software
 
I programmi che costituiscono il software di I-D01 e i relativi manuali sono distribuiti nei 4 CD dell'opera "Costruisci il tuo personal robot I-D01", e si possono anche scaricare gratuitamente dal sito ufficiale di I-D01 (non più attivo) dove sono state inserite delle versioni più aggiornate e alcune patch per risolvere eventuali problemi.
 
COSA E COME SI PROGRAMMA
 

L'unica scheda programmabile di I-D01 è la Brain&Vision che può ospitare programmi scritti in C-Like o Visual C-Like; il robot può anche essere programmato in Java ma in tal caso in programmi rimangono in esecuzione sul computer e i comandi vengono inviati tramite comunicazione bluetooth. Tutte le altre schede elettroniche non sono programmabili, tuttavia il loro firmware è aggiornabile.
 
Sistema Operativo LINUX
della scheda BRAIN&VISION
 
Linux 2.4 (nome del file dell'ultima versione: BrainVision1-6.zip) è il sistema operativo della scheda Brain&Vision; gestisce la telecamera CMOS, la comunicazione I2C tra le varie schede, la rete neurale, i programmi utente scritti in C-like. L'installazione, l'aggiornamento e la sua gestione richiedono tre programmi (inclusi nel pacchetto zip o si scaricano a parte).
  • brain_config.exe: programma per installare il s.o. Linux
  • brain_update.exe: programma per aggiornare il s.o. Linux
  • brain_debug.exe: programma diagnostico per accedere al s.o. Linux una volta installato
Installazione di Linux
1) Con il jumper (ponticello) cortocircuitare i due pin che stanno alla destra della B&V 
2) Tenere inserito solo il cavo della seriale e non accendere il robot
3) Lanciare il file di installazione "brain-config.exe" del 2° cd, o versione successiva
4) Il programma aprirà una finestra in emulazione dos (nera); vi verrà chiesto di accendere i-droid e poi di premere il tasto INVIO sul pc, seguire le istruzioni passo passo. Se la procedura di installazione del SO non rileva subito la porta seriale perchè non preoccupatevi: senza spegnere, premete INVIO e il programma riprova ad una velocità inferiore (passa dai 115000 ai 38000) e in questo caso la seriale viene rilevata. 5) In seguito verrà chiesto di spegnere e riaccendere il robot, e quando viene chiesto inserire la presa usb senza togliere la seriale.
6) Alla fine si avrà una operazione di flash del ramdisk e si concluderà l'operazione. Quando la procedura simula un disco aggiuntivo per trasferire il SO, può apparire una maschera di windows che ne mostra il contenuto e che sormonta quella principale di installazione, in quel caso basta premere ALT+TABULAZIONE o fare clic sulla relativa icona nella barra di stato per tornare a vedere come procede l'installazione. La fase di "rimozione disco" può essere lenta: abbiate pazienza e aspettate qualche minuto; se proprio non dovesse terminare procedete con la "rimozione sicura dell'hardware" di Windows e disattivate il disco USB che vi troverete, in questo modo l'installazione prosegue regolarmente.
7) Terminata l'installazione, la prima accensione di I-Droid01 risulta un po' lenta (appare: OS Starting...), le successive sono molto più veloci.
8) Una volta avviato il s.o. provate ad accarezzare la testolina del vostro amato robottino; poi provate a dirgli cose dei tipo "sei bello!", "sei brutto!", "sei noioso!". Buon divertimento!
 
PROGRAMMI PER IL CONTROLLO REMOTO

 

 

I-Droid01 PC Control 1.5.4 (nome del file: pc-setup_1_5_4.exe). L'esecuzione del file installa il programma I-droid01 PC Control nella cartella: c:\windows\programmi\i-droid01\.
Al programma viene associata una voce dentro il menù I-droid01. E' un programma per PC (Windows 9x/2000/XP), scritto in Java, che serve per controllare da remoto il robot e inviargli programma utenti scritti in C-like e Visual C-like. A partire dalla versione 1.4.3 è stato integrato nel "PC Control" il modulo "Control Proxy" che rende possibile possibile il controllo del robot via Internet.

 

I-Droid01 Mobile Control 1.8.16 (nome del file: mobile-setup_1_8_16.exe). E' un programma di telecontrollo del robot, con le stesse funzioni del PC Control, ma a differenza di quest'ultimo è stato concepito per funzionare su telefono cellulare. Funziona con cellulari dotati di tecnologia bluetooth che supportano JAVA MIDP 2.0 (mobile information device profile 2.0) e la API (application programming interface) bluetooth JSR-82.

 



Il "PC Control" richieste l'installazione sul computer di due programmi (altrimenti non funziona):
  • Componente software bluetooth (nome del file: idroidcomm.exe). L'esecuzione del file installa il componente Idroidcomm.ocx, che è indispensabile per supportare la comunicazione bluetooth tra I-D01 e PC. A questo file, il menù di Windows associa la voce I-droid01 che permette di disattivare il componente. Il file viene installato automaticamente quando si lancia il CD che lo contiene (il 1° CD). Nota: dal sito ufficiale di I-D01 è possibile scaricare una versione alternativa per tutti coloro che, non avendo la porta COM1 mappata sul loro computer, visualizzano l'errore "script error" all'avviamento del Simulatore (programma per PC che simula il funzionamento di I-D01, non trattato in questo sito).
  • Java Runtime Environment JRE (nome del file: jre14.exe). L'esecuzione del file installa l’ambiente J2RE (Java 2 Runtime Environment, versione 1.4) nella cartella: c:\programmi\java\j2re1.4.2_10\. Inoltre installa i file java.exe, javaw.exe, jpicpl32.cpl, in c:\windows\system32. Il risultato è che l’interprete java può essere lanciato da qualunque punto. L'ambiente java serve per supportare i programmi "I-droid01 PC Control", "Visual C-like" e tutti quelli scritti dagli utenti in java. Le versioni più aggiornate del JRE possono essere scaricate gratuitamente dal sito ufficiale della SUN; la versione 1.5 può essere installata tranquillamente; la 1.6 invece non supporta correttamente il Visual C-like che pertanto necessita di una opportuna patch scaricabile dal sito ufficiale di I-D01 (solo se si installa il JRE da 1.6 in poi).
 
AMBIENTE DI SVILUPPO
Compilatore e librerie  

Programmare in C-like e Visual C-like: si usa il compilatore I-Droid01 Visual C-like Editor (nome del file: visual_setup_1_2_0.exe) che richiede a sua volta l'ambiente "Java Runtime Environment" per l'esecuzione e il "Componente software bluetooth" per l'invio del programmi al robot. Il Visual C-like Editore permette di scrivere e compilare i programmi sul PC in codice simile al C o in modo visuale (assemblando blocchi di istruzioni). I programmi vengono poi inviati al robot tramite comunicazione bluetooth.
A partire dalla versione 1.2 del sistema operativo Linux è possibile caricare in memoria fino a 10 programma differenti.
 
Programmare in Java: si usa l'interprete integrato nell'ambiente "Java Runtime Environment" e alcune librerie java fornite con i CD di ID01. I programma scritti in Java, differentemente da quelli in C-like o Visual C-like, rimangono sul PC e i comandi vengono inviati al robot tramite comunicazione bluetooth. La programmazione ad alto livello, soprattutto in java, richiede la conoscenza dei protocolli di comunicazione bluetooth (tra PC e robot) e i2c (tra le varie schede del robot).
 
PROGRAMMA DI CONTROLLO REMOTO OPEN SOURCE
K-FLASH

Questo programma, realizzato da Antonio Gattuso in Visual Basic, controlla via bluetooth I-D01; è una valida alternativa al PC-Control. Il programma è open source e può essere scaricato (eseguibile e codici sorgenti) da questa pagina.


 
ESEMPI DI PROGRAMMI APPLICATIVI
in C-Like e Visual C-Like

Questi programmi girano sul microprocessore di I-D01 e quindi richiedono di essere trasferiti e compilati tramite l'ambiente Visual C-like.  

GinnasticaTesta (C-like). 
I-droid si mette a fare un po' di ginnastica contando gli step (fori) percorsi e nel frattempo dice qualcosa. Il programma è utile per testare il corretto funzionamento dell'encoder del collo. Nella seconda versione ho preferito riscrivere le funzioni vocali per migliorare la pronuncia dei numeri.

BrainMnemonic (Visual C-like) 
Questo programma mette a dura prova le vostre capacità mnemoniche ed elucubrative; si tratta di un giochino di interazione tra voi e i-droid. Una volta avviato il programma, i-droid mette la testa in posizione centrale ed accende tutti i led degli occhi. Utilizzando i comandi del word set 11, date ordini del tipo:

azione -->  comando --> 0
comando --> 1 comando --> 2 comando --> 3 ..... comando --> 9

In corrispondenza di ogni comando, i-droid reagisce muovendo la testa oppure no, accendendo/spegnendo i vari led degli occhi oppure no. Lo scopo del gioco è riuscire a spegnere tutti i led degli occhi e contemporaneamente far tornare la testa in posizione centrale tramite i vari comandi vocali. Prima di dare un comando vocale, attendete il suono del clacson! Per terminare il programma basta dire comando-->10. Esiste più di una combinazione di comandi che permette di concludere il gioco; sta a voi vincere nel giro di 1 minuto o di 2 ore; tutto dipende dalla vostra capacità di memorizzare le reazioni ai comandi e di ragionarci su (ritenetevi sconfitti se andate a controllare il listato!).

RoboQuiz (Visual C-like) 
Questo è un gioco di domande e risposte in ambito robotico. I-droid vi farà 15 domande che saranno visualizzate sul display (il punto di domanda non ce lo metto perché è sottinteso). Per ogni domanda potete dare una risposta affermativa schioccando le dita davanti a i-droid, oppure negativa schioccando le dita dietro i-droid. Ogni volta che commettete un errore, le domande ricominciano dalla prima. Riuscirete a terminare il gioco?

Insegui luce (Visual C-like) by Robotech
Il robot segue una sorgente luminosa come una torcia in un ambiente piuttosto buio; necessita di un apposito circuito da montare sulla BreadBoard. Per far funzionare il programma correttamente la Robotech fornisce questi consigli: i sensori sono molto sensibili, per cui esibiscono un buon comportamento in ambienti bui e con luci localizzate (come quelle delle torce). Quando li testerai, poni il robot sul piedistallo temporaneo, così che le ruote non tocchino terra, e poi indirizza il fascio di luce sui sensori. Per limitare la loro sensibilità puoi anche ricoprirli con del nastro adesivo.

Paura del buio (Visual C-like) 
Programma simpaticissimo: una volta avviato, spegnete la luce e osservate il comportamento di I-D01, poi riaccendete la luce, spegnetela ancora, riaccendetela e andate avanti finché non vi stancate. Necessita del circuito sensore di luce montato sulla BreadBoard.

Elimina Foto (C-like) 
Utility che permette di eliminare velocemente le foto scattate da I-D01 senza ricorrere al cavo USB.

Riavvio B&V (C-like) 
Utility che permette di riavviare il kernel linux della B&V senza dover riaccendere I-D01. Serve ad esempio quando non riesce ad instaurare la connessione bluetooth e compare la scritta "Can't start BT". Non ha senso eseguire questo programma se I-D01 è connesso via BT, altrimenti il programma di gestione rimarrebbe impallato, causa riavvio s.o.

Riavvio Base (C-like) 
Utility che permette di riavviare il modulo base. Serve ad esempio quando compare il messaggio "Base stalled", o comunque quando la base non risponde ai comandi (ammesso che la scheda non si sia guastata).

Riavvio Arms (C-like) 
Utility che permette di riavviare il modulo arms. Serve ad esempio quando compare il messaggio "Arms stalled", o comunque quando le braccia non rispondono ai comandi (ammesso che la scheda arms non si sia guastata).

Test infrarossi (C-like) by Robotech
Serve per testare il funzionamento dei sensori infrarossi; I-D01 dice 'destra' o 'sinistra' a seconda che percepisca un ostacolo a destra o sinistra. Il programma è stato pubblicato sul fascicolo n°83 e richiede l'installazione dei sensori ad infrarossi sulla breadboard. 

Segui-fuggi luce (C-like) by Robotech
Il programma permette a I-D01 di inseguire o allontanarsi da una sorgente luminosa, come una torcia. Il programma fa uso dei sensori di luce installati sulla breadboard e funziona dando comandi vocali:
  
azione ->   comando -> uno: il robot segue la sorgente luminosa                
comando -> due: il robot si allontana dalla sorgente luminosa               
comando -> zero: termina l'esecuzione del programma
        
Il codice C-like di questo programma è pubblicato a pagina 16 del fascicolo n° 80 di I-D01. 
  
Tester (C-like) by Robotech
Grazie alle proprietà dei due ingressi analogici del marsupio (Analog IN1 e IN2), è possibile misurare facilmente la tensione applicata tra uno di questi pin e la massa GND, purché non sia superiore ai 3V (per non danneggiare l'elettronica). Questo programma legge la tensione applicata ad Analog IN 1 e la scrive sul display; ad esempio si può applicare il sensore di luce destro e vedere come varia la tensione puntando una torcia sul sensore; in alternativa si può leggere il voltaggio di una pila (purché non sia superiore ai 3V) collegando il polo positivo con Analog IN 1 e quello negativo con GND. 

Led coreografici (C-like) 
Schioccando le dita si attivano 4 led posti sulla breadboard che realizzano giochi di luce a seconda della direzione del suono. I led vanno allineati orizzontalmente e collegati con l'anodo alle porte GPIO e il catodo a massa, secondo quest'ordine:

1° led da sinistra = GPIO1            (sinistra = sinistra rispetto al robot)
2° led da sinistra = GPIO2
3° led da sinistra = GPIO3
4° led da sinistra = GPIO4

Il programma termina toccando il testone.
Agendo sulle funzioni LedEffettoX() potete modificare gli effetti a vostro piacimento.

Note. Dati i bassi valori delle porte, non c'è bisogno di mettere resistenze limitatrici. I led non sono forniti con l'opera, ma vanno comprati a parte; costano circa 15cent ciascuno (modello: led da 3mm).

Schiocco Luce (c-like)
I-D01 si muove in reazione agli stimoli sonori e luminosi. Vengono utilizzati i due sensori di luce, e il ricevitori IR destro, collegati alle porte GPIO del marsupio come indicato nel circuito nei fascicoli n°67 e n°83.

* Sensore destro di luce   --> Analog IN 1
* Sensore sinistro di luce --> Analog IN 2
* Ricevitore destro IR     --> GPIO2

Una volta lanciato il programma, I-D01 fa su e giù con la testa, dice 'pronto' e quindi si mette in attesa di vari stimoli:
  • schioccando le dita, I-D01 si muove in direzione del suono per 50cm evitando gli ostacoli tramite gli ultrasuoni
  • toccando la testa si imposta la velocità delle ruote (pronunciata da I-D01 e riportata sul display) che può essere:
    • 13cm/s con controllo PID
    • 20cm/s con controllo PID   (valore di default)
    • 30cm/s senza controllo PID
  • puntando una torcia sul sensore di luce destro, I-D01 si muove in avanti a 30cm/s
  • puntando una torcia sul sensore di luce sinistro, I-D01 si muove all'indietro a 30cm/s
  • premendo un tasto qualsiasi di un telecomando sony compatibile, il programma termina (la ricezione è a carico del ricevitore IR destro).

Albachiara V2 (c-like) 
Questo programma fornisce vari esempi di pre-elaborazione video della C-MOS. Utilizza i due sensori di luce, e il ricevitori IR destro, collegati alle porte GPIO del marsupio come indicato nel circuito nei fascicoli n°67 e n°83.

 * sensore destro di luce   --> Analog IN 1
 * sensore sinistro di luce --> Analog IN 2
 * ricevitore destro IR     --> GPIO2
     
Elaborazione dei parametri video. Premendo ripetutamente un tasto qualsiasi di un telecomando sony compatibile, scorrono sul display le voci di questo menù:
* luce
* esposizione
* risoluzione
 
Quando si seleziona una voce, è possibile modificare il suo valore puntando una torcia sul sensore di luce destro (aumenta) o sinistro (diminuisce). I sensori di luce vanno posti abbastanza distanziati.

* luce: può assumere valori compresi tra -200 e +250; il valore iniziale è 0.
* esposizione: può assumere valori compresi tra 0 e 1000; il suo valore iniziale è 1000 (valore massimo).
* risoluzione di elaborazione dell'immagine: può assumere i seguenti valori:
 
                     --> 160x120   (valore di default)
                     -->  80x60
                     -->  53x40
                     -->  40x30                            
  
Elaborazione dello stream video. Si usano i comandi vocali:
Azione -> comando 0: vengono ripristinati i parametri di default (luce=0, espos=1000, risoluzione=160x120)
             comando 1: stream psicodelico
             comando 2: stream a luci rosse
             comando 3: stream in scala di grigi
             comando 4: stream in bianco e nero
             comando 5: stream normale

Terminare il programma: toccare la testa.

Note. Il programma va terminato in maniera naturale toccando la testa. Se viene forzata la chiusura, il programma potrebbe non funzionare successivamente (a causa della brusca chiusura dello stream video); in tal caso è sufficiente spegnere e riaccendere I-D01. Per osservare meglio le variazioni dei parametri e dello stream video è consigliato aumentare al massimo il frame rate di trasmissione video (anche se comporta una perdita di velocità): PC-Control (Mobile Control) --> Opzioni --> Video --> Frame rate = 160 x 120.
Col PC-Control è utile anche ridimensionare la finestra per aumentare l'immagine video.

 
TeleNavigante (c-like) 
Questo semplice programma serve per inviare comandi alla base tramite un comune telecomando per tv. La ricezione è a carico del Telecomando Universale (Remote Control) di I-D01 che va addestrato per memorizzare i codici IR dei tasti 1,2,...10. Il programma funziona così:

1 -> base avanti
2 -> base indietro
3 -> base sinistra
4 -> base a destra
5 -> base ferma
6 -> base alza
7 -> base abbassa
8 -> attiva comportamento 'Evita ostacoli'
9 -> disattiva comportamento 'Evita ostali'
10 -> fine programma