Misura della strada percorsa con gli encoder ottici

Ho deciso di misurare la rotazione di entrambe le ruote, per poter applicare le tecniche di "dead reckoning" (stima della posizione senza riferimenti esterni).

Un primo tentativo l'ho fatto con il CNY70 fornito con i fascicoli di Monty. Ho stampato un disco con 24 bande bianche e nere alternate su un foglio di carta fotografica e ho cercato di vedere con l'oscilloscopio, il segnale di uscita del foto-transistor. La misura è molto critica e dipende da troppi fattori: la distanza del CNY70 dal disco, il tipo di carta usato che determina quanta luce viene riflessa, la luce ambiente, eccetera.

Ho cominciato allora a smontare un po' di vecchi mouse cercando di capire come fanno a costare così poco e funzionare così bene. Nei mouse molto vecchi c'è una coppia LED/fototransistor simile a quella del CNY70, ma posti uno di fronte all'altro con il disco forato in mezzo. Nei mouse veramente vecchi (avete presente quello originale del Macintosh, squadrato e con un solo tasto quadrato al centro ? L'ho visto anche in TV in una recente intervista al direttore di Panorama) ci sono due coppie di LED/fototransistor per ogni encoder. In quelli un pochino più moderni i due ricevitori (necessari alla decodifica del verso di rotazione) sono accoppiati in un unico contenitore. Nei più moderni, il ricevitore è un vero e proprio circuito integrato con quattro piedini: alimentazione, massa, out0, out90°. L'uscita è un bel segnale TTL pulito e presente solo se uno dei due sensori interni è illuminato e l'altro no, questo garantisce anche una buona immunità da fonti di luce esterne, ma funziona solamente con la rotellina forata. Prendendo gli encoder di un mouse vecchio (più grandi e quindi più facili da lavorare) e i sensori di un mouse moderno, sono riuscito ad assemblare qualcosa di carino.

Provando il tutto con i motori sono usciti i guai. Funzionava tutto bene quando muovevo l'encoder a mano, collegando la sonda dell'oscilloscopio su uno degli out del sensore (non mi interessa sapere il verso di rotazione) vedevo un bel treno di impulsi con una frequenza proporzionale alla velocità dell'encoder. Ho attaccato il motorino all'alimentazione della breadbord (la stessa del sensore) e non ho visto più niente!

Dopo una mezzora di controlli (credevo si fosse staccato qualche filo) ho aumentato la scansione orizzontale dell'oscilloscopio per vedere frequenze più alte. Ho trovato di tutto: il motorino emette una serie di disturbi su una gamma di frequenze e con una potenza tale che il sensore viene completamente accecato.

Ho deciso allora di applicare il sistema di filtraggio usato sui motori del robot della DeA: due condensatori da 0,1microFarad tra i fili dell'alimentazione e la carcassa del motore, e uno tra i fili stessi. L'aggiunta di un toroide di ferrite sul quale avvolgere i fili di alimentazione del motore, e tutto ha ricominciato miracolosamente a funzionare, anche usando una sola alimentazione per il motore e per i sensori; separandola può andare solo che meglio.

Di seguito alcune foto con le quali spero sia più chiaro il lavoro effettuato.

.

I condensatori sono da 0,1 microFarad, due sono saldati tra i contatti dell'alimentazione e la carcassa del motore, il terzo è saldato tra il più e il meno.

Occorre porre particolare attenzione a come si posizionano i condensatori per fare in modo che si possa richiudere la scatola porta-ingranaggi.

Vista della scatola chiusa.

I cavetti di alimentazione sono stati avvolti intorno ad un toroide di ferrite per aumentare l'effetto filtrante del circuito.

Sullo sfondo si vede il disco a bande bianche e nere incollato sulla ruota motrice, primo tentativo di encoder ottico.

Sulla parte opposta dell'asse c'è l'encoder attualmente usato, ricavato da un vecchio mouse.

I sensori installati

Si possono vedere i sensori ricavati dal mouse. Nella parte superiore il trasmettitore infrarosso.

Devono essere fissati esattamente in questa posizione per funzionare. Il ricevitore, nella parte inferiore, deve essere allineato in senso radiale con l'encoder.

Sensori

Per rientrare nel (poco) spazio a disposizione, i dispositivi a IR sono stati montati su un pezzetto di basetta millefori.

Ancora i sensori

Qui si vede anche il ricevitore.

Il risultato all'oscilloscopio

L'immagine non è molto buona ma da un'idea del segnale in uscita dal sensore.