FirstBot Project

> First Bot Project
> Studio teorico/pratico

> | <--Indietro | Inizio | Avanti--> |

> Domenica 17-3-2002
> IR problems.

> Per effettuare la misura delle distanze dagli ostacoli pensavo bastasse generare il segnale PAM a 32 livelli, invece ho notato che i sensori sono sensibili solo alla variazione del segnale modulato, e non alla sua presenza costante (anche intensa). Questo l'ho scoperto accendendo l'emissione IR scrivendo un certo valore fisso nel DAC, e riportando con un ciclo senza fine lo stato del sensore frontale sul led di debug (pin RB5). Cosi' facendo ho visto che il led si accende quando un oggetto entra nel fascio IR ma poi, anche se l'oggetto si ferma davanti, il led si spegne subito. Questo vuol dire che per rilevare in modo costante la presenza di un ostacolo davanti ai sensori bisogna ulteriormente modulare a impulsi i 38kHz! Se aggiungiamo poi i disturbi che ho riscontrato nelle prime prove, il presentimento di dover trasmettere degli pseudocodici diventa tragicamente realta', e questo significa software piu' complesso e un tempo di misurazione fino a 4 volte maggiore. Per prova ho quindi pilotato il DAC con un segnale a circa 700Hz in modo da generare dei treni di impulsi PAM (invece che un'emissione costante), e ho riportato sul led lo stato del sensore dopo ogni treno inviato. Il risultato e' che adesso effettivamente abbiamo un'indicazione stabile in presenza di un ostacolo e led spento in assenza (salvo tremolii quando si e' in una fascia al limite della ricezione).

> A questo punto, dovendo modulare impulsivamente l'emissione IR (gia' modulata a 38kHz), sapendo che le specifiche impongono di usare impulsi non piu' brevi di 0,6mS, e che occorre generare un codice minimale per vedere se viene ricevuto correttamente, penso di trasmettere (per ogni livello PAM) due impulsi seguiti da due pause (1010), prendendo per buona una rilevazione se i sensori emettono uno 0 alla fine di ogni impulso trasmesso. La durata di questi 4 periodi dovrebbe essere di circa 0,65mS ciascuno, e questo vuol dire 2,6mS per ogni livello misurato... 80,6mS per una scansione completa dei 31 livelli (lo 0 non si considera perche' rappresenta i led spenti)... saremmo a circa 12 scansioni complete al secondo.... Il diagramma a lato rappresenta il modo con cui a questo punto penso di realizzare il ranging, la riga tratteggiata verde e' un esempio che indica da quale intensita' dei segnali PAM (emessi dai led) i ricevitori iniziano a rilevare un ostacolo.

> Inoltre ho verificato che, data l'alta sensibilita' dei ricevitori, anche alimentando i led emettitori con soli 3mA gia' si riesce a rilevare un oggetto a 30cm di distanza (molto variabili a seconda del colore e delle dimensioni), questo vuol dire che dovro' sostituire le resistenze da 10 ohm con altre da 200, in modo da avere 5mA di fondoscala invece che 100.

> I sensori sono anche risultati sensibili alla riflessione degli altri fasci inviati a 45 gradi, per esempio il sensore frontale segnala un ostacolo anche quando un oggetto e' illuminato da uno degli emettitori diagonali. Per rendere un po' piu' direttiva la rilevazione ho visto che e' di grande aiuto uno schermo realizzato con un pezzo di tubo nero per fili elettrici incollato davanti al sensore... |

> Sabato 23-3-2002

> Per provare anche ad attenuare i disturbi dovuti alla luce ambiente ho trovato (grazie ad un collega che fortunatamente non butta via niente) dei pezzi di plexiglass rosso scuro da cui ricavare (a colpi di lima e seghetto) dei dischi da 12mm da inserire nei tubetti.
> Infine ho incollato tutti gli schermi davanti ai relativi sensori con comune colla termica (e ho notato che ora il passaggio di una torcia elettrica non da piu' fastidio come accadeva prima). |

> Domenica 24-3-2002
> Ranging.

> Ho finalmente sperimentato il ranging (intanto leggendo il solo sensore frontale), e sono rimasto sorpreso dal fatto che e' piu' lineare del previsto, ma anche dal fatto che sotto i 4cm non misuro piu' niente (5 costante salvo una brusca risalita a meno di 1 cm), e che proprio nella fascia "near" interessante tra i 4 e i 10cm ho la risoluzione peggiore.... questo comunque si spiega con il fatto che lo spot proiettato dai led a brevi distanze e' molto piccolo e il suo asse esce dal campo di ricezione dei sensori, che ne captano solo indirettamente il segnale diffuso.

> Il grafico a lato l'ho ottenuto misurando i valori letti a diverse distanze (usando come bersaglio un quadrato di polistirolo bianco e facendo la media tra 10 letture successive).... in pratica il bot sara' in grado di rilevare la presenza e determinare la distanza di oggetti piu' vicini di 30cm... e dovrebbe anche potersi tenere a 8..10cm di distanza da essi.

> Dato che diversi materiali riflettono i raggi infrarossi in modo diverso, dovro' prevedere anche una routine di calibrazione che mi permetta, una volta di fronte agli ostacoli reali, di tarare il trimmer dell'attenuatore del segnale PAM per avere una rilevazione precisa a distanza nota (per esempio lettura 10 a 10cm). A proposito di attenuatore, ho abbassato la resistenza da 1k portandola a 330ohm in quanto l'emissione IR era ancora troppo intensa, a questo punto come corrente nei led emettitori lavoriamo con meno di 3mA fondoscala.... l'alimentazione potevo prenderla benissimo dai 9V stabilizzati, e fare anche a meno dei transistor collegando i led direttamente all'uscita degli operazionali: |

> Mercoledi' 27-3-2002

> Da ulteriori prove ho scoperto che la forma del grafico lettura/distanza cambia se cambia la strategia di ranging. Quello precedente e' stato ottenuto generando la rampa di impulsi PAM fino al punto di rilevazione corretta, per ripartire poi subito da 0. Questo significa che per ostacoli vicini le letture erano piu' ravvicinate nel tempo, mentre per ostacoli piu' lontani doveva essere generata l'intera rampa.

> Ora ho scritto una routine per la lettura in parallelo di tutti i sensori contemporaneamente, e viene generata ogni volta l'intera rampa. Per riuscire a leggere le piccole distanze ho dovuto aumentare moltissimo l'emissione IR (5mA fondo scala), e questa volta il grafico e' al contrario del precedente, ci sono piu' punti che rappresentano le immediate vicinanze, per arrivare poi con gli ultimi valori a misurare fino a 1,30 metri!

> All'inizio questo tipo di misura mi sembrava peggiore, ma ho visto che tutto sommato si puo' riuscire a distinguere bene alcune "fascie di percorribilita'" nei pressi degli ostacoli.... mentre la misura su lunga distanza puo' invece servire per trovare degli ampi varchi privi di ostacoli dove tipicamente possono trovarsi le sorgenti di gas...

> | <--Indietro | Inizio | Avanti--> |

> Pagina, disegni e foto realizzati da Claudio Fin - Ultimo aggiornamento 1-4-2002