BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Circuiti Elettronici (https://www.baronerosso.it/forum/circuiti-elettronici/)
-   -   Servo tester fai da te (https://www.baronerosso.it/forum/circuiti-elettronici/379897-servo-tester-fai-da-te.html)

Minestrone 08 aprile 19 17:20

Servo tester fai da te
 
Mi sono costruito un piccolo servo tester con un Arduino che mi avanzava implementando qualche funzionalità basica. Siccome l'ho fatto in modo che sia possibile settare il finecorsa, ho scritto il codice con dei finecorsa all'accensione di 0° e 180° perché tanto, mi sono detto, poi lo uso come mi serve stando attento a non mandare il servo in sforzo. Purtroppo non ho pensato al fatto che, utilizzandolo con un esc, se all'accensione non metto il servo tester a -100, l'esc rimane in protezione. Chiaramente se il valore del pwm è troppo alto l'esc non si accende ma succede che non si accende nemmeno se il pwm è troppo basso. Chiaramente non voglio programmare l'esc solo per essere usato con il tester.

La domanda è: quali sono i valori in gradi da mettere nella libreria servo per simulare i finecorsa di una radio standard?

nota: so che potrei risolvere usando la funzione di libreria che setta il ppm tramite un input in millisecondi e, così facendo, potrei andare a leggere i valori sul display della radio (1,5ms e 2.0ms), però ho scritto tutto il codice in gradiu e vorrei mantenerlo, inoltre l'informazione mi interessa ugualmente.

ioteo 08 aprile 19 17:29

Se posso permettermi, ti consiglio di usare la funzione “servo.writeMicroseconds(xxxx)”.
In questo modo aumenti la risoluzione della funzione ma sopratutto puoi inserire i valori standard da 1000uS a 2000uS che corrispondo appunto a 1-2mS di impulso.

Minestrone 08 aprile 19 17:55

Come scrivevo lo so che risolverei così, solo che quella modifica mi obbligherebbe a cambiare non solo la funzione da usare ma anche diverse cose nel codice. Oltre a quello mi interesserebbe capire quali sono i gradi standard.
Posseggo un rudimentale e banale oscilloscopio col quale ho "guardato" qualitativamente l'ampiezza dell'onda quadra uscente da una ricevente ma la precisione del mio oscilloscopio non mi permette nulla di più della semplice meraviglia nell'osservare l'onda quadra e nulla più, tanto meno la sua misura.

italo.driussi 08 aprile 19 18:33

Servo con squadretta prolungata e prendi i riferimenti con la radio, poi riduci il valore della funzione di arduino (lo ho fatto anni fa' e mi pare di ricordare 163)

ioteo 08 aprile 19 18:33

Scusa mi ero perso un pezzo del messaggio, sempre a memoria dovrebbe essere così:
0gradi = 1mS
180gradi = 2mS

Minestrone 08 aprile 19 19:11

Citazione:

Originalmente inviato da italo.driussi (Messaggio 5144774)
Servo con squadretta prolungata e prendi i riferimenti con la radio, poi riduci il valore della funzione di arduino (lo ho fatto anni fa' e mi pare di ricordare 163)

Non ho capito cosa sia 163, il finecorsa da un lato? Allora dall'altro lato dovrebbe essere 17°?

Inviato dal mio Mi A1 utilizzando Tapatalk

italo.driussi 08 aprile 19 19:37

Citazione:

Originalmente inviato da Minestrone (Messaggio 5144781)
Non ho capito cosa sia 163, il finecorsa da un lato? Allora dall'altro lato dovrebbe essere 17°?

Inviato dal mio Mi A1 utilizzando Tapatalk

Probabilmente si.

Comunque la prova con il servo e la prova migliore, quella libreria e' nata per i servi per robotica che usano uno standard leggermente diverso da quello per modellismo.

Minestrone 08 aprile 19 20:22

Citazione:

Originalmente inviato da italo.driussi (Messaggio 5144783)
Probabilmente si.



Comunque la prova con il servo e la prova migliore, quella libreria e' nata per i servi per robotica che usano uno standard leggermente diverso da quello per modellismo.

Ok grazie. Però sto capendo di aver fatto un errore a non usare la funzione con input in microsecondi, se l'avessi fatto ora la correzione sarebbe solo la variazione di due valori in fase di inizializzazione.

Inviato dal mio Mi A1 utilizzando Tapatalk

italo.driussi 08 aprile 19 20:39

Ho guardato i miei sorgenti e le ultime versioni sono in mS.

Minestrone 08 aprile 19 22:58

Ho riarrangiato il codice semplificando alcuni calcoli inutili, fatto quello è stato un attimo convertire tutto da valori in gradi a valori in microsecond; in fondo il codice è molto semplice. In questo modo ho potuto accendere la radio per vedere che valori in microsecondi forniva a display per i range standard ed i range allargati. Adesso il servo tester si accende con dei finecorsa di 988us e 2012us e centro a 1500us; dopo averlo acceso, tramite un tasto è possibile settare i finecorsa ed il centro entro valori compresi tra 740 e 2260 us. Lo stesso tasto può essere usato per mandare in automatico il servo al valore di centro impostato e, ovviamente, per liberarlo da li.
Grazie a tutti


Tutti gli orari sono GMT +2. Adesso sono le 02:02.

Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002