giovedì 31 ottobre 2013

USB Key Read Only


Un amico mi ha portato questa chiavetta USB pubblicitaria perche' era interessato ad utilizzarla per i propri file visto il taglio da 17 Gb. Il problema e' che l'unita' si mostrava sempre come in sola lettura e quindi sostanzialmente non usabile per scopi differenti dal vedere il filmato pubblicitario

La cosa mi e' sembrata subito strana dato che non ho mai visto a giro tagli di memoria di questo tipo (o 16 o 32 Gb per esempio)


Ho provato a smontare il dispositivo per vedere se era nascosto uno switch. Sulle prime USB era comune trovare un interruttore a slitta vicino al connettore ma dopo aver rimosso 4 viti, una cucitura ed una tonnellata di colla nessun risultato

Rimontato il tutto ho riprovato ad inserire il dispositivo nella mia Debian Box le cose si sono un po' chiarite.
Sono visibili due partizioni: la prima da 18 Mega (e non 17 Giga!!) a sola lettura ed una seconda da 944 Mega di spazio libero liberamente scrivibile. Si tratta quindi di una comunissima USB Key da 1 Giga.
A questo punto rimane il problema della partizione a sola scrittura. Non puo' trattarsi di un blocco hardware perche' un eventuale switch di blocco scrittura avrebbe agito su tutta l'unita' disco e non su una sola partizione. Non si tratta nemmeno dell'impostazione dei permessi del sistema operativo (ho provato ad usare GParted per cancellare le partizioni ma l'operazione non e' permessa)

La possibile soluzione e' che il firmware della scheda sia stato modificato in modo proprietario per far apparire le due partizioni di cui una bloccata in scrittura (qualcosa di simile e' possibile con le chiavette SANDISK..ho provato il loro tool di formattazione a basso livello launchpadremoval.exe ma senza successo). Mi sa che la riconsegno cosi' com'e'

mercoledì 30 ottobre 2013

Cambio sistema di coordinate geografiche

Ogni tanto mi ricordo di essere un geologo con un po' di esperienza in telerilevamento.
Per un studio che sto facendo nei ritagli di tempo sto usando delle immagini Landsat 7 e non avendo una licenza Envi e ArcGis mi sto adattando ad usare QGis

Caricando i dati Landsat Toscana-Emilia (TIF georiferite) direttamente in QGis queste vengono inserite nel sistema di riferimento EPSG:32632 (WGS84 UTM Zona 32 N)


LE71920292001046EDC01
Gli shapefile che invece mi servono sono tutti nel sistema di riferimento EPSG 3003 (Monte Mario Italy Zona 1)

Invece di convertire le immagini e' possibile traslare il sistema di riferimento degli shapefile usando i tools GDAL in particolare con il comando

dove
wgs.shp e' il nome dello shape risultato dell'elaborazione
boaga.shp e' il nome del file shape da convertire
-s_srs e' il sistema di riferimento di partenza
-t_srs e' il sistema di riferimento finale

ogr2ogr wgs.shp boaga.shp -s_srs EPSG:3003 -t_srs EPSG:32632

martedì 29 ottobre 2013

Compressione video

Il video originale dell'intervento al Linux Day 2013 e' stato ripreso con una micro camera Go Pro a risoluzione Full HD. Il risultato e' che l'intervento della durata di circa 16 minuti corrisponde ad una occupazione su disco di circa 3.7 Gb... un po' troppo per pensare di effettuare l'upload su Youtube



Ho quindi provato a comprimere il file mediante il software ffmpeg e la seguente stringa

ffmpeg -i luca.mp4 -s 720x480 -acodec copy luca.mkv

al termine della compressione il file e' risultato essere di circa 30 Mb con una compressione di oltre un fattore 1000. La conversione e' stata fatta su un IBM T61 dual core con 2 Giga di Ram e per ogni secondo di video erano necessari circa 3-4 secondi di calcolo

Personalizzazione di Webiopi

Il sistema di gestione Web delle porte GPIO di Raspberry presentato in questo post puo' essere anche customizzato nell'aspetto dell'interfaccia per esempio per mostrare un solo pulsante



Un esempio viene riportato al Wiki di Google Code ...peccato che sia sbagliato

Dopo un po' di ricerche ecco una pagina funzionante che accende e spenge il solo pin GPIO 25. L'aspetto fondamentale e' che prima di usare il pin questo deve essere dichiarato come output
Il file deve essere posizionato in /usr/share/webiopi/htdocs
------------------------------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta name="viewport" content = "height = device-height, width = 420, user-scalable = no" /> 
        <title>WebIOPi | Demo</title>

        <script type="text/javascript" src="/webiopi.js"></script>
        <script type="text/javascript">
        webiopi().ready(function() {
webiopi().setFunction(25,"out");

                var content, button;
                content = $("#content");
                               
                button = webiopi().createGPIOButton(25, "SWTICH");
                content.append(button); // append button to content div
                       
           

webiopi().refreshGPIO(true);
                
        });
                
        function mousedown() {
                webiopi().digitalWrite(7, 1);
        }
        
        function mouseup() {
                webiopi().digitalWrite(7, 0);
        }
        
        function outputSequence() {
                var sequence = "01010100110011001100101010" // S.O.S. morse code or whatever you want
                // output sequence on gpio 7 with a 100ms period
                webiopi().outputSequence(7, 100, sequence, sequenceCallback);
        }
        
        function sequenceCallback(gpio, data) {
                alert("sequence on " + gpio + " finished with " + data);
        }
        
        function callMacro() {
                var args = [1,2,3] // or whatever you want
                // call myMacroWithArgs(arg)
                webiopi().callMacro("myMacroWithArgs", args, macroCallback);
        }
        
        function macroCallback(macro, args, data) {
                alert(macro + " returned with " + data);
        }
        
        </script>
        <style type="text/css">
                button {
                        display: block;
                        margin: 5px 5px 5px 5px;
                        width: 160px;
                        height: 45px;
                        font-size: 24pt;
                        font-weight: bold;
                        color: black;
                }
                
                input[type="range"] {
                        display: block;
                        width: 160px;
                        height: 45px;
                }
                
                #gpio7.LOW {
                        background-color: White;
                }
                
                #gpio7.HIGH {
                        background-color: Red;
                }
        </style>
</head>
<body>
        <div id="content" align="center"></div>
</body>
</html>

Video presentazione Linux Day 2013 - Nemo Rov

Il video dell'intervento al Linux Day 2013
La prima parte e' tenuta da Francesco Mugnai con la presentazione dell'esperienza sulla Costa Concordia mentre nella seconda viene spiegato con qualche dettaglio maggiore le caratteristiche del ROV






File presentazione Libreoffice
File presentazione Pdf

lunedì 28 ottobre 2013

Importanza del cavo USB

Un amico e' mi ha chiesto su un aiuto per recuperare i dati dal suo disco esterno Lacie. Questo modello, riportato nella foto, presenta  un cavo USB esterno sempre attaccato al case in alluminio che ovviamente si era tranciato nel punto di maggiore tensione 


Il primo istinto e' stato quello di trovare un set di chiavi torx per aprire il case quando e' stato notato che il cavo esterno era facilmente rimuovibile e sotto il connettore grigio si nascondeva una rassicurante mini Usb.

E' stato quindi recuperato quindi il primo cavo mini Usb presente in ufficio .. un cavo retrattile come quello riportato come esempio nella foto sottostante

Una volta connesso il cavo al disco ed al computer il disco fisso ha iniziato a girare emettendo dei tipici ticchettii spesso indicatori di disco fisicamente rotto.
Visto che era improbabile anche la rottura del disco ho suggerito di sostituire il cavo retraibile con un normale cavo mini USB (caratterizzato da una sezione maggiore)

A questo punto il disco ha iniziato a funzionare correttamente. L'ipotesi piu' probabile e' che il cavo retraibile non fosse in grado di alimentare in modo corretto il disco che quindi provava a mettersi in moto ma non avendo corrente a sufficienza emetteva il rumore sopra descritto

Force Gauge SM-1000N

Un piccolo riassunto sulle caratteristiche sul Force Gauge SM-1000N da accoppiare ad Arduino Due

Prima di tutto come funziona un Force Gauge
Sulla barra sono montati quattro Strain Gauge; quando si ha una flessione a causa di una forza verso il basso si ha che i sensori superiori si estendono (seppur di poco) mentre quelli inferiori si comprimono

i quattro Strain Gauge sono montati con una configurazioni a ponte di Wheatstone in cui a due estremi opposti (A-C) viene inserita l'eccitazione (l'alimentazione) mentre agli altri due capi opposti (B-D) si effettua la misura


La resistenza interna e' piuttosto modesta (attorno a 350 Ohm)

Per il taglio anulare sono necessari due Force Gauge



Per i carichi di esercizio della prova di taglio anulare (da 0  a 20  Kg) si osserva che la tensione in uscita dal sensore e' molto modesta. con valori massimi inferiori ai 10  mV


Curve di calibrazione sperimentali

Un altro aspetto di interesse e' la presenza di tensioni negative per il primo tratto di curva di taratura del sensore 2. Visto che Arduino non registra tensioni negative sugli ingressi analogici si deve creare un offset sulla tensione in modo da registrare sempre tensioni positive. 

Demone avahi su Raspberry/Raspbian

Oramai uso Raspberry praticamente sempre in modalita' headless ovvero senza tastiera e monitor attaccati ed interagisco via SSH o via Web. Il principale problema in questo modo, essendo la connessione WiFi regolata da un DHCP, e' di indovinare ogni volta quale indirizzo dinamico e' stato attribuito alla Raspberry (la modalita' normale e' guardare dentro al router come sono associati i vari dispositivi)

Una soluzione alternativa molto valida e stranamente non implementata di default ne' in Raspbian ne' in PiBang (mentre lo e' in  Debian standard) e' utilizzare il demone Avahi

Questo demone si installa mediante

apt-get install avahi-daemon

e permette di avere una sorta di DNS interno alla rete locale in cui i vari dispositivi che supportoano il protocollo di annunciarsi

Una volta installato ed avviato il demone non e' quindi necessario conoscere ogni volta l'indirizzo dinamico ma basta chiamare la macchina con il suo nome (che non cambia mai)


per esempio in una configurazione standard per cercare una Raspberry con montato  Raspbian si dovra' cercare
raspberry.local

mentre su PiBang
pibang.local

ovviamente i nomi identificativi devono essere univoci all'interno della LAN

martedì 22 ottobre 2013

Linux Day 2013 - Pistoia

In preparazione per il Linux Day 2013 a Pistoia. L'intervento sara' dalle 11.30 alle 12.00 ma spero di esserci sia prima che dopo per fare due chiacchere



Problemi su Mediacom 850i


Ieri sera il bambino stava guardando un film su tablet Mediacom 850i quando si sono esaurite le batterie.
Ho messo in carica il tablet ed il led di ricarica ha funzionato in modo corretto

Il giorno successsivo, con ricarica completa, ho provato a riaccendere il dispositivo. Niente da fare, completamente morto.


Stavo gia' pensando di ricomprare un tablet quando per puro divertimento ho provato a ripetere la procedura per flashare la ROM gia' presentata in questo precedente post
Curiosamente, con lo schermo completamente oscurato, il tablet era gia' in modalita' di recovery e quindi e' stato facile rimontare la ROM e riavviare il sistema. Certo che non si tratta di un tablet per principianti

lunedì 21 ottobre 2013

Lettura valori analogici su Arduino Uno ed Arduino Due

Un amico mi ha chiesto la possibilita' di monitorare uno strumento da laboratorio per taglio anulare (si tratta di una strumentazione geotecnica) mediante Arduino

Lo strumento e' sostanzialmente un Force Gauge SM 1000-N capace di misurare carichi fino a 1000 N.
I collegamenti sono piuttosto semplici. Vi e' una alimentazione da 15 Vcc e due cavi di misura

Il problema e' il tipo di uscita dello strumento che risulta essere di pochi milliVolt (al massimo di qualche decina di milliVolt) al contrario dello strumento visto in questo post


Per questo motivo avevo escluso a priori l'utilizzo dell'Arduino Uno perche' ha una sensibilita' (nel migliore delle ipotesi) di 5 mV

Arduino Due invece dovrebbe avere una sensibilita' nettamente superiore perche' monta un convertitore analogico digitale da 12 bit (4096 livelli al contrario dell'ADC a bit 10 e 1024 livelli della Uno) ed ha un fondo scala a 3.3 V (5.0 V Arduino Uno). Per questo motivo, con un rapido conto, la minima lettura dell'Arduino Due doveva essere 3.3V/4095 = 0.8 mV...perfettamente in linea con le tensioni che avevo bisogno di misurare

Una volta connessa l'Arduino Due al Force Gauge ed un multimetro per riferimento e' stato chiaro che qualcosa non tornava. Per tensioni misurate di circa 7 mV la risposta della Arduino Due era compresa tra 3-4 (in linea teorica doveva essere circa il doppio ovvero tra 8 e 9)

Frugando su Internet ho trovato questo interessante post che entra nel dettaglio dell'ADC di Arduino Due mostrando come l'offset possa essere anche molto alto (20 mV) rendendo difficoltose le misure di tensioni molto basse. Fra le altre cose e' interessante l'influenza di avere una tensione di riferimento stabile anche per l'Arduino oltre che per lo strumento di misura

venerdì 18 ottobre 2013

Controllo remoto di rele' mediante Raspberry

Recentemente un amico mi ha chiesto un metodo per poter gestire in remoto (dove per remoto si deve intendere accendere una caldaia negli USA stando in Italia) usando una Raspberry.

La cosa e' piuttosto semplice da fare con Php ma visto che la ruota e' gia' stata inventata, e funziona bene, ho preferito usare questo strada

Prima di tutto la parte collegamenti
La Raspberry, con montata una Raspbian, e' stata collegata al rele' alla porta GPIO #23 (porta S del rele') e i classici +5V e GND


Per la parte software ho impiegato WEBIOPI , uno script in Python che crea un piccolo webserver interfacciato con le GPIO

Prima prima cosa di sscaricare il file
wget http://webiopi.googlecode.com/files/WebIOPi-0.6.0.tar.gz

e lo si scompatta
A questo punto da utente root si digita
./setup.sh
(attenzione, durante questa fase la Raspberry deve essere connessa ad internet perche' vengono scaricate eventuali librerie non gia' presenti nel sistema...l'operazione dura qualche minuto)

al termine si puo' digitare (sempre da root)
/etc/init.d/webiopi start

a questo punto collegandosi all'indirizzo della macchina sulla porta 8000 (od in localhost:8000) si accede ad una interfaccia di questo tipo

La username di default e' "webiopi" e la password "raspberry"

All'inizio tutte le porte sono di Input. Quindi si deve cliccare sulla casellina grigia accanto alla porta di interesse (nel mio caso #23) e porta in modalita' output (OUT). Fatto cio' cliccando sul numero della porta si interagisce con il rele' aprendo e chiudendo il contatto


Nel video si osserva il led luminoso del rele' che si accende quando si apre il contatto via web

Per rendere il sistema sempre avviato all'accensione del sistema si deve digitare


update-rc.d webiopi defaults

mercoledì 16 ottobre 2013

Google Chrome, Proxy Server e Debian

La versione per Linux di Google Chrome non dispone di un menu di configurazione delle impostazioni di rete come la corrispondente versione per Windows

Sembra che se si usa Gnome o KDE vengano ripresi i settaggi di rete dal WM ma, dato che uso LXDE, non posso confermare.



Vengono anche ignorate le variabili di ambiente http_ proxy e https_proxy

L'unico sistema che ho trovato per far funzionare Chrome per Linux dietro ad un proxy server e' il seguente (ammettendo, come nel mio caso, che sia disponibile un file di configurazione .pac)

google-chrome --proxy-pac-url=http://proxypac.xxxx.xxxxxx.it/proxy.pac


Problemi con Google Chrome per Linux su Debian

Cercando di installare Google Chrome su una macchina virtuale Debian con la procedura che ha sempre funzionato oggi sono comparsi alcuni errori



di fatto l'installazione con dpkg si blocca a causa di alcune dipendenze non risotel
-----------------------------------------------
 google-chrome-stable : Dipende: lib32gcc1 (>= 1:4.1.1) ma non è installabile
                                     Dipende: lib32stdc++6 (>= 4.6) ma non è installabile
                                     Dipende: libc6-i386 (>= 2.11) ma non è installabile
-----------------------------------------------

La versione beta 31.0.1650.16-1 funziona invece correttamente.

lunedì 14 ottobre 2013

Configurazione Debian minimale su IBM X20


In questo post viene mostrato come ho configurato in modo minimale (ma abbastanza completo) l'IBM X20 visto in questo post in modo da avere un compromesso tra la modesta potenza della macchina  e la necessita' di renderla comunque operativa


Per prima cosa sono partito dal primo CD di installazione di Debian togliendo le opzioni Ambiente Desktop e Server di Stampa ed impostando Server SSH.

Al successivo riavvio si ha la sola shell senza ambiente grafico

Si procede quindi con l'installazione di alcuni programmi a linea di comando

apt-get install alpine sqlite3 lynx mc imagemagick
apt-get install moc (player musicale basato su ncurses che si lancia con il comando mocp)

e di alcuni tool di sviluppo che di solito uso
apt-get install build-essential codeblocks codeblocks-contrib openjdk-7-jdk ant subversion git

a questo punto si installa X Windows in configurazione minimale
apt-get install x-window-system-core

seguito dall'installazione di Openbox minimale
apt-get install openbox obconf obmenu
apt.get install conky tint2

per attivare conky e tint due si deve procedere come segue
touch ~/.config/openbox/autostart.sh
chmod 700 ~/.config/openbox/autostart.sh


il contenuto del file autostart e' il seguente
----------------------------------------------------
# Run the system-wide support stuff . 
$GLOBALAUTOSTART 
(sleep 1 && tint2) & 
(sleep 1 && conky) & 
------------------------------------------------------

di default conky si aggiorna una volta al secondo ma non e' di interesse e ruba abbastanza cicli alla CPU cosi' ho modificato il valore update_interval in /etc/conky/conky.conf portandolo a 15.0

con questa configurazione ed Openbox in esecuzione si ha una occupazione della RAM di 46 MB (aprendo una shell di XTerminal si passa a circa 51 Mb con una occupazione di spazio disco di circa 1.5 Gb).
Tramite OBConf ho impostato una sola finestra di desktop

Per gestire la reti wireless in modo umano ho montato come network manager wicd
apt-get install wicd 


che deve essere attivato con il comando
wicd-client

(attenzione: se non e' presente deve essere inserita a mano la scheda wlan0 all'interno della configurazione)

Un paio di programmi di comune utilizzo su X (un leggero browser ed editor di testo)
apt-get install midori
apt-get install leafpad
apt-get install mupdf (visualizzatore pdf)

Per effettuare degli screenshot ho installato scrot
apt-get install scrot

che si usa con la seguente sintassi
scrot -d 5 (salva lo schermo con un ritardo di 5 secondi)

Data che X non sara' sempre usato, per massimizzare lo schermo della consolle testuale, si puo' modificare GRUB in modo che in partenza la shell sia in modalita' 1024x768 editando il file /etc/default/grub, togliendo il commento a  GRUB_GFXMODE=640x480 e portandolo a 1024x768.
Si deve poi aggiungere la linea
GRUB_GFXPAYLOAD_LINUX=keep

per rendere le modifiche operative si lancia poi
update-grub2

A questo punto si possono togliere un po' di demoni che non servono. Visto che la batteria non e' funzionante e che il BIOS non accetta la modalita' Speedstep si puo' rimuovere ACPI
apt-get remove acpi
Visto che non e' previsto di utilizzare dischi di rete mappati NFS via anche questo servizio
apt-get --purge remove nfs-common rpcbind
Il sistema non ha un modulo Bluetooth e potrei disinstallare il demone ma visto mi potrebbe servire per un dongle USB Bluetooth lo disattivo semplicemente dal boot  modificando /etc/default/bluetooth ed editando
BLUETOOTH_ENABLED=0

Via anche il client di CUPS (di solito non stampo)
apt-get remove cups 

Per il demone Avahi ho preferito disattivarlo piuttosto che disinstallarlo perche' puo' sempre tornare utile. Si digita quindi il file 
sudo update-rc.d -f avahi-daemon remove

Sostituzione vetro touch screen su Huawey Y300


Nel capitolo "Fatelo da soli",come dicono i giornali, ricevo e volentieri pubblico il contributo di un collega geologo/informatico che mostra la sostituzione di un vetro di un Huawey Y300

Il vetro si e' fratturato a seguito di una caduta ed il pezzo di ricambio e' stato acquistato su un e-commerce cinese per pochi euro

Gli attrezzi da usare sono:

  • cacciavite torx
  • cacciavite a taglio
  • plettro
  • nastro biadesivo 
  • trincetto
  • phon
  • una miscela tra forza bruta e delicatezza


La prima fase prevede la rimozione di batteria e SIM

Si svitando poi le viti torx e si disaccoppia il guscio del cellulare dal display facendo leva il cacciavite a taglio


Si rimuovono quindi le due flat indicate dalle frecce in rosso


Alla fine il telefono e' sostanzialmente disassemblato


Si inizia la sostituzione del vetro: con un phon si separa il vetro dall'intelaiatura forzando leggermente con un plettro da chitarra

Una volta rimosso il vetro danneggiato si riposiziona il nastro biadesivo sul telaietto


Si posiziona il pezzo di ricambio del vetro(notare i due cavi flat che sporgono)

Si rimonta il display ricollegando le flat

e si ripetono all'incontrario i passi per lo smontaggio


Ed alla fine si riaccende

Ben fatto

sabato 12 ottobre 2013

IBM ThinkPad X20 (2662)

Mi e' stato prestato per una prova un vecchio IBM X20, una macchina del 2002 che monta un PIII 600 MHZ con 192 Mb di Ram (128 Mb in origine non rimuovibile come per l'X40) ed un disco fisso da 20 Gb. Ha uno schermo da 12.1 pollici con una risoluzione di 1024x768 e due USB . Non sono presenti connettivita' wifi, bluetooth, la batteria principale e quella della CMOS sono decisamente defunte. Da aggiungere che il tasto Freccia Su di questa splendida tastiera, una delle piu' veloci che abbia mai provato, risulta malfunzionante.

Per il resto e' una macchina, considerando la data di uscita, che ha ancora un suo fascino anche se non e' usabile come il suo fratello maggiore X40 che ancora uso normalmente




Un aspetto curioso e' la presenza di un alloggiamento per schede CF (credo che sia l'unico portatile con tale caratteristica, gia' dall'X40 il lettore e' di SD Card)


La sostituzione della batteria e' piuttosto semplice in quanto e' alloggiata insieme alla Ram.Da notare che lo slot della Ram porta l'indicazione FoxConn (all'epoca ancora sostanzialmente sconosciuta)


Un'altra caratteristica particolare e' la presenza della Ultraport posizionata sul lato corto superiore dello schermo. Si tratta di un porta proprietaria IBM che ha avuto poca fortuna e che si fatto e' una USB con connettore differente (vedi qui)



Ultraport

Il computer, a meno di aggiornamenti del firmware, non permette il boot da USB per cui per montare il disco fisso e' necessario utilizzare l'Ultrabase 08N1180 per aggiungere le funzionalita' del CDRom, di floppy disk, di due casse stereo, di una porta seriale ed una parallela oltre ad un ingresso PS2. La caratteristica principale e' che il CDRom puo' essere disconnesso dalla base per inserire altri accessori

Ultrabase con CdRom estratto


venerdì 11 ottobre 2013

Calcolatori analogici

Pensare ad una cosa piu' obsoleto di un regolo calcolatore ai giorni d'oggi e' quasi impossibile... per quanto riguarda lo scalimetro devo ammettere che lo uso ancora con una certa regolarita' per lavoro

Nelle foto sottostanti sono mostrati (con le loro scatole originali)
1) Scalimetro Mars 561 98 STAEDTLER (scale 1:20, 1:25, 1:50, 1:75, 1:100, 1:125)
2) Regolo calcolatore tascabile DARMSTAD 33 ( scale L,K,A,B,C,D,P,S,T , sul retro LL1, LL2, LL3)
3) Regolo calcolatore da tavolo ARISTO Scholar 0903 (scale L,K,A,B,Bl,Cl,C,D,S,ST,T)



Il regolo tascabile lo avevo comprato oltre 20 anni fa per affiancare il calcolatore digitale ma non ho mai trovato nessuno che me ne potesse spiegare bene l'uso. Oggi e' possibile consultare Wikipedia (http://en.wikipedia.org/wiki/Slide_rule) per le indicazioni necessarie. Considerando che questi regoli erano imbarcati nei voli verso la Luna delle Missioni Apollo e che erano utilizzati anche a Los Alamos per i calcoli sulla bomba atomica, e' piuttosto impressionante cio' che si puo' tirare fuori da uno strumento che ha una precisione alla prima cifra decimale (alla seconda tra 1 e 2) e che puo' fare quasi solo moltiplicazioni e divisioni (per i calcoli piu' precisi erano necessarie le tavole logaritmiche tabulate nei libri)


martedì 8 ottobre 2013

Arduino Due ed Ethernet Shield

In questo post viene mostrato come connettere una Arduino Due ad uno Shield Ethernet
Nonostante il differente fattore di forma rispetto ad una Arduino Uno, Arduino Due accoglie anche Ethernet Shield con l'unica accortezza di posizionarlo in modo corretto.
In pratica si devono far coincidere i nomi dei pin sullo shield con quelli della scheda; la posizione risulta quindi praticamente allineata con il bordo dell'alimentazione ed alcuni pin non risultano collegati


Nell'acquisto di uno Shield Ethernet per Arduino Due si deve fare attenzione che questo sia compatibile la rev.3. Nell'immagine sottostante sono mostrati due Shield: quello superiore funziona correttamente mentre quello inferiore non risulta compatibile con Arduino Due


lunedì 7 ottobre 2013

Semplice Video Editing con Kino

Per montare un po' di video dalla fotocamera avevo bisogno di un programma di video-editing ed ho provato Kino. Nonostante fosse descritto come complicato la sua filosofia di utilizzo ricalca quella di MovieMaker sotto Windows ed e' abbastanza intuitivo

Per prima cosa si deve effettuare l'importazione dei file. Il formato .mov della fotocamera e' stato correttamente letto e convertito in automatico in formato .dv per la fase di editing


Il programma in modo automatico cerca (ma non ci riesce) di dividere il video nelle sue varie scene
Usando i pulsanti sottostanti e la timeline al di sotto del video si possono dividere od accorpare sezioni di video

Altrimenti si puo' inserire in testa od in coda altri spezzoni di video con le seguenti icone


Cliccando sulla barra di sinistra si possono quindi tagliare o copiare intere scene


Al termine del lavoro si deve esportare il filmato. In modalita' AVI non si ha praticamente compressione video ed e' piu' comodo scegliere la modalita' MPEG che risulta supportata per l'upload su YouTube


Il programma non e' particolarmente esoso di risorse (se non di disco fisso) e gira bene su Dual Core del 2008 con 2 Giga di Ram

Led Green+Blue in Arduino


Smontando un circuito elettrico rotto ho recuperato un diodo verde-rosso. Si tratta di un componente che non e' altro che l'unione in un unico oggetto di due led distinti. Sono presenti tre piedini: quello centrale e' l'anodo comune che deve essere collegato all'alimentazione a 5V mentre gli altri due piedini accendono rispettivamente il colore rosso e quello verde




In Fritzing e' disponibile solo il componente led RGB ma, ad esclusione di un pin in piu', le connessioni sono analoghe a quello a due colori



Ed infine lo sketch (connessione ai pin 9 e 10)
-------------------------------
int led1 = 9;
int led2 = 10;

void setup() {                

  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);

}

void loop() {
  digitalWrite(led1, HIGH);   
  digitalWrite(led2, LOW);
  delay(1000);          
  digitalWrite(led1, LOW);
  digitalWrite(led2, HIGH);    
  delay(1000); 
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  delay(1000);
  digitalWrite(led1, LOW);   
  digitalWrite(led2, LOW);
  delay(1000);          
  
}

Raspberry PI + Rear View Camera


Dato che il televisore di casa (l'unico con entrata HDMI) e' perennemente su Peppa Pig stavo cercando una soluzione a basso costo per usare la Raspberry. Mi sono quindi comprato per meno di dieci euro su  un e-commerce cinese un monitor da 4.3 pollici normalmente impiegato nelle automobili per visualizzare la telecamera della retromarcia

La Raspberry e' sotto al monitor !!!

Il monitor in formato 16:9 ha una risoluzione di 480x272 pixel e come sempre per le forniture cinesi e' arrivato praticamente senza istruzioni. Ho collegato quindi il cavo rosso al positivo di un alimentatore AC/DC da 12V/2A ed il cavo nero al negativo


Pensavo di dover smanettare su X per modificare le impostazioni dello schermo ma tutto ha funzionato alla prima.