Inseguitore solare deterministico

Salve a tutti,

è il mio primo topic che apro (ho fatto la presentazione come da indicazioni , spero di non aver tralasciato niente, nel caso mi scuso a prescindere per eventuali mie mancanze) ho dato uno sguardo ai vari topic riguardanti gli inseguitori solari, ma al momento non ho trovato tutte le risposte di cui avrei bisogno.
Ho trovato interessante questo sotto, anche nel mio inseguitore ho comprato un pan-tilt di quelli indicati.

Il mio progetto è il seguente.
Un inseguitore solare di tipo deterministico, quindi senza fotoresistenze, su due assi, che presenta un monitoraggio della corrente tramite un sensore di corrente di Hall ACS712. Pensavo di collegare anche un RTC DS3231 per avere sempre l'ora a disposizione visto che l'inseguitore si baserà su un movimento azimutale dovuto all'orario (dall'alba al tramonto dovrà ruotare di 180° divisi ovviamente negli step necessari) e per la parte zenitale partirà da un'altezza base e si alzerà fino a che la derivata della corrente non diventa negativa, a quel punto inizierà ad abbassarsi.
Il pannello è un 10w dal peso di 180gr (17x20cm circa) di quelli utilizzabili da viaggio con porta usb ed il jack 2.1 (al quale ho comprato un adattatore con 2 morsetti).
I servo utilizzati sono degli MG996R ma ho acquistato anche dei classici SG90 perché se riesco a risparmiare potenza li preferirei, ma non so come fare i calcoli per il momento torcente. Pensavo di dover considerare solo il momento dovuto alla forza peso M = P x braccio, in quanto l'inerzia è trascurabile su movimenti così lenti, ma anche nel gruppo telegram mi è stato detto che non è sufficiente perché tutto dipende dal baricentro (infatti sarei interessato anche a come calcolarlo fisicamente).

Sono nuovo con Arduino quindi ho comprato il kit starter e ho iniziato a fare un po' di prove guidate come consigliato anche qui sul forum.

I miei dubbi al momento sono questi:

  1. circa il topic allegato sopra "posizionando sotto il baricentro del pannello si riducono drasticamente gli sfrorzi dei servo. Il peso sul pan si scarica sull'asse stesso, mentre quello del tilt, essendo bilanciato, compie uno sforzo minimo."
    Potrebbe andare bene come da foto allegate? C'è un modo analitico per stabilirlo, traccio le diagonali del pannello e mi posiziono una certa percentuale sotto?

  2. Come faccio i calcoli per capire se l'alimentazione a 5V di Arduino è sufficiente per i miei 2 servo e per il sensore di corrente? Ho letto anche dei motor shield da agganciare sopra, hanno senso con soli 2 servo? Siccome dovrei fare prove all'aperto l'idea iniziale era quella di usare solo un'alimentazione dalla porta USB ma non so se è sufficiente. Teoricamente i servo consumano molto in running 500-900mA ma siccome parliamo di movimenti di 1 grado ogni 5 min circa (credo, devo ancora fare i calcoli) per la parte azimutale mentre molto meno per quella zenitale, penso che posso considerare quasi solo la corrente di riposo (10 mA). Sono proprio agli inizi con la progettazione anche se questo progetto è una tesi di laurea (ho lasciato gli studi e ripresi solo dopo circa 10 anni, quindi sono molto arrugginito).

  3. Pongo anche questo quesito, ma ammetto che ancora non l'ho affrontato, a breve farò le mie considerazioni in merito. C'è un modo per capire a che angolazione si trova il servo in modo tale da inizializzarlo ogni volta che si fa ripartire e sapere esattamente a quanti gradi è posizionato?

Grazie a tutti

  1. Non mi pare difficile trovare il baricentro del pannello con buona approssimazione. È un pannello quasi piatto, quindi, come dici, traccia dua diagonali e trovi il (bari)centro. Se poi vuoi essere preciso, appoggi il pannello su uno spigolo e, per ognuno dei tre assi trovi l'equilibrio. Il baricentro passa per ognuna delle tre verticali.

  2. Posso dirti che per l'alimentazione dei due servo NON PUOI usare i 5V dell'Arduino, se non per prove a vuoto, cioè con i servo SENZA carico (e anche qui non sono sicuro). Occorrono alimentazioni più robuste, almeno da 2-3 A perché i servo allo spunto possono far reinizializzare Arduino.

  3. Se intendi che vorresti riposizionare i servo all'ultima posizione prima dell'interruzione di corrente, devi mantenere in memoria una variabile che tenga memoria delle variazioni degli angoli, e scriverla in EEPROM tutte le volte che varia. Alla riaccensione leggi la posizione dalla EEPROM e riposizioni i servo.
    Se invece intendi come conoscere la posizione dei servo all'accensione, con quei servo non è possibile interrogarli, e quindi farsi dare la posizione.

Ciao,
P.

ti ringrazio mille per la risposta. Solo alcune puntualizzazioni, perchè probabilmente mi sono espresso male su alcuni punti, vado per punto:
1)diciamo che mi era chiaro come trovare il baricentro su un rettangolo XD, sono un po' sprovveduto sicuramente ma fino a questo punto ci sono :smiley: . La mia domanda era questa, io ho sentito molto parlare di strutture bilanciate, e nello stesso topic che avevo allegato si parlava di quello. Ora il mio dubbio è capire come posizionare il pannello sul supporto considerando che non sarà in posizione perfettamente orizzontale ovviamente, quindi capire se c'è un modo analitico per posizionare il pannello e fare in modo che i servo lavorino il meno possibile.
2)anche su questo punto vorrei capire a livello analitico se c'è un modo per fare i conti. La corrente di running è quella che il servo utilizza in movimento, è corretto pensare che nel caso di un inseguitore solare deterministico dove i movimenti sono molto lenti posso trascurare questa corrente e prendere in considerazione quasi solo la idle o diciamo una media proporzionale con quella di running? Nel caso volessi capire che alimentazione esterna associare ai servo in che modo potrei definirlo? In ogni caso a me servirebbe un'alimentazione portatile perchè dovrei portare il mio inseguitore in un parco per fare dei test efficaci. Cosa potrei utilizzare nel caso?
3) chiarissima. Esistono dei servo che restituiscono invece anche la posizione dell'angolo nel caso (in questo range di coppia?
Grazie ancora

>giovanni90_s: ... un paio di segnalazioni:

  1. per evitare un fastidioso "bug" del forum ti prego di leggere e di tenere conto, per il futuro, di quanto scritto QUI.

  2. Quando si quota un post, NON è necessario riportarlo (inutilmente) tutto; bastano poche righe per far capire di cosa si parla ed a cosa ci si riferisce, inoltre, se si risponde al post immediatamente precedente, normalmente NON è necessario alcun "quote" dato che è sottinteso. :slight_smile:
    Gli utenti da device "mobile" (piccoli schermi) ringrazieranno per la cortesia :wink:

Grazie,

Guglielmo

P.S.: in realzione al punto 1. ho già corretto io il tuo post ed in relazione al punto 2. ho eliminato il QUOTE qui sopra :wink:

Grazie mille, mi scuso per gli errori.

giovanni90_s:
3) chiarissima. Esistono dei servo che restituiscono invece anche la posizione dell'angolo nel caso (in questo range di coppia?

Non che io sappia, forse quelli digitali, ma ad ogni modo a cosa servirebbe?
Se la posizione dei due servo è funzione di azimut ed elevazione i quali sono determinati con un calendario prestabilito non hai bisogno di conoscere o memorizzare l'attuale posizione in EEPROM.
Se manca corrente, ti basta aggiornare giorno/ora e riposizioni i servo dove devono stare, fine.

grazie mille della risposta. Per la parte azimutale sono perfettamente d'accordo. Per la parte zenitale (l'elevazione) in realtà avrei difficoltà per quanto riguarda il cambio inclinazione. Mi spiego meglio, definito il valore ottimo di rotazione per l'elevazione (diciamo 1 grado ogni 30 min come esempio), il cambio rotazione (alto->basso) dovrebbe avvenire quando il sensore di corrente ACS712 mi fornisce una derivata della corrente in uscita dal pannello negativa. Ma ragionandoci con quanto mi ha detto anche se non conosco l'orario , lo potrei ricavare da calendari standard sicuramente ed è sicuramente una soluzione per rinizializzare il tutto nel caso Grazie ancora.

Per quanto riguarda il calcolo delle correnti l'esperienza mi ha insegnato che quando hai a che fare con assorbimenti improvvisi, come quelli dovuti a motori o a moduli che contengono sistemi di trasmissione, cercare di calcolare l'assorbimento con precisione è inutile, perché dall'altra parte ci sono sistemi a microprocessore che sono sensibili a 'buchi' di alimentazione anche brevissimi e a disturbi elettromagnetici generati da questo tipo di periferiche.

Ho concluso che è meglio prevedere un assorbimento massimo, sommando (con giudizio) gli assorbimenti dei componenti e aggiungendo un 20-30% per sicurezza. Spreco di risorse? Può darsi, ma gli strani casini che ti può provocare un'alimentazione appena sufficiente superano ogni fantasia.

Per le realizzazioni portatili come alimentazione uso Power Bank. Sono ricaricabili con comuni ricaricacellulari e puoi usarne anche uno per ogni periferica energivora.

Ciao,
P.

Grazie mille per la risposta. Avevo pensato anche io alle powerbank. Ma come si collegano ai servo? Ho una powerbank che ha un uscita USB. Esistono degli adattatori USB - morsetti?

Mi sono risposto con questo post:

Prendo un cavo USB lo taglio e prendo i 2 cavi V+ e V-

Ci può essere un problema.

Se l'assorbimento dai 5V cala sotto un certo livello (qualche decina di mA) ci sono Power Bank che interrompono l'erogazione, pensando che il telefonino collegato abbia la batteria carica.

In generale io 'cannibalizzo' il Power Bank, tolgo il modulino caricatore-stepup e metto questo come caricatore e questo come stepup. Così posso avere una tensione di uscita anche differente dai 5V. Occorre solo stare attenti che la batteria non si scarichi troppo, ma un microprocessore (che c'è sempre) può tenere sotto controllo la tensione della batteria stessa.

Ciao,
P.

Aggiungo questa considerazione oltre ai vari punti indicati sopra. Per alimentare i servo mg996r potrei utilizzare questo pacco di batterie al litio ricaricabili

tramite TP4056 collegandole al pannello solare per essere anche ricaricate?
Quindi riepilogo: batterie al litio collegate tramite TP4056 al pannello solare e ai servo (teoricamente tra il pannello solare e le batterie ci sarebbe anche il sensore ACS712)?

L'idea sarebbe di alimentare solo i servo, mentre la scheda e il sensore di corrente verrebbe alimentato dalla porta USB.

Se non sbaglio, per il momento sappiamo solo che vuoi costruire un inseguitore solare deterministico, ma non sappiamo per cosa fare, cioè non sappiamo quale sarà l'applicazione, perché non penso che tu voglia costruire qualcosa che 'gira' insieme al sole solo per guardarla girare (e anche così dovresti essere molto, ma MOLTO paziente).

Da qui non possiamo dirti se il tipo di alimentazione va bene, o è sufficiente, o per quanto tempo. Non sappiamo neppure a che tensione lavora il pannello (anche se si ipotizzano 12V, vista la presenza di una presa USB). Inoltre la ricarica di batterie al Litio necessita di un ricaricatore apposito. La presa USB del pannello fornisce solo 5V. Difficile ricaricare una 6V con 5V. Il modulo con TP4056 mi risulta adatto alla ricarica di batterie LiPo a 1 elemento (3,7V nominali) e non per quella batteria AL LITIO (NON LiPo) da 6V che è composta da due batterie CR123A in serie. Non sappiamo neppure di quanta autonomia hai bisogno e quante sono (se ci sono) le altre 'cose' che compongono il progetto.

Come vedi c'è molta oscurità e poca luce. Mi fermo qui.

Ciao,
P.

Grazie mille per le correzioni. Allora: il pannello è un 12Volt come supposto, 10Wdi potenza . Il progetto è puramente didattico, non ha uno scopo preciso, o meglio lo scopo è capire che beneficio ottengo tra un inseguitore deterministico e un pannello fisso. Per rendere il progetto più interessante stavo pensando di utilizzare il pannello anche per qualcosa e non solo per misurare la corrente in uscita e fare un confronto. Quindi siccome ho ancora il dubbio su come alimentare i miei servo pensavo di prendere "2 piccioni con una fava" XD. Sono proprio alle prime armi con Arduino ma in generale con l'elettronica "pratica" (fino ad adesso tutta teoria). Sto leggendo come da indicazioni in altri topic "imparare l'elettronica partendo da zero" (anche se non parto da zero).
Il pannello oltre ad avere la presa USB ha anche il jack 2.1. Pensavo di utilizzare quindi questo adattatore:

https://it.rs-online.com/web/p/connettori-jack/8104595/?cm_mmc=IT-PLA-DS3A--google--CSS_IT_IT_Connettori_Whoop--(IT:Whoop!)+Connettori+Jack--8104595&matchtype=&pla-362265064714&gclid=CjwKCAjwr_uCBhAFEiwAX8YJgXnfe8-PaNtuzGfRG8Qv2fT5SbaoEY_7mGe1GEc7lWRUEJ1BpPD0fBoCQRwQAvD_BwE&gclsrc=aw.ds

Vorrei realizzare uno schema per rendere più chiaro a tutti i lettori, ci sto provando con KiCad ma ho un po' di difficoltà. Proverò con altro. Appena posso lo posto.

I miei dubbi al momento sono i seguenti, solo come recap:

  1. Come alimento i Servo? Potrei usare 4 batterie ricaricabili da 1,5 V per ottenerne 6 (anche se ho letto che con quelle ricaricabili si arriva a 4,8 v se non sbaglio). In ogni caso la tensione di alimentazione dei servo è tra 4,8 e 7 V quindi dovrebbe andare bene.
    2)Se invece volessi fare in modo che l'energia che consumo per il movimento dei servo venisse recuperata tramite il pannello? Meglio delle LiPo? come faccio ad alimentarle a partire dal pannello? Il sensore TP4056 è per le LiPo ma siccome ho bisogno di 6V per i servo, come posso gestirlo ? (in più il pannello è a 12V)

Mi scuso per l'eventuale confusione, non cerco di certo qualcuno che faccia il progetto al posto mio, ma solo un po' di comprensione possibilmente.

pgiagno:
... due batterie CR123A in serie ...

Occhio ... CR123 da 3.6V, sono ricaricabili ... CR123A da 3V NON sono ricaricabili, e potrebbero esplodere se si cerca di ricaricarle ... il che, di solito, non e' un bene ne per il progetto, ne per chi ci sta intorno ... :wink:

P.S. quelle da macchina fotografica da 6V NON sono ricaricabili ...

questa sarebbe la soluzione senza ricarica. I collegamenti vi risultano corretti? Arduino sarebbe alimentato tramite porta USB e quindi anche il modulo ACS712. Il modulo RTC ha una pila integrata quindi in realtà non ha bisogno di alimentazione, ma volendo posso utilizzare sempre la 3.3V di Arduino.

Presto posterò anche la soluzione con ricarica di un pacco di batterie ricaricabili, appena riesco a capire quali scegliere e come dimensionarle.

Aggiungo questa cosa.
Ho trovato questo modulo già fatto, che gestisce una tensione in input fino a 24V (quindi nessun problema con il mio pannello da 12V) e in output fornisce già la 5V fino ad 1 A. Se utilizzassi questo per alimentare i miei servo? 1 A mi sembra abbastanza. Cosa ne pensate?

giovanni90_s:
Il modulo RTC ha una pila integrata quindi in realtà non ha bisogno di alimentazione,

In realtà la pila è solo di backup, non alimenta il circuito. Quindi devi alimentare anche il modulo RTC.
Per quanto riguarda l’alimentazione 1A è poco perché gli MG996R hanno una corrente di “running” di crica 500/900mA (in funzione della coppia resistente ovviamente).

Io fossi in te mi lascerei un po’ più di margine. Ad esempio hai valutato l’uso di un pacco batteria da modellismo da 7,2/8,4V con l’aggiunta di un BMS 2S per la ricarica?

Quindi il tuo progetto consiste nel confrontare la corrente erogata da un pannello che si orienta in maniera deterministica verso il sole, rispetto a un pannello in posizione fissa. La differenza è data dalla potenza impiegata per posizionare i servo, più il modulo ACS712-5A, più il modulo DS3231, mentre mi sembra che non vuoi tener conto di quella impiegata per tenere acceso Arduino, in quanto alimentato direttamente da USB. Nel caso del pannello fisso non ci sarebbe consumo né da parte dei servo, né da parte del modulo DS3231, mentre il modulo ACS712-5A sarebbe necessario per misurare la potenza erogata dal pannello in posizione fissa.

Prima di pensare a come alimentare i servo, penserei a come misurare l'energia consumata (tensione x corrente x tempo) perché Arduino può fare solo misure puntuali di tensione e di corrente. Si tratta di stabilire come e quando fare quelle misurazioni e come integrarle nel tempo.

Io comincerei con lo scindere la potenza erogata dal pannello da quella consumata dai servo. Quindi chiuderei il circuito del pannello SOLO su una resistenza di valore noto e misurerei a cadenza regolare la tensione ai capi della resistenza, ricavando la corrente che vi circola con la legge di Ohm. L'intervallo fra queste misurazioni, essendo la tensione lentamente variabile nel tempo, può essere abbastanza lungo. Diverso è il discorso sul consumo dei servo. È vero che la tensione di alimentazione può essere considerata costante (ad es 6V), ma occorre misurare sia la corrente che assorbono NEL MOMENTO IN CUI SI MUOVONO, sia il tempo durante il quale la assorbono, mentre la corrente e il tempo a riposo sono rilevabili separatamente. È necessario quindi che il programma su Arduino esegua misurazioni di corrente sui servo SOLO quando si muovono e ne esegua molte alla cadenza più rapida possibile, in modo da poter cogliere anche eventuali picchi di assorbimento, anche se su questo punto non farei molto affidamento.

In conclusione occorre una misurazione di tensione proveniente dal pannello, da eseguire con un partitore resistivo e una misurazione di corrente relativa alla corrente assorbita dai DUE servo. La prima può essere fatta a intervalli regolari, mentre la seconda deve essere fatta a cadenza rapida, misurando anche il tempo di azionamento, per poter calcolare l'energia consumata.

In un secondo tempo fai la misurazione dell'energia erogata dal pannello in posizione fissa e ottieni il risultato che volevi.

Ciao,
P.

cotestatnt:
Io fossi in te mi lascerei un po' più di margine. Ad esempio hai valutato l'uso di un pacco batteria da modellismo da 7,2/8,4V con l'aggiunta di un BMS 2S per la ricarica?

Grazie mille della risposta, per quanto riguarda il pacco batterie, sinceramente non vorrei spenderci tanto. Ho provato a cercare quello che mi hai indicato e vedo prezzi superiori a 20 euro. Ho sbagliato io? L'idea mia sarebbe sicuramente rendere più completo il circuito ma pur sempre per uno scopo didattico. Non c'è un modulo di ricarica con una tensione in input fino a 12V (come quella del pannello) e tensione di output di 5V per un pacco di batterie che arriva fino a 2A? Nel caso come potrei collegare qualcosa del genere?
https://www.amazon.it/Hootracker-2400mAh-Rechargeable-Battery-Vehicles/dp/B085WVX3L1/ref=sr_1_5?dchild=1&keywords=batterie+nimh&qid=1616954252&sr=8-5
Nel forum vedo che le LiPo per chi è alle prime armi sono molto sconsigliate per eventuali esplosioni

pgiagno:
chiuderei il circuito del pannello SOLO su una resistenza di valore noto

grazie mille per la spiegazione. E' esattamente quello che vorrei fare. Non capisco perchè utilizzare la resistenza di valore noto. L'idea iniziale era di utilizzare il sensore di corrente ad effetto Hall ACS712 per le varie misurazioni. Non è superflua la resistenza? o mi sto perdendo io qualche pezzo?

Quello che vuoi misurare è la differenza di energia fornita da un pannello con direzionamento deterministico e quella fornita da un pannello con direzionamento fisso.

Se tu misuri l'energia data dal pannello con direzionamento deterministico attraverso il consumo dei servo e dell'ACS712, con cosa la paragoni nel caso del pannello con posizionamento fisso?

Oppure, ancora, mi sono perso qualcosa io, e non è questo quello che vuoi fare?

Ciao,
P.

giovanni90_s:
sinceramente non vorrei spenderci tanto.

Dipende molto da dove vuoi comprare, ma un BMS-2S tipo da 10A sta sui 6/7€ su estore "costosi" come Amazon o simili.
Per quanto riguarda le batterie, puoi anche semplicemente prendere 2 stilo 18650 e le metti in serie (usando i portabatterie predisposti o quelle con le linguette, non fare MAI saldature a stagno sulle batterie!!!)
Non hai qualche vecchio elettrodomestico/trapano/portatile a batterie che non usi più? il 99% delle volte i pacchi batterie sono fatti da una combinazione serie/parallelo di 18650.
Moduli già pronti sono quasi certo che esistano pure, ma non saprei cosa consigliarti, mi spiace.