Costruzione anemometro e banderuola

Ciao a tutti, girando su internet ho trovato dei kit anemometro da poter collegare con arduino, ma, al di là del costo 50-70€ i più economici, ho il dubbio che avendo già usato i timer interrupts, lavorando con gli user interrupt come indicano i vari codici che leggo possa entrare in conflitto nell'ipotesi, molto probabile, che uno venga chiamato durante l'esecuzione dell'altro.

Pertanto ho pensato di costruirne uno nel seguente modo:

Per la banderuola (spulciando i vari datasheet) pensavo di farla con un disco rotante fisso all'albero a cui collego il negativo e una rosa di resistenze poste ogni 22,5° (con un'areola di stagno o conduttore in modo da creare un cerchio), un secondo disco solidale al segnavento a cui collego il positivo e una spazzola che agisca sui contatti. L'analisi analogica della caduta di tensione mi indica la posizione.

per l'anemometro pensavo ad un'elichetta collegata ad un motorino brushless utilizzato come generatore, l'analisi della corrente generata mi da la velocità. Vorrei sapere se secondo voi la cosa può funzionare e soprattutto se conoscete un motorino brushless con poca resistenza. Inoltro il cavo per trasportare il segnale dovrà essere lungo circa 7m (altezza dell'albero della barca) perdo segnale secondo voi?

avete consigli?

Non so se il metodo del motorino funzioni, ma io piazzerei nell'anemometro un ATtiny85 opportunamente programmato che invia i dati a richiesta all'Arduino. Nel cavo devi fa passare Vcc, GND, e Tx, Rx per i dati.

Dato che sono oggetti che vanno all’esterno, e quindi esposti ad acqua ed umidita’ e smog, th sconsiglio le piazzuole con spazzole, a meno che tu non possa farle d’oro (il rame in quelle condizioni sarebbe ossidato in pochi giorni :wink:

Anche per l’anemometro sconsiglio il motorino … il sistema con cui le avevo costruite io era usando magneti e reed … quando le avevo fatte io i reed costavano uno sproposito, per cui li avevo recuperati, ma adesso praticamente te li tirano dietro (be, quasi :stuck_out_tongue: XD), quindi risultano abbastanza economici … se ne usi 8 per la banderuola, puoi discriminare fino a 16 settori della rosa dei venti, e per l’anemometro ne basta uno …

Ad esempio … per la banderuola li metti in cerchio, distanziati in modo che il magnete, passando vicino al contatto rivolto verso il centro del cerchio, causi sempre la chiusura di almeno un contatto (quando e’ in prossimita’ del reed) e di due contatti quando si trova fra due reed, cosi puoi discriminare 16 posizioni con il “trucco” dei valori resistivi … e per l’anemometro ovviamente un singolo contatto vicino alla ruota sul cui bordo metti alcuni magneti (anche solo 2 o 4) … se non hai troppa fretta cerco di farti un paio di disegni …

Per l'anemometro puoi anche usare una fotoresistenza e un led posti a cavallo di un disco con un foro. Con Arduino conti il numero di interrupt in un certo tempo e hai la velocità (più o meno).

C'è un bel progetto opensource per stamparsi in 3d banderuola: http://www.thingiverse.com/thing:42858 anemometro: http://www.thingiverse.com/thing:41367 e pluviometro: http://www.thingiverse.com/thing:119653

Con tutte le descrizioni del caso: anenometro: http://www.yoctopuce.com/EN/article/how-to-measure-wind-part-1 banderuola: http://www.yoctopuce.com/EN/article/how-to-measure-wind-part-1 pluviometro: http://www.yoctopuce.com/EN/article/how-to-build-an-usb-pluviometer

..ottimi spunti!

Led e fototransistor vanno bene, ma si potrebbero sporcare (polvere, smog, residui dell'evaporazione dell'acqua) ... reed e magneti non hanno questo problema, ed inoltre non necessitano di alcuna alimentazione da mandare ai sensori ;)

E poi ormai costano poco ... http://www.ebay.com/itm/10-pcs-Reed-Switch-Glass-N-O-Low-Voltage-Current-MKA14103-/251249833271?pt=LH_DefaultDomain_0&hash=item3a7fa83537 :P XD

Se proprio vogliamo essere precisi :grin: il magnete da mettere sul disco rotante pesa, va controbilanciato da un peso equivalente dalla parte opposta.

mastraa: per l'anemometro pensavo ad un'elichetta collegata ad un motorino brushless utilizzato come generatore, l'analisi della corrente generata mi da la velocità.

Se vuoi usare un motorino per leggere la velocitá non devi leggere la corrente ma la tensione senza carico. Visto che un motorino brushless é praticamente un motorino sincrono trifase puoi leggere direttamnete la frequenza e percui i giri.

Comunque condivido la preocupazone di Etemenanki sconsiglio qualsiasi soluzione che non sia ermeticamente protetta contro spruzzi d'acqua e umiditá percui contatti reed o sensori megnetici incapsulati.

Ciao Uwe

paolometeo2: Se proprio vogliamo essere precisi :grin: il magnete da mettere sul disco rotante pesa, va controbilanciato da un peso equivalente dalla parte opposta.

oppure per semplicitá monti 2 magnetini e sono subito bilanciati senza divntare matti a trovare il peso giusto. Avrai 2 impulsi per ogni rotazione. Ciao Uwe

uwefed:

mastraa: per l'anemometro pensavo ad un'elichetta collegata ad un motorino brushless utilizzato come generatore, l'analisi della corrente generata mi da la velocità.

Se vuoi usare un motorino per leggere la velocitá non devi leggere la corrente ma la tensione senza carico. Visto che un motorino brushless é praticamente un motorino sincrono trifase puoi leggere direttamnete la frequenza e percui i giri.

Comunque condivido la preocupazone di Etemenanki sconsiglio qualsiasi soluzione che non sia ermeticamente protetta contro spruzzi d'acqua e umiditá percui contatti reed o sensori megnetici incapsulati.

Ciao Uwe

Si scusa ho scritto corrente erroneamente, chiaro che leggerei la tensione! Ho letto di tanti avvertimenti sulla corrosione, innanzitutto questa parte di apparecchiatura andrebbe a 7 metri sull'acqua quindi non dovrebbe avere contatti diretti (salvo in caso di scuffia, non improbabile, ma in quel caso di problemi ne avrei ben altri visto che il costo del materiale in coperta è ben più importante dei 20-30 che costerebbe l'anemometro :grin: Infatti vorrei creare una sorta di circuito di alimentazione con un relè per chiudere in caso di elevato sbandamento Inoltre il tutto viene smontato dopo ogni allenamento e un colpetto di crc lo daremmo ogni volta. Le mie perplessità erano più tecniche e le espongo meglio che forse non le avevo fatte passare bene:

-mettere i magneti e quindi gli interrupt non rischia di creare contrasti con il timer interrupt utilizzato per altri sensori? -il sistema con l'ATtiny85 sarebbe una sorta di bypassaggio per questo problema? Puoi spiegarmi meglio come funziona? -il motore brushless rischia di essere tanto influenzato dall'atmosfera e quindi (con le tensioni molto basse) avere valori sballati di molto da giorno a giorno? -la tensione di qualche decina di millivolt, al massimo 150-200 con prove manuali, riesce ad arrivare abbastanza intonsa dopo 7 metri di cavo? (a parte che questo problema forse non c'è perchè io il sensore lo tarerei già col suo cavo)

Per leggere i magneti del pluviometro e dell'anemometro non so se ti serva per forza un'interrupt ... il pluviometro commuta una volta tanto, in base all'acqua che raccoglie (sempre che tu lo usi) e l'anemometro, be. magari quello si, ma ci sarebbe il modo di risolvere anche questa, dovresti solo usare un chip in piu.

Leggere un contatto aperto o chiuso crea meno problemi per il trasferimento dei dati, ma puo causare qualche problema per la programmazione, se il contatto devi convertirlo in un dato analogico ... mentre trasferire una tensione variabile da un sensore e' sempre un po un'azzardo, vuoi per i disturbi, vuoi per le possibili perdite, anche se la lettura di un pin analogico non ti costringerebbe ad usare un'interrupt (credo) ... quindi perche' non unire i due vantaggi, eliminando gli svantaggi ?

Usi un reed con due (o quattro, o sei, quelli che vuoi) magnetini sul disco rotante collegato all'anemometro, e porti il contatto on/off alla scatola dell'elettronica, poi qui usi un convertitore frequenza-tensione (un LM2907, o un LM331, o qualsiasi altro vuoi) per trasformare gli impulsi in una tensione da campionare ogni "tot" millisecondi da uno degli ingressi analogici ... ;)

Per i problemi dati dall'acqua, non c'e' bisogno di una scuffiata, pioggia ed umidita' atmosferica gia si arrangiano bene da soli :P XD ... poi considera che se stagni gli alberini, crei un'attrito che potrebbe falsarti le letture dell'anemometro ... meglio progettare gia da subito un sistema che risenta il meno possibile dei problemi, anche se lasciato a se stesso o se "annegato" occasionalmente (reed e magneti, una volta montati e "verniciati" con un po di mani di Plastivel o roba simile, anche se li anneghi continuano a funzionare ;) XD)

mastraa: -il sistema con l'ATtiny85 sarebbe una sorta di bypassaggio per questo problema? Puoi spiegarmi meglio come funziona?

Inserisci nella scatola dell'anemometro un po' di elettronica. Parlavo del tiny85 perché è piccolo e si programma facilmente anche tramite l'IDE di Arduino (opportunamente modificato). Fornendo una tensione al micro (Vcc e GND) gli puoi fare leggere in autonomia i dati dell'anemometro e l'Arduino dovrà preoccuparsi solo di leggere i dati quando vuole. Per il collegamento puoi usare un qualsiasi bus basato su 2 fili, tipo l'I2C per brevi distante o l'RS485. In definitiva, come detto prima, al sensore dovrà arrivare un cavo a 4 poli. 2 per alimentazione e 2 per dati.

Per la 485 ti serve un transrecevier che trovi anche in formato DIP.

Alla fine avrai un anemometro "smarty" con un proprio protocollo di comunicazione e una sua logica interna. Lo puoi fare anche per il pluviometro.

Pero', aspetta un'attimo ... che se ne fa di un pluviometro in barca ? (che oltretutto se beccheggia non potrebbe comunque essere preciso, visto che il "secchiello" oscillante se ne andrebbe dove vuole lui :P)

In questo topic mi sento tirato in causa (sarà la selezione per ADI fiv do febbraio XD ) Allora come detto la parte dell'anemometro semplici contatti reed e magnetini (se non vuoi spendere cerca un vecchio lettore cd, apri la campana del brushless interno, togli i magneti della campana e gli avvolgimenti di rame e ricavi i sensori reed all'interno, avrai il tutto già tarato per quanto riguarda i pesi ecc)

Riguardo la banderuola puoi invece usare il motore di un vecchio hd e sfrutti qui le spire, non so come spiegarlo bene ma cerca hdd jog wheel Arduino (in pratica i controller per dj hanno questa manopola ed è "simulabile" facilmente con un hd)

Però su che tipo di barca verrà montato il tutto? (Credo tu sappia bene che negli f18 molti non usano grilli per attaccare le drizze alle pinne delle rispettive vele perché fanno peso ;) )

Infine conta che la barca si muove quindi dovrai correggere l'errore del moto relativo, la cosa non è difficile, basta un po' di trigonometria ma se invece volete leggere il valore per tarare le vele beh è meglio farlo sul vento relativo (ma non troppo si sa che altrimenti i filetti si piegano :P )

Curiosità personale: siete un team di regata? Dove vi allenate? Io ho la fortuna di abitare in cima al lago di Garda quindi capisci con che vento mi alleno e soprattutto diverto :D

superlol: per l'idea dei supporti usando il motore disco del lettore CD, non e' male, non sono a prova di ruggine :P ma almeno sono sospensioni a cuscinetto (quelli vecchi) o a bronzina lunga (quelli recenti) ... per il motore HD, invece, devo deluderti, mi spiace ... quello e' semplicemente un brushless, puoi usarlo per simulare un'encoder, ma non ricavarci la posizione assoluta, solo il senso di rotazione e la velocita' a cui lo ruoti ...

In compenso, sempre per il fatto di essere un'unita' meccanica con sospensione (di solito) a cuscinetti (a parte i catorci WD che usano bronzine :P XD) puoi usarlo come supporto meccanico per il magnete che dovra' azionare i reed, quello si ... ma anche il motore di un floppy, che usa una sospensione decente pure lui, va bene ...

Riciclate gente, riciclate ... ;)

Allora io mi son già messo all'opera e ho acquistato qualche Attiny85, un paio di 'interruttori' magnetici tipo contachilometri della bici e ho imparato a programmare l'attiny

Allora, scusate se vi stresso, la tecnica con cui dovrei lavorare (almeno al momento che non ho l'LM331 o l'altro) sarebbe quella di contare le volte che il magnete chiude il circuito giusto? Quindi 'salvare' il mio valore e poi leggerlo dall'Arduino

Per il primo pensavo all'interrupt, si può fare col pin0 dell'Attiny85 no? Per il secondo dovrei utilizzare l'I2C corretto?

PS superlol ti rispondo in privato sulla questione vela

mastraa: Allora io mi son già messo all'opera e ho acquistato qualche Attiny85, un paio di 'interruttori' magnetici tipo contachilometri della bici e ho imparato a programmare l'attiny

Allora, scusate se vi stresso, la tecnica con cui dovrei lavorare (almeno al momento che non ho l'LM331 o l'altro) sarebbe quella di contare le volte che il magnete chiude il circuito giusto? Quindi 'salvare' il mio valore e poi leggerlo dall'Arduino

Per il primo pensavo all'interrupt, si può fare col pin0 dell'Attiny85 no? Per il secondo dovrei utilizzare l'I2C corretto?

PS superlol ti rispondo in privato sulla questione vela

il forum ha trattato molte volte (ma proprio molte) quello che chiedi e anche di più, passare 2 mesi a leggersi tutto il forum attuale ed anche quello vecchio è il minimo che uno deve fare se vuole veramente capire tutto ;)

Girando un po' sono riuscito a compilare lo sketch e fare delle prove che lato software funzionano!

Ora ho solo un problema, ho comprato dei magneti contact switch da robot-italy (codice 193560), utilizzando l'interrupt (sia su arduino, sia sull'ATtiny) il 90% delle passate mi cambia di stato 3 volte, il 6-7% me ne conta due, poi altri mi fa errori dovuti probabilmente a problemi con il meccanismo provvisorio.

Qualcuno sa dirmi se è normale?

Inoltre dove trovo un elenco dei vari microprocessori tipo attiny programmabili via arduino? :)

Gli ATtiny non sono programmabili con l'IDE originale. Gli va aggiunto un core specifico, comprese le varianti per la definizione dei pin e le board. Ci sono molti topic che parlano dell'argomento e credo una guida sul sito di Leo (http://www.leonardomiliani.com/). Quello programmabili dopo modifiche sono il 24/44/84, il 25/45/85, il 2313 e il 4313.

Alla fine sono da preferire l'84 e l'85.

Per i cambi di stato multipli, non so se puo essere un problema di rimbalzi, ma li hai messi i condensatori e le resistenze come antidisturbo sugli ingressi, vero ?