Show Posts
Pages: [1] 2 3 ... 17
1  International / Hardware / Re: problemi con microservo towerpro sg90 ( VERAMENTE URGENTE, PER FAVORE) on: January 17, 2014, 02:08:19 am
ciao ... posta il codice ... altrimenti nessuno ti può suggerire nulla...
2  International / Software / Re: [OT] richiesta di aiuto per programmino x Accordatore on: January 02, 2014, 02:11:25 pm
Ciao Marco.....
no.... ogni tanto dò un'occhiata ....

io ho motorizzato i miei due condensatori variabili e ci sto lavorando ..... ho gia fatto una buona parte del software. adesso sto lavorando sugli encoder per il osizionamento manuale fine dei condensatori ....

Comunque sono d'accordo con te che sia  più efficiente inserire le capacità e le induttanze a "gradini" come fà l'elekraft ..l'LDG .. etc.  solo che è difficile trovare i condensatori per almeno 3/4 KV .... con 8/10 bit .... puoi costruire tutta la scala dei valori molto accuratamente

comunque se trovi una fornitura di condensatori pubblica qui le informazioni, .. idem per i rele da almeno 8/10 A, idonei per questo lavoro.

relativamente alla configurazione da adottare (pigreco o L).. potrebbe essere che la configurazione a pigreco possa avere più di una soluzione, mentre la L dovrebbe avere sempre una sola soluzione... quindi con i meccanismi automatici sei sempre sicuro che il sistema converga verso la soluzione .... bho!! che ne dici ??

ciao
3  International / Hardware / Re: problema con encoder ed altro.... on: December 30, 2013, 07:00:33 am
.. astro....  ok.. domani faccio un po di prove.. prima non posso...

...  ps.. ti faccio i complimenti perchè ti funzionano i neuroni anche in contemporane a alle mandibole.
Io non ci riesco, quando le mandibole cominciano a lavorare assorbono quasi tutte le risorse , mandano in tilt tutto il resto. dev'essere una qualche perturbazione bio-elettrica che non fà funzionare niente di quasi tutto il resto....

saluti
4  International / Hardware / Re: problema con encoder ed altro.... on: December 30, 2013, 03:00:54 am
... no astro....
 il problema si verfica anche se alimento i servo separatamente (provato) ....
invece, non si verifica se alimento tutto dall'arduino ma con gli encoder fisicamente discomessi ....
5  International / Hardware / Re: problema con encoder ed altro.... on: December 30, 2013, 02:24:05 am
Ciao Babbuino.... grazie comunque per la risposta ...

si hai ragione.... infatti stavo per non metterne niente di codice.... perchè il problema credo sia solo hardware... che ho cercato di sintetizzare così:
- quando si attiva il servo (attach).. parte l'LCD.. ma questo sucecde solo quando uso gli interrupt per gestire l'encoder rotativo, ottico..

se non abilito gli interrupt oppure se stacco fisicamente l'encoder (disconnetto fisicamente il canale A e B di ciascuno dei due encoder)  .. tutto funziona regolarmente... e funziona bene pure se uso l'encoder in un altro scketc semplice, solo visualizzando le variabili incrementate/decrementate sull'LCD. Sulla oprta seriale crea sempre dei problemi.
Mi pare di aver capito che l'interrupt 0 è in qualche modo crea problemi sulla seriale.

L'encoder lo gestisco tramite un interrup controllondo solo un fronte dell'impulso (di salita o di discesa)  e poi controllando il bit presente sul pin dove è collegato l'altro canale.  Siccome è un encoder ottino con ci sono rimbalzi, e non mi serve discriminare le altre posizioni, mi basta un impulso per ogni ciclo.

la domanda è questa:
1) è verosimile che l'attivazoine dei servo faccia giungere dei segnali e/o rumore che attivi ogni volta gli interrupt ?
2) se si.... come posso cercare di filtrare?

visto senza codice ... facile facile..  e comunque andiamoci piano con il panettone e lo spumante....
ciao
6  International / Hardware / Re: problema con encoder ed altro.... on: December 29, 2013, 11:30:08 am
niente??? ... neanche una mezza idea???
7  International / Hardware / problema con encoder ed altro.... on: December 28, 2013, 01:07:37 pm
Saluti a tutti...
... in questi giorni di vacanze ho lavorato su un progetto he avevo nel cassetto da un poco ...

il progetto prevede il controllo due servi analogici tramite due encoder, un LCD per visualizzare istantaneamente alcuni parametri di funzionamento, etc..

Come LCD uso uno con con driver HITACHI, come encoder so due encoder a quadratura di fase, ottici,  ricavati da un vecchio mouse.. così per fare le prove...

tutto funziona bene finchè non attivo gli interrupt: i servi funzionano bene, si impostonano secondo i dati meorizzati sulla eeprom e secondo le modalità di funzionamennto impostate... tutto ok.
Visualizzo tutto sull'lcd, esattamente come io avevo in mente...

anche gli encoder funzionano bene, finchè li uso separatamente, dai servo,  ma nello stesso progetto con i servo niente..

al primo avvio del primo servo l'LCD va in panne.....
stacco gli encoder, resetto e funziona di nuovo tutto, anche senza modificare lo script ...

oppure stacco i servo e di nuovo tutto il resto funziona anche senza modificare lo script...

mi sono fatto l'idea che l'azionamento dei servo (analogici) introduce delle perturbazioni che fanno saltare gli interrupt che a loro volta fa saltare il funzionamento dell'LCD ... ma non so che pesci pigliare....
ho anche provato ada limentare separatamente i servo.. ma niente.... non funge e basta. al primo attach dei servo salta tutto.. il display impazzisce e non fa vedere più niente, anche se continuoa vedere che il micro fuzniona perchè azionando gli altri comandi vedo che i servo ubbidiscono....

giusto per dare un'dea dello script che è un po complesso  posto qui una delle funzioni principali:
Code:
void eseguiModo1()   // Modo memory (SOLO LETTURA)
{
aggiornaLCD (1, 1);
leggiInputP2e3();

 if (band != P2 || ant != P3)  // prima fase: individua se ci sono stati cambiamenti
 {
  angC1 = (EEPROM.read(11 + 20 * (P2-1) + (P3-1) * 5 + 0));
  angC2 = (EEPROM.read(11 + 20 * (P2-1) + (P3-1) * 5 + 1));
  L     = (EEPROM.read(11 + 20 * (P2-1) + (P3-1) * 5 + 2));
//SWR   = (EEPROM.read(11 + 20 * (P2-1) + (P3-1) * 5 + 3));

  aggiornaLCD (2, P2);  aggiornaLCD (3, P3);  aggiornaLCD (4, angC1);  aggiornaLCD (5, angC2);  aggiornaLCD (6, L);
  //Serial.print ("\n Banda:");  Serial.print (P2);  Serial.print ("  Ant:");  Serial.print (P3);
  band = P2; ant = P3;
  boolTune1 = false; countTune1 = millis();
  tone(A5, 4000);   // turn the LED on (HIGH is the voltage level)
 
 }

 if ((millis() - countTune1 > 30 ) ) {noTone(A5);}  // spegne il tono che segnala il cambio

 if ((millis() - countTune1 > ritTune) && !boolTune1) // seconda fase attiva i servo se non ci sono modifiche per ritTune mS....
    {
     myservoC1.attach(C1); myservoC2.attach(C2);
     myservoC1.write(angC1); myservoC2.write(angC2);
     // imposta L
     boolTune1 = true; boolTune2 = false; countTune2 = millis();
    }

if  ((millis() - countTune2 > (1300*1.1)) && !boolTune2)  // terza fase ... spegne i servo dopo 1300 * 1,1 mS
    {
     myservoC1.detach();
     myservoC2.detach();
     boolTune2 = true;
    }

}

qui la funzine aggiorna LCD
Code:
aggiornaLCD (int i, int valore)
{
  switch (i)
   {
    case 1:
      lcd.setCursor(0, 0) ; lcd.print("Md "); lcd.print(valore); lcd.print(" "); break;
    case 2:
      lcd.setCursor(5, 0) ; lcd.print("Bd "); lcd.print(valore); lcd.print(" "); break;
    case 3:
      lcd.setCursor(11, 0); lcd.print("An "); lcd.print(valore); lcd.print(" "); break;
    case 4:
      lcd.setCursor(0, 1) ; lcd.print("C"); lcd.print(valore); lcd.print(" "); break;
    case 5:
      lcd.setCursor(5, 1) ; lcd.print("C"); lcd.print(valore); lcd.print(" "); break;
    case 6:
      lcd.setCursor(10, 1); lcd.print("L"); lcd.print(valore); lcd.print(" "); break;
    case 7:
      lcd.setCursor(13, 1); lcd.print("+"); lcd.print(valore); lcd.print(" "); break;
     case 8:
      lcd.setCursor(13, 1); lcd.print("-"); lcd.print(valore); lcd.print(" "); break;
 }


 è qui il controllo degli encoder, che in altri scketch funziona bene.....
Code:
void setup()
{
  Serial.begin(9600);
  lcd.begin(16, 2);

  pinMode(4, INPUT);
  pinMode(5, INPUT);

  attachInterrupt(0, updateEncoder0, RISING);
  attachInterrupt(1, updateEncoder1, RISING);
 }

void updateEncoder0()
{
  if ((PIND & B00010000)>>4)
      {angC1++;} else {angC1--;}
}

void updateEncoder1()
{
  if ((PIND & B00100000)>>5)
       {angC2++;} else {angC2--;}
}


ripeto... il codice credo che vada bene.... credo che sia un problema di filtraggio di qualche disturbo che i servo inviano agli interrupt e che a loro volta mettono in crisi l'LCD...

cosa mi suggerite? ..... qualche idea?.....
grazie
Saluti a tutti
Paolo
8  International / Software / Re: generare toni dtmf on: November 04, 2013, 11:57:18 am
segnalo questo ...

http://code.google.com/p/solar-monitoring-project/issues/detail?id=30
9  International / Software / Re: [OT] richiesta di aiuto per programmino x Accordatore on: November 02, 2013, 09:30:28 am
niente da fare per trovare i condensatori alta tensione... da rf microwave  cèqualcosa ma non tutto e sono molto cari ... bho.. bho..
10  International / Software / Re: generare toni dtmf on: November 02, 2013, 09:25:01 am
Non ricordo se Ibbbaa o PaoloS stavano lavorando a un progetto simile. Hai fatto una ricerca sui topic del forum?
io ho lavorato al decoder.. con l'integrato specifico...MT8870

io uso questi:
http://www.ebay.it/itm/N-8-MT8870DE-Integrato-decodificatore-DTMF-Dual-Tone-Multi-Freq-decoder-MT8870-/170832440158?pt=Componenti_elettronici_attivi&hash=item27c6682b5e

4 bit per la decodifica + 1 per l'interrupt

11  International / Software / Re: [OT] richiesta di aiuto per programmino x Accordatore on: October 28, 2013, 02:04:10 am
È sbagliato dire tutto a stato solido senza parti in movimento, i rele normali non sono a ststo solido ed hanno parti in movimento.

si .. testato.. hai assolutissimamente ragione....
12  International / Software / Re: [OT] richiesta di aiuto per programmino x Accordatore on: October 27, 2013, 11:17:43 am
@Paolo S:
1) ma lavorando con un Arduino, anche se metti il 328 in sleep per evitare i disturbi provocati dal suo clock, sulla scheda esiste un altro integrato dotato di clock, il 16U2 usato come interfaccia USB. Quello non dà noia, "vivendo" sulla scheda e restando sempre in funzione?
2) esiste un modo per campionare tramite ADC riducendo il disturbo, con gli Atmel. Si tratta di usare la modalità di risparmio energetica detta ADC Noise Reduction, che mette in sleep (ergo, toglie il clock) la CPU lasciando però l'ADC funzionante. Terminato il campionamento, si può generare un interrupt che risveglia la CPU che può procedere con i suoi calcoli.
leo... si parlava di questo perchè marco ha ipotizzato questo problema... io mi sono limitato  a fare un pò di prove per verificare che l'lgoritmo di ricerca del minimo e del massimo, muovendo i condensatori funzinasse.. ma non ho provato collegando il tutto a un ricevitore per vedere se effettivamente si riscontrava il disturbo...
certamente il tutto va separato elettricamente ... da qui l'esigenza di usare relè per inserire/disinserire componenti di capacità/induttanza ....
ad ogni buon conto se uso lo schema con i rele, userò gli shift register 74HC595 .. non so se questi emettano "rumore" ... bho!!!



Ci dovrebbe essere un motivo per la preferenza rispetto alla configurazione a pigreco o a T.

ok.. aspetto le conclusioni del tuo ragionamento...

riguardo all'adattamento effetuato con inserimenti/disinserimenti di un modulo minimo di L o di C, da farsi con relè... devo dire che sto rivalutando seriamnete questa opzione...
8 capacità ed 8 sezioni di induttanza.. si possono gestire facilissimamente con 8 + 8 bit con due shift register
8 bit consentono di inserire gradualmente 256 "gradini di capacità , ottenendo un'ottima approssimazione lineare..
idem per le induttanze.... giusto come dicevi tu....
tutto a stato solido, niente parti in movimento.... si si.. mi hai convinto marco!!!
i rele non è un problema procurarseli ma i condensatori ceramici per alta tensione dove li troviamo... qui io ho difficolta a trovarli se non trovo qualcosa su ebay..

per la logica di accordo, facendo riferimento allo schema elekraft,  io farei cosi...
1 capacità a metà del suo valore
2 ricerca del minimo ROS variando L, se aumenta, inverto il senso di variazione, così fino a trovare il minimo
3 aggiustamento fine modificando le capacità---
4 memorizzazione su eeprom del punto di accordo per quella banda...

naturalmente poi ci sarebbe un'interfaccia per fare comunicare alla'ccordatore la banda selezionata sull'RTX....

marco fammi sapere la tua opinione .. ciao




13  International / Software / Re: [OT] richiesta di aiuto per programmino x Accordatore on: October 25, 2013, 09:54:20 am
@lesto
lo scatto di un relè certamente crea una perturbazione, una sorta di "crak", che viene rilevata dal ricevitore, disturbando!!! ...ma fintanto che è una sola non ci sono grossi problemi.

Diverso è il caso di presenza di rumore "radioelettrico" di fondo, continuo e non occasionale,  che fà si che tutti i segnali sotto quel livello non vengono più distinti... da qui l'esigenza di separare bene, dal punto di vista elettrico micro e radio ....
 Il problema del rimore radioelettrico, dovuto alle comuttazioni nel processore, nelle memorie etc .. è particolarmente evidente con vecchi pc, (queli nuovi non lo fanno), che se accesi vicino ad un ricevitore, il rumore generato ricade  su tutto lo spettro ricevibile. Un'altra brutta sorgente di rumore radioelettrico sono le nuove lampade a risparmio energetico .... .. comunque è meglio che le parti siano separate elettricamente ed anche le piste ben distanziate  per evitare accoppiamenti capacitivi ...
14  International / Software / Re: [OT] richiesta di aiuto per programmino x Accordatore on: October 25, 2013, 06:33:06 am
@lesto:
.. non certo per gli assorbimenti, ma per il fatto che la frequenza di clock, o qualche sua armonica,  nonchè eventuale "rumore"  prodotto dalle commutazioni elettriche del micro possono generare "rumore" radiolettrico che disturba il ricevitore... magari inibendo la ricezione su intervalli più o meno ampi dello spettro radio di interesse, che nel nostro caso è compreso tra 0,1 - 30 Mhz.. almeno io, su quello sto lavorando....
15  International / Software / Re: [OT] richiesta di aiuto per programmino x Accordatore on: October 24, 2013, 02:10:55 pm
ciao a tutti...

i servo hanno un posizionamento "a spanne", molto meglio uno stepper.
ma poi se siete in continua (o meglio, sepre sopra GND) perchè non usare i transistor?
io ho acquistato due di questi: li ho pagati poco più di 12 euro l'uno oltre un anno fa....
http://www.robotstore.it/product/156/Servo-standard-Hitec-HS-485HB.html
sono precisi, veloci e potenti (coppia 5/6 Kg*cm) a 5 V .. fa ruoatare qualsiasi condensatore tra quelli che ho io...

i transistor non possono usarsi al posto dei rele'  che devono inserire/togliere capacità e sezioni dell'induttore, mantenendo una separazione elettrica tra le parti percorse da RF, anche ad elevata potenza, ed il resto dell'elettronica, micro etc....

di seguito allego lo schema ricavato da manuale del fc757 che uso io... in alto a sinistra la COUPLER UNIT, del tipo a toroide, per ricavare Vdiretta e Vriflessa (REF - FWD), oltre ad un rele per inserire un carico fittizio .... questo vorrei replicare io....
in altro a destra la TUNER UNIT, la parte di accordatore vero e proprio.... anche se cercando di decifrare lo schema non mi pare sia a pgreco... infatti:
il commutatore di banda, suddiviso in 4 sezioni coassiali
-   S01-b inserisce una capacità di valore decrescente con la banda selezionata, sul lato ingresso --> GND
-  S01-d e S01-c cortocircuitano  sezioni della L , riducendo quindi l'induttanza totale a seconda della banda selezionata (mi pare un pò contorto come sistema) .. credo sia molto più efficiente farlo con alcuni rele' ....
 -  S01-a restituisce al micro il feedback della posizione assunta dal commutatore di banda
- il condensatore variabile VC01 (200 pf) sul lato ingresso (TUNE) risulta essere in parallelo alla capacità fissa inserita dal commutatore S01-b
- il condensatore variabile VC02 (430 pf) sul lato carico (LOAD) risulta essere in serie con l'uscita.. ecco perchè non mi sembra uno schema a pgreco...

marco che mi dici????


Pages: [1] 2 3 ... 17