Un mese... un mese per capire se funziona un servo...
Sulla basic stamp sembrava tanto semplice, con il pic microchip e programmando con il PICC18 è stato un dramma anche a causa del poco tempo e di tutta la ruggine accumulata con il tempo.
Mi sono inizialmente chiesto.. come faccio a generare un treno di impulsi per comandare il movimento di un servo? Dico... basta alzare/chiudere una porta del pic con un certo ritmo... si ma quale ritmo?
Allora, mi scarico il datasheet del servo, e vedo che funziona con impulsi compresi tra 1.5 e 1.9 millisecondi... ok. Appena apro la porta ne devo ritardare la chiusura. Faccio un rapido calcolo:
RITARDO=X CICLI * TEMPO CICLO;
Ma quanto è il quanto di tempo di un ciclo? Ho un pic 18f4520 con 20MHz di frequenza. Tutte le istruzioni (tranne alcune) sono eseguite in un ciclo macchina, il pic macina 10Mps reali... (10 milioni di istruzioni per secondo, 0.1 usec a istruzione).
1500 usec= X CICLI *0.1 usec ;
X CICLI = 1500/0.1 usec;
X=150000, perciò per muovere il servo devo dare un ritardo di 15000 cicli macchina. Mi serve dunque una Delay10KTCy(15), ma non funziona un cippero... DOVE SBAGLIO?
Se non funziona per via teorica provo la via empirica. Scopiazzo il codice che ha usato FuMauro per il suo domotino. Delay100TCYx(48)? Da dove l'ha preso? Che criterio ha seguito?
Lo applico subito sul mio (come una clicco-scimmia), ma sembra funzionare a rate... un colpo si e due no... che abbia sbagliato a montare qualche circuito? Help!
Allora dovrei analizzare il segnale che "emana" la mia scheda per assicurarmi chi sbaglia cosa. Serve un oscilloscopio. Impresa difficile reperirne uno, sopratutto per chi è squattrinato come me. Dopo un paio di settimane a girare forum ed a seguire aste su ebay sembrava che dovessi lasciare li tutto. Finchè... chi lo sapeva che la scheda audio di un pc mi può emulare un piccolo oscilloscopio?
http://www.sillanumsoft.org è un piccolo software made in Italy che emula un oscilloscopio in un pc. Costo ell'operzione di test praticamente nullo (a parte il tempo per creare i cavi). BINGO! Funziona, anche se con qualche disturbo. Inizio a smanettare con il software e vedo un'onda stabile uscire dalla porta del pic con il periodo che esattamente serve a me. Che sia il servo bruciato? Fa un rumore del tipo "tzzz" e non si muove...
Compro un nuovo servo: funziona alla perfezione.
Ma che cosa ho sbagliato nel calcolo che avevo fatto all'inizio?