lunedì 28 ottobre 2013

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

Debugger integrato ESP32S3

Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede  nell'ID USB della porta Jtag. Nel modulo...