Stranezza Servo SG90

ho una marea di sti servo, mi sembra pero' che si comportino in modo strano
mi spiego, avete presente il dentino interno che blocca meccanicamente la rotazione tra 0/180° ?
facendo funzionare il servo con lo sketch di esempio arduinico, man mano che va avanti ed indietro inizia a perdere la posizione meccanica, fino ad iniziare a sbattere sulla rotella. Cioe' il 90° non e' piu' il centro, ma lo si perde, il che significa che il 180° e' oltre la sua posizione.
questo avviene in pochi sweep, diciamo gia' dopo 5 o 6 stiamo li' a sbattere il blocco su un ingranaggio.

  • Servo economici cinesi ?
  • Qualcosa nella libreria ufficiale servo ?
  • Stranezza nascosta nel codice ? (ad esempio credo che il FOR sia sbagliato, perche' cosi' come e' fa arrivare a 181 l'angolo)
void loop() 
{ 
  for(pos = 0; pos <= 180; pos += 1) // goes from 0 degrees to 180 degrees 
  {                                  // in steps of 1 degree 
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  } 
  for(pos = 180; pos>=0; pos-=1)     // goes from 180 degrees to 0 degrees 
  {                                
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  } 
}

inoltre se provo ad usare
myservo.write(200);

sia l'ide sia il servo accettano il camondo, andando a sbattere meccanicamente, quindi non c'e' nessun blocco a comandi fuori range ? questo tipo di botte meccaniche gli creano danni ? a me sembra si disallinei, c'e' modo di riallineare il potenziometro di feedback interno al servo con la meccanica del servo ?

infine muovendoli a mano, quando non alimentati, si rovinano ? la motoriduzione e' abbastanza debole e la si riesce a vincere con le dita

Probabilmente c'è qualcosa che slitta dentro. Devi guardare
Se il servo "sgrana" allora hai superato la coppia massima e si possono rovinare i dentini di plastica

Ma normalmente dovrebbero rispondere tutti uguali ? Mandandigli un write 90 dovrebbero posizionarsi tutti al centro ?
Parlobdi servi nuovi mai usati.
Ho infinite dimande come hai visto, puoi/ potete dire la vostra su ognuna di esse ?

Testato:

  • Stranezza nascosta nel codice ? (ad esempio credo che il FOR sia sbagliato, perche' cosi' come e' fa arrivare a 181 l'angolo)

Per forza perché il for lo esegue finché pos è inferiore o uguale a 180, ma arrivare a 180 partendo da 0 significa aver fatto 181 passi.
Il for corretto sarebbe:

for (pos = 0; pos < 180; pos++)

non ci avevo fatto caso a quello che dici tu, cioe' la valutazione della presenza dello 0, credo cmq sia gestita a livello di libreria, perche' e' normale poter avere sia la posizione 0 che la posizione 180. Io intendevo dire che per come e' scritto il for l'ultimo step che raggiunge e' 181 (e quindi con lo 0 siamo a 182 °)
Cmq questa e' una finezza, di certo il mio rpoblema non e' questo grado in piu', perche' il finecorsa meccanico dovrebbe semplicemente sbattere per frazioni di secondo e poi tornare indietro visto che il codice fa uno sweep.
Se questo sbattere leggermente mi rovina i grani delle corone interne al servo allora e' altro discorso, devo smontarne uno e capire come e' la situazione interna
Di certo l'esempio ufficiale non dovrebbe permettersi errori cosi' grossolani, proprio perche' di esempio

Testato:
Se questo sbattere leggermente mi rovina i grani delle corone interne al servo allora e' altro discorso, devo smontarne uno e capire come e' la situazione interna

Non è possibile che se il servo arriva al fermo meccanico rovina gli ingranaggi, non ha abbastanza forza per farlo visto che sono dimensionati per reggere almeno il doppio della coppia massima disponibile.
Hai fatto la prova che ti avevo suggerito in pm ?

buono, questa e' una notizia importante, quindi il finecorsa ci deve solo far preoccupare di eventuali riscaldamenti di ponte H/motore

conto di farla oggi

Testato:
buono, questa e' una notizia importante, quindi il finecorsa ci deve solo far preoccupare di eventuali riscaldamenti di ponte H/motore

Si quello è l'unico fattore di rischio perché i ponti H dei servo non sono pensati per rimanere sotto carico massimo per lunghi periodi, possono reggere correnti elevate, almeno il doppio di quella massima in assoluto richiesta dal servo, però scaldano rapidamente e questo li può distruggere se la condizione di massimo carico dura troppo tempo, diciamo non più di 20-30 secondi.
Quello che può distruggere gli ingranaggi, anzi è quasi una certezza, è una forza contraria che obbliga il servo a girare al contrario quando è alimentato e attivo (PPM presente), con un micro servono bastano 2-3 kg di forza per sbricciolare gli ingranaggi, evento che succede facilmente in caso di crash dei modelli dove arrivano delle "botte" sulle squadrette dei servo con forza eccessiva.
Per esempio se il tuo quadropo cade dal tavolo è facile che distruggi gli ingranaggi di diversi servo se colpisce il pavimento con le zampe, idem se lo calpesti :smiley:

ma io avro' l'anticaduta :slight_smile:

trovato il problema, i cinesi colpiscono ancora :slight_smile:

Ho comandato uno ad uno i 14 servo spedendogli un bel

myservo.write(90);

per verificare la posizione centrale di tutti, ebbene altro che 1 o 2 gradi, sono tutti diversi anche di 30° :fearful:

Piu' precisamente, tenendo come riferimento centrale il 90° le posizioni dello zero sono:

  • 3 servi a -5°
  • 1 servo a -20°
  • 6 servi a +15°
  • 4 servi a +30°

A voi e' mai capitato ? di quanto avete trovato spostato il 90° normalmente ?

Soluzione: devo smontarli e riallinearli vero ? altre possibilita' ? (non voglio restituirli, perdo troppo tempo e gli altri potrebbero essere uguali)

Testato:
trovato il problema, i cinesi colpiscono ancora :slight_smile:

Forse la soluzione del mistero è più semplice di quanto sembra :slight_smile:
Smonta le squadrette, porta i servo in posizione centrale tramite Arduino, rimonta le squadrette e rifai le prove.

ecco vedi, in questi casi mi mortifichi, non puoi pensare una cosa del genere :slight_smile:

mi spiego meglio perche' ti manca un parametro, altrimenti questa domanda non l'avresti fatta, gli SG90 sono trasparenti, quindi la squadretta l'ho montata io in posizione giusta allineato al fermo di plastica del finecorsa

Sono veramente sballati di 30gradi :disappointed_relieved:

Testato:
ecco vedi, in questi casi mi mortifichi, non puoi pensare una cosa del genere :slight_smile:

Ovviamente non di te, però conosco i produttori di servo e come arrivano :slight_smile:
Ovvero non è insolito che le squadrette premontate in fabbrica sono tutto meno che allineate con la posizione centrale.

Testato:
Sono veramente sballati di 30gradi :disappointed_relieved:

Cioè vuoi dire che da servo a servo c'è una differenza fino a 30° nella posizione centrale ?

astrobeed:
Cioè vuoi dire che da servo a servo c'è una differenza fino a 30° nella posizione centrale ?

si, esattamente coma da elenco che ho fatto,
quindi smonto ? Il fatto che su 14 nessuno e' esattamente a 0° mi aveva fatto pensare anche di controllare con l'oscilloscopio arduino quanti us usa sull'impulso write90, pero' questo e' secondario rispetto al problema, perche' cmq a parita' di comando il finecorsa interno, che e' appunto visibile e quindi non serve nemmeno montare le squadrette, si posiziona anche a 30° di sbaglio dal centro, se si mettessero i due servo estremi, cioe' un -15° ed un +30° a lavorare in coppia si raggiunge un errore di 45° :fearful:

A questo punto l'unica soluzione che vedo e' smontare e portare il dentino al centro, sperando che il problema sia meccanico, se fosse un problema di linearita' o di valore del trimmer interno non potrei far nulla

Ragazzi state alla larga dai TowerPro SG90

fatte altre prove oggi visto che non credevo ai miei occhi:
pilotati uno ad uno tutti i servo con lo sketch Knob della libreria ufficiale Servo, misurando in realtime la larghezza dell'impulso con oscillo.
i 14 servo testati si comportano in modo diverso e possono essere racchiusi in 4 grandi categorie, questi sono i valori in microsecondi necessari per raggiungere la posizione centrale:

1700
2000
1500
1100

li ritengo a questo punto inutilizzabili, anche perche' in abbianata a questo rpoblema noto una non stabilita' di risposta, mi spiego, se alla prima accensione lo zero e' ad esempio a 1900 poi facendo un po' uno scroll tra +-45°, ritornando allo zero meccanico esso risulta a 1700us

Scrivo al venditore intimando il ritiro a proprie spese ed il rimborso
Vostri pareri ?
Astro tu hai provato i tuoi ? che modello erano ? mi controlli se rispondono tutti in egual modo allo sketch Knob senza modifica alcuna ? (in altri casi non sarei cosi' dubbioso, ma e' la prima volta che metto mano ai servo e mi sembra assurda la situazione)

Testato:
Astro tu hai provato i tuoi ? che modello erano ? mi controlli se rispondono tutti in egual modo allo sketch Knob senza modifica alcuna ? (in altri casi non sarei cosi' dubbioso, ma e' la prima volta che metto mano ai servo e mi sembra assurda la situazione)

E' la prima volta che sento di un problema simile, posso capire che sulla quantità un servo può capitare difettoso, però 12 servo che danno i numeri mi fa pensare ad un intero lotto difettoso.
Io come servo ho preso gli Hitec HS45 HB, funzionano tutti perfettamente.

che ti devo dire,
se non e' come dico io significa che non ho capito niente e non solo di servo ma di tante cose :smiley:
quando mi arriveranno i nuovi verifichero'

volendo risparmiare questi come li vedi ? http://www.jonathan.it/servocomandi/micro/analogici/horizon+hobby/447040_servocomando-fls80-1,5-(4,8v)-0,10-(4,8v).html
purtroppo da jonathan roba piu' economica non ne trovo, e visto il casino che ho per le mani, voglio un vednitore affidabile quindi niente ebay
ci sarebbe questo che e' di un venditore mi sembra serio http://www.flymodelcomponents.it/shop/product.php?productid=20000&cat=848&page=1

Per la prosecuzione del rpogetto ? apriamo un topic ? del porting della tua libreria ancora niente ?

Testato:
volendo risparmiare questi come li vedi ? http://www.jonathan.it/servocomandi/micro/analogici/horizon+hobby/447040_servocomando-fls80-1,5-(4,8v)-0,10-(4,8v).html

Si possono andare bene, se vuoi essere più che tranquillo quando ho preso i miei servo in totale ne ho ordinati 30, assieme ad altra roba per arrivare al quorum minimo per sfruttare un voucher che avevo nel cassetto, alla fine i servo li ho pagati 9.5 Euro, posso dartene 12 senza problemi.

del porting della tua libreria ancora niente ?

L'autore del progetto originale poi mi ha risposto dicendomi che mi faceva avero lo sketch, però poi non mi ha inviato nulla.
Io fin dopo Natale sto un pochino incasinato per i soliti mille motivi, non ultimo il fatto che sono a mobilità limitata perché lo scorso Lunedì ho fatto un piccolo intervento al ginocchio destro e devo ancora recuperare il funzionamento al 100% :slight_smile: