I-DROID01
|
||||||||||
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.
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.
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).
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!
Guida PC
Control 1.5
Guida Mobile Control 1.8 Note sulla connessione Proxy Control Program transfer failed - guida alla soluzione Il "PC Control" richieste l'installazione sul computer di due programmi (altrimenti non funziona):
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).
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.
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:
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 |