Salve e tutti e buona pasqua!!!
provengo dal mondo del modellismo(aerei, macchine e tutto quello che si muove). Già da un po mi sono interessato anche ad arduino, e così pensavo di unire le due cose:
vorrei montare un motore "fuori scala" su un'automodello, ma "la potenza è nulla senza controllo". Per questo dovrei riuscire a controllare l'effettiva velocità del modello rispetto alla rotazione delle ruote, questo perchè avendo un motore troppo potente starei sempre a sgommare...
pensavo di usare il sensore ottico di un mouse che punta l'asfalto, per misurare l'effettiva velocità, ed un sensore magnetico sulla trasmissione per controllare le ruote..e... quando la ruota gira più di quanto va veloce del modello, il grande arduino, dovrebbe muovere il servo che da gas al motore...
il problema...non riesco a controllare il mio "ADNS2051.h", sensore del mio defunto mouse...
22: error: ADNS2051.h: No such file or directory In function 'void setup()':
In function 'void loop()':
questo è il risultato >:(
ovviamente ho fatto tutte le prove del caso...copiando in tutte le cartelle l'apposita libreria...
consilgi?!?!?!?!?
Il sensore ottico di un mouse é una bella idea ma deve trovardi a una distanza di piú o meno 1mm dalla superfice che viene ripreso dalla telecamera interna e della quale l'elettronica interna calcola lo spostamento da un immagine all altra. Distanza simile e costante a quella che avevi nel mouse.
Ti consiglio una cosa piú semplice e efficace. (se il tuo modellino non ha 4 ruote motrici). Prendi come velocitá di riferimento la rotazione della ruote non motrici. Quelle non sgommano. Semplicemente montando un altro sensore megnetico su una delle ruote anteriori.
Non so se si bloccano in fase di frenata...
Non so aiutarti per il sensore del mouse, ma prevedo un problema che non funzioni dal punto di vista ottico.
la macchina ha la trazione integrale, quindi il secondo sensore magnetico non si può usare, cmq grazie per il tentativo...avevo già pensato alla distanza dal suolo,(che ammonta a circa 1.5 cm) ed avrei "risolto" modificando l'ottica del sensore..avete mai visto il laser di un masterizzatore?una lente montata su delle bobbine si muove per cambiare il punto di fuoco. Il mio problema rimane nel far riconoscre la libreria del succitato sensore..forse sbaglio io nel copiare i files?? :-? help...
ciao maxmili80
C'é un trucco come i lettori/masterizzatori capiscono com'é a fuoco il CD/DVD. Il laser riflesso (segnale di lettura) viene portato a un sensore ottico con 4 quadranti. Quando il fascio Laser é a fuoco é circolare, quando sfuocato é ovale. Se fai il confronto della intensitá di luce dei 4 quarti é facile muovere la lente per averlo di forma circolare. la somma della intensitá luce ti da un bit 0 o 1.
Non hai questa possibiltá con il sensore Mouse. ti sfido di costruire un ottica che ti porta il fuoco da 1mm a 15mm. (non é inteso in modo cattivo da me, ma é dificilissimo).
Hai ragione é difficile capire quando le ruote slittano quando hai 4 ruote motrici. Ti resta un sensore di accelerazione. Se le ruote girano a 200 ma come acelerazione fai i 20 all ora qualcosa non quadra. anche questa via non é facile a causa delle accelerazioni laterali (curve) e salti e botte dato dal sfondo non completamente liscio.
metti un encoder a una ruota. Invece di prendere il lettore ottico del mouse prendi il trasmettitore e il ricevitore IR che stanno a sinistra e a destra della rotellina. poi prendi la rotellina e togli la plastica morbida e la monti in qualche modo ad un albero motore. monti ricevitore e trasmettitore ai lati della rotellina e li attacchi ad arduino. Il gioco è fatto.
Ti fai 2 conti per vedere quanti giri dell'albero corrispondono ai giri delle ruote e quindi ti calcoli la velocità in base alle rotazioni dell'encoder.
Un encoder te lo puoi anche costruire da solo, non è difficile.
ciao Calamaro
maxmili80 vorrebbe fare una circuito anti slittamento per evitare che le ruote sgommano. Visto che la sua macchina é a trazione integrale, che vuole dire che tutte le 4 ruote sono motorizzate non é possibile rilevare la velocitá sopra suolo della macchina misurando la velocita delle ruote per confrontarle con la velocitá di rotazione delle ruote motorizzate. Misurare la rotazione delle ruote non é il problema.
Ciao Uwe
ciao uwefed, il mio precedente post, dove dicevo di usare un'ottica x lottore dvd era un esempio, a tal proposito invito a vedere questo::
(a proposito, come si fa ad aggiungere un video direttamente sul post???xke io non ci riesco???)
quindi credo sia possibile
Per quato riguarda mettere un encoder nella ruota, ricetrasmettitori ecc ecc, come diceva calamaro...be... :-[ .. i giri motore/ruota sono più o meno sempre gli stessi (tranne quando sfriziona) essendo collegati da organi meccanici (frizione cardani ecc ecc)
Lo scopo dell'opera è controllare la velocita delle ruote rispetto all'effettiva velocità di marcia.
Per uwefed, contollando l'accelerazione...credo che tale sensore non sarebbe coerente con l'effettiva velocità...
si potrebbe calcolare inerzie ecc...cioè, potrei dire ad arduino ke per arrivare da 0 a 100Km/h ci vuole un determinato tempo, per tanto controllare il gas...ma sarebbe ugualmente efficace? :-?
ciao maxmili80
L'accelerazione é il cambio velocitá per unitá di tempo.
Non puoi misurare la velocitá, ma puoi misurare la variazione di velocitá. Non hai bisogno di sapere le masse o l'inerzia. Calcolare la velocitá dall'accelarazione non é tanto preciso, ma potrebbe essere abbastanza per fare un controllo di trazione.
Ciao Uwe