Un campionatore automatico per le acque sotterranee

Durante la nostra prima sessione di tracciamenti è immediatamente apparso un problema: per seguire il passaggio della fluoresceina bisogna prelevare l’acqua spesso e da molti punti sparsi sul territorio. È un consumo di risorse umane notevole: fare tre giri di campionamento al giorno per una settimana richiede decine di persone, e considerando che siamo tutti volontari la cosa non è affatto semplice.

Del resto, l’operazione di per se non è troppo complicata: si tratterebbe soltanto di prelevare dell’acqua a intervalli regolari. Una operazione noiosa, e quindi perfetta per le macchine più che per gli uomini. Abbiamo quindi pensato a uno strumento che possa prelevare automaticamente l’acqua per alcuni giorni. Lasciandolo sul posto e tornando a recuperarlo dopo qualche giorno dovremmo fare soltanto due giri, risparmiandoci molta fatica. Strumenti simili esistono, anche non sono facili da comprare perché poco diffusi, ma costano molto perché pensati per ambiti molto più professionali del nostro. Il nostro obiettivo è di realizzare qualcosa di economico, semplice da usare, da costruire, e da trasportare (per portare un macchinario nelle grotte deve poter stare in uno zaino senza rompersi). La soluzione prevede l’uso di Arduino per controllare un servomotore e una pompa a immersione (attivata con un relé).

Il circuito è molto semplice, si può realizzare collegando i vari componenti con un paio di cavi, senza bisogno di schede o saldature, occupando quindi poco spazio:

La struttura del dispositivo è basilare: una scatola di legno che, su un lato, contiene una torretta con in cima il servomotore. Sul motore è fossato il tubo d’acqua proveniente dalla pompa, così si può ruotare il tubo di 180° per dirigere l’acqua in una bottiglia diversa. Sotto al tubo è presente un semicerchio in plastica diviso in spicchi di dimensione uguale (nel prototipo 10 spicchi di cui 8 utilizzati effettivamente). Ciascun settore del semicerchio si comporta come un imbuto, dirigendo l’acqua che riceve in una apposita bottiglia. Questo ci permette banalmente di prelevare l’acqua con la pompa e versarla in un bottiglia, poi spostare il tubo e versare in un’altra bottiglia fino a riempirle tutte.

Il semicerchio è realizzato, per ora, con un foglio di policarbonato pieghevole, e i settori sono costituiti mettendo delle barriere nel semicerchio. Dal fondo di ciascun settore esce un tubo che permette di inserire la bottiglia relativa a quel settore specifico. Il tutto tenuto assieme da colla a caldo.

Il codice è piuttosto semplice:

[code language=”cpp”]
//Codice realizzato da Luca Tringali – G.S. Talpe del Carso
//Rilasciato con licenza GNU GPL3
#include <Servo.h>

Servo myservo;

int start = 150;
int passo = 20;
int wflush = 0;
long timetofill = 60000;
long timetoflush = 10000;
long wait = 30000;

int ServoPin = 9;
int RelayPin = 8;

int pos = 0;

void setup() {
myservo.attach(ServoPin);
pinMode(RelayPin, OUTPUT);
}

void loop() {
for (pos = start; pos >= 0; pos -= passo) {
//Faccio scorrere l’acqua finché si vuota quella vecchia
myservo.write(wflush);
digitalWrite(RelayPin, HIGH);
delay(timetoflush);
digitalWrite(RelayPin, LOW);
//Mi sposto alla posizione giusta
myservo.write(pos);
delay(passo*10);
//Riempio la bottiglia
digitalWrite(RelayPin, HIGH);
delay(timetofill);
digitalWrite(RelayPin, LOW);
//Aspetto per il prossimo turno
delay(wait);
}
}
[/code]

La procedura prevede un ciclo che parte da 180 e sottrae 20 fino ad arrivare a 0, in modo da spostare il tubo di 20 gradi da un capo all’altro del semicerchio. Prima di cominciare a versare l’acqua in ciascun settore del semicerchio (e quindi in ogni bottiglia) si ruota del tutto il motore e si fa scorrere l’acqua per assicurarsi che il tubo sia pulito, in modo da evitare contaminazioni da precedenti prelievi. Poi il tubo ruota sullo specifico settore del ciclo attuale e si comincia a versare l’acqua. Si continua a tenere la pompa accesa per 60 secondi, in modo da essere sicuri che le bottiglie siano piene (in alcune l’acqua traboccherà, ma non importa). Poi si aspetta. Il tempo massimo che è possibile aspettare tra una iterazione e l’altra è 2147483647 millisecondi, cioè 596 ore (24 giorni). Questo è un video del funzionamento del prototipo:

La sperimentazione è appena iniziata, e ci sono sicuramente alcuni punti da chiarire: se il modello della scocca è già pensato per poterci facilmente aggiungere un ancoraggio da parete, visto che in alcune grotte non c’è un pavimento su cui appoggiare il macchinario, non è ancora chiaro quanto facile sia da trasportare. Inoltre, non è ancora chiaro quanto sia affidabile in merito alla durata delle batterie, e se abbia senso usare batterie ricaricabili. Un altro punto cruciale da capire è se si possa produrre facilmente il semicerchio già diviso in settori con una stampante 3D: la costruzione del semicerchio è la parte più lenta e più difficile da mantenere identica su tutti i macchinari che si costruiranno. Con una stampa in serie si potrebbero risolvere i problemi e, rendendo la separazione dei settori più regolare e netta si potrebbero avere molti più settori: al momento è possibile usarne al massimo 8-9, che con tre prelievi di acqua al giorno permettono di fare i campionamenti automaticamente per 3 giorni. Ma se si potesse spostare il tubo di 10° per volta, il numero di settori potrebbe raddoppiare. Tutto sta, quindi, nel capire quanto precisa possa essere la costruzione del semicerchio di imbuti per dividere l’acqua nelle varie bottiglie.