Ciao,
ancora una volta sono bloccato.
Questa volta ho provato a smontare un vecchio mouse con pallina e ho estratto i sensori che regolano le assi di movimento della freccia.
Cercando su internet ho scoperto che il moveimento era dato dall'encoder in quadratura.
Il punto è che non ho trovato niente che mi possa suggerire come collegarli elettricamente e come interfacciarli con il mio Arduino.
Spulciando sul forum ho trovato questo articolo, Old Mouse Phototransistor - Sensors - Arduino Forum ma sono troppo rana in inglese per comprenderlo appieno.
Il tutto mi serve per misurare la rotazione di una base su un asse verticale
Il centrale del sensore è il comune dei 2 collettori e và collegato ai +5VDC, i 2 pin laterali sono i canali A e B (emettitori fototransistor) e vanno collegati medianti 2 resistenza da 2k2 verso gnd . I segnali A e B vengono prelevati in parallelo alle 2 resistenze
Ok,
ho cambiato le porte e mi sono spostato sulle analogiche, il risultato è che sia per il valore di destra che di sinistra ho sempre 1.
Mi aspettavo in caso di scorrimento della rotella di avere una variazione dei valori.
=(
Ok,
finalmente sembra funzionino.
Ovvero finalmente se interrompo il fascio di luce i valori sono a zero mentre se è libero danno un valore diverso da zero.
Almeno credo adesso la parte elettrica sia a posto.
Ho trovato su internet questo schema che ha risolto: http://py2ohh.w2c.com.br/util/encoderotico/optoencoder.gif
Adesso devo posizionare e stabilizzare la rotellina e cercare di capire che sketch fare.
bene lo schema è giusto, per i transistor puoi usare bc337
per lo sketch cerca "encoder incrementale" troverai quelli che usano interrupts (pin 2 e 3) che servono per rotazioni veloci ( 1000-20.000 impulsi/sec) ma consumano uno o 2 interrupts e quelli che non usano interrupts(polling) quindi puoi collegarli a qualsiasi pin di arduino e vanno bene per <1000 imp/sec
se è un ps2 il mouse prova a collegarlo ad arduino e fagli delle interrogazioni , in questo modo vedi se originariamente funzionava
cerca su google qualche tutorial è facile
Aggiornamenti :
Ho alimentato un mouse e attaccato il Pin di dx e sx del sensore della rotella all'arduino.
Se lo attacco alle porte digitali non misuro molto (solo in caso metto la stanza al buio).
Soprattutto non va l'attachinterrupts.
Se lo collego agli analogici ho delle misure che sono sensibili anche alla luce della lampada, ma che non so come usare
Però non trovo uno sketch decente da applicare agli analogici.
Qualcuno ha suggerimenti?
Ci rinuncio, ieri ho sistemato il circuito e lo sketch. Letture sballate. Non riesco a ricavarne un sensore.
Oggi ordinò un encoder incrementale e buona notte.
ma hai provato quello che ti ho detto ? hai provato a rimontare l'encoder sul mouse e verificare il corretto funzionamento utilizzando arduino come debugger ?
Prova, magari è saltato l' encoder.
Lucailvec:
ma hai provato quello che ti ho detto ? hai provato a rimontare l'encoder sul mouse e verificare il corretto funzionamento utilizzando arduino come debugger ?
Prova, magari è saltato l' encoder.
Si, ho provato ad usare un encoder funzionante del mouse attancando le i pin dell'arduino a Dx e SX dell'encoder. Con ele resistenze ovviamente.
Il fatto è che passa da HIGH a LOW molto più frequentemente dei quanto mi aspetto e soprattutto anche se non muovo nulla.
Inizio a sospettare di essermi giocato l'arduino nei vari controlli...mi sento abbastanza triste.
Ma ancora peggio ...mi sento sconfitto.
Mi spiace anche per non essere riuscito a sfruttare l'aiuto che molti di voi mi hanno dato
mi sa che non mi riesco a spiegare.
prendi il tuo mouse, ci risaldi l'encoder in modo corretto, colleghi l'arduino con data e clock(se è ps2 non dovresti aver problemi) al mouse e con la libreria ps2 TESTI che l' encoder non si sia fritto.
Debuggi i valori che leggi via seriale e in questo modo sei SICURO che il problema sia l'encoder e non l'arduino o viceversa.
Almeno nel peggiore dei casi utilizzi il driver del mouse per leggere i valori e così ti sentirai menosconfitto haha