mercoledì 2 settembre 2009

Qualche idea e qualche considerazione

E' ancora presto per parlare di "progetto", visto che ho cambiato idea almeno dieci volte (avrei fatto meglio a comprare una decina di Beagleboard), però se non comincio a parlarne con qualcuno non mi convinco mai :)

Da parte mia l'idea è di avere un sistema wearable che catturi ed elabori dati da GPS e altri apparecchi ancora da decidere e che contemporaneamente funga da media player MP3 (funzione per lo più "psicologica", altrimenti si finisce per pensare che non vale la pena portarselo in giro)... e che all'occorrenza possa essere collegato ad un monitor (ho il PicoProjector) per mostrare file JPEG o AVI.

Dunque i miei problemi principali sono:

1) Linux completo
2) alimentazione a batterie
3) creare una "tastiera"
4) creare software per multimedia via "tastiera"
5) creare software per gestione GPS via "tastiera"

Più precisamente:

1) avere un sistema Linux completo con kit di sviluppo e ambiente grafico; c'è la Angstrom Narcissus che va benissimo tranne... tranne il fatto che al boot, dopo aver lanciato X11, non lancia nessun display manager (ho usato Matchbox anziché Illume/Enlightenment/etc; con questi altri manager - che non mi sono simpatici - sono certo che funzionerebbe bene); probabilmente c'è un errore negli script, che ancora non ho trovato; anche reinstallando la paccottiglia Narcissus più recente non è cambiando niente, pare che non sia cambiato niente nemmeno nei pacchetti. Dovrò indagare.

C'era anche Gnome per Beagleboard (quello di Sakoman) ma non l'ho installato perché non contemplava il sistema di sviluppo (ci sono delle cose, come l'interprete Ruby e il GPSD, che possono essere compilate solo in modo "nativo", direttamente sulla Beagleboard, e perciò voglio avere di serie anche il gcc e tutti i pacchetti di sviluppo).


2) dovrò trovare un sistema per l'alimentazione a batterie; le mie pile stilo "cinesine" (che non superano mai i 5.1V a pieno carico) si prestano bene ma sembrano avere non più di 120-160 minuti di autonomia. Le pile "cinesine" più serie invece danno 5.4V a vuoto quando cariche, meglio non considerarle fino a quando non avrò qualcosa per regolare la tensione.

Un'altra idea è utilizzare sei pile stilo in serie ed un regolatore DC-DC ad alta (molto alta: non voglio sprechi!) efficienza, che tiri fuori 5V stabilizzati a partire da 6-9V. Resterebbe il problema delle batterie "troppo scariche"; col tester vedo che quando sono totalmente a terra, a vuoto danno attorno ai 920-980 millivolt.

Una soluzione diversa con pile "non standard" richiederebbe anche il circuito di ricarica e di controllo della scarica (per non farle andare troppo sottoterra). Su questo mi confesso ignorante; so che per principio non bisogna straziare le pile già scariche.



3) aggiungere una sorta di "tastiera" utilizzabile senza guardare (altrimenti che "wearable" è? è mica un palmare con display e tastiera?)

Da una carcassa di telefonino Sony Ericsson P900 ho estratto il jog-dial-roller, la rotellina a scatti con tre tasti extra (dunque 5 bit di informazione con un solo dito, utilizzabile anche in tasca senza guardare). I due tasti esterni fanno in realtà affidamento al case, per cui nel rimontare il jog-dial su una mia basetta ne perdo necessariamente uno. Però restano 4 bit di informazione su un solo dito (rotella su, rotella giu, schiaccia dentro cioè Enter, schiaccia laterale cioè Esc), sufficienti per navigare menu senza feedback visivo. Paradossalmente, dal P990 in poi quei 5-way (5 bit) è diventato 3-way (sono diventati 3 bit), perdendo i tasti "esterni", con la miserabile scusa che non era "friendly" coi diversamente abili. Secondo me era solo per risparmiare sui costi di produzione.

Vedo su Sparkfun (da cui avevo già ordinato il 6DOFv4+bluetooth) pure il BlackBerry Trackballer (attualmente solo "backorderabile" perché ad agosto in pochi giorni è andato a ruba).

Mi restano da collegare dei tasti alle porte di GPIO; sembra facile (tranne per il fatto di dover patchare il kernel), ma finché non avrò una giornata libera per cimentarmi... Nel frattempo corro a lamentarmi nel googlegroup ufficiale ;)


3) creare un programmino per il playing dei file multimediali è abbastanza semplice; si tratta tutto sommato di interfacciare mplayer (che conosco meglio di gstreamer), mappando i quattro tasti come volume up, volume down, Enter (che per mplayer significa "next song") e "Q" (che per mplayer significa "exit"). A meno di non associare i tasti agli eventi, qualche riga di codice dovrò scriverla... Avere più tasti permetterà più controlli (per gli MP3 basterebbe aggiungere solo altri tre tasti: uno per la pausa e due tasti per avanti/indietro di 15 secondi).

Ho ordinato uno "sliding taper potentiometer 10k" (POT10KBSLIDE), magari potrei usare quello per il volume.


4) dovrò creare un programmino per il GPS; come ho detto l'altro ieri, ho compilato il gpsd, che restituisce la pappa pronta ai programmi (in C, in Python, in Ruby, etc) che accedono alla porta 2947. Tentare di recuperarlo attraverso opkg install gpsd fa installare sulla Beagleboard un malloppo interminabile di paccottiglia "telefonica" (roba apparentemente di OpenMoko) che non serve.

Il gpsd è indispensabile perché si preoccupa di tutta la parte rognosa di calcoli di posizione, aggiornamenti, approssimazioni, etc, e permette a più software contemporaneamente di avere i dati istantanei di posizionamento indipendentemente dal tipo di GPS utilizzato (almeno tra le centinaia di modelli supportati). Alcuni "tasti" extra sulla basetta esterna della Beagleboard potrebbero permettere di marcare posizione e cronologia mentre sto in giro oppure di farmi sentire negli auricolari tempo impiegato e chilometri percorsi. Sulla bici sarebbe da sballo. Magari aggiungo pure una funzione di geotagging...

Insisto col fatto che i tasti devono essere usati senza guardare/spostare niente perché quando stai in bici o a telefono non puoi fare acrobazie. Inoltre avere la Beagleboard "autonoma" rispetto allo smartphone permette molta più libertà.

3 commenti:

  1. Leggendo il tuo post mi è venuto un dubbio, anche tenendo conto del fatto che mi sembri più un informatico che un elettronico (almeno a giudicare dai tuoi post sul blog):
    al di là del piacere di noi smanettoni per complicarci la vita, non era più semplice per una applicazione di questo tipo comprare un telefono android e scriversi un programmino ad hoc?
    Va bhe lo so tu odi java, ma alla fine non credo avresti grande difficoltà a scrivere un po di codice nel buon vecchio, affidabile e lentissimo java o no?

    RispondiElimina
  2. Hai indovinato: sono un informatico, non un elettronico. :)

    Ed ho la mania fissa del non voler utilizzare soluzioni già pronte, più la mania del voler utilizzare Linux, più la mania di avere oggetti che non siano quelli commerciali...

    Anche se non detestassi Java, la soluzione Android non mi avrebbe fatto del bene, perché in fin dei conti avrei cominciato a usarlo come telefonino.

    RispondiElimina
  3. Ti do qualche dritta per i tuoi circuiti, non sapendo se conosci già questi integrati:

    LM1084: stabilizza a 5 Vot un pacchetto batterie formato da 5 batterie stilo, senza troppe perdite e senza riscaldare

    LM1117: dalla 5V stabilizzata ti tira fuori la 3.3V che ti serviva (mi era parso)

    Spero ti sia utile
    Ciao

    PS: Android è linux, e se diventi root puoi fare quello che vuoi, come tu ben sai!

    RispondiElimina