Go Down

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

lestofante

Quote
ma in questo modo si perdono le funzionalità di GIT o no?

no perchè? ricorda che git funziona più come peer-to-peer, dove ognuno ha il suo repository, il fatto che poi uno di questi sia scelto come "principale" e stia su un server dedicato è poca roba(Infatti puoi specificare più remote oltre ad origin).
Probabilmente ogni modifica è presa come un commit separato.

Quote
non sono più in sincro e quindi si deve aggiornare il remoto.

no, devi aggiornare il locale con una fetch, poi se sui sovrascrivere il locale con il remoto fai la pull.

Ma in generale questo problema non si pone se lavori in modo corretto, avero creando il tuo branch che poi mergi sul master. In generale il master dovrebbe sempre essere compilabile e funzionante, mentre tutti i lavori si fanno su branch semparati (vedi su github il grafico merge di arduino, per avere un'idea di cosa sto parlando: c'è il master che è fermo alla 1.0.5, se non erro, poi vari rami con modifiche alla Serial, al network, il cuore della 1.5.0 etc..)
Guida per principianti http://playground.arduino.cc/Italiano/newbie
Unoffical Telegram group https://t.me/genuino

Maurotec

Non ho capito, cioè io uso il sistema tradizionale, ho il repo locale che ha un ramo che è sempre in sincro con il repositor remoto, alcuni rami locali non sono presenti nel repo remoto, perchè magari sono di transito per la sperimentazione e poi dopo il merge il ramo viene rimosso. Ora mi sembra di capire che con il browser non si agisce sul repo locale, cioè apporto modifiche al ramo locale è effettuo il commit sempre locale, poi se voglio aggiornare il ramo stabile con le modifiche faccio il merge sempre locale, e poi aggiorno il repo remoto.

L'ideale sarebbe una interfaccia web che mi permetta di gestire il repo indifferentemente che sia remoto o locale, in questo modo si usa solo una interfaccia web indifferentemente dal sistema operativo, se tramite github fosse possibile sarebbe l'ideale.

Ciao.

lestofante

la commit agisce solo in locale, è la push che manda anche sul remoto. Quindi puoi avere rami sia in solo locale che anche in remoto. Il "master" è un ramo come un altro, a parte il fatto che è quello di default siamo noi a dargli un significato particolare
Guida per principianti http://playground.arduino.cc/Italiano/newbie
Unoffical Telegram group https://t.me/genuino

Campa1957

Ragazzi....................
NoN fate le cose troppo difficili..........

Prometto che se c'è qualche allegato su Arifidenza lo posto anche qui

Andrea

Campa1957

Ciao a tutti,

finalmente sono riuscito a verificare il funzionamento dell'insieme SW + HD.  :)  :)  :)

Riepilogo del modo in cui ho fatto la prova:
Il segnale potenza diretta è generato mediante un potenziometro da 10K con gli estremi collgati a +5V e 0V, il segnale è prelevato dal centrale.
Per il segnale della riflessa ho collegato 6 resistenze da 1,2K ai contatti NC dei relè, collegando un capo della catena a 0V e l'altro attraverso una resistenza da 1,2K al 5V.

Risultato:
Dopo aver scansionato parecchie combinazioni, si riesce quasi a trovare un punto 'di accordo' solo se il segnale della potenza diretta è pari al 50% della tensione di alimentazione, restano abilitate due sole uscite, però dopo il ritardo inserito per la lettura del led di stato vengono abilitate tutte le 6 uscite su cui lavorano le resistenze ed il tutto si ferma.

Questi sono i primi risultati, proverò, spero domani, cambiando i valori delle resistenze e mettondoli scalati a vedere cosa cambia nell'inserimento.

Campa1957

Campa1957

#125
Jul 20, 2013, 04:09 pm Last Edit: Jul 21, 2013, 10:52 am by Campa1957 Reason: 1
Domanda per Leo72,

Leggi il mio post seguente (Aggiornamento 1)

grazie

Campa1957

menniti

Leo è in ferie, anche se ogni tanto una sbirciata la dà al Forum, non so se sarà in condizioni di darti una risposta esaustiva, mi sa che stavolta dovrai aspettare tu... comunque la situazione mi sembra già abbastanza buona :)
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

Beato lui!!!

Visti i miei di tempi non mi posso certo lamentare se Leo tarda a respondere  :)  :)  :)

Campa1957

Campa1957

#128
Jul 21, 2013, 10:13 am Last Edit: Jul 21, 2013, 12:28 pm by Campa1957 Reason: 1
Aggiornamento 1

a) fra la scheda di Arduino e la schedina dei relè ho inserito un ULN2803 (8 buffer invertente) utilizzato solo per le 6 uscite gestite fino a questo momento. La modifica è stata inserita inquanto la schedina dei relè inverte lo stato del segnale in uscita da Arduino.
b) ho collegato le resistenze di simulazione del ROS sui contatti NA dei relè, nella realtà le induttanze dovranno essere collegate sui contatti NC però a me questo serve per poter far variare il segnale nel modo giusto.

Il funzionamento è il seguente:

Inserisce tutte le combinazioni fino ad arrivare ad un valore di ROS, che le leggo con il mio vecchio programmino, inferiore a 1.45 impostato come soglia, però dopo il tempo di attesa
Code: [Select]
delay(1000); //faccio leggere il led di stato resetta tutte le uscite.
Le uscite, anzichè resettarsi, dovrebbero comunque restare inserite inquanto anche se il risultato non è ottimale sarà sempre meglio del valore di ROS iniziale. Al massimo si potrebbe attivare un'uscita con un piccolo buzzer che segnala il mancato raggiungimento del valore minimo impostato.

Aggiornamento 2

Ho cambiato il partitore resistivo ed il risultato non cambia!
Arriva ad un punto di 'accordo' aspetta 1 secondo e resetta le uscite.


Spero di essere stato chiaro nella mia spiegazione,
un grazie anticipato a chi mi darà ulteriori consigli ed in particolare a Leo72 che se ne è in vacanza (beato lui!)

Campa1957

camperos

solo come prova,
fai come la mia prima risposta di questo thread,
inserisci tutte le combinazioni, memorizzi il minimo ROS,
ripeti tutte le combinazioni fino a quando non ritrova il ROS minimo,
poche righe di codice,
puoi inserire un valore da non oltrepassare

è solo una prova, poco tempo
--------------
ho costruito un misuratore di campo low cost 500Mhz(arduino +pochi componenti+lcd)
antenna digitale terrestre motorizzata (motore quasi da robottino)
prima passata memorizza il segnale piu forte,
seconda passata(con qualche gradino in meno) ritrova il segnale memorizzato e si ferma.
il procedimento dovrebbe essere quasi uguale
https://www.youtube.com/watch?v=RR-xsS2xUzc

Campa1957

#130
Jul 21, 2013, 03:59 pm Last Edit: Jul 21, 2013, 08:31 pm by Campa1957 Reason: 1
Ciao Camperos,

grazie del tuo suggerimento!

ma non sono in grado di scrivere le poche righe di cui parli!  :smiley-red:

devo RiNgRaZiArE Leo72, Michele ed altri che mi stanno dando una mano...........

Campa1957

menniti

Ora non ricordo la variabile usata per memorizzare il valore letto, comunque prova ad inserire, dopo il delay(1000):
Code: [Select]

if ros <= 1.45 { //al posto di ros metti il nome corretto della variabile, al posto di 1.45 metti il nome della variabile che lo contiene
while (1);
}

in questo modo finché non ottieni il valore desiderato la procedura continua, poi si ferma tutto allo stato attuale.
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 Michele,
ho inserito le righe che mi hai suggerito ma senza risultato, quando lancio la verifica, prima di caricare il tutto su Arduino mi segnala errore.
Di seguito inserisco di seguito il SW scritto da Leo72.

Code: [Select]

//
// ACCORDATORE DI ANTENNE
// V. 1.0
// Scritto da Leonardo Miliani
// copyleft 2013 :-P
// GNU GPL 3.0
// relé induttori collegati sui pin D8..D13
// relé condensatori sui pin D0..D5
// led di stato su D7

void setup() {
   DDRB = 0b00111111; //pin PB0..5 come OUTPUT - questi pin comandano i relé degli induttori
   PORTB = 0b00000000; //segnale LOW sulle uscite
   DDRB = 0b11111111; //pin PD0..7 come OUTPUT - questi pin comandano i relé dei condensatori
   PORTD = 0b00000000; //segnale LOW sulle uscite
   DIDR0 |= ((1<<ADC2D) | (1<<ADC3D) | (1<<ADC4D) | (1<<ADC5D)); //spengo il buffer digitale sui pin PC2..5
   checkAntenna(0); //induttante
   delay(1000); //faccio leggere il led di stato
   PORTB = 0b00000000;
   PORTD = 0b00000000;
   checkAntenna(1); //condensatori
}

void loop() {
}

void checkAntenna(byte Cap) {
   float ROS = 0.0; //ROS ideale
   float realROS = 0.0;
   ROS = 1.45; //impostare qui il ROS fissato come obiettivo finale sull'antenna
   byte relais = 0;
   boolean exit = false;
   boolean done = false;
   float oldROS = readRos(); //lettura iniziale
   do {
       float realROS = readRos();
       if (realROS < ROS) {
           if (oldROS < realROS) {
               relais--;
               if (!Cap) {
                   PORTB = relais; //tolgo il relé precedente
               } else {
                   PORTD = relais;
               }
           }
           done = true;
           exit = true; //terminato
       } else { //correggo il ROS
           oldROS = realROS; //salvo la vecchia lettura
           if (++relais == 64) { //raggiunto il max di combinazioni
               exit = true; //esco
           }
           if (!Cap) {
               PORTB = relais; //aggiungo un relé in formato binario
           } else {
               PORTD = relais;
           }
        }
        delay(1000); // Ritardo suggerito da Leo72 per vedere il funzionamento del sistema AAA
   } while (!exit);
   if (done) {
       PORTD |= (1<<7); //accende il led "OK"
   }
}


float readRos() { //lettura del ROS
   int pot_rifl = readAnalogInput(A0);
   int pot_dir = readAnalogInput(A1);
   return ((1.0 + (float)(pot_rifl / pot_dir)) / (1.0 - (float)(pot_rifl / pot_dir)));
}


int readAnalogInput(byte input) { //lettura con media di un pin
   int tempRead = 0;
   for (byte i = 0; i < 10; i++) {
       tempRead += analogRead(input);
   }
   return (tempRead /= 10);
}


Campa1957

menniti

posta il codice con la modifica e poi scrivi l'errore che ti dà
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

Come promesso allego foto postate su Arifidenza, nelle foto il blocco relè assemblato parecchi mesi fa'


Go Up