Go Down

Topic: [OT] richiesta di aiuto per programmino x Accordatore (Read 80019 times) previous topic - next topic

Campa1957

#60
Jun 09, 2013, 09:06 am Last Edit: Jun 09, 2013, 10:52 am by Campa1957 Reason: 1
Ciao a tutti,

l'inserimento binario, a mio modesto parere potrebbe avere pregi e difetti, sicuramente l'inserimento è più lineare, però gli inserimenti sono parecchi.

Sottolineo che la scelta di utilizzare 6 scalini è stata da me presa in considerazione al numero delle uscita di Arduino UNO, gli accordatori Belli hanno da 8 a 10 scalini, al fine di garantire un ROS ancora migliore ai nostri poveri TX.
Sicuramente l'idea di partire dal centro della tabella e decidere da che parte 'andare' magari utilizndo ancora con un po' di salti calcolati ottimizzerebbe di molto i tempi e gli inserimenti, però temo che le letture con valori molto alti di ROS possano essere poco affidabili sulla direzione che posso suggerire.

Nel caso si decidesse che le combinazioni di 8 oppure 10 scalini possono essere gestite senza grossi problemi SW il primo blocco (L) lo potrei testare su Arduino UNO e poi crescendo il progetto utilizzare un MEGA, spero di non aver detto un'ersesia ma mi sembra sia possibile migrare il SW da uno all'altro senza grossi problemi.

Non è da trascurare che i relè che lavorano in RF non gradisono tanti cicli di lavoro (sono sempre tirati per il collo, gli unici più robusti sono quelli sottovuoto, ma costano un botto!)

GrAzIe

Andrea

leo72

Oggi vedo se butto giù 2 righe di sketch (lavoro permettendo..  :smiley-roll-sweat:)

menniti

Con i normali accordatori la trasmissione avviene per tutto il tempo dell'operazione, il trasmettitore in questione è proprio un apparato, non è uno schedino, quindi bisognerebbe usare un altro relé per chiudere il contatto del microfono. C'è un periodo di stabilizzazione quando si avvia la trasmissione, complichiamo troppo la cosa, ma queste comunque sono finezze, una volta giunti a fine lavoro, possiamo poi correggere ogni cosa; il tempo del delay è indicativo, ma qui hai a che fare con RF non più con controllori, quindi la dilatazione dei tempi ci sta, in pratica è come se tu tagliassi il filo dell'antenna per inserire in serie un'induttanza, subito dopo il TX cambierà comportamento; se non metti un ritardo decente corri il rischio di fare una lettura falsata della "nuova" potenza e sballare tutto il restante procedimento; per ora lascia tranquillamente 2sec, consideralo una sorta di debug, sarà poi Andrea a dirci se si può diminuire e di quanto.
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.html
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html

paulus1969

Non ho esperienza di accordatori automatici, ho usato in passato quelli manuali (anche autocostruiti) quindi i miei riferimenti sono relativi alle operazioni che si eseguono quando si accorda manualmente.
In caso di ROS elevato non si tiene in TX più di alcuni secondi alla volta, a meno di avere dei finali valvolari che sono molto più resistenti.
Per questo proponevo quelle pause, anche per evitare che il trasmettitore fosse in TX durante le commutazioni. Ma si può benissimo mettere dopo, come rifinitura, con un altro PIN che pilota un circuitino che manda a GND il contatto del connettore microfono relativo alla commutazione TX/RX inserendo delle pause in caso di ROS elevato in modo da non sollecitare troppo i finali e mettendo invece pause brevi (solo durante le commutazioni) in caso di ROS più basso di una certa soglia - diciamo 2.2.

In ogni caso... sta venendo fuori veramente un bel progetto.


Campa1957

Ciao a tutti

Il tempo di ritardo mi serve anche in fase di prove con il prototipo per simulare la variazione dei due segnali di ingresso, uno generato da un potenziometro multigiri e l'altro dai vari scalini dei relè che inseriranno, sempre in fase di prototipo, delle resistenze.
Appena funzionerà il primo blocco di programma realizzerò un doppio accoppiatore RF per leggere segnali RF reali.

Per quanto riguarda i segnali in ingresso, bisogna lavorare per l'accordo solo in loro presenza, se mancano bisogna bloccare tutte le elaborazioni e non muovere nulla di quello già inserito e/o disinserito.

X Michele
A proposito del frequenzimetro di cui parlavi in post precedente, alla fine del progetto potrebbe essere utile integrarne una porzione..............
Ma per ora non mettiamo troppa carne sul fuoco!

Andrea


 

menniti


Oggi vedo se butto giù 2 righe di sketch (lavoro permettendo..  :smiley-roll-sweat:)

Tranquillo Leo, fai ciò che puoi, ma attieniti a quanto ho stabilito io per ora... ANdrea sta iniziando ad "allargarsi" e questo è un grosso errore in questa fase.

Andrea: leggi sopra... tutto ciò che affermi è probabilmente vero e realistico, ma qui stiamo partendo da 0 con un software che dovrà pilotare un apparecchio che non c'è (lo capisco ora, visto che parli di potenziometri e resistenze); spero che tu sappia cosa stai facendo con questa simulazione hardware, altrimenti quando passerai alla fase reale toccherà rifare tutto e lì io e Leo ti diamo giù un fracco di legnate, quindi regolati ]:D Il metodo di inserimento binario è quello migliore, l'altra possibilità costringe a tornare indietro un sacco di volte, quindi alla fine non cambia nulla; sta a te poi trovare la giusta combinazione delle 6 induttanze (il mio range 1 ÷ 63µH era un banale esempio). Anche la questione degli 8-10 gradini, con la MEGA potremo disporre di PORT interi ma sempre a 8 bit, con Arduino UNO siamo già al limite con la struttura che ho indicato. Anche qui partiamo da un minimo di funzionante e poi si vede.

Paulus: concrordo sulla pericolosità di un ROS elevato, questa è una cosa da tener conto in fase definitiva, prima di fare le prove con apparecchiature reali, e per quanto riguarda la pausa, come vedi, l'avevo già "acquisito" il tuo suggerimento.
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.html
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html

Maurotec

Purtroppo il rischio che l'intervallo tra una commutazione è l'altra sia dell'ordine dei secondi c'è, io penso che sotto il secondo non si può scendere. Per ridurre ancora almeno in teoria il tempo totale richiesto per trovare la migliore configurazione ci sono le solite strade da seguire. Per come si è partizionato il range da 0 63 in 2 partizioni  lo si può partizionare in 4, ma per scegliere la giustra strategia occorrono i dati reali di ROS, cioè occorre un database di ROS da studiare al fine di verificare come cambia nel tempo il ROS durante la ricerca in modalità sequenziale, cioè a step di 1uH o quello che sarà il minimo step scelto.

Ciò che occorre è un algoritmo di predizione ROS, e come tutte le predizioni può fallire, ma del fallimento l'algoritmo si può accorgere e provedere a fare una nuova predizioni basata sui stessi dati rilevati oppure con una correzione.

Ci possono essere alcuni dati costanti e alcuni dinamici che contribuiscono a calcolare la predizione. I dati statici vengono dedotti analizzando i dati reali di ROS e se possibile si ricavano queste costanti. Quelli dinamici vengono ricavati dal funzionamento dell'algoritmo. Insieme dati costanti e dinamici vengono usati da un algoritmo al fine di attuare una appropriata strategia.

64 / 4 =  16

range
0-15
15-31
31-47
47-63

commutazione a 15
misuraROS
commutazione a 31
misuraROS
continua fino a 4 misurazioni

Es valori campionati nelle quattro lettura di sopra 3.0 2.9 2.0 2.2
E chiaro che il miglior valore di ROS dovrebbe trovarsi nei dintorni della 32 configurazione, cioè si parte da 31 si incrementa o si decrementa fino a trovare il miglior ROS.

Bene o male che vada ci sono 4 + 16 commutazioni, ma è possibile fare un calcolo (2.9 - 2.0) e (2.0 - 2.2) per capire che prima devo decidere di commutare a salire da 2.0 verso 2.2, perche 0.9 > 0.2.

Tutta teoria di supposizioni senza studiare i dati reali tipici, qui @campa dovrebbe poter fare qualcosa no o chi per lui deve fornire un'insieme di dati su cui fare elucubrazioni mentali.


Quote
Andrea: leggi sopra... tutto ciò che affermi è probabilmente vero e realistico, ma qui stiamo partendo da 0 con un software che dovrà pilotare un apparecchio che non c'è (lo capisco ora, visto che parli di potenziometri e resistenze);

Rimane sempre il punto fermo fissato prima da Michele, cioè il codice al momento deve fare la commutazione sequenziale il logica binaria partendo da 0 o da 64/2, e non occore sia scritto alla perfezione permettendo ad esempio la modifica del solo algoritmo decisionale, va bene una accrocco limitato a fare da muletto, sarebbe però opporturno pensare di creare una collezioni di dati durante il funzionamento, o interna al micro oppure spedita via seriale senza prima collezionarla nel micro.

Soluzione che uso spesso:
myFunc(int8_t direction)
{
    static uint8_t counter = 0;   // mantiene il valore dell'indice o della configurazione
    if (direction)
         ++counter;
    else
         --counter;
   // meglio direction ? ++counter : -- counter;
  // meglio ancora se messo in una define
// nota che posso modificare direction in corsa, se devo condividere la direction con il chiamante direction deve essere
// globale o un puntatore.

}

Ciao.
 

Campa1957

Lontano da me l'idea di incasinare le cose..........  :)   :)   :)

Quote

Tranquillo Leo, fai ciò che puoi, ma attieniti a quanto ho stabilito io per ora... ANdrea sta iniziando ad "allargarsi" e questo è un grosso errore in questa fase.

Andrea: leggi sopra... tutto ciò che affermi è probabilmente vero e realistico, ma qui stiamo partendo da 0 con un software che dovrà pilotare un apparecchio che non c'è (lo capisco ora, visto che parli di potenziometri e resistenze);

Il mio progetto è ancora in fase di prototipo e il gioco con i potenziometri è solo per evitare al mio povero IC-706 troppe bastonate da parte dell'ormai famigerato ROS.
Quote

spero che tu sappia cosa stai facendo con questa simulazione hardware, altrimenti quando passerai alla fase reale toccherà rifare tutto e lì io e Leo ti diamo giù un fracco di legnate, quindi regolati smiley-twist Il metodo di inserimento binario è quello migliore, l'altra possibilità costringe a tornare indietro un sacco di volte, quindi alla fine non cambia nulla; sta a te poi trovare la giusta combinazione delle 6 induttanze (il mio range 1 ÷ 63µH era un banale esempio). Anche la questione degli 8-10 gradini, con la MEGA potremo disporre di PORT interi ma sempre a 8 bit, con Arduino UNO siamo già al limite con la struttura che ho indicato. Anche qui partiamo da un minimo di funzionante e poi si vede.

va benissimo ragionare sui 6 scalini!!!
Quote

Paulus: concordo sulla pericolosità di un ROS elevato, questa è una cosa da tener conto in fase definitiva, prima di fare le prove con apparecchiature reali, e per quanto riguarda la pausa, come vedi, l'avevo già "acquisito" il tuo suggerimento.

Il problema che sottopone Paulus è molto serio, però non si può pensare di mandare in trasmissione il TX a scatti, al massimo se le potenze in gioco sono elevate si potrà pensare di mandare all'accordatore solo una porzione di RF ma per ora pensiamo ad imbastire bene il nucleo principale del PRG poi ci ragioniamo.

Per gli esperimenti che ho fatto con il mio SW e da una mia sensazione alla fine il ritardo da inserire dopo l'inserimento di uno scalino sarà di alcuni millisecondi giusto il tempo di dare ad Arduino la possibilità di leggere e calcolare i nuovi valori.

Per quanto riguarda la realizzazione di un prototipo reale, voglio evitare, almeno per ora, la vicinanza fra radiofrequenza ed Arduino, prima lui deve funzionare bene, poi accoppiatore a toroidi e tante schemature per tenere ben lontana la RF dalla scheda e dai suoi accessori.

Andrea

Campa1957

Attenzione! ricordiamoci che l'accordo và comunque fatto "velocemente", un accordatore commerciale accorda al massimo in una manciata di secondi. Altimenti ti fumi i finali del Trasmettitore.

Andrea

Maurotec

Quote
Per gli esperimenti che ho fatto con il mio SW e da una mia sensazione alla fine il ritardo da inserire dopo l'inserimento di uno scalino sarà di alcuni millisecondi giusto il tempo di dare ad Arduino la possibilità di leggere e calcolare i nuovi valori.


Quindi se mi tengo largo è dico che ogni commutazione avviene ogni 100ms, 64 commutazioni richiedono (100*64)/1000= 6.4 secondi.
Allora se questi sono i tempi probabilmente la commutazione che parte da centro trova la configurazione migliore nel peggiore tempo di (100ms*32)/1000 cioè poco più 3.2 secondi.

Quote
Il problema che sottopone Paulus è molto serio, però non si può pensare di mandare in trasmissione il TX a scatti, al massimo se le potenze in gioco sono elevate si potrà pensare di mandare all'accordatore solo una porzione di RF ma per ora pensiamo ad imbastire bene il nucleo principale del PRG poi ci ragioniamo.


No no, parliamone adesso, perchè non so come questo sia possibile, spiega please.

Ciao.

Campa1957

#70
Jun 09, 2013, 02:54 pm Last Edit: Jun 09, 2013, 03:00 pm by Campa1957 Reason: 1
Quote

Quindi se mi tengo largo è dico che ogni commutazione avviene ogni 100ms, 64 commutazioni richiedono (100*64)/1000= 6.4 secondi.
Allora se questi sono i tempi probabilmente la commutazione che parte da centro trova la configurazione migliore nel peggiore tempo di (100ms*32)/1000 cioè poco più 3.2 secondi.

Dalle prove che ho fatto con il mio 'paciugo' penso che il tempo potrà essere ridotto ulteriormente, tieni anche conto che dopo le induttanza bisogna anche inserire i condensatori ed il tempo che hai suggerito si duplica.
Un accordatore commerciale nelle condizioni ottimali arriva all'accordo in un tempo max di 5-6 secondi senza usare artifici come meorie ed altre cosette che non ho ben capito.

Per quanto riguarda il trasmttitore dobbiamo ragionare che la radiofrequenza continui a rimanere presente e quando mancherà tutto si deve congelare nel punto in cui è arrivato. Al ritorno della RF se l'accordo è buono bene altrimenti resetta tutto e riparte tutto il calcolo.

I valori del ROS possono variare per mille motivi non prevedibili,e a parità di valore iniziale l'accordo potrà essere ottenuto con l'inserimento di combinazioni L C diverse, per cui va sempre ricalcolato.

Andrea

leo72

Ho buttato giù uno sketch grezzo.
Fa una prima taratura con gli induttori e poi con i condensatori.
Il ciclo è quello teorizzato da Michele e semplificato da Mauro: parte da 0 e poi accende binariamente i relé
00001
00010
00011
00100
00101
00110
ecc...

Provatelo perché:
1) non ho capito se ho... capito bene la logica di funzionamento
2) l'ho scritto senza provarlo in alcuna maniera per cui potrebbe anche impazzire
3) se funziona, adattatelo al vostro uso come megli credete
4) se non funziona, ditemi cosa devo correggere
:D

menniti

OK, scusate l'assenza forzata, ma nell'unico momento libero il Forum non funzinabava, ieri pomeriggio  ]:D
Andrea e Mauro: avete ragione entrambi, ma visto che siamo in fase di test inutile massacrarci alla ricerca di tempi supersonici, soprattutto perché il test viene fatto manualmente e non ci sono potenze e rischi di sorta.
Leo: grazie, sono certo che tutto andrà bene al primo colpo, ma Andrea deve iniziare a fare qualche test, allo stato vogliamo sapere solo se la procedura si comporta in maniera corretta, anche se io non ho capito niente di come il suo circuito reagirà in modo automatico alle variazioni delle induttanze, visto che lavora con partitori e potenziometri, ma certamente lui sa quello che fa. Hai detto di aver previsto i condensatori, ma è una situazione ancora da definire: alla prova del primo condensatore bisogna gestire anche il relé di commutazione, per vedere se il risultato migliore si ottiene collegando il C (ed i successivi) lato TX o lato ANTENNA, ossia PRIMA o DOPO le induttanze, non so se ciò ti fosse chiaro al momento.
Andrea: ora serve il tuo test, il ragionamento di Mauro, anche se ti sfugge il suo modo "C"iistico di comunicare, non fa una grinza, ed il suo sistema di indice ad albero (peraltro usato fino a non molto tempo fa per la gestione dei contenuti degli HD) è il più veloce possibile ed a prova di errore; a mio parere il modo di velocizzare seriamente la procedura, applicando il principio di Mauro, è quello di usare valori di induttanza più distaccati tra loro, e non differenziati di un solo µH ad ogni passaggio. Quindi gentilmente fai i test come si deve e poi riporta una relazione dettagliata, con una bella tabella di foglio elettronico nella quale riporti combinazioni, valori, tempi, risultati. Ciò che vuoi fare non è uno scherzo da ragazzini, richiederà parecchio tempo, e non è detto che si riesca alla fine; io sono ottimista, ma non dobbiamo perdere tempo in obiezioni e valutazioni inutili perché, ripeto, stiamo discutendo sulla base di un software appena nato e di un hardware che non esiste. A mio parere dovresti procurare un apparecchietto "muletto", mettere antenna ed accordatore(quello vero e funzionante), in modo da limitare all'origine il ROS ad un valore 2, che non romperà mai i finali, e collegarci in mezzo il circuito, facendo prove VERE, diversamente temo davvero l'insuccesso.
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.html
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html

menniti

Andre, sei rimasto fulminato al primo tentativo? :D Dai tira fuori i problemi che stai incontrando oppure dacci i primi risultati, siamo curiosi :)
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.html
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html

Campa1957

Ciao a tutti,
come ha detto Michele sono stato letteralmente fulminato dal lavoro di Leo72  :smiley-eek:

Vista la mia assoluta mancanza di esperienza di programmazione purtroppo non sono in grado di capire come inserire la lettura degli ingressi + calcolo della media (se necessario) + calcolo del ROS all'interno del lavoro di Leo.
Questo 'problema' logicamente mi impedisce di poter fare qualunque prova sul SW.
Per la parte HD ieri pomeriggio mi hanno consegnato gli ultimi due blocchi da 4 relè ed i relativi cavetti.
Spero di ricevere ancora un po di aiuto per poter iniziare a fare le prove, da parte mia garantisco che il progetto mi interessa molto.

Andrea


Go Up